--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalbytewrateDebug;
+
+long totalByteWRate_init( struct genSubRecord *psub )
+{
+ return(0);
+}
+
+long totalByteWRate_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalByteWRate = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalByteWRate = totalByteWRate + input[i];
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalByteWRate;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalbytewrateDebug);
+epicsRegisterFunction(totalByteWRate_init);
+epicsRegisterFunction(totalByteWRate_proc);
--- /dev/null
+variable(totalbytewrateDebug)
+function(totalByteWRate_init)
+function(totalByteWRate_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalbytewritDebug;
+
+long totalByteWrit_init( struct genSubRecord *psub )
+{
+ return(0);
+}
+
+long totalByteWrit_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalByteWrit = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalByteWrit = totalByteWrit + input[i];
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalByteWrit;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalbytewritDebug);
+epicsRegisterFunction(totalByteWrit_init);
+epicsRegisterFunction(totalByteWrit_proc);
--- /dev/null
+variable(totalbytewritDebug)
+function(totalByteWrit_init)
+function(totalByteWrit_proc)
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevtcrateDebug;
+
+long totalEvtCRate_init( struct genSubRecord *psub )
+{
+ return(0);
+}
+
+long totalEvtCRate_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtCRate = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtCRate = totalEvtCRate + input[i];
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtCRate;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevtcrateDebug);
+epicsRegisterFunction(totalEvtCRate_init);
+epicsRegisterFunction(totalEvtCRate_proc);
--- /dev/null
+variable(totalevtcrateDebug)
+function(totalEvtCRate_init)
+function(totalEvtCRate_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevtdataerrDebug;
+
+long totalEvtDataErr_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long totalEvtDataErr_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtDataErr = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtDataErr = totalEvtDataErr + input[i];
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtDataErr;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevtdataerrDebug);
+epicsRegisterFunction(totalEvtDataErr_init);
+epicsRegisterFunction(totalEvtDataErr_proc);
--- /dev/null
+variable(totalevtdataerrDebug)
+function(totalEvtDataErr_init)
+function(totalEvtDataErr_proc)
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevtdiscDebug;
+
+long totalEvtDisc_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long totalEvtDisc_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtDisc = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtDisc = totalEvtDisc + input[i];
+ }
+
+ if(totalevtdiscDebug){
+ printf("<I> totalevtdisc.c: total Evts Discarded: %lu\n", (unsigned long)totalEvtDisc);
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtDisc;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevtdiscDebug);
+epicsRegisterFunction(totalEvtDisc_init);
+epicsRegisterFunction(totalEvtDisc_proc);
--- /dev/null
+variable(totalevtdiscDebug)
+function(totalEvtDisc_init)
+function(totalEvtDisc_proc)
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevtdrateDebug;
+
+long totalEvtDRate_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long totalEvtDRate_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtDRate = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtDRate = totalEvtDRate + input[i];
+ }
+
+ if(totalevtdrateDebug){
+ printf("<I> totalevtdrate.c: total Evts Discarded Rate: %lu\n", (unsigned long)totalEvtDRate);
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtDRate;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevtdrateDebug);
+epicsRegisterFunction(totalEvtDRate_init);
+epicsRegisterFunction(totalEvtDRate_proc);
--- /dev/null
+variable(totalevtdrateDebug)
+function(totalEvtDRate_init)
+function(totalEvtDRate_proc)
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevtscompDebug;
+
+long totalEvtsComp_init(struct genSubRecord *psub )
+{
+ return(0);
+}
+
+long totalEvtsComp_proc(struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtsComp = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtsComp = totalEvtsComp + input[i];
+ }
+
+ if(totalevtscompDebug){
+ printf("<I> totalevtscomp.c: total Evts Complete: %lu\n", (unsigned long)totalEvtsComp);
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtsComp;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevtscompDebug);
+epicsRegisterFunction(totalEvtsComp_init);
+epicsRegisterFunction(totalEvtsComp_proc);
--- /dev/null
+variable(totalevtscompDebug)
+function(totalEvtsComp_init)
+function(totalEvtsComp_proc)
\ No newline at end of file
--- /dev/null
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <stdint.h>
+
+#include <dbDefs.h>
+#include <registryFunction.h>
+#include <subRecord.h>
+#include <genSubRecord.h>
+#include <epicsExport.h>
+
+int totalevttagerrDebug;
+
+long totalEvtTagErr_init( struct genSubRecord *pgsub )
+{
+ return(0);
+}
+
+long totalEvtTagErr_proc( struct genSubRecord *psub )
+{
+ int i = 0;
+ uint32_t totalEvtTagErr = 0;
+ uint32_t input[16];
+
+ input[0] = *(uint32_t *)psub->a;
+ input[1] = *(uint32_t *)psub->b;
+ input[2] = *(uint32_t *)psub->c;
+ input[3] = *(uint32_t *)psub->d;
+ input[4] = *(uint32_t *)psub->e;
+ input[5] = *(uint32_t *)psub->f;
+ input[6] = *(uint32_t *)psub->g;
+ input[7] = *(uint32_t *)psub->h;
+ input[8] = *(uint32_t *)psub->i;
+ input[9] = *(uint32_t *)psub->j;
+ input[10] = *(uint32_t *)psub->k;
+ input[11] = *(uint32_t *)psub->l;
+ input[12] = *(uint32_t *)psub->m;
+ input[13] = *(uint32_t *)psub->n;
+ input[14] = *(uint32_t *)psub->o;
+ input[15] = *(uint32_t *)psub->p;
+
+ for(i=0; i<16; i++){
+ totalEvtTagErr = totalEvtTagErr + input[i];
+ }
+
+ if(totalevttagerrDebug){
+ printf("<I> totalevttagerr.c: total Evts Tag Error: %lu\n", (unsigned long)totalEvtTagErr);
+ }
+
+ *(uint32_t *)psub->vala = (uint32_t)totalEvtTagErr;
+
+ return(0);
+}
+
+epicsExportAddress(int, totalevttagerrDebug);
+epicsRegisterFunction(totalEvtTagErr_init);
+epicsRegisterFunction(totalEvtTagErr_proc);
--- /dev/null
+variable(totalevttagerrDebug)
+function(totalEvtTagErr_init)
+function(totalEvtTagErr_proc)
\ No newline at end of file