#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <stdint.h>
#include <dbDefs.h>
#include <registryFunction.h>
long evtbuild_proc( struct genSubRecord *pgsub )
{
- unsigned long *out[13];
+ uint32_t *out[13];
+ unsigned long tmp;
static unsigned long temp[10] = {0};
int i;
- out[0] = (unsigned long *)pgsub->vala; /* nrOfMsgs */
- out[1] = (unsigned long *)pgsub->valb; /* byteWrit = bytes written */
- out[2] = (unsigned long *)pgsub->valc; /* evtComp = events completed */
- out[3] = (unsigned long *)pgsub->vald; /* evtDisc = events discarded */
- out[4] = (unsigned long *)pgsub->vale; /* evtDataErr = events w/ data error */
- out[5] = (unsigned long *)pgsub->valf; /* evtTagErr = events w/ tag error */
- out[6] = (unsigned long *)pgsub->valg; /* ebBuff = EB buffer */
- out[7] = (unsigned long *)pgsub->valh; /* status */
- out[8] = (unsigned long *)pgsub->vali; /* evtCRate = events completed rate */
- out[9] = (unsigned long *)pgsub->valj; /* byteWRate = bytes written rate */
- out[10] = (unsigned long *)pgsub->valk; /* evtDRate = events discarded rate */
- out[11] = (unsigned long *)pgsub->vall; /* dataMover = number of selected Data Mover */
- out[12] = (unsigned long *)pgsub->valm; /* diskNr = disk number where data is being written */
+ out[0] = (uint32_t *)pgsub->vala; /* nrOfMsgs */
+ out[1] = (uint32_t *)pgsub->valb; /* byteWrit = bytes written */
+ out[2] = (uint32_t *)pgsub->valc; /* evtComp = events completed */
+ out[3] = (uint32_t *)pgsub->vald; /* evtDisc = events discarded */
+ out[4] = (uint32_t *)pgsub->vale; /* evtDataErr = events w/ data error */
+ out[5] = (uint32_t *)pgsub->valf; /* evtTagErr = events w/ tag error */
+ out[6] = (uint32_t *)pgsub->valg; /* ebBuff = EB buffer */
+ out[7] = (uint32_t *)pgsub->valh; /* status */
+ out[8] = (uint32_t *)pgsub->vali; /* evtCRate = events completed rate */
+ out[9] = (uint32_t *)pgsub->valj; /* byteWRate = bytes written rate */
+ out[10] = (uint32_t *)pgsub->valk; /* evtDRate = events discarded rate */
+ out[11] = (uint32_t *)pgsub->vall; /* dataMover = number of selected Data Mover */
+ out[12] = (uint32_t *)pgsub->valm; /* diskNr = disk number where data is being written */
/* pgsub->vall : bytesWrittenRate in stringin record (array of char's) */
for( i=0; i<12; i++ )
char buf[_POSIX_PATH_MAX];
sprintf( buf, "%s%s", "daq_evtbuild", getenv("EBNUM") );
- if( Worker_getStatistic( buf, "nrOfMsgs", out[0] ) == -1) {
- *out[7] = 0; /* status: Event Builder is off */
+ if( Worker_getStatistic( buf, "nrOfMsgs", &tmp ) == -1) {
+ *out[7] = 0; /* status: Event Builder is off */
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for nrOfMsgs!\n");
}
else {
*out[7] = 1; /* status: Event Builder is on */
if(evtbuildDebug) {
- printf("<E> evtbuild.c: Worker_getStatistic::nrOfMsgs = %lu\n", (*out[0]));
- printf("<E> evtbuild.c: status = %lu\n", (*out[7]));
+ printf("<E> evtbuild.c: Worker_getStatistic::nrOfMsgs = %lu\n", tmp);
+ printf("<E> evtbuild.c: status = %lu\n", (unsigned long)1);
}
}
- if( Worker_getStatistic( buf, "bytesWritten", out[1] ) == -1) {
+ if( Worker_getStatistic( buf, "bytesWritten", &tmp ) == -1) {
*out[9] = 0; /* zero data rate */
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for bytesWritten!\n");
}
else {
+ *out[1] = (uint32_t)tmp;
+
/* calculate data rate and convert from Bytes to kB */
if( ((long)(*out[1]) - (long)temp[1]) >= 0 )
*out[9] = (int)((*out[1] - temp[1])/1024. + 0.5);
*out[1] = (int)((*out[1])/1024./1024. + 0.5);
}
- if( Worker_getStatistic( buf, "evtsComplete", out[2] ) == -1) {
+ if( Worker_getStatistic( buf, "evtsComplete", &tmp ) == -1) {
*out[8] = 0; /* zero evtComp rate */
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for evtsComplete!\n");
}
else{
+ *out[2] = (uint32_t)tmp;
+
if( ((long)(*out[2]) - (long)temp[2]) >= 0 )
*out[8] = *out[2] - temp[2]; /* calculate evtComp rate */
else
temp[2] = *out[2];
}
- if( Worker_getStatistic( buf, "evtsDiscarded", out[3] ) == -1) {
+ if( Worker_getStatistic( buf, "evtsDiscarded", &tmp ) == -1) {
*out[10] = 0; /* zero evtDisc rate */
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for evtsDiscarded!\n");
}
else {
+ *out[3] = (uint32_t)tmp;
+
if( ((long)(*out[3]) - (long)temp[3]) > 0 )
*out[10] = *out[3] - temp[3]; /* calculate evtDisc rate */
else
temp[3] = *out[3];
}
- if( Worker_getStatistic( buf, "evtsDataError", out[4] ) == -1)
+ if( Worker_getStatistic( buf, "evtsDataError", &tmp ) == -1){
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for evtsDataError!\n");
+ }
+ else{
+ *out[4] = (uint32_t)tmp;
+ }
- if( Worker_getStatistic( buf, "evtsTagError", out[5] ) == -1)
+ if( Worker_getStatistic( buf, "evtsTagError", &tmp ) == -1){
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for evtsTagError!\n");
+ }
+ else{
+ *out[5] = (uint32_t)tmp;
+ }
- if( Worker_getStatistic( buf, "dataMover", out[11] ) == -1)
+ if( Worker_getStatistic( buf, "dataMover", &tmp ) == -1){
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for dataMover!\n");
+ }
+ else{
+ *out[11] = (uint32_t)tmp;
+ }
- if( Worker_getStatistic( buf, "diskNrEB", out[12] ) == -1)
+
+ if( Worker_getStatistic( buf, "diskNrEB", &tmp ) == -1){
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for diskNrEB!\n");
+ }
+ else{
+ *out[12] = (uint32_t)tmp;
+ }
+
char ebbuf[100];
for( i=0; i<(*out[0]); i++ ) {
sprintf( ebbuf, "evtbuildBuff%d", i );
- if( Worker_getStatistic( buf, ebbuf, out[6] ) == -1) {
+ if( Worker_getStatistic( buf, ebbuf, &tmp ) == -1) {
if(evtbuildDebug)
printf("<E> evtbuild.c: Worker_getStatistic failed for %s!\n", buf);
}
else {
+ *out[6] = (uint32_t)tmp;
+
if(evtbuildDebug)
- printf("evtbuild.c, %s = %lu\n", ebbuf, *out[6]);
+ printf("evtbuild.c, %s = %lu\n", ebbuf, tmp);
out[6]++;
}