From c6aedfb32b0414d599d033dfb023f35540421faa Mon Sep 17 00:00:00 2001 From: hadaq Date: Sun, 2 Mar 2003 15:50:08 +0000 Subject: [PATCH] indent -- mm --- hadaq/agent.c | 12 +- hadaq/ansiTape.c | 27 +- hadaq/ansiTape.h | 6 +- hadaq/ansiTapeChar.c | 76 ++-- hadaq/ansiTapeChar.h | 2 +- hadaq/ansiTapeLabel.c | 110 +++-- hadaq/ansiTapeLabel.h | 2 +- hadaq/ctrlctu.c | 13 +- hadaq/ctu.h | 141 +++--- hadaq/evt.c | 5 +- hadaq/evt.h | 27 +- hadaq/evtbuild.c | 30 +- hadaq/genid32.c | 120 +++--- hadaq/genid32.h | 1 + hadaq/hadtu.h | 95 ++-- hadaq/hadtuqueue.h | 4 +- hadaq/hardware.h | 19 +- hadaq/hldread.c | 10 +- hadaq/hldread.h | 1 + hadaq/hwrich.c | 3 +- hadaq/hwsam.c | 29 +- hadaq/hwsam.h | 23 +- hadaq/hwsoft.c | 10 +- hadaq/hwtip.c | 177 ++++---- hadaq/hwtip.h | 28 +- hadaq/hwtrig.c | 11 +- hadaq/ipc_basis.h | 83 ++-- hadaq/memnet.c | 54 ++- hadaq/netmem.c | 341 +++++++-------- hadaq/nettrans.c | 53 +-- hadaq/nettrans.h | 41 +- hadaq/online.c | 4 +- hadaq/psxshm.h | 13 +- hadaq/rc.h | 976 +++++++++++++++++++++++++++++------------- hadaq/readout.c | 49 ++- hadaq/sam_defs.h | 1 + hadaq/shmtrans.c | 8 +- hadaq/shmtrans.h | 17 +- hadaq/showevt.c | 12 +- hadaq/sniff.c | 9 +- hadaq/subevt.c | 101 ++--- hadaq/subevt.h | 81 ++-- hadaq/tcldaq.c | 21 +- hadaq/tof_defs.h | 19 +- hadaq/worker.c | 18 +- hadaq/worker.h | 9 +- 46 files changed, 1656 insertions(+), 1236 deletions(-) diff --git a/hadaq/agent.c b/hadaq/agent.c index a14b03e..5e427ee 100644 --- a/hadaq/agent.c +++ b/hadaq/agent.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/agent.c,v 6.10 2002-11-09 10:03:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/agent.c,v 6.11 2003-03-02 15:50:08 hadaq Exp $"; #define _GNU_SOURCE #include @@ -56,7 +56,7 @@ int *rpcworker_start_1(RpcWorker_startArgs * args, CLIENT * cl) return &retVal; } -int * rpcworker_start_1_svc(RpcWorker_startArgs *dummy, struct svc_req *x) +int *rpcworker_start_1_svc(RpcWorker_startArgs * dummy, struct svc_req *x) { return rpcworker_start_1(dummy, NULL); } @@ -69,7 +69,7 @@ char **rpcworker_status_1(int *id, CLIENT * cl) return &retVal; } -char ** rpcworker_status_1_svc(int *dummy, struct svc_req *x) +char **rpcworker_status_1_svc(int *dummy, struct svc_req *x) { return rpcworker_status_1(dummy, NULL); } @@ -86,7 +86,7 @@ int *rpcworker_stop_1(int *id, CLIENT * cl) return &retVal; } -int * rpcworker_stop_1_svc(int *dummy, struct svc_req *x) +int *rpcworker_stop_1_svc(int *dummy, struct svc_req *x) { return rpcworker_stop_1(dummy, NULL); } @@ -100,7 +100,7 @@ void *rpcsystem_1(char **command, CLIENT * cl) return &retVal; } -void * rpcsystem_1_svc(char **dummy, struct svc_req *x) +void *rpcsystem_1_svc(char **dummy, struct svc_req *x) { return rpcsystem_1(dummy, NULL); } @@ -114,7 +114,7 @@ int *rpcjoin_1(int *dummy, CLIENT * cl) return &retVal; } -int * rpcjoin_1_svc(int *dummy, struct svc_req *x) +int *rpcjoin_1_svc(int *dummy, struct svc_req *x) { return rpcjoin_1(dummy, NULL); } diff --git a/hadaq/ansiTape.c b/hadaq/ansiTape.c index ecb7ea4..ae23864 100644 --- a/hadaq/ansiTape.c +++ b/hadaq/ansiTape.c @@ -1,3 +1,4 @@ + #include #include #include @@ -5,7 +6,7 @@ #include #include #include - + /* For st */ #include #include @@ -13,7 +14,8 @@ #include "ansiTape.h" #include "ansiTapeLabel.h" -AnsiTape *openAnsiTape(const char* filename, const char *dev) { +AnsiTape *openAnsiTape(const char *filename, const char *dev) +{ #if defined(MTIOCTOP) int tape; int fileSeqNum = 0; @@ -29,13 +31,11 @@ AnsiTape *openAnsiTape(const char* filename, const char *dev) { syslog(LOG_ERR, "Could not allocate memory for ansiTape."); return NULL; } - tape = open(dev, O_RDWR); - if(tape == -1) { + if (tape == -1) { syslog(LOG_ERR, "Could not open tape."); return NULL; } - #if defined(MTEOM) mtoper->mt_op = MTEOM; #elif defined(MTSEOD) @@ -49,7 +49,6 @@ AnsiTape *openAnsiTape(const char* filename, const char *dev) { syslog(LOG_ERR, "Could not go to the eom of the tape."); return NULL; } - mtoper->mt_op = MTBSF; /* BUGBUG this varies from tape to tape. * * Old DLT III drives seem to work with 2, * @@ -66,7 +65,6 @@ AnsiTape *openAnsiTape(const char* filename, const char *dev) { syslog(LOG_ERR, "Could not rewind tape."); return NULL; } - isNewTape = readVolumeLabel(tape, vol); stat = ioctl(tape, MTIOCTOP, mtoper); @@ -74,7 +72,6 @@ AnsiTape *openAnsiTape(const char* filename, const char *dev) { syslog(LOG_ERR, "Could not rewind tape."); return NULL; } - if (isNewTape == 0) { writeVolumeLabel(tape, vol); } else { @@ -109,7 +106,6 @@ AnsiTape *openAnsiTape(const char* filename, const char *dev) { syslog(LOG_ERR, "Could not write filemark."); return NULL; } - thisAnsiTape->fd = tape; thisAnsiTape->bytesWritten = 0; @@ -128,7 +124,7 @@ int writeAnsiTape(AnsiTape *openTape, const char *src, size_t size) { #if defined(MTIOCTOP) int retVal = 0; - while(size >= BLOCKSIZE - openTape->bufferFull) { + while (size >= BLOCKSIZE - openTape->bufferFull) { if (openTape->bufferFull < BLOCKSIZE) { memcpy(openTape->buf + openTape->bufferFull, src, BLOCKSIZE - openTape->bufferFull); src += (BLOCKSIZE - openTape->bufferFull); @@ -152,14 +148,14 @@ int writeAnsiTape(AnsiTape *openTape, const char *src, size_t size) } /* BUGBUG the last write may have less than BLOCKSIZE bytes */ -int closeAnsiTape(AnsiTape *openTape) { +int closeAnsiTape(AnsiTape *openTape) +{ #if defined(MTIOCTOP) int stat; struct mtop mtoperS, *mtoper = &mtoperS; - if(openTape->bufferFull != 0) { + if (openTape->bufferFull != 0) { write(openTape->fd, openTape->buf, openTape->bufferFull); } - mtoper->mt_op = MTWEOF; mtoper->mt_count = 1; stat = ioctl(openTape->fd, MTIOCTOP, mtoper); @@ -167,19 +163,16 @@ int closeAnsiTape(AnsiTape *openTape) { syslog(LOG_ERR, "Could not write filemark."); return -1; } - writeTrailer(openTape->fd, openTape->fileSeqNum, openTape->bytesWritten, openTape->filename); stat = close(openTape->fd); if (stat == -1) { syslog(LOG_ERR, "Could not close file on tape."); return -1; - free(openTape); + free(openTape); } - return 0; #else return -1; #endif } - diff --git a/hadaq/ansiTape.h b/hadaq/ansiTape.h index cd6d5af..dbbc1b4 100644 --- a/hadaq/ansiTape.h +++ b/hadaq/ansiTape.h @@ -1,3 +1,4 @@ + #ifndef ANSITAPE_H #define ANSITAPE_H @@ -12,7 +13,9 @@ typedef struct AnsiTapeS { const char *filename; int fileSeqNum; -} AnsiTape; +} + +AnsiTape; AnsiTape *openAnsiTape(const char *, const char *); @@ -20,4 +23,3 @@ int writeAnsiTape(AnsiTape *, const char *, size_t); int closeAnsiTape(AnsiTape *); #endif - diff --git a/hadaq/ansiTapeChar.c b/hadaq/ansiTapeChar.c index 68d8707..c6d22ec 100644 --- a/hadaq/ansiTapeChar.c +++ b/hadaq/ansiTapeChar.c @@ -1,45 +1,47 @@ + #include #include "ansiTapeChar.h" -char *ansichar(char *s, int length) { +char *ansichar(char *s, int length) +{ int i, end = 0; - for(i=0 ; i'): - case ('?'): - break; - case ('\0'): - s[i] = ' '; - end = 1; - break; - default: - s[i] = 'Z'; - break; + case (' '): + case ('!'): + case ('"'): + case ('%'): + case ('&'): + case ('\''): + case ('('): + case (')'): + case ('*'): + case ('+'): + case (','): + case ('-'): + case ('_'): + case ('.'): + case ('/'): + case (':'): + case (';'): + case ('<'): + case ('='): + case ('>'): + case ('?'): + break; + case ('\0'): + s[i] = ' '; + end = 1; + break; + default: + s[i] = 'Z'; + break; } } } else { @@ -51,13 +53,14 @@ char *ansichar(char *s, int length) { return s; } -char *unixchar(char *s, int length) { +char *unixchar(char *s, int length) +{ int i; int end = 0; - for(i=0 ; i @@ -21,29 +22,30 @@ /* Functions concerning the volume label */ -int readVolumeLabel(int tape, char *vol) { +int readVolumeLabel(int tape, char *vol) +{ int stat; stat = read(tape, vol, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { return -1; } - return 0; } -int writeVolumeLabel(int tape, const char *vol) { +int writeVolumeLabel(int tape, const char *vol) +{ int stat; stat = write(tape, vol, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { syslog(LOG_ERR, "Could not write volume label to tape."); return -1; } - return 0; } -int writeNewVolumeLabel(int tape, const char *volId, const char *ownerId) { +int writeNewVolumeLabel(int tape, const char *volId, const char *ownerId) +{ int stat; char vol[LABELSIZE]; char oid[15]; @@ -54,19 +56,18 @@ int writeNewVolumeLabel(int tape, const char *volId, const char *ownerId) { syslog(LOG_ERR, "Volume label not %d char.", LABELSIZE); return -1; } - stat = write(tape, vol, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { syslog(LOG_ERR, "Could not write volume label to tape."); return -1; } - return 0; } /* Functions concerning the hdr-label and the eof-label */ -static int writeLabel(int tape, const char *hdreof, int fileSeqNum, int bytes, const char *filename) { +static int writeLabel(int tape, const char *hdreof, int fileSeqNum, int bytes, const char *filename) +{ int stat; int i; int blockSize = BLOCKSIZE; @@ -83,7 +84,7 @@ static int writeLabel(int tape, const char *hdreof, int fileSeqNum, int bytes, c tim = time(0); cd = gmtime(&tim); - if ((cd->tm_year)/100 == 19) { + if ((cd->tm_year) / 100 == 19) { creaCent = " "; } else { creaCent = "0"; @@ -91,53 +92,50 @@ static int writeLabel(int tape, const char *hdreof, int fileSeqNum, int bytes, c strcpy(fn, filename); if (LABELSIZE != sprintf(label, "%-3s%1d%-17s%06d%04d%04d%04d%02d%1s%02d%03d%6d%1s%06d%-13s%-7s", - hdreof, - 1, - ansichar(fn, 17), - 1, - 1, - fileSeqNum, - 1, - 0, - creaCent, (cd->tm_year)%100, cd->tm_yday, - 99366, - " ", - (bytes + BLOCKSIZE - 1) / BLOCKSIZE, - impId, - "") - ) { + hdreof, + 1, + ansichar(fn, 17), + 1, + 1, + fileSeqNum, + 1, + 0, + creaCent, (cd->tm_year) % 100, cd->tm_yday, + 99366, + " ", + (bytes + BLOCKSIZE - 1) / BLOCKSIZE, + impId, + "") + ) { syslog(LOG_ERR, "Label 1 not %d char.", LABELSIZE); return -1; } - stat = write(tape, label, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { syslog(LOG_ERR, "Could not write ANSI label 1 on tape."); return -1; } - if (LABELSIZE != sprintf(label, "%-3s%1d%1s%05d%05d%-21s%1s%010d%-3s%02d%28s", - hdreof, - 2, - "F", - blockSize, - blockSize, - "", - "M", - bytes, - "", - 0, - "") - ) { + hdreof, + 2, + "F", + blockSize, + blockSize, + "", + "M", + bytes, + "", + 0, + "") + ) { syslog(LOG_ERR, "Label 2 not %d char.", LABELSIZE); return -1; } stat = write(tape, label, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { syslog(LOG_ERR, "Could not write ANSI label 2 on tape."); return -1; } - uid = getuid(); while (NULL != (pwentry = getpwent()) && pwentry->pw_uid != uid) { } @@ -151,30 +149,30 @@ static int writeLabel(int tape, const char *hdreof, int fileSeqNum, int bytes, c gethostname(hostname, 20); if (LABELSIZE != sprintf(label, "%-3s%1d%010d%-10s%-20s%-36s", - hdreof, - 3, - tim, - user, - hostname, - filename) - ) { + hdreof, + 3, + tim, + user, + hostname, + filename) + ) { syslog(LOG_ERR, "Label 3 not %d char.", LABELSIZE); return -1; } - stat = write(tape, label, LABELSIZE); - if(stat != LABELSIZE) { + if (stat != LABELSIZE) { syslog(LOG_ERR, "Could not write ANSI label 3 on tape."); return -1; } return 0; } -int writeHeader(int tape, int fileSeqNum, const char *filename) { +int writeHeader(int tape, int fileSeqNum, const char *filename) +{ return writeLabel(tape, "HDR", fileSeqNum, 0, filename); } -int writeTrailer(int tape, int fileSeqNum, unsigned long numBytes, const char *filename) { +int writeTrailer(int tape, int fileSeqNum, unsigned long numBytes, const char *filename) +{ return writeLabel(tape, "EOF", fileSeqNum, numBytes, filename); } - diff --git a/hadaq/ansiTapeLabel.h b/hadaq/ansiTapeLabel.h index c7380a7..5ce7170 100644 --- a/hadaq/ansiTapeLabel.h +++ b/hadaq/ansiTapeLabel.h @@ -1,3 +1,4 @@ + #ifndef ANSITAPELABEL_H #define ANSITAPELABEL_H @@ -11,4 +12,3 @@ int writeHeader(int, int, const char *); int writeTrailer(int, int, unsigned long, const char *); #endif - diff --git a/hadaq/ctrlctu.c b/hadaq/ctrlctu.c index edfa6b3..e77221a 100644 --- a/hadaq/ctrlctu.c +++ b/hadaq/ctrlctu.c @@ -1,4 +1,5 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/ctrlctu.c,v 6.13 2003-02-21 18:58:44 sailer Exp $"; + +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/ctrlctu.c,v 6.14 2003-03-02 15:50:09 hadaq Exp $"; #define _XOPEN_SOURCE #define _POSIX_C_SOURCE 199506L @@ -39,10 +40,12 @@ int main(int argc, char *argv[]) unsigned long value; int oper; unsigned long *ctuEnabled; - struct timespec t1 = {1, 0}; - struct timespec t3 = {3, 0}; + struct timespec t1 = + {1, 0}; + struct timespec t3 = + {3, 0}; - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); setlogmask(LOG_UPTO(LOG_INFO)); isStandalone = 1; @@ -57,7 +60,7 @@ int main(int argc, char *argv[]) break; case 'v': for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { + && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { } if (prioritynames[i].c_name == NULL) { usage(argv[0]); diff --git a/hadaq/ctu.h b/hadaq/ctu.h index e95fc37..a10a8fb 100644 --- a/hadaq/ctu.h +++ b/hadaq/ctu.h @@ -1,3 +1,4 @@ + #ifndef CTU_H #define CTU_H @@ -27,18 +28,20 @@ #define MAGIC 0x3c typedef struct CtuS { - volatile uint8_t *base; - uint16_t internalTrigNr; -} Ctu; + volatile uint8_t *base; + uint16_t internalTrigNr; +} + +Ctu; static uint8_t Ctu_rdStatus(Ctu * my) { - return *(my->base + STATUS1); + return *(my->base + STATUS1); } static uint8_t Ctu_rdDeadtime(Ctu * my) { - return *(my->base + DEAD1); + return *(my->base + DEAD1); } static void Ctu_wrDelay(Ctu * my, uint8_t delay) @@ -48,10 +51,10 @@ static void Ctu_wrDelay(Ctu * my, uint8_t delay) static uint8_t Ctu_magicIsOk(Ctu * my) { - return *(my->base + MAGIC) == 0x51; + return *(my->base + MAGIC) == 0x51; } -static void Ctu_clear(Ctu *my) +static void Ctu_clear(Ctu * my) { *(my->base + STATUS1) |= 0x01; *(my->base + STATUS1) &= ~0x01; @@ -59,9 +62,9 @@ static void Ctu_clear(Ctu *my) *(my->base + STATUS2) &= ~0x01; } -static void Ctu_inhibit(Ctu *my, int v) +static void Ctu_inhibit(Ctu * my, int v) { - if (v) { + if (v) { *(my->base + STATUS1) |= 0x02; *(my->base + STATUS2) |= 0x02; } else { @@ -70,50 +73,50 @@ static void Ctu_inhibit(Ctu *my, int v) } } -static void Ctu_maskBusy(Ctu *my, int v) +static void Ctu_maskBusy(Ctu * my, int v) { - if (v) { + if (v) { *(my->base + STATUS1) |= 0x40; } else { *(my->base + STATUS1) &= ~0x40; } } -static void Ctu_maskTrig(Ctu *my, int v) +static void Ctu_maskTrig(Ctu * my, int v) { - if (v) { + if (v) { *(my->base + STATUS1) |= 0x08; } else { *(my->base + STATUS1) &= ~0x08; } } -static void Ctu_lockBusy(Ctu *my, int v) +static void Ctu_lockBusy(Ctu * my, int v) { - if (v) { + if (v) { *(my->base + STATUS1) |= 0x01; } else { *(my->base + STATUS1) &= ~0x01; } } -static void Ctu_softBusy(Ctu *my, int v) +static void Ctu_softBusy(Ctu * my, int v) { - if (v) { + if (v) { *(my->base + STATUS1) |= 0x20; } else { *(my->base + STATUS1) &= ~0x20; } } -static int Ctu_isBusy(Ctu *my) +static int Ctu_isBusy(Ctu * my) { - return (*(my->base + STATUS1) & 0x40) != 0; + return (*(my->base + STATUS1) & 0x40) != 0; } -static int Ctu_isError(Ctu *my) +static int Ctu_isError(Ctu * my) { - return (*(my->base + STATUS1) & 0x80) != 0; + return (*(my->base + STATUS1) & 0x80) != 0; } static void Ctu_wrDeadtime(Ctu * my, uint8_t time) @@ -141,7 +144,8 @@ static void Ctu_popFifo(Ctu * my) *(my->base + FIPO2) = 0; } -static void Ctu_softTrig(Ctu *my, uint8_t trigType) { +static void Ctu_softTrig(Ctu * my, uint8_t trigType) +{ struct timespec tS, *t = &tS; t->tv_sec = 0; t->tv_nsec = 1; @@ -156,78 +160,77 @@ static void Ctu_softTrig(Ctu *my, uint8_t trigType) { static char *Ctu_2charP(Ctu * my) { - static char s[7 * 80]; - - sprintf(s, - "base: 0x%08x\n" - "status: 0x%02x\n" - "deadtime: 0x%02x\n" - "trigCode: 0x%01x\n" - "trigTag: 0x%02x\n" - "magicIsOk: %d\n", - my->base, - Ctu_rdStatus(my), - Ctu_rdDeadtime(my), - Ctu_rdTrigCode(my), - Ctu_rdTrigTag(my), - Ctu_magicIsOk(my) - ); - return s; + static char s[7 * 80]; + + sprintf(s, + "base: 0x%08x\n" + "status: 0x%02x\n" + "deadtime: 0x%02x\n" + "trigCode: 0x%01x\n" + "trigTag: 0x%02x\n" + "magicIsOk: %d\n", + my->base, + Ctu_rdStatus(my), + Ctu_rdDeadtime(my), + Ctu_rdTrigCode(my), + Ctu_rdTrigTag(my), + Ctu_magicIsOk(my) + ); + return s; } static int Ctu_invariant(Ctu * my) { - return 1; + return 1; } static int conCtu(Ctu * my, unsigned long cardBase) { - struct pdparam_master paramS, *param = ¶mS; -unsigned char init_code1[] = {0, 1, 4, 4, 5, 5, 5, 5, - 6, 6, 6, 6, 6, 6, 6, 6, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3}; + struct pdparam_master paramS, *param = ¶mS; + unsigned char init_code1[] = + {0, 1, 4, 4, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, + 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3}; int i; - assert(my != NULL); - - param->iack = 1; - param->rdpref = 0; - param->wrpost = 0; - param->swap = 2; + assert(my != NULL); + param->iack = 1; + param->rdpref = 0; + param->wrpost = 0; + param->swap = 2; - if ( - (volatile uint8_t *)-1 == (my->base = (volatile uint8_t *)find_controller( - cardBase, 0x10000UL, 0x09UL, 0x0000003cUL, 1UL, param - )) - ) { - return -1; - } + if ( + (volatile uint8_t *) -1 == (my->base = (volatile uint8_t *) find_controller( + cardBase, 0x10000UL, 0x09UL, 0x0000003cUL, 1UL, param + )) + ) { + return -1; + } *(my->base + STATUS1) = 0; *(my->base + STATUS2) = 0; - for(i=0; i<64; ++i) - { + for (i = 0; i < 64; ++i) { *(my->base + TAG1) = i; *(my->base + CODE1) = init_code1[i]; } *(my->base + TAG1) = 0; - assert(Ctu_invariant(my)); + assert(Ctu_invariant(my)); - return 0; + return 0; } static void desCtu(Ctu * my) { - assert(Ctu_invariant(my)); + assert(Ctu_invariant(my)); - Ctu_inhibit(my, 0); - return_controller((unsigned long)my->base, 0x10000UL); + Ctu_inhibit(my, 0); + return_controller((unsigned long) my->base, 0x10000UL); } #endif diff --git a/hadaq/evt.c b/hadaq/evt.c index bd8910d..2f01c04 100644 --- a/hadaq/evt.c +++ b/hadaq/evt.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evt.c,v 6.12 2002-11-22 21:54:37 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evt.c,v 6.13 2003-03-02 15:50:09 hadaq Exp $"; #define _ANSI_C_SOURCE @@ -221,7 +221,7 @@ void *Evt_appendSubEvt(void *my, void *subEvt) return my; } -void *Evt_fget(FILE * file) +void *Evt_fget(FILE *file) { static char pool[EVT_MAXSIZE]; static void *evt = pool; @@ -230,7 +230,6 @@ void *Evt_fget(FILE * file) syslog(LOG_DEBUG, "%s:%d: %s", __FILE__, __LINE__, strerror(errno)); return NULL; } - /* BUGBUG quickhack for a "Evt_paddedDataSize" */ if (Evt_paddedSize(evt) - Evt_hdrSize() != fread(Evt_data(evt), 1, Evt_paddedSize(evt) - Evt_hdrSize(), file)) { syslog(LOG_ERR, "%s:%d: %s", __FILE__, __LINE__, strerror(errno)); diff --git a/hadaq/evt.h b/hadaq/evt.h index e85644e..237b026 100644 --- a/hadaq/evt.h +++ b/hadaq/evt.h @@ -1,3 +1,4 @@ + #ifndef EVT_H #define EVT_H @@ -14,14 +15,14 @@ static const int evtBlockSize = 8 * 1024; enum EvtId { - EvtId_data = 1, - EvtId_runStart = 0x00010002, - EvtId_runStop = 0x00010003 + EvtId_data = 1, + EvtId_runStart = 0x00010002, + EvtId_runStop = 0x00010003 }; enum EvtDecoding { - EvtDecoding_default = 1, - EvtDecoding_64bitAligned = (0x03 << 16) | 0x0001 + EvtDecoding_default = 1, + EvtDecoding_64bitAligned = (0x03 << 16) | 0x0001 }; #define Evt_hdr HadTu_hdr @@ -52,22 +53,24 @@ uint32_t Evt_id(const void *my); static uint32_t Evt_pureId(const void *my) { - return Evt_id(my) & 0x7fffffffUL; + return Evt_id(my) & 0x7fffffffUL; } static int Evt_dataError(const void *my) { - return (Evt_id(my) & 0x80000000UL) != 0; + return (Evt_id(my) & 0x80000000UL) != 0; } void Evt_setId(void *my, uint32_t id); -static int Evt_setDataError(void *my) { - Evt_setId(my, Evt_id(my) | 0x80000000UL); +static int Evt_setDataError(void *my) +{ + Evt_setId(my, Evt_id(my) | 0x80000000UL); } -static int Evt_clrDataError(void *my) { - Evt_setId(my, Evt_id(my) & ~0x80000000UL); +static int Evt_clrDataError(void *my) +{ + Evt_setId(my, Evt_id(my) & ~0x80000000UL); } uint32_t Evt_seqNr(const void *my); @@ -83,7 +86,7 @@ void Evt_setExpId(void *my, uint32_t expId); void *newEvt(uint32_t decoding, uint32_t id); void deleteEvt(void *my); -void *Evt_fget(FILE * file); +void *Evt_fget(FILE *file); void *Evt_appendSubEvt(void *my, void *subEvt); #endif diff --git a/hadaq/evtbuild.c b/hadaq/evtbuild.c index 5a6f38b..ae4d498 100644 --- a/hadaq/evtbuild.c +++ b/hadaq/evtbuild.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.59 2002-12-01 15:58:30 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/evtbuild.c,v 6.60 2003-03-02 15:50:09 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -32,7 +32,7 @@ static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hada #include "genid32.h" #define NEVTIDS 64UL /* must be 2^n */ -#define NEVTIDS_IN_FILE 0UL /* must be 2^n */ +#define NEVTIDS_IN_FILE 0UL /* must be 2^n */ static FILE *outFile; static AnsiTape *outTape; @@ -124,7 +124,7 @@ static void usage(const char *progName) syslog(LOG_ERR, "Usage: [-a (agent)] [-p priority]"); } -static void argsDump(TheArgs * my) +static void argsDump(TheArgs *my) { int i; @@ -142,7 +142,7 @@ static void argsDump(TheArgs * my) syslog(LOG_DEBUG, "verbosity: %s", my->verbosity); } -static void argsDefault(TheArgs * my) +static void argsDefault(TheArgs *my) { int i; @@ -160,7 +160,7 @@ static void argsDefault(TheArgs * my) strcpy(my->verbosity, "info"); } -static int argsFromCL(TheArgs * my, int argc, char *argv[]) +static int argsFromCL(TheArgs *my, int argc, char *argv[]) { extern char *optarg; int i; @@ -206,7 +206,7 @@ static int argsFromCL(TheArgs * my, int argc, char *argv[]) return 0; } -static int argsFromParam(TheArgs * my, int argc, char *argv[]) +static int argsFromParam(TheArgs *my, int argc, char *argv[]) { Param paramS, *param = ¶mS; int paramWasFound; @@ -215,7 +215,7 @@ static int argsFromParam(TheArgs * my, int argc, char *argv[]) Param_getInt(param, argv[0], "nrofmsgs", ¶mWasFound, &my->nrOfMsgs); Param_getStringArray(param, argv[0], "slwctrlfile", - PARAM_MAX_ARRAY_LEN, &my->slowCtrlFileCnt, my->slowCtrlFiles); + PARAM_MAX_ARRAY_LEN, &my->slowCtrlFileCnt, my->slowCtrlFiles); Param_getString(param, argv[0], "outpath", ¶mWasFound, my->outPath); Param_getString(param, argv[0], "outdev", ¶mWasFound, my->outDev); Param_getString(param, argv[0], "expid", ¶mWasFound, my->expId); @@ -239,7 +239,7 @@ static char *unit(unsigned long v) return retVal; } -static void statsDump(TheArgs * theArgs, TheStats * my, int interval) +static void statsDump(TheArgs *theArgs, TheStats *my, int interval) { static unsigned long lastEC; static unsigned long lastEE; @@ -311,7 +311,7 @@ static void statsDump(TheArgs * theArgs, TheStats * my, int interval) } -static void storeInfoStart(const char *n, time_t t, TheArgs * my) +static void storeInfoStart(const char *n, time_t t, TheArgs *my) { Param pS, *p = &pS; int i; @@ -354,7 +354,8 @@ static void storeInfoStop(const char *n, time_t t, Worker *w) desParam(p); } -static int openFile(TheArgs *theArgs) { +static int openFile(TheArgs *theArgs) +{ char fileName[_POSIX_PATH_MAX]; static char outPath[_POSIX_PATH_MAX]; static once = 1; @@ -415,7 +416,8 @@ static int openFile(TheArgs *theArgs) { return 0; } -static int writeFile(void *evt) { +static int writeFile(void *evt) +{ int writeFileR; Evt_setSeqNr(evt, seqNr++); @@ -429,7 +431,8 @@ static int writeFile(void *evt) { return writeFileR; } -static int closeFile() { +static int closeFile() +{ int closeFileR; if (outFile != NULL) { @@ -553,7 +556,6 @@ int main(int argc, char *argv[]) syslog(LOG_ERR, "error opening output file, exiting"); exit(EXIT_FAILURE); } - storeInfoStart(argv[0], ourTime, theArgs); evt = newEvt(EvtDecoding_64bitAligned, EvtId_runStart); @@ -564,7 +566,6 @@ int main(int argc, char *argv[]) writeFile(evt); deleteEvt(evt); } - evt = newEvt(EvtDecoding_64bitAligned, EvtId_data); for (i = 0; i < theArgs->nrOfMsgs && !evtIsBroken; i += step) { uint32_t trigNr; @@ -634,7 +635,6 @@ int main(int argc, char *argv[]) Evt_setDataError(evt); (*theStats->evtsTagError)++; } - (*theStats->bytesWritten) += Evt_size(evt); writeFile(evt); Evt_online(evt); diff --git a/hadaq/genid32.c b/hadaq/genid32.c index f050d60..4af1c81 100644 --- a/hadaq/genid32.c +++ b/hadaq/genid32.c @@ -1,10 +1,11 @@ + /* * gen_uuid.c --- generate a DCE-compatible uuid * * Copyright (C) 1996, 1997, 1998, 1999 Theodore Ts'o. * * %Begin-Header% - * This file may be redistributed under the terms of the GNU + * This file may be redistributed under the terms of the GNU * Library General Public License. * %End-Header% */ @@ -51,11 +52,11 @@ /* * uuid.h -- private header file for uuids - * + * * Copyright (C) 1996, 1997 Theodore Ts'o. * * %Begin-Header% - * This file may be redistributed under the terms of the GNU + * This file may be redistributed under the terms of the GNU * Library General Public License. * %End-Header% */ @@ -69,11 +70,11 @@ typedef unsigned char uuid_t[16]; #define TIME_OFFSET_LOW 0x13814000 struct uuid { - uint32_t time_low; - uint16_t time_mid; - uint16_t time_hi_and_version; - uint16_t clock_seq; - uint8_t node[6]; + uint32_t time_low; + uint16_t time_mid; + uint16_t time_hi_and_version; + uint16_t clock_seq; + uint8_t node[6]; }; @@ -85,9 +86,9 @@ static void uuid_unpack(const uuid_t in, struct uuid *uu); static int get_random_fd(void) { - struct timeval tv; - static int fd = -2; - int i; + struct timeval tv; + static int fd = -2; + int i; if (fd == -2) { gettimeofday(&tv, 0); @@ -118,7 +119,7 @@ static void get_random_bytes(void *buf, int nbytes) while (nbytes > 0) { i = read(fd, cp, nbytes); if ((i < 0) && - ((errno == EINTR) || (errno == EAGAIN))) + ((errno == EINTR) || (errno == EAGAIN))) continue; if (i <= 0) { if (lose_counter++ == 8) @@ -130,7 +131,6 @@ static void get_random_bytes(void *buf, int nbytes) lose_counter = 0; } } - /* XXX put something better here if no /dev/random! */ for (i = 0; i < nbytes; i++) *cp++ = rand() & 0xFF; @@ -143,17 +143,17 @@ static void get_random_bytes(void *buf, int nbytes) static int get_node_id(unsigned char *node_id) { #ifdef HAVE_NET_IF_H - int sd; - struct ifreq ifr, *ifrp; - struct ifconf ifc; + int sd; + struct ifreq ifr, *ifrp; + struct ifconf ifc; char buf[1024]; - int n, i; - unsigned char *a; - + int n, i; + unsigned char *a; + /* * BSD 4.4 defines the size of an ifreq to be * max(sizeof(ifreq), sizeof(ifreq.ifr_name)+ifreq.ifr_addr.sa_len - * However, under earlier systems, sa_len isn't present, so the size is + * However, under earlier systems, sa_len isn't present, so the size is * just sizeof(struct ifreq) */ #ifdef HAVE_SA_LEN @@ -164,7 +164,7 @@ static int get_node_id(unsigned char *node_id) sizeof((i).ifr_name)+(i).ifr_addr.sa_len) #else #define ifreq_size(i) sizeof(struct ifreq) -#endif /* HAVE_SA_LEN*/ +#endif /* HAVE_SA_LEN*/ sd = socket(AF_INET, SOCK_DGRAM, IPPROTO_IP); if (sd < 0) { @@ -173,13 +173,13 @@ static int get_node_id(unsigned char *node_id) memset(buf, 0, sizeof(buf)); ifc.ifc_len = sizeof(buf); ifc.ifc_buf = buf; - if (ioctl (sd, SIOCGIFCONF, (char *)&ifc) < 0) { + if (ioctl(sd, SIOCGIFCONF, (char *) &ifc) < 0) { close(sd); return -1; } n = ifc.ifc_len; - for (i = 0; i < n; i+= ifreq_size(*ifr) ) { - ifrp = (struct ifreq *)((char *) ifc.ifc_buf+i); + for (i = 0; i < n; i += ifreq_size(*ifr)) { + ifrp = (struct ifreq *) ((char *) ifc.ifc_buf + i); strncpy(ifr.ifr_name, ifrp->ifr_name, IFNAMSIZ); #ifdef SIOCGIFHWADDR if (ioctl(sd, SIOCGIFHWADDR, &ifr) < 0) @@ -197,8 +197,8 @@ static int get_node_id(unsigned char *node_id) */ close(sd); return 0; -#endif /* SIOCGENADDR */ -#endif /* SIOCGIFHWADDR */ +#endif /* SIOCGENADDR */ +#endif /* SIOCGIFHWADDR */ if (!a[0] && !a[1] && !a[2] && !a[3] && !a[4] && !a[5]) continue; if (node_id) { @@ -217,13 +217,14 @@ static int get_node_id(unsigned char *node_id) static int get_clock(uint32_t *clock_high, uint32_t *clock_low, uint16_t *ret_clock_seq) { - static int adjustment = 0; - static struct timeval last = {0, 0}; - static uint16_t clock_seq; - struct timeval tv; - unsigned long long clock_reg; - -try_again: + static int adjustment = 0; + static struct timeval last = + {0, 0}; + static uint16_t clock_seq; + struct timeval tv; + unsigned long long clock_reg; + + try_again: gettimeofday(&tv, 0); if ((last.tv_sec == 0) && (last.tv_usec == 0)) { get_random_bytes(&clock_seq, sizeof(clock_seq)); @@ -232,13 +233,13 @@ try_again: last.tv_sec--; } if ((tv.tv_sec < last.tv_sec) || - ((tv.tv_sec == last.tv_sec) && - (tv.tv_usec < last.tv_usec))) { - clock_seq = (clock_seq+1) & 0x1FFF; + ((tv.tv_sec == last.tv_sec) && + (tv.tv_usec < last.tv_usec))) { + clock_seq = (clock_seq + 1) & 0x1FFF; adjustment = 0; last = tv; } else if ((tv.tv_sec == last.tv_sec) && - (tv.tv_usec == last.tv_usec)) { + (tv.tv_usec == last.tv_usec)) { if (adjustment >= MAX_ADJUSTMENT) goto try_again; adjustment++; @@ -246,9 +247,9 @@ try_again: adjustment = 0; last = tv; } - - clock_reg = tv.tv_usec*10 + adjustment; - clock_reg += ((unsigned long long) tv.tv_sec)*10000000; + + clock_reg = tv.tv_usec * 10 + adjustment; + clock_reg += ((unsigned long long) tv.tv_sec) * 10000000; clock_reg += (((unsigned long long) 0x01B21DD2) << 32) + 0x13814000; *clock_high = clock_reg >> 32; @@ -262,7 +263,7 @@ static void uuid_generate_time(uuid_t out) static unsigned char node_id[6]; static int has_init = 0; struct uuid uu; - uint32_t clock_mid; + uint32_t clock_mid; if (!has_init) { if (get_node_id(node_id) <= 0) { @@ -278,7 +279,7 @@ static void uuid_generate_time(uuid_t out) } get_clock(&clock_mid, &uu.time_low, &uu.clock_seq); uu.clock_seq |= 0x8000; - uu.time_mid = (uint16_t) clock_mid; + uu.time_mid = (uint16_t) clock_mid; uu.time_hi_and_version = (clock_mid >> 16) | 0x1000; memcpy(uu.node, node_id, 6); uuid_pack(&uu, out); @@ -286,7 +287,7 @@ static void uuid_generate_time(uuid_t out) static void uuid_generate_random(uuid_t out) { - uuid_t buf; + uuid_t buf; struct uuid uu; get_random_bytes(buf, sizeof(buf)); @@ -313,19 +314,19 @@ static void uuid_generate(uuid_t out) /* * Internal routine for packing UUID's - * + * * Copyright (C) 1996, 1997 Theodore Ts'o. * * %Begin-Header% - * This file may be redistributed under the terms of the GNU + * This file may be redistributed under the terms of the GNU * Library General Public License. * %End-Header% */ static void uuid_pack(const struct uuid *uu, uuid_t ptr) { - uint32_t tmp; - unsigned char *out = ptr; + uint32_t tmp; + unsigned char *out = ptr; tmp = uu->time_low; out[3] = (unsigned char) tmp; @@ -335,7 +336,7 @@ static void uuid_pack(const struct uuid *uu, uuid_t ptr) out[1] = (unsigned char) tmp; tmp >>= 8; out[0] = (unsigned char) tmp; - + tmp = uu->time_mid; out[5] = (unsigned char) tmp; tmp >>= 8; @@ -351,25 +352,25 @@ static void uuid_pack(const struct uuid *uu, uuid_t ptr) tmp >>= 8; out[8] = (unsigned char) tmp; - memcpy(out+10, uu->node, 6); + memcpy(out + 10, uu->node, 6); } /* * Internal routine for unpacking UUID - * + * * Copyright (C) 1996, 1997 Theodore Ts'o. * * %Begin-Header% - * This file may be redistributed under the terms of the GNU + * This file may be redistributed under the terms of the GNU * Library General Public License. * %End-Header% */ static void uuid_unpack(const uuid_t in, struct uuid *uu) { - const uint8_t *ptr = in; - uint32_t tmp; + const uint8_t *ptr = in; + uint32_t tmp; tmp = *ptr++; tmp = (tmp << 8) | *ptr++; @@ -380,7 +381,7 @@ static void uuid_unpack(const uuid_t in, struct uuid *uu) tmp = *ptr++; tmp = (tmp << 8) | *ptr++; uu->time_mid = tmp; - + tmp = *ptr++; tmp = (tmp << 8) | *ptr++; uu->time_hi_and_version = tmp; @@ -394,14 +395,15 @@ static void uuid_unpack(const uuid_t in, struct uuid *uu) -uint32_t genId32(void) { +uint32_t genId32(void) +{ uuid_t uu; uint32_t v; uuid_generate(uu); - v = ((uu[0]^uu[4]^uu[8]^uu[12])<<0) - |((uu[1]^uu[5]^uu[9]^uu[13])<<8) - |((uu[2]^uu[6]^uu[10]^uu[14])<<16) - |((uu[3]^uu[7]^uu[11]^uu[15])<<24); + v = ((uu[0] ^ uu[4] ^ uu[8] ^ uu[12]) << 0) + | ((uu[1] ^ uu[5] ^ uu[9] ^ uu[13]) << 8) + | ((uu[2] ^ uu[6] ^ uu[10] ^ uu[14]) << 16) + | ((uu[3] ^ uu[7] ^ uu[11] ^ uu[15]) << 24); return v & 0x7fffffff; } diff --git a/hadaq/genid32.h b/hadaq/genid32.h index 15cd22a..b34cb8a 100644 --- a/hadaq/genid32.h +++ b/hadaq/genid32.h @@ -1,3 +1,4 @@ + #ifndef GENID32_H #define GENID32_H diff --git a/hadaq/hadtu.h b/hadaq/hadtu.h index 6c57e5a..f7c0878 100644 --- a/hadaq/hadtu.h +++ b/hadaq/hadtu.h @@ -1,3 +1,4 @@ + #ifndef HADTU_H #define HADTU_H @@ -6,7 +7,7 @@ enum HadTu_Decoding { - HadTu_queueDecoding = 3 << 16 | 99 + HadTu_queueDecoding = 3 << 16 | 99 }; static uint32_t *HadTu_hdr(const void *my); @@ -29,127 +30,127 @@ static void *HadTu_next(const void *my, const void *hadTu); char *HadTu_2charP(const void *my); enum HadTuIdx { - HadTuIdx_size, - HadTuIdx_decoding, - HadTuIdx_data + HadTuIdx_size, + HadTuIdx_decoding, + HadTuIdx_data }; static uint32_t *HadTu_hdr(const void *my) { - return (uint32_t *) my; + return (uint32_t *) my; } static size_t HadTu_hdrLen(void) { - return HadTuIdx_data; + return HadTuIdx_data; } static size_t HadTu_hdrSize(void) { - return HadTu_hdrLen() * sizeof(uint32_t); + return HadTu_hdrLen() * sizeof(uint32_t); } static int HadTu_isSwapped(const void *my) { - uint32_t *hdr = HadTu_hdr(my); + uint32_t *hdr = HadTu_hdr(my); - return hdr[HadTuIdx_decoding] > 0xffffff; + return hdr[HadTuIdx_decoding] > 0xffffff; } static uint32_t HadTu_hdrValue(const void *my, unsigned idx) { - uint32_t *hdr = HadTu_hdr(my); + uint32_t *hdr = HadTu_hdr(my); - if (HadTu_isSwapped(my)) { - uint32_t tmp0; - uint32_t tmp1; + if (HadTu_isSwapped(my)) { + uint32_t tmp0; + uint32_t tmp1; - tmp0 = hdr[idx]; - ((char *) &tmp1)[0] = ((char *) &tmp0)[3]; - ((char *) &tmp1)[1] = ((char *) &tmp0)[2]; - ((char *) &tmp1)[2] = ((char *) &tmp0)[1]; - ((char *) &tmp1)[3] = ((char *) &tmp0)[0]; - return tmp1; - } else { - return hdr[idx]; - } + tmp0 = hdr[idx]; + ((char *) &tmp1)[0] = ((char *) &tmp0)[3]; + ((char *) &tmp1)[1] = ((char *) &tmp0)[2]; + ((char *) &tmp1)[2] = ((char *) &tmp0)[1]; + ((char *) &tmp1)[3] = ((char *) &tmp0)[0]; + return tmp1; + } else { + return hdr[idx]; + } } static void HadTu_setHdrValue(const void *my, unsigned idx, uint32_t value) { - uint32_t *hdr = HadTu_hdr(my); + uint32_t *hdr = HadTu_hdr(my); - hdr[idx] = value; + hdr[idx] = value; } static uint32_t HadTu_decoding(const void *my) { - return HadTu_hdrValue(my, HadTuIdx_decoding); + return HadTu_hdrValue(my, HadTuIdx_decoding); } static void HadTu_setDecoding(void *my, uint32_t decoding) { - HadTu_setHdrValue(my, HadTuIdx_decoding, decoding); + HadTu_setHdrValue(my, HadTuIdx_decoding, decoding); } static unsigned HadTu_alignment(const void *my) { - return 1 << (HadTu_decoding(my) >> 16 & 0xff); + return 1 << (HadTu_decoding(my) >> 16 & 0xff); } static uint32_t HadTu_size(const void *my) { - return HadTu_hdrValue(my, HadTuIdx_size); + return HadTu_hdrValue(my, HadTuIdx_size); } static void HadTu_setSize(void *my, uint32_t size) { - HadTu_setHdrValue(my, HadTuIdx_size, size); + HadTu_setHdrValue(my, HadTuIdx_size, size); } static size_t HadTu_paddedSize(const void *my) { - uint32_t size; - uint32_t alignment; + uint32_t size; + uint32_t alignment; - size = HadTu_size(my); - alignment = HadTu_alignment(my); - return (size & (alignment - 1)) - ? (size & ~(alignment - 1)) + alignment : size; + size = HadTu_size(my); + alignment = HadTu_alignment(my); + return (size & (alignment - 1)) + ? (size & ~(alignment - 1)) + alignment : size; } static void *HadTu_begin(const void *my) { - return (void *) my; + return (void *) my; } static void *HadTu_end(const void *my) { - return (void *) ((char *) my + HadTu_paddedSize(my)); + return (void *) ((char *) my + HadTu_paddedSize(my)); } static size_t HadTu_dataSize(const void *my) { - return HadTu_size(my) - HadTu_hdrSize(); + return HadTu_size(my) - HadTu_hdrSize(); } static void *HadTu_data(const void *my) { - return (void *) ((char *) my + HadTu_hdrSize()); + return (void *) ((char *) my + HadTu_hdrSize()); } static void *HadTu_next(const void *my, const void *hadTu) { - uint32_t size; - uint32_t alignment; - size_t paddedSize; + uint32_t size; + uint32_t alignment; + size_t paddedSize; - size = HadTu_size(hadTu); - alignment = HadTu_alignment(my); - paddedSize = (size & (alignment - 1)) - ? (size & ~(alignment - 1)) + alignment : size; + size = HadTu_size(hadTu); + alignment = HadTu_alignment(my); + paddedSize = (size & (alignment - 1)) + ? (size & ~(alignment - 1)) + alignment : size; - return (void *) ((char *) hadTu + paddedSize); + return (void *) ((char *) hadTu + paddedSize); } #endif diff --git a/hadaq/hadtuqueue.h b/hadaq/hadtuqueue.h index a0d4dba..5f44bfc 100644 --- a/hadaq/hadtuqueue.h +++ b/hadaq/hadtuqueue.h @@ -8,8 +8,8 @@ typedef struct HadTuQueueS HadTuQueue; typedef enum HadTuQueueProtE { - HadTuQueueProt_read, - HadTuQueueProt_write + HadTuQueueProt_read, + HadTuQueueProt_write } HadTuQueueProt; void conHadTuQueue(HadTuQueue *my, void *mem, size_t size); diff --git a/hadaq/hardware.h b/hadaq/hardware.h index a8d6458..411c87b 100644 --- a/hadaq/hardware.h +++ b/hadaq/hardware.h @@ -5,14 +5,15 @@ typedef struct HardwareS Hardware; -Hardware *newHardware(); /* allowed as newHardware(void) and newHardware(const char *subsystem) UFN */ -void deleteHardware(Hardware * my); -int Hardware_inSpill(const Hardware * my); -size_t Hardware_maxSubEvtSize(const Hardware * my); -void Hardware_waitForTrigger(Hardware * my, void *subEvt); -void Hardware_readout(Hardware * my, void *subEvt); - -static int getCards(Param *param, const char *subsystem, const char *cardtype, int *nCards, char **cards) { +Hardware *newHardware(); /* allowed as newHardware(void) and newHardware(const char *subsystem) UFN */ +void deleteHardware(Hardware *my); +int Hardware_inSpill(const Hardware *my); +size_t Hardware_maxSubEvtSize(const Hardware *my); +void Hardware_waitForTrigger(Hardware *my, void *subEvt); +void Hardware_readout(Hardware *my, void *subEvt); + +static int getCards(Param *param, const char *subsystem, const char *cardtype, int *nCards, char **cards) +{ int getCardsR; int i; char unitsS[PARAM_MAX_ARRAY_LEN][PARAM_MAX_VALUE_LEN]; @@ -35,7 +36,7 @@ static int getCards(Param *param, const char *subsystem, const char *cardtype, i for (unit = 0; unit < r; unit++) { char ct[PARAM_MAX_VALUE_LEN]; int r; - + if (Param_getString(param, units[unit], "cardtype", &r, ct) || r == 0) { syslog(LOG_ERR, "Parameter %s(cardtype) not found", units[unit]); getCardsR = -1; diff --git a/hadaq/hldread.c b/hadaq/hldread.c index 4b121eb..93c33a6 100644 --- a/hadaq/hldread.c +++ b/hadaq/hldread.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/hldread.c,v 6.5 2002-10-09 12:42:17 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/hldread.c,v 6.6 2003-03-02 15:50:09 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -74,7 +74,7 @@ int main(int argc, char *argv[]) char **analArgv = malloc(sizeof(char *)); int analArgc = 1; /* Filename is in analArgv[0] */ - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); setlogmask(LOG_UPTO(LOG_INFO)); @@ -102,7 +102,7 @@ int main(int argc, char *argv[]) break; case 'v': for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { + && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { } if (prioritynames[i].c_name != NULL) { setlogmask(LOG_UPTO(prioritynames[i].c_val)); @@ -111,12 +111,12 @@ int main(int argc, char *argv[]) default: syslog( LOG_ERR, - "Usage: %s -f firstEvent -n numEvents -e echoRate", + "Usage: %s -f firstEvent -n numEvents -e echoRate", argv[0] ); syslog( LOG_ERR, - "-t timeout -o analArgs -x (excludeAnal) [fileName]" + "-t timeout -o analArgs -x (excludeAnal) [fileName]" ); exit(EXIT_FAILURE); break; diff --git a/hadaq/hldread.h b/hadaq/hldread.h index c3ca816..f640436 100644 --- a/hadaq/hldread.h +++ b/hadaq/hldread.h @@ -1,3 +1,4 @@ + #ifndef HLDREAD_H #define HLDREAD_H diff --git a/hadaq/hwrich.c b/hadaq/hwrich.c index 65efb00..bee3684 100644 --- a/hadaq/hwrich.c +++ b/hadaq/hwrich.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.37 2003-02-14 11:54:40 sailer Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.38 2003-03-02 15:50:09 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -168,7 +168,6 @@ void Hardware_readout(Hardware *my, void *partEvt) } subEvt = SubEvt_next(partEvt, subEvt); } - if (dataError) { SubEvt_setDataError(partEvt); } diff --git a/hadaq/hwsam.c b/hadaq/hwsam.c index 00dedb2..8c4f841 100644 --- a/hadaq/hwsam.c +++ b/hadaq/hwsam.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsam.c,v 6.16 2002-11-19 02:32:14 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsam.c,v 6.17 2003-03-02 15:50:09 hadaq Exp $"; #include #include @@ -31,7 +31,7 @@ int conHwSam(HwSam *my, const char *name, const Param *param) Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase); if (!paramWasFound) { syslog(LOG_WARNING, - "Parameter %s(%s) not found, default = 0", my->name, "cardbase"); + "Parameter %s(%s) not found, default = 0", my->name, "cardbase"); cardBase = 0; } my->cram = malloc(sizeof(LVme)); @@ -44,8 +44,8 @@ int conHwSam(HwSam *my, const char *name, const Param *param) syslog(LOG_ERR, "HwSam on %p not found", cardBase); return -1; } - my->bankRequested = LVme_tstBitL(my->cram, CRR, 0); /* assumes that init is done by Sam */ - if(my->bankRequested == 1) { + my->bankRequested = LVme_tstBitL(my->cram, CRR, 0); /* assumes that init is done by Sam */ + if (my->bankRequested == 1) { syslog(LOG_ERR, "HwSam readout bit = 1, should be 0, intialization bug"); } my->currAddr = SAM_BUFSIZE; @@ -91,15 +91,15 @@ void HwSam_getEndOfData(HwSam *my) /* CAUTION this ist just for clearing buffer request state, if also makes the being always empty in HwSam_isEmpty which makes hwmdc.c working by coincidence */ - + my->endOfData = 1; } /* Subevent Header + some data */ -#define SAM_NODATASIZE 16 +#define SAM_NODATASIZE 16 int HwSam_readSubEvt(HwSam *my, void *subEvt) { - uint32_t * data = (uint32_t *) subEvt; + uint32_t *data = (uint32_t *) subEvt; int lastAddr; int currAddr = my->currAddr; int size; @@ -112,12 +112,12 @@ int HwSam_readSubEvt(HwSam *my, void *subEvt) lastAddr = currAddr + size; if (size > SAM_BUFSIZE - SAM_BUFOFFSET) { - syslog(LOG_CRIT, "subEvt throw away : %d, %d", size, SAM_BUFSIZE-SAM_BUFOFFSET); + syslog(LOG_CRIT, "subEvt throw away : %d, %d", size, SAM_BUFSIZE - SAM_BUFOFFSET); /* damaged data, no repair possible, skip subevent*/ return -1; } - if(size <= SAM_NODATASIZE) { - /* skip dataless subevent */ + if (size <= SAM_NODATASIZE) { + /* skip dataless subevent */ return 1; } #ifndef NDEBUG @@ -125,7 +125,7 @@ int HwSam_readSubEvt(HwSam *my, void *subEvt) #endif /* copy one sub evt from Sam to memory */ *data++ = size; - while ((currAddr+=4)cram, currAddr); } @@ -134,10 +134,3 @@ int HwSam_readSubEvt(HwSam *my, void *subEvt) #endif return 0; } - - - - - - - diff --git a/hadaq/hwsam.h b/hadaq/hwsam.h index 948de63..5a47596 100644 --- a/hadaq/hwsam.h +++ b/hadaq/hwsam.h @@ -1,3 +1,10 @@ + + + + + + + #ifndef HwSam_H #define HwSam_H @@ -6,13 +13,15 @@ #include "sam_defs.h" typedef struct HwSamS { - char name[12]; - LVme *cram; - LVme *regs; - int bankRequested; - unsigned long currAddr; - unsigned long endOfData; -} HwSam; + char name[12]; + LVme *cram; + LVme *regs; + int bankRequested; + unsigned long currAddr; + unsigned long endOfData; +} + +HwSam; int conHwSam(HwSam *my, const char *name, const Param *param); void desHwSam(HwSam *my); diff --git a/hadaq/hwsoft.c b/hadaq/hwsoft.c index 021325c..d91a75f 100644 --- a/hadaq/hwsoft.c +++ b/hadaq/hwsoft.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsoft.c,v 6.26 2003-02-14 11:54:41 sailer Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwsoft.c,v 6.27 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -47,7 +47,7 @@ Hardware *newHardware(void) Param_getInt(param, "soft", "size", ¶mWasFound, &size); if (!paramWasFound) { syslog(LOG_WARNING, - "Parameter %s(%s) not found, defaulting to 0", "soft", "size"); + "Parameter %s(%s) not found, defaulting to 0", "soft", "size"); size = 0; } desParam(param); @@ -88,7 +88,7 @@ void readoutTrig(void *subEvt) *data++ = 0x2; } - SubEvt_setSize(subEvt, (char *)data - (char *)subEvt); + SubEvt_setSize(subEvt, (char *) data - (char *) subEvt); SubEvt_setId(subEvt, SubEvtId_trigCode); SubEvt_setTrigNr(subEvt, trigTag); syslog(LOG_DEBUG, "subEvt: %s", SubEvt_2charP(subEvt)); @@ -120,7 +120,7 @@ void readoutSoft(void *subEvt) data += (int) ((1000.0 * rand()) / RAND_MAX); #endif - size = (char *)data - (char *)subEvt; + size = (char *) data - (char *) subEvt; id = SubEvtId_test1; #if 1 if (size > 5000) { @@ -167,7 +167,7 @@ void Hardware_readout(Hardware *my, void *partEvt) if (err) { SubEvt_setDataError(partEvt); } - SubEvt_setSize(partEvt, (char *)subEvt - (char *)partEvt); + SubEvt_setSize(partEvt, (char *) subEvt - (char *) partEvt); SubEvt_setTrigNr(partEvt, (trigNr << 8) | trigTag); syslog(LOG_DEBUG, "partEvt: %s", SubEvt_2charP(partEvt)); } diff --git a/hadaq/hwtip.c b/hadaq/hwtip.c index 7c8a594..34dda17 100644 --- a/hadaq/hwtip.c +++ b/hadaq/hwtip.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtip.c,v 1.28 2002-11-07 10:39:04 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtip.c,v 1.29 2003-03-02 15:50:10 hadaq Exp $"; #include #include @@ -38,7 +38,7 @@ void sigbusHandler(int sig) #define TIP_BUFSIZE 0x40000 -int conHwTip(HwTip * my, const char *name, const Param *param) +int conHwTip(HwTip *my, const char *name, const Param *param) { unsigned long cardBase; int paramWasFound; @@ -52,17 +52,16 @@ int conHwTip(HwTip * my, const char *name, const Param *param) Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase); if (!paramWasFound) { syslog(LOG_WARNING, - "Parameter %s(%s) not found, default = 0", my->name, "cardbase"); + "Parameter %s(%s) not found, default = 0", my->name, "cardbase"); cardBase = 0; } - syslog(LOG_INFO, "conc cardbase %.8x", cardBase ); + syslog(LOG_INFO, "conc cardbase %.8x", cardBase); - my->lvme = (LVme *)malloc(sizeof(LVme)); + my->lvme = (LVme *) malloc(sizeof(LVme)); if (0 > conLVme(my->lvme, cardBase, 0x3000000UL, 0x09UL, 0, 0)) { syslog(LOG_ERR, "HwTip on %p not found", cardBase); return -1; } - my->currAddr = 0x7fffffff; /* start at the end */ my->bankRequested = 1; /* of the empty bank */ my->endOfData = 0; @@ -73,13 +72,13 @@ int conHwTip(HwTip * my, const char *name, const Param *param) return 0; } -void desHwTip(HwTip * my) +void desHwTip(HwTip *my) { desLVme(my->lvme); signal(SIGBUS, SIG_DFL); } -void HwTip_requestBuffer(HwTip * my) +void HwTip_requestBuffer(HwTip *my) { LVme_clrBitL(my->lvme, CONFIG1BASE + CFG_MASTER_CONTROL, my->daqRq); @@ -109,7 +108,7 @@ void HwTip_requestBuffer(HwTip * my) my->currAddr = my->fifo + 0x4; } -int HwTip_readSubEvt(HwTip * my, void *subEvt) +int HwTip_readSubEvt(HwTip *my, void *subEvt) { uint32_t *data = (uint32_t *) subEvt; unsigned long currAddr = my->currAddr; @@ -122,8 +121,8 @@ int HwTip_readSubEvt(HwTip * my, void *subEvt) int errorFlag = 0; unsigned long dataWord; unsigned long tdcCounter = 0; - unsigned long tdcEventCounter, trigTag,evtC; - int arrayCounter = 0,i; + unsigned long tdcEventCounter, trigTag, evtC; + int arrayCounter = 0, i; #ifdef BUFFER_PRINTOUT_ENABLED unsigned long tempArray[500]; #endif @@ -132,109 +131,101 @@ int HwTip_readSubEvt(HwTip * my, void *subEvt) header = LVme_getL(my->lvme, currAddr); size = header & 0xfff; - byteSize = size<<2; + byteSize = size << 2; my->currAddr += byteSize; - if(byteSize > (TIP_BUFSIZE - my->currAddr + my->fifo)) { - syslog(LOG_ERR, "size too large! size: %.8x ",size); - size = (TIP_BUFSIZE - my->currAddr + my->fifo)>>2; - header &= 0x80000000; + if (byteSize > (TIP_BUFSIZE - my->currAddr + my->fifo)) { + syslog(LOG_ERR, "size too large! size: %.8x ", size); + size = (TIP_BUFSIZE - my->currAddr + my->fifo) >> 2; + header &= 0x80000000; } - trigTag = ((header>>16) & 0xff); + trigTag = ((header >> 16) & 0xff); /* copy one sub evt from RC to memory */ while (--size) { - - /* *data++ = LVme_getL(my->lvme, currAddr+=4); */ - dataWord = LVme_getL(my->lvme, currAddr+=4); - *data++ = dataWord; + + /* *data++ = LVme_getL(my->lvme, currAddr+=4); */ + dataWord = LVme_getL(my->lvme, currAddr += 4); + *data++ = dataWord; #ifdef BUFFER_PRINTOUT_ENABLED - tempArray[arrayCounter++] = dataWord; + tempArray[arrayCounter++] = dataWord; #endif - statusWord = ((dataWord>>24) & 0x7); - if( statusWord == 2 ) { - /* Header */ - tdcCounter++; - crateNumber = ((dataWord>>16) & 0xff); - if( foundCBLTHeaderFlag == 1) { - syslog(LOG_ERR, "header: %.8x, at least two headers came without a trailer, data: %.8x", - header, dataWord); - errorFlag = 1; - } - - currentGeo = (dataWord >>27 ) & 0x1f; + statusWord = ((dataWord >> 24) & 0x7); + if (statusWord == 2) { + /* Header */ + tdcCounter++; + crateNumber = ((dataWord >> 16) & 0xff); + if (foundCBLTHeaderFlag == 1) { + syslog(LOG_ERR, "header: %.8x, at least two headers came without a trailer, data: %.8x", + header, dataWord); + errorFlag = 1; + } + currentGeo = (dataWord >> 27) & 0x1f; #if 0 - if (lastGeo == 0) { - lastGeo=currentGeo-1; - } - if( lastGeo +1 != currentGeo ) { - syslog(LOG_ERR, "header: %.8x, Geo not incremental, crate: %d data: %.8x, lastGeo %d, currentGeo %d", - header, crateNumber, dataWord, lastGeo, currentGeo); - errorFlag = 1; - } - lastGeo = currentGeo; + if (lastGeo == 0) { + lastGeo = currentGeo - 1; + } + if (lastGeo + 1 != currentGeo) { + syslog(LOG_ERR, "header: %.8x, Geo not incremental, crate: %d data: %.8x, lastGeo %d, currentGeo %d", + header, crateNumber, dataWord, lastGeo, currentGeo); + errorFlag = 1; + } + lastGeo = currentGeo; #endif - foundCBLTHeaderFlag = 1; - } - else if ( statusWord == 4 ) { - /* Trailer */ - tdcEventCounter = dataWord & 0xffffff; - foundCBLTTrailerFlag = 1; - if( foundCBLTTrailerFlag == 1 && foundCBLTHeaderFlag == 0) { - syslog(LOG_ERR, "header: %.8x, trailer came before header! data: %.8x", - header, dataWord); - errorFlag = 1; - } - - evtC = (tdcEventCounter &0xff); + foundCBLTHeaderFlag = 1; + } else if (statusWord == 4) { + /* Trailer */ + tdcEventCounter = dataWord & 0xffffff; + foundCBLTTrailerFlag = 1; + if (foundCBLTTrailerFlag == 1 && foundCBLTHeaderFlag == 0) { + syslog(LOG_ERR, "header: %.8x, trailer came before header! data: %.8x", + header, dataWord); + errorFlag = 1; + } + evtC = (tdcEventCounter & 0xff); #if 1 - if( (tdcEventCounter &0xff) != trigTag) { - /* if( (max(evtC, trigTag) - min(evtC, trigTag) >=2) && (max(evtC, trigTag) - min(evtC, trigTag) <= 0xfe )) { */ - syslog(LOG_ERR, "header: %.8x, crate: %d, tdc_num: %d, tag (%.8x) != EvtCounter (%.8x), dataWord: %.8x ", - header, crateNumber, tdcCounter, trigTag, tdcEventCounter, dataWord); - errorFlag = 1; - } + if ((tdcEventCounter & 0xff) != trigTag) { + /* if( (max(evtC, trigTag) - min(evtC, trigTag) >=2) && (max(evtC, trigTag) - min(evtC, trigTag) <= 0xfe )) { */ + syslog(LOG_ERR, "header: %.8x, crate: %d, tdc_num: %d, tag (%.8x) != EvtCounter (%.8x), dataWord: %.8x ", + header, crateNumber, tdcCounter, trigTag, tdcEventCounter, dataWord); + errorFlag = 1; + } #endif - foundCBLTTrailerFlag = 0; - foundCBLTHeaderFlag = 0; - } - else if (statusWord == 0) { - /* data word, nothing to do... */ - } - else { -#if 0 - syslog(LOG_ERR, "status word of tdc not 0,2 or 4, header: %.8x, data: %.8x", header, dataWord); - errorFlag = 1; + foundCBLTTrailerFlag = 0; + foundCBLTHeaderFlag = 0; + } else if (statusWord == 0) { + /* data word, nothing to do... */ + } else { +#if 0 + syslog(LOG_ERR, "status word of tdc not 0,2 or 4, header: %.8x, data: %.8x", header, dataWord); + errorFlag = 1; #endif - } + } + - } - -#ifdef BUFFER_PRINTOUT_ENABLED - if(errorFlag) { - str[0] = 0; - for(i=0;i < arrayCounter; i++) { - sprintf(buff, "%.8x ", tempArray[i]); - strcpy((char *) ((unsigned int)str + strlen(str)) , buff); - if( ((i+1)%4) == 0) { - syslog(LOG_ERR, str); - str[0] = 0; - } - } - if( (i%4)) { - syslog(LOG_ERR, str); - str[0] = 0; - } +#ifdef BUFFER_PRINTOUT_ENABLED + if (errorFlag) { + str[0] = 0; + for (i = 0; i < arrayCounter; i++) { + sprintf(buff, "%.8x ", tempArray[i]); + strcpy((char *) ((unsigned int) str + strlen(str)), buff); + if (((i + 1) % 4) == 0) { + syslog(LOG_ERR, str); + str[0] = 0; + } + } + if ((i % 4)) { + syslog(LOG_ERR, str); + str[0] = 0; + } } -#endif +#endif return header; } - - diff --git a/hadaq/hwtip.h b/hadaq/hwtip.h index 3d90b33..b2d58e3 100644 --- a/hadaq/hwtip.h +++ b/hadaq/hwtip.h @@ -1,3 +1,5 @@ + + #ifndef HWTIP_H #define HWTIP_H @@ -7,30 +9,32 @@ #include "tof_defs.h" typedef struct HwTipS { - char name[12]; - LVme *lvme; - int bankRequested; - int daqRq; - int daqGr; - int currAddr; - int fifo; - int endOfData; -} HwTip; + char name[12]; + LVme *lvme; + int bankRequested; + int daqRq; + int daqGr; + int currAddr; + int fifo; + int endOfData; +} + +HwTip; int conHwTip(HwTip *my, const char *name, const Param *param); void desHwTip(HwTip *my); -static int HwTip_isBusy(HwTip * my) +static int HwTip_isBusy(HwTip *my) { return !LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->daqGr); } -static void HwTip_getEndOfData(HwTip * my) +static void HwTip_getEndOfData(HwTip *my) { my->endOfData = LVme_getL(my->lvme, my->fifo) + my->fifo; } -static int HwTip_isEmpty(HwTip * my) +static int HwTip_isEmpty(HwTip *my) { return my->currAddr >= my->endOfData; } diff --git a/hadaq/hwtrig.c b/hadaq/hwtrig.c index 3691e22..4b717a0 100644 --- a/hadaq/hwtrig.c +++ b/hadaq/hwtrig.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.34 2003-02-14 11:54:41 sailer Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtrig.c,v 6.35 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -117,7 +117,6 @@ Hardware *newHardware(const char *subsystem) syslog(LOG_ERR, "MU on %p not found", cardBase); return NULL; } - if (my->nConcs > 0) { my->tip = malloc(sizeof(HwTip)); if (0 > conHwTip(my->tip, conc, param)) { @@ -125,7 +124,6 @@ Hardware *newHardware(const char *subsystem) return NULL; } } - desParam(param); return my; } @@ -136,7 +134,6 @@ void deleteHardware(Hardware *my) desHwTip(my->tip); free(my->tip); } - desLVme(my->lvme6); free(my->lvme6); desLVme(my->lvme4); @@ -240,7 +237,6 @@ void Hardware_readout(Hardware *my, void *partEvt) if (SubEvt_dataError(subEvt)) { dataError = 1; } - SubEvt_setId(partEvt, trigCode); trigTag = SubEvt_trigNr(subEvt) & 0xff; @@ -256,7 +252,7 @@ void Hardware_readout(Hardware *my, void *partEvt) SubEvt_setId(subEvt, 0x19c); SubEvt_setTrigNr(subEvt, trigTag); - subEvtInfo = data++; /* leave space for an info word */ + subEvtInfo = data++; /* leave space for an info word */ for (i = 0; i < NCRATES; i++) { header = HwTip_readSubEvt(my->tip, data); @@ -272,10 +268,9 @@ void Hardware_readout(Hardware *my, void *partEvt) } *subEvtInfo = header >> 16; - SubEvt_setSize(subEvt, (char *)data - (char *)subEvt); + SubEvt_setSize(subEvt, (char *) data - (char *) subEvt); subEvt = SubEvt_next(partEvt, subEvt); } - if (dataError) { SubEvt_setDataError(partEvt); } diff --git a/hadaq/ipc_basis.h b/hadaq/ipc_basis.h index 16270e1..96a542a 100644 --- a/hadaq/ipc_basis.h +++ b/hadaq/ipc_basis.h @@ -1,3 +1,4 @@ + /* ------------------------------------------------------------ - Header File for the Image Processing Card (Basis-Module) - ------------------------------------------------------------ @@ -25,7 +26,7 @@ #define RC3_ACCESS_ON 0x04020 #define RC3_VME_REG_B 0x0401a #define RC3_VME_REG_A 0x04018 -#define RC3_LM_BADDRREG 0x04016 +#define RC3_LM_BADDRREG 0x04016 #define RC3_ERRREG_B 0x04014 #define RC3_ERRREG_A 0x04012 #define RC3_BYSREG_B 0x04010 @@ -124,9 +125,9 @@ #define LUT12_WE 0x00012 /* bzw. LUT34_WE */ #define LUT1234_READ 0x00014 #define LUT_CTR_LD_F12_ENAB 0x00016 -#define LUT_CTR_LD_F12_DISAB 0x00018 +#define LUT_CTR_LD_F12_DISAB 0x00018 #define LUT_CTR_LD_REG 0x0001a -#define LUT_CTR_LD_STR 0x0001e +#define LUT_CTR_LD_STR 0x0001e /* -- Operational Modes of the Image Processing Card -- @@ -180,7 +181,7 @@ These codes/flags are just used by the controlling C-software #define POS 1 #define NEG 0 -#define END_PATTERN 0x23ad +#define END_PATTERN 0x23ad #define ZERO_SUPPRESSION_ON 0x8 #define ZERO_SUPPRESSION_OFF 0x0 #define PEDASTAL_ON 0x1 @@ -199,17 +200,17 @@ These codes/flags are just used by the controlling C-software #define LVL2_REVID_VMEREG 0x5 /* Layers, Rows, Columns per Image Processing Card */ -#define IPC_LAYS 3 -#define IPC_ROWS 16 -#define IPC_COLS 32 +#define IPC_LAYS 3 +#define IPC_ROWS 16 +#define IPC_COLS 32 /* Layers, Rows, Columns per Readout Board */ -#define RB_LAYS 3 -#define RB_ROWS 32 -#define RB_COLS 16 -#define NUM_RBS 2 /* Number of RBs in current test 1 or 2 */ -#define NUM_RB_FIFOS 2 /* Number of fifos per RB */ -#define NUM_ROWS_RB_FIFO 8 /* Number of detector colmuns per RB fifo */ +#define RB_LAYS 3 +#define RB_ROWS 32 +#define RB_COLS 16 +#define NUM_RBS 2 /* Number of RBs in current test 1 or 2 */ +#define NUM_RB_FIFOS 2 /* Number of fifos per RB */ +#define NUM_ROWS_RB_FIFO 8 /* Number of detector colmuns per RB fifo */ #define MAX_LINE_CHARS 50 @@ -223,57 +224,39 @@ void IPC_Fifo_Reset(LVme *lvme, int i_mode); void IPC_Write_SubID(LVme *lvme, unsigned long ul_daten); void IPC_Set_Lvl2_MemBank(LVme *lvme, int i_l2ab); void IPC_Write_LMAddr(LVme *lvme, unsigned short us_lmbaddr, - int i_mode); + int i_mode); void IPC_Set_BsyErr_Mask(LVme *lvme, int i_bsymsk, int i_errmsk, - int i_mode); + int i_mode); void IPC_Set_Lvl2_Mode(LVme *lvme, unsigned long us_daten); void IPC_Set_PedMode(LVme *lvme, unsigned short us_pedes, - int i_mode); + int i_mode); void IPC_Clear_Lvl2(LVme *lvme, int i_mode); void IPC_Set_Shower_Threshold(LVme *lvme, int i_device, - int i_shower_threshold, int i_mode); + int i_shower_threshold, int i_mode); void IPC_Get_Shower_Threshold(LVme *lvme, int i_device, - unsigned i_shower_threshold, - int i_mode); + unsigned i_shower_threshold, + int i_mode); void IPC_Set_Addon_Status(LVme *lvme, int i_device, - int i_addon_status, int i_mode); -void IPC_Get_Addon_Status(LVme *lvme, int i_device, - int i_addon_status, int i_mode); + int i_addon_status, int i_mode); +void IPC_Get_Addon_Status(LVme *lvme, int i_device, + int i_addon_status, int i_mode); void IPC_Set_Addon_SubID(LVme *lvme, int i_device, - int i_subevt_id, int i_mode); -void IPC_Get_Addon_SubID(LVme *lvme, int i_device, - int i_subevt_id, int i_mode); + int i_subevt_id, int i_mode); +void IPC_Get_Addon_SubID(LVme *lvme, int i_device, + int i_subevt_id, int i_mode); void IPC_Conf_Lut1234(LVme *lvme, const char *filename, int i_calmode, - int i_sector, int i_rbhigh, int i_mode); + int i_sector, int i_rbhigh, int i_mode); int IPC_Lut1234_Access(LVme *lvme, int i_layer, int i_row, - int i_column, int i_ucal_pad, int i_cal_pad, - int i_mode); -void IPC_Conf_Lut5(LVme *lvme, const char *filename, int ipc_sector, - int ipc_rbhigh, int i_mode); + int i_column, int i_ucal_pad, int i_cal_pad, + int i_mode); +void IPC_Conf_Lut5(LVme *lvme, const char *filename, int ipc_sector, + int ipc_rbhigh, int i_mode); void IPC_Conf_FPGA(LVme *lvme, const char *filename, int dev_chain, - int mode); + int mode); int IPC_Status_FPGA(LVme *lvme, int dev_chain, int mode); void IPC_Init_FPGA(LVme *lvme, int mode, int dev_chain); void IPC_Read_Status_Regs(LVme *lvme); int IPC_GetPedestals(const char *pFileName, int iSector, int iRBHigh, - unsigned char pedestals[][][]); + unsigned char pedestals[][][]); void IPC_create_lut1234_daten(); #endif - - - - - - - - - - - - - - - - - - diff --git a/hadaq/memnet.c b/hadaq/memnet.c index 93313a9..7ded82e 100644 --- a/hadaq/memnet.c +++ b/hadaq/memnet.c @@ -1,4 +1,22 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/memnet.c,v 6.15 2002-10-09 12:42:18 hadaq Exp $"; + + + + + + + + + + + + + + + + + + +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/memnet.c,v 6.16 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -30,7 +48,9 @@ typedef struct TheArgsS { unsigned long priority; unsigned long queueSize; char verbosity[PARAM_MAX_VALUE_LEN]; -} TheArgs; +} + +TheArgs; static jmp_buf terminateJmp; @@ -50,7 +70,8 @@ static void usage(const char *progName) syslog(LOG_ERR, "Usage: [-w bandwidth] [-p priority] [-q queueSize]"); } -static void argsDump(TheArgs *my) { +static void argsDump(TheArgs *my) +{ syslog(LOG_DEBUG, "outPath: %s", my->outPath); syslog(LOG_DEBUG, "bandWidth: %d", my->bandWidth); syslog(LOG_DEBUG, "priority: %d", my->priority); @@ -59,7 +80,8 @@ static void argsDump(TheArgs *my) { syslog(LOG_DEBUG, "verbosity: %s", my->verbosity); } -static void argsDefault(TheArgs *my) { +static void argsDefault(TheArgs *my) +{ strcpy(my->outPath, ""); my->bandWidth = 0; my->priority = 0; @@ -68,7 +90,8 @@ static void argsDefault(TheArgs *my) { strcpy(my->verbosity, "info"); } -static int argsFromCL(TheArgs *my, int argc, char *argv[]) { +static int argsFromCL(TheArgs *my, int argc, char *argv[]) +{ extern char *optarg; int i; @@ -100,7 +123,8 @@ static int argsFromCL(TheArgs *my, int argc, char *argv[]) { return 0; } -static int argsFromParam(TheArgs *my, int argc, char *argv[]) { +static int argsFromParam(TheArgs *my, int argc, char *argv[]) +{ Param paramS, *param = ¶mS; int paramWasFound; @@ -114,7 +138,8 @@ static int argsFromParam(TheArgs *my, int argc, char *argv[]) { desParam(param); } -static void storeInfoStart(const char *n, time_t t, TheArgs *my) { +static void storeInfoStart(const char *n, time_t t, TheArgs *my) +{ Param pS, *p = &pS; int i; char s[20]; @@ -132,14 +157,15 @@ static void storeInfoStart(const char *n, time_t t, TheArgs *my) { desParam(p); } -static void storeInfoStop(const char *n, time_t t, Worker *w) { +static void storeInfoStop(const char *n, time_t t, Worker *w) +{ Param pS, *p = &pS; int i; char s[20]; conSetupParam(p, getenv("DAQ_SETUP")); - for ( i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { + for (i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { Param_storeInt(p, n, w->statistics[i].name, w->statistics[i].value); } strftime(s, 20, "%Y-%m-%dT%H:%M:%S", localtime(&t)); @@ -157,7 +183,7 @@ int main(int argc, char *argv[]) ShmTrans *shmTrans; int exitStat; - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); setlogmask(LOG_UPTO(LOG_INFO)); @@ -168,9 +194,8 @@ int main(int argc, char *argv[]) usage(argv[0]); exit(EXIT_FAILURE); } - for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { + && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { } if (prioritynames[i].c_name == NULL) { exit(EXIT_FAILURE); @@ -191,13 +216,13 @@ int main(int argc, char *argv[]) } if (NULL == (shmTrans = ShmTrans_create("subevtqueue", 2 * theArgs->queueSize))) { syslog(LOG_ERR, - "creating shared memory \"subevtqueue\": %s"), strerror(errno); + "creating shared memory \"subevtqueue\": %s"), strerror(errno); exitStat = EXIT_FAILURE; goto bailOut1; } if (NULL == (netTrans = NetTrans_open(theArgs->outPath, theArgs->bandWidth, worker))) { syslog(LOG_ERR, - "opening network transport %s: %s", theArgs->outPath, strerror(errno)); + "opening network transport %s: %s", theArgs->outPath, strerror(errno)); exitStat = EXIT_FAILURE; goto bailOut2; } @@ -215,7 +240,6 @@ int main(int argc, char *argv[]) exitStat = EXIT_FAILURE; goto bailOut3; } - ShmTrans_free(shmTrans); } exitStat = EXIT_SUCCESS; diff --git a/hadaq/netmem.c b/hadaq/netmem.c index 78c816a..6072501 100644 --- a/hadaq/netmem.c +++ b/hadaq/netmem.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.23 2002-10-23 14:56:47 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/netmem.c,v 6.24 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -22,29 +22,32 @@ static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hada #define MAXINPATH 32 typedef struct TheArgsS { - char inPathS[MAXINPATH][PARAM_MAX_NAME_LEN]; - char *inPath[MAXINPATH]; - int inPathCnt; - unsigned long nrOfMsgs; - unsigned long isStandalone; - unsigned long priority; - unsigned long queueSize; - char verbosity[PARAM_MAX_VALUE_LEN]; -} TheArgs; + char inPathS[MAXINPATH][PARAM_MAX_NAME_LEN]; + char *inPath[MAXINPATH]; + int inPathCnt; + unsigned long nrOfMsgs; + unsigned long isStandalone; + unsigned long priority; + unsigned long queueSize; + char verbosity[PARAM_MAX_VALUE_LEN]; +} + +TheArgs; static jmp_buf terminateJmp; void sigHandler(int sig) { - longjmp(terminateJmp, sig); + longjmp(terminateJmp, sig); } static void usage(const char *progName) { - syslog(LOG_ERR, "Usage: %s -i inPath [-i inPath] -m nrOfMsgs [-p priority]", progName); + syslog(LOG_ERR, "Usage: %s -i inPath [-i inPath] -m nrOfMsgs [-p priority]", progName); } -static void argsDump(TheArgs *my) { +static void argsDump(TheArgs *my) +{ int i; for (i = 0; i < my->inPathCnt; i++) { @@ -57,59 +60,62 @@ static void argsDump(TheArgs *my) { syslog(LOG_DEBUG, "verbosity: %s", my->verbosity); } -static void argsDefault(TheArgs *my) { - int i; - - for (i = 0; i < MAXINPATH; i++) { - my->inPath[i] = my->inPathS[i]; - } - my->inPathCnt = 0; - my->nrOfMsgs = 0; - my->priority = 0; - my->isStandalone = 1; - my->queueSize = 1 * 1024 * 1024; - strcpy(my->verbosity, "info"); +static void argsDefault(TheArgs *my) +{ + int i; + + for (i = 0; i < MAXINPATH; i++) { + my->inPath[i] = my->inPathS[i]; + } + my->inPathCnt = 0; + my->nrOfMsgs = 0; + my->priority = 0; + my->isStandalone = 1; + my->queueSize = 1 * 1024 * 1024; + strcpy(my->verbosity, "info"); } -static int argsFromCL(TheArgs *my, int argc, char *argv[]) { +static int argsFromCL(TheArgs *my, int argc, char *argv[]) +{ extern char *optarg; - int i; - - while ((i = getopt(argc, argv, "ai:m:q:p:v:")) != -1) { - switch (i) { - case 'm': - my->nrOfMsgs = atoi(optarg); - break; - case 'i': - strcpy(my->inPath[my->inPathCnt++], optarg); - break; - case 'a': - my->isStandalone = 0; - break; - case 'p': - my->priority = atoi(optarg); - break; - case 'q': - my->queueSize = atoi(optarg); - break; - case 'v': - strcpy(my->verbosity, optarg); - break; - default: - return -1; - break; - } - } - return 0; + int i; + + while ((i = getopt(argc, argv, "ai:m:q:p:v:")) != -1) { + switch (i) { + case 'm': + my->nrOfMsgs = atoi(optarg); + break; + case 'i': + strcpy(my->inPath[my->inPathCnt++], optarg); + break; + case 'a': + my->isStandalone = 0; + break; + case 'p': + my->priority = atoi(optarg); + break; + case 'q': + my->queueSize = atoi(optarg); + break; + case 'v': + strcpy(my->verbosity, optarg); + break; + default: + return -1; + break; + } + } + return 0; } -static int argsFromParam(TheArgs *my, int argc, char *argv[]) { +static int argsFromParam(TheArgs *my, int argc, char *argv[]) +{ Param paramS, *param = ¶mS; int paramWasFound; conSetupParam(param, getenv("DAQ_SETUP")); Param_getStringArray(param, argv[0], "inpath", - MAXINPATH, &my->inPathCnt, my->inPath); + MAXINPATH, &my->inPathCnt, my->inPath); Param_getInt(param, argv[0], "nrofmsgs", ¶mWasFound, &my->nrOfMsgs); Param_getInt(param, argv[0], "stndln", ¶mWasFound, &my->isStandalone); Param_getInt(param, argv[0], "prio", ¶mWasFound, &my->priority); @@ -118,7 +124,8 @@ static int argsFromParam(TheArgs *my, int argc, char *argv[]) { desParam(param); } -static char *unit(unsigned long v) { +static char *unit(unsigned long v) +{ static char retVal[6]; static char u[] = " kM"; int i; @@ -130,32 +137,33 @@ static char *unit(unsigned long v) { return retVal; } -static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) { +static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) +{ static unsigned long lastBR[32]; static time_t lastTime = 0; time_t dT; int i; - + if (theArgs->isStandalone && strcmp(theArgs->verbosity, "info") == 0 && (dT = (time(NULL) - lastTime)) >= interval - ) { + ) { fputs("==============================================================================\n", stderr); for (i = 0; i < theArgs->nrOfMsgs; i++) { fprintf(stderr, "%17s%02d:%6s", - "pktsReceived", i, unit(*my[i]->pktsReceived)); + "pktsReceived", i, unit(*my[i]->pktsReceived)); fprintf(stderr, "%17s%02d:%6s", - "pktsDiscarded", i, unit(*my[i]->pktsDiscarded)); + "pktsDiscarded", i, unit(*my[i]->pktsDiscarded)); fprintf(stderr, "%15s%02d :%6s", - "bytesReceived", i, unit(*my[i]->bytesReceived)); + "bytesReceived", i, unit(*my[i]->bytesReceived)); fputc('\n', stderr); fprintf(stderr, "%17s%02d:%6s", - "msgsReceived", i, unit(*my[i]->msgsReceived)); + "msgsReceived", i, unit(*my[i]->msgsReceived)); fprintf(stderr, "%17s%02d:%6s", - "msgsDiscarded", i, unit(*my[i]->msgsDiscarded)); + "msgsDiscarded", i, unit(*my[i]->msgsDiscarded)); fprintf(stderr, "%15s%02d/s:%6s", - "bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i])); + "bytesReceived", i, unit(*my[i]->bytesReceived - lastBR[i])); lastBR[i] = *my[i]->bytesReceived; fputc('\n', stderr); fputs("------------------------------------------------------------------------------\n", stderr); @@ -164,7 +172,8 @@ static void statsDump(TheArgs *theArgs, NetTrans **my, int interval) { } } -static void storeInfoStart(const char *n, time_t t, TheArgs *my) { +static void storeInfoStart(const char *n, time_t t, TheArgs *my) +{ Param pS, *p = &pS; int i; char s[20]; @@ -185,14 +194,15 @@ static void storeInfoStart(const char *n, time_t t, TheArgs *my) { desParam(p); } -static void storeInfoStop(const char *n, time_t t, Worker *w) { +static void storeInfoStop(const char *n, time_t t, Worker *w) +{ Param pS, *p = &pS; int i; char s[20]; conSetupParam(p, getenv("DAQ_SETUP")); - for ( i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { + for (i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { Param_storeInt(p, n, w->statistics[i].name, w->statistics[i].value); } strftime(s, 20, "%Y-%m-%dT%H:%M:%S", localtime(&t)); @@ -203,102 +213,99 @@ static void storeInfoStop(const char *n, time_t t, Worker *w) { int main(int argc, char *argv[]) { - int i; - TheArgs theArgsS, *theArgs = &theArgsS; - Worker *worker; - NetTrans **netTrans; - ShmTrans **shmTrans; - void **hadTu; - size_t *hadTuSize; - - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); - setlogmask(LOG_UPTO(LOG_INFO)); - - - - argsDefault(theArgs); - argsFromParam(theArgs, argc, argv); - if (0 > argsFromCL(theArgs, argc, argv)) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - - for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { - } - if (prioritynames[i].c_name == NULL) { - exit(EXIT_FAILURE); - } else { - setlogmask(LOG_UPTO(prioritynames[i].c_val)); - } - - argsDump(theArgs); - - if (theArgs->inPathCnt == 0 || theArgs->nrOfMsgs == 0 || theArgs->inPathCnt != theArgs->nrOfMsgs) { - usage(argv[0]); - exit(EXIT_FAILURE); - } - netTrans = malloc(theArgs->nrOfMsgs * sizeof(NetTrans *)); - shmTrans = malloc(theArgs->nrOfMsgs * sizeof(ShmTrans *)); - hadTu = malloc(theArgs->nrOfMsgs * sizeof(void *)); - hadTuSize = malloc(theArgs->nrOfMsgs * sizeof(size_t)); - - if (NULL == (worker = Worker_initBegin(argv[0], sigHandler, theArgs->priority, theArgs->isStandalone))) { - syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); - exit(EXIT_FAILURE); - } - for (i = 0; i < theArgs->nrOfMsgs; i++) { - char buf[80]; - - netTrans[i] = NetTrans_create(theArgs->inPath[i], 0, worker); - if (netTrans[i] == NULL) { - syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); - exit(EXIT_FAILURE); - } - - sprintf(buf, "netqueue%d", i); - shmTrans[i] = ShmTrans_open(buf, 2 * theArgs->queueSize); - if (shmTrans[i] == NULL) { - syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); - exit(EXIT_FAILURE); - } - - hadTu[i] = NULL; - hadTuSize[i] = theArgs->queueSize - HadTu_hdrSize(); - } - storeInfoStart(argv[0], time(NULL), theArgs); - Worker_initEnd(worker); - - if (setjmp(terminateJmp) == 0) { - while (1) { - long msgsCompleted; - - statsDump(theArgs, netTrans, 1); - - for (i = 0; i < theArgs->nrOfMsgs; i++) { - if (hadTu[i] == NULL) { - ShmTrans_requestSpace(shmTrans[i]); - hadTu[i] = ShmTrans_tryAlloc(shmTrans[i], hadTuSize[i]); - } - } - - msgsCompleted = NetTrans_multiRecv(netTrans, hadTu, hadTuSize, theArgs->nrOfMsgs); - - for (i = 0; i < theArgs->nrOfMsgs; i++) { - if ((msgsCompleted & (1 << i)) != 0) { - ShmTrans_send(shmTrans[i]); - hadTu[i] = NULL; - } - } - } - } - storeInfoStop(argv[0], time(NULL), worker); - statsDump(theArgs, netTrans, 0); - - for (i = 0; i < theArgs->nrOfMsgs; i++) { - ShmTrans_remove(shmTrans[i]); - NetTrans_remove(netTrans[i]); - } - Worker_fini(worker); - exit(EXIT_SUCCESS); + int i; + TheArgs theArgsS, *theArgs = &theArgsS; + Worker *worker; + NetTrans **netTrans; + ShmTrans **shmTrans; + void **hadTu; + size_t *hadTuSize; + + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); + setlogmask(LOG_UPTO(LOG_INFO)); + + + + argsDefault(theArgs); + argsFromParam(theArgs, argc, argv); + if (0 > argsFromCL(theArgs, argc, argv)) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + for (i = 0; prioritynames[i].c_name != NULL + && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { + } + if (prioritynames[i].c_name == NULL) { + exit(EXIT_FAILURE); + } else { + setlogmask(LOG_UPTO(prioritynames[i].c_val)); + } + + argsDump(theArgs); + + if (theArgs->inPathCnt == 0 || theArgs->nrOfMsgs == 0 || theArgs->inPathCnt != theArgs->nrOfMsgs) { + usage(argv[0]); + exit(EXIT_FAILURE); + } + netTrans = malloc(theArgs->nrOfMsgs * sizeof(NetTrans *)); + shmTrans = malloc(theArgs->nrOfMsgs * sizeof(ShmTrans *)); + hadTu = malloc(theArgs->nrOfMsgs * sizeof(void *)); + hadTuSize = malloc(theArgs->nrOfMsgs * sizeof(size_t)); + + if (NULL == (worker = Worker_initBegin(argv[0], sigHandler, theArgs->priority, theArgs->isStandalone))) { + syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); + exit(EXIT_FAILURE); + } + for (i = 0; i < theArgs->nrOfMsgs; i++) { + char buf[80]; + + netTrans[i] = NetTrans_create(theArgs->inPath[i], 0, worker); + if (netTrans[i] == NULL) { + syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); + exit(EXIT_FAILURE); + } + sprintf(buf, "netqueue%d", i); + shmTrans[i] = ShmTrans_open(buf, 2 * theArgs->queueSize); + if (shmTrans[i] == NULL) { + syslog(LOG_ERR, "%s, %d: %s", __FILE__, __LINE__, strerror(errno)); + exit(EXIT_FAILURE); + } + hadTu[i] = NULL; + hadTuSize[i] = theArgs->queueSize - HadTu_hdrSize(); + } + storeInfoStart(argv[0], time(NULL), theArgs); + Worker_initEnd(worker); + + if (setjmp(terminateJmp) == 0) { + while (1) { + long msgsCompleted; + + statsDump(theArgs, netTrans, 1); + + for (i = 0; i < theArgs->nrOfMsgs; i++) { + if (hadTu[i] == NULL) { + ShmTrans_requestSpace(shmTrans[i]); + hadTu[i] = ShmTrans_tryAlloc(shmTrans[i], hadTuSize[i]); + } + } + + msgsCompleted = NetTrans_multiRecv(netTrans, hadTu, hadTuSize, theArgs->nrOfMsgs); + + for (i = 0; i < theArgs->nrOfMsgs; i++) { + if ((msgsCompleted & (1 << i)) != 0) { + ShmTrans_send(shmTrans[i]); + hadTu[i] = NULL; + } + } + } + } + storeInfoStop(argv[0], time(NULL), worker); + statsDump(theArgs, netTrans, 0); + + for (i = 0; i < theArgs->nrOfMsgs; i++) { + ShmTrans_remove(shmTrans[i]); + NetTrans_remove(netTrans[i]); + } + Worker_fini(worker); + exit(EXIT_SUCCESS); } diff --git a/hadaq/nettrans.c b/hadaq/nettrans.c index d8b5327..4ab8489 100644 --- a/hadaq/nettrans.c +++ b/hadaq/nettrans.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.25 2002-10-09 12:42:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/nettrans.c,v 6.26 2003-03-02 15:50:10 hadaq Exp $"; #define _GNU_SOURCE @@ -31,7 +31,8 @@ static int min(int a, int b) return a < b ? a : b; } -static int openUdp(NetTrans *my, unsigned long addr, int port, int fl) { +static int openUdp(NetTrans *my, unsigned long addr, int port, int fl) +{ int retVal; struct sockaddr_in sa; @@ -47,13 +48,13 @@ static int openUdp(NetTrans *my, unsigned long addr, int port, int fl) { sa.sin_family = AF_INET; sa.sin_port = htons(port); sa.sin_addr.s_addr = 0; - retVal = bind(my->fd, (struct sockaddr *)&sa, sizeof(sa)); + retVal = bind(my->fd, (struct sockaddr *) &sa, sizeof(sa)); break; case O_WRONLY: sa.sin_family = AF_INET; sa.sin_port = htons(port); sa.sin_addr.s_addr = addr; - retVal = connect(my->fd, (struct sockaddr *)&sa, sizeof(sa)); + retVal = connect(my->fd, (struct sockaddr *) &sa, sizeof(sa)); break; default: errno = EINVAL; @@ -74,7 +75,8 @@ static int openUdp(NetTrans *my, unsigned long addr, int port, int fl) { return retVal; } -static int openAtm(NetTrans *my, int vpi, int vci, size_t bw, int fl) { +static int openAtm(NetTrans *my, int vpi, int vci, size_t bw, int fl) +{ int retVal; LAtmAttr lAtmAttrS, *lAtmAttr = &lAtmAttrS; @@ -86,7 +88,7 @@ static int openAtm(NetTrans *my, int vpi, int vci, size_t bw, int fl) { lAtmAttr->peakBandwidth = bw; syslog(LOG_DEBUG, "aal: %d; vpi: %d; vci: %d; bandwidth: %d", - lAtmAttr->aal, lAtmAttr->vpi, lAtmAttr->vci, lAtmAttr->peakBandwidth); + lAtmAttr->aal, lAtmAttr->vpi, lAtmAttr->vci, lAtmAttr->peakBandwidth); my->lAtm = newLAtm("/dev/fa0", fl); @@ -120,7 +122,8 @@ static int openAtm(NetTrans *my, int vpi, int vci, size_t bw, int fl) { return retVal; } -int openGeneric(NetTrans *my, const char *name, int flags, size_t bandwidth) { +int openGeneric(NetTrans *my, const char *name, int flags, size_t bandwidth) +{ int retVal; char fam[32]; char pa[32]; @@ -148,7 +151,7 @@ int openGeneric(NetTrans *my, const char *name, int flags, size_t bandwidth) { addr = inet_addr(pa); port = atoi(ep); my->type = NetTransType_udp; - retVal = openUdp(my, addr, port,flags); + retVal = openUdp(my, addr, port, flags); } else { my->type = NetTransType_invalid; errno = EINVAL; @@ -162,7 +165,8 @@ int openGeneric(NetTrans *my, const char *name, int flags, size_t bandwidth) { return retVal; } -int closeGeneric(NetTrans *my) { +int closeGeneric(NetTrans *my) +{ int retVal; assert(my != NULL); @@ -184,7 +188,8 @@ int closeGeneric(NetTrans *my) { return retVal; } -int sendGeneric(NetTrans *my) { +int sendGeneric(NetTrans *my) +{ int retVal; assert(NetTrans_invariant(my)); @@ -197,7 +202,7 @@ int sendGeneric(NetTrans *my) { } break; case NetTransType_udp: -#if 0 /* This limits the output data rate to 100 * mtuSize / s */ +#if 0 /* This limits the output data rate to 100 * mtuSize / s */ { static int i = 0; if (i++ % 2 != 0) { @@ -215,14 +220,14 @@ int sendGeneric(NetTrans *my) { if (retVal != my->pktSize) { retVal = -1; } - if (0 > retVal) { syslog(LOG_DEBUG, "sendGeneric: %s", strerror(errno)); } return retVal; } -int recvGeneric(NetTrans *my) { +int recvGeneric(NetTrans *my) +{ int retVal; assert(NetTrans_invariant(my)); @@ -244,10 +249,11 @@ int recvGeneric(NetTrans *my) { return retVal; } -int NetTrans_invariant(const NetTrans *my) { +int NetTrans_invariant(const NetTrans *my) +{ return ( - my != NULL - && (my->type == NetTransType_atm || my->type == NetTransType_udp) + my != NULL + && (my->type == NetTransType_atm || my->type == NetTransType_udp) ); } @@ -262,7 +268,6 @@ NetTrans *NetTrans_create(const char *name, size_t bandwidth, Worker *worker) if (0 > openGeneric(my, name, O_RDONLY, bandwidth)) { return NULL; } - my->pktSize = 0; my->offset = 0; @@ -279,8 +284,8 @@ NetTrans *NetTrans_create(const char *name, size_t bandwidth, Worker *worker) my->msgsDiscarded = Worker_addStatistic(worker, buf); sprintf(buf, "%s%d", "bytesReceived", instance); my->bytesReceived = Worker_addStatistic(worker, buf); - - instance++; + + instance++; return my; } @@ -295,7 +300,6 @@ NetTrans *NetTrans_open(const char *name, size_t bandwidth, Worker *worker) if (0 > openGeneric(my, name, O_WRONLY, bandwidth)) { return NULL; } - my->pktSize = 0; my->offset = 0; @@ -323,7 +327,8 @@ void NetTrans_remove(NetTrans *my) free(my); } -static size_t adjustedSize(NetTrans *my, void *hadTu) { +static size_t adjustedSize(NetTrans *my, void *hadTu) +{ size_t size; size = HadTu_paddedSize(hadTu) + 32; @@ -348,13 +353,12 @@ int NetTrans_send(NetTrans *my, void *hadTu) my->offset = 0; do { - my->pkt = (char *)hadTu + my->offset; + my->pkt = (char *) hadTu + my->offset; my->pktSize = min(my->mtuSize, size - my->offset); if (0 > sendGeneric(my)) { return -1; } - my->offset += my->pktSize; (*my->pktsSent)++; } while (my->pktSize == my->mtuSize); @@ -384,8 +388,7 @@ static int assembleMsg(NetTrans *my, void *hadTu, size_t size) free(my->pkt); return 0; } - - my->pkt = (char *)hadTu + my->offset; + my->pkt = (char *) hadTu + my->offset; if (0 > recvGeneric(my)) { abort(); } diff --git a/hadaq/nettrans.h b/hadaq/nettrans.h index fe4aad0..5620011 100644 --- a/hadaq/nettrans.h +++ b/hadaq/nettrans.h @@ -1,3 +1,4 @@ + #ifndef NETTRANS_H #define NETTRANS_H @@ -13,27 +14,29 @@ typedef enum NetTransTypeE { } NetTransType; typedef struct NetTransS { - char name[512]; - NetTransType type; - LAtm *lAtm; - size_t mtuSize; - int fd; - void *pkt; - size_t pktSize; - size_t offset; - unsigned long *pktsSent; - unsigned long *msgsSent; - unsigned long *bytesSent; - unsigned long *pktsReceived; - unsigned long *pktsDiscarded; - unsigned long *msgsReceived; - unsigned long *msgsDiscarded; - unsigned long *bytesReceived; -} NetTrans; + char name[512]; + NetTransType type; + LAtm *lAtm; + size_t mtuSize; + int fd; + void *pkt; + size_t pktSize; + size_t offset; + unsigned long *pktsSent; + unsigned long *msgsSent; + unsigned long *bytesSent; + unsigned long *pktsReceived; + unsigned long *pktsDiscarded; + unsigned long *msgsReceived; + unsigned long *msgsDiscarded; + unsigned long *bytesReceived; +} + +NetTrans; int NetTrans_invariant(const NetTrans *my); -NetTrans *NetTrans_create(const char *name, size_t bandwidth, Worker * worker); -NetTrans *NetTrans_open(const char *name, size_t bandwidth, Worker * worker); +NetTrans *NetTrans_create(const char *name, size_t bandwidth, Worker *worker); +NetTrans *NetTrans_open(const char *name, size_t bandwidth, Worker *worker); void NetTrans_close(NetTrans *my); void NetTrans_remove(NetTrans *my); diff --git a/hadaq/online.c b/hadaq/online.c index a8345d4..7009a2a 100644 --- a/hadaq/online.c +++ b/hadaq/online.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/online.c,v 6.6 2001-11-18 11:56:21 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/online.c,v 6.7 2003-03-02 15:50:10 hadaq Exp $"; #define _GNU_SOURCE @@ -73,7 +73,7 @@ rpcevt *onlineevt_1(void *dummy, CLIENT * cl) return &result; } -rpcevt * onlineevt_1_svc(void *dummy, struct svc_req *x) +rpcevt *onlineevt_1_svc(void *dummy, struct svc_req * x) { return onlineevt_1(dummy, NULL); } diff --git a/hadaq/psxshm.h b/hadaq/psxshm.h index c5877c7..d350cf0 100644 --- a/hadaq/psxshm.h +++ b/hadaq/psxshm.h @@ -1,16 +1,19 @@ + #ifndef PSXSHM_H #define PSXSHM_H #include typedef struct PsxShmS { - int fd; - void *addr; - off_t size; -} PsxShm; + int fd; + void *addr; + off_t size; +} + +PsxShm; PsxShm *PsxShm_open(const char *name, int oflag, mode_t mode, off_t size); -int PsxShm_close(PsxShm * my); +int PsxShm_close(PsxShm *my); int PsxShm_unlink(const char *name); #endif diff --git a/hadaq/rc.h b/hadaq/rc.h index 7fa83ea..feb641e 100644 --- a/hadaq/rc.h +++ b/hadaq/rc.h @@ -1,3 +1,4 @@ + #ifndef RC_H #define RC_H @@ -6,7 +7,9 @@ typedef struct RcS { LVme *lvme; -} Rc; +} + +Rc; /********************************** * INTERFACE3 Xilinx part * @@ -14,239 +17,590 @@ typedef struct RcS { **********************************/ enum Rc_regions { - memRegion = 0x100000, - busRegion = 0x200000, - regRegion = 0x300000, - xcRegion = 0x400000, - dprRegion = 0x500000 + memRegion = 0x100000, + busRegion = 0x200000, + regRegion = 0x300000, + xcRegion = 0x400000, + dprRegion = 0x500000 }; static const size_t Rc_addrSpace = 0x600000; /* Offsets for INTERFACE2 registers */ -static const ptrdiff_t ctrlReg = regRegion + 0x000; -static const ptrdiff_t ctrlPad = regRegion + 0x002; -static const ptrdiff_t trgReg = regRegion + 0x004; -static const ptrdiff_t trgPad = regRegion + 0x006; -static const ptrdiff_t trgCtr = regRegion + 0x008; +static const ptrdiff_t ctrlReg = regRegion + 0x000; +static const ptrdiff_t ctrlPad = regRegion + 0x002; +static const ptrdiff_t trgReg = regRegion + 0x004; +static const ptrdiff_t trgPad = regRegion + 0x006; +static const ptrdiff_t trgCtr = regRegion + 0x008; static const ptrdiff_t prdoutCtr = regRegion + 0x00a; static const ptrdiff_t ardoutCtr = regRegion + 0x00c; -static const ptrdiff_t adelCtr = regRegion + 0x00e; -static const ptrdiff_t tagReg = regRegion + 0x010; -static const ptrdiff_t lcReg = regRegion + 0x012; +static const ptrdiff_t adelCtr = regRegion + 0x00e; +static const ptrdiff_t tagReg = regRegion + 0x010; +static const ptrdiff_t lcReg = regRegion + 0x012; /* static const ptrdiff_t unused1 = regRegion + 0x014; */ /* static const ptrdiff_t unused2 = regRegion + 0x016; */ /* static const ptrdiff_t unused3 = regRegion + 0x018; */ /* static const ptrdiff_t unused4 = regRegion + 0x01a; */ -static const ptrdiff_t giopReg = regRegion + 0x01c; -static const ptrdiff_t giopPad = regRegion + 0x01e; +static const ptrdiff_t giopReg = regRegion + 0x01c; +static const ptrdiff_t giopPad = regRegion + 0x01e; /* CTRL register definitions */ -static unsigned short Rc_getCtrlReg(Rc * my) { return LVme_getW(my->lvme, ctrlReg); } -static unsigned short Rc_getCtrlPad(Rc * my) { return LVme_getW(my->lvme, ctrlPad); } - -static void Rc_setReset(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 6); } -static void Rc_clrReset(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 6); } -static int Rc_getReset(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 6); } -static int Rc_padReset(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 6); } - -static void Rc_setMwr(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 7); } -static void Rc_clrMwr(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 7); } -static int Rc_getMwr(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 7); } -static int Rc_padMwr(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 7); } - -static void Rc_setMsel(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 8); } -static void Rc_clrMsel(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 8); } -static int Rc_getMsel(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 8); } -static int Rc_padMsel(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 8); } - -static void Rc_setEvtend(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 9); } -static void Rc_clrEvtend(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 9); } -static int Rc_getEvtend(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 9); } -static int Rc_padEvtend(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 9); } - -static void Rc_setEvtbeg(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 10); } -static void Rc_clrEvtbeg(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 10); } -static int Rc_getEvtbeg(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 10); } -static int Rc_padEvtbeg(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 10); } - -static void Rc_setSysclk(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 11); } -static void Rc_clrSysclk(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 11); } -static int Rc_getSysclk(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 11); } -static int Rc_padSysclk(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 11); } - -static void Rc_Cycle(Rc * my) -{ - if(Rc_getSysclk(my)) - { +static unsigned short Rc_getCtrlReg(Rc *my) +{ + return LVme_getW(my->lvme, ctrlReg); +} +static unsigned short Rc_getCtrlPad(Rc *my) +{ + return LVme_getW(my->lvme, ctrlPad); +} + +static void Rc_setReset(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 6); +} +static void Rc_clrReset(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 6); +} +static int Rc_getReset(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 6); +} +static int Rc_padReset(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 6); +} + +static void Rc_setMwr(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 7); +} +static void Rc_clrMwr(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 7); +} +static int Rc_getMwr(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 7); +} +static int Rc_padMwr(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 7); +} + +static void Rc_setMsel(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 8); +} +static void Rc_clrMsel(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 8); +} +static int Rc_getMsel(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 8); +} +static int Rc_padMsel(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 8); +} + +static void Rc_setEvtend(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 9); +} +static void Rc_clrEvtend(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 9); +} +static int Rc_getEvtend(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 9); +} +static int Rc_padEvtend(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 9); +} + +static void Rc_setEvtbeg(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 10); +} +static void Rc_clrEvtbeg(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 10); +} +static int Rc_getEvtbeg(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 10); +} +static int Rc_padEvtbeg(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 10); +} + +static void Rc_setSysclk(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 11); +} +static void Rc_clrSysclk(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 11); +} +static int Rc_getSysclk(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 11); +} +static int Rc_padSysclk(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 11); +} + +static void Rc_Cycle(Rc *my) +{ + if (Rc_getSysclk(my)) { Rc_clrSysclk(my); Rc_setSysclk(my); - } - else - { + } else { Rc_setSysclk(my); Rc_clrSysclk(my); } } - -static void Rc_setSwrq(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 12); } -static void Rc_clrSwrq(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 12); } -static int Rc_getSwrq(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 12); } -static int Rc_padSwrq(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 12); } -static void Rc_setStop(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 13); } -static void Rc_clrStop(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 13); } -static int Rc_getStop(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 13); } -static int Rc_padStop(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 13); } +static void Rc_setSwrq(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 12); +} +static void Rc_clrSwrq(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 12); +} +static int Rc_getSwrq(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 12); +} +static int Rc_padSwrq(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 12); +} + +static void Rc_setStop(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 13); +} +static void Rc_clrStop(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 13); +} +static int Rc_getStop(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 13); +} +static int Rc_padStop(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 13); +} /* Magic numbers */ static const int PRDOUT = 0x00; /* Pattern readout (daisy chain) */ -static const int TEST = 0x01; /* Test Mode activation (buslike) */ +static const int TEST = 0x01; /* Test Mode activation (buslike) */ static const int ARDOUT = 0x02; /* Analog readout (daisy chain) */ -static const int ADEL = 0x03; /* Analog delete (buslike) */ -static const int RFIFO = 0x04; /* Reset FIFO (buslike) */ +static const int ADEL = 0x03; /* Analog delete (buslike) */ +static const int RFIFO = 0x04; /* Reset FIFO (buslike) */ static const int RDAISY = 0x05; /* Reset daisy chain (buslike) */ -static const int WCFG = 0x06; /* Write configuration (daisy chain) */ -static const int RCFG = 0x07; /* Read configuration (daisy chain) */ -static const int NOP = 0x0F; /* No OPeration - do nothing */ +static const int WCFG = 0x06; /* Write configuration (daisy chain) */ +static const int RCFG = 0x07; /* Read configuration (daisy chain) */ +static const int NOP = 0x0F; /* No OPeration - do nothing */ /* Test mode is available only in the GUF (Grand Unified Frontend) */ -static void Rc_setFc(Rc * my, int fc) +static void Rc_setFc(Rc *my, int fc) { unsigned short savedCtrlReg; savedCtrlReg = LVme_getW(my->lvme, ctrlReg); - savedCtrlReg = ( savedCtrlReg & 0xFFF0 ) | ( fc & 0x000F ); + savedCtrlReg = (savedCtrlReg & 0xFFF0) | (fc & 0x000F); LVme_setW(my->lvme, ctrlReg, savedCtrlReg); } -static int Rc_getFc(Rc * my) +static int Rc_getFc(Rc *my) { return LVme_getW(my->lvme, ctrlReg) & 0x000f; } -static void Rc_setError(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 4); } -static void Rc_clrError(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 4); } -static int Rc_getError(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 4); } -static int Rc_padError(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 4); } +static void Rc_setError(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 4); +} +static void Rc_clrError(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 4); +} +static int Rc_getError(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 4); +} +static int Rc_padError(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 4); +} -static void Rc_setRcbsy(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 5); } -static void Rc_clrRcbsy(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 5); } -static int Rc_getRcbsy(Rc * my) { return LVme_tstBitW(my->lvme, ctrlReg, 5); } -static int Rc_padRcbsy(Rc * my) { return LVme_tstBitW(my->lvme, ctrlPad, 5); } +static void Rc_setRcbsy(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 5); +} +static void Rc_clrRcbsy(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 5); +} +static int Rc_getRcbsy(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlReg, 5); +} +static int Rc_padRcbsy(Rc *my) +{ + return LVme_tstBitW(my->lvme, ctrlPad, 5); +} /* TRG register definitions */ -static unsigned short Rc_getTrgReg(Rc * my) { return LVme_getW(my->lvme, trgReg); } -static unsigned short Rc_getTrgPad(Rc * my) { return LVme_getW(my->lvme, trgPad); } - -static void Rc_setStrb0(Rc * my) { LVme_setBitW(my->lvme, trgReg, 0); } -static void Rc_clrStrb0(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 0); } -static int Rc_getStrb0(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 0); } -static int Rc_padStrb0(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 0); } - -static void Rc_setStrb1(Rc * my) { LVme_setBitW(my->lvme, trgReg, 1); } -static void Rc_clrStrb1(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 1); } -static int Rc_getStrb1(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 1); } -static int Rc_padStrb1(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 1); } - -static void Rc_setStrb2(Rc * my) { LVme_setBitW(my->lvme, trgReg, 2); } -static void Rc_clrStrb2(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 2); } -static int Rc_getStrb2(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 2); } -static int Rc_padStrb2(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 2); } - -static void Rc_setStrb3(Rc * my) { LVme_setBitW(my->lvme, trgReg, 3); } -static void Rc_clrStrb3(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 3); } -static int Rc_getStrb3(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 3); } -static int Rc_padStrb3(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 3); } - -static void Rc_setStrb4(Rc * my) { LVme_setBitW(my->lvme, trgReg, 4); } -static void Rc_clrStrb4(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 4); } -static int Rc_getStrb4(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 4); } -static int Rc_padStrb4(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 4); } - -static void Rc_setStrb5(Rc * my) { LVme_setBitW(my->lvme, trgReg, 5); } -static void Rc_clrStrb5(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 5); } -static int Rc_getStrb5(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 5); } -static int Rc_padStrb5(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 5); } - -static void Rc_setStrb6(Rc * my) { LVme_setBitW(my->lvme, trgReg, 6); } -static void Rc_clrStrb6(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 6); } -static int Rc_getStrb6(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 6); } -static int Rc_padStrb6(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 6); } - -static void Rc_setStrb7(Rc * my) { LVme_setBitW(my->lvme, trgReg, 7); } -static void Rc_clrStrb7(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 7); } -static int Rc_getStrb7(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 7); } -static int Rc_padStrb7(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 7); } +static unsigned short Rc_getTrgReg(Rc *my) +{ + return LVme_getW(my->lvme, trgReg); +} +static unsigned short Rc_getTrgPad(Rc *my) +{ + return LVme_getW(my->lvme, trgPad); +} + +static void Rc_setStrb0(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 0); +} +static void Rc_clrStrb0(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 0); +} +static int Rc_getStrb0(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 0); +} +static int Rc_padStrb0(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 0); +} + +static void Rc_setStrb1(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 1); +} +static void Rc_clrStrb1(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 1); +} +static int Rc_getStrb1(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 1); +} +static int Rc_padStrb1(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 1); +} + +static void Rc_setStrb2(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 2); +} +static void Rc_clrStrb2(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 2); +} +static int Rc_getStrb2(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 2); +} +static int Rc_padStrb2(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 2); +} + +static void Rc_setStrb3(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 3); +} +static void Rc_clrStrb3(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 3); +} +static int Rc_getStrb3(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 3); +} +static int Rc_padStrb3(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 3); +} + +static void Rc_setStrb4(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 4); +} +static void Rc_clrStrb4(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 4); +} +static int Rc_getStrb4(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 4); +} +static int Rc_padStrb4(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 4); +} + +static void Rc_setStrb5(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 5); +} +static void Rc_clrStrb5(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 5); +} +static int Rc_getStrb5(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 5); +} +static int Rc_padStrb5(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 5); +} + +static void Rc_setStrb6(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 6); +} +static void Rc_clrStrb6(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 6); +} +static int Rc_getStrb6(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 6); +} +static int Rc_padStrb6(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 6); +} + +static void Rc_setStrb7(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 7); +} +static void Rc_clrStrb7(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 7); +} +static int Rc_getStrb7(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 7); +} +static int Rc_padStrb7(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 7); +} /* Range for port: 0...7; other values are dangerous and no checking for the correct value is done ! */ -static void Rc_setStrbPort(Rc * my, int port) { LVme_setBitW(my->lvme, trgReg, port & 0x07); } -static void Rc_clrStrbPort(Rc * my, int port) { LVme_clrBitW(my->lvme, trgReg, port & 0x07); } -static int Rc_getStrbPort(Rc * my, int port) { return LVme_tstBitW(my->lvme, trgReg, port & 0x07); } -static int Rc_padStrbPort(Rc * my, int port) { return LVme_tstBitW(my->lvme, trgPad, port & 0x07); } +static void Rc_setStrbPort(Rc *my, int port) +{ + LVme_setBitW(my->lvme, trgReg, port & 0x07); +} +static void Rc_clrStrbPort(Rc *my, int port) +{ + LVme_clrBitW(my->lvme, trgReg, port & 0x07); +} +static int Rc_getStrbPort(Rc *my, int port) +{ + return LVme_tstBitW(my->lvme, trgReg, port & 0x07); +} +static int Rc_padStrbPort(Rc *my, int port) +{ + return LVme_tstBitW(my->lvme, trgPad, port & 0x07); +} -static void Rc_StrobePort(Rc * my, int port) +static void Rc_StrobePort(Rc *my, int port) { Rc_clrStrbPort(my, port); Rc_setStrbPort(my, port); } -static void Rc_setDecision(Rc * my) { LVme_setBitW(my->lvme, trgReg, 8); } -static void Rc_clrDecision(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 8); } -static int Rc_getDecision(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 8); } -static int Rc_padDecision(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 8); } +static void Rc_setDecision(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 8); +} +static void Rc_clrDecision(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 8); +} +static int Rc_getDecision(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 8); +} +static int Rc_padDecision(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 8); +} -static void Rc_setArdout(Rc * my) { LVme_setBitW(my->lvme, trgReg, 9); } -static void Rc_clrArdout(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 9); } -static int Rc_getArdout(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 9); } -static int Rc_padArdout(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 9); } +static void Rc_setArdout(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 9); +} +static void Rc_clrArdout(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 9); +} +static int Rc_getArdout(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 9); +} +static int Rc_padArdout(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 9); +} -static void Rc_setPrdout(Rc * my) { LVme_setBitW(my->lvme, trgReg, 10); } -static void Rc_clrPrdout(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 10); } -static int Rc_getPrdout(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 10); } -static int Rc_padPrdout(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 10); } +static void Rc_setPrdout(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 10); +} +static void Rc_clrPrdout(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 10); +} +static int Rc_getPrdout(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 10); +} +static int Rc_padPrdout(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 10); +} -static void Rc_setBegrun(Rc * my) { LVme_setBitW(my->lvme, trgReg, 11); } -static void Rc_clrBegrun(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 11); } -static int Rc_getBegrun(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 11); } -static int Rc_padBegrun(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 11); } +static void Rc_setBegrun(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 11); +} +static void Rc_clrBegrun(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 11); +} +static int Rc_getBegrun(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 11); +} +static int Rc_padBegrun(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 11); +} -static void Rc_setTagclk(Rc * my) { LVme_setBitW(my->lvme, trgReg, 12); } -static void Rc_clrTagclk(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 12); } -static int Rc_getTagclk(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 12); } -static int Rc_padTagclk(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 12); } +static void Rc_setTagclk(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 12); +} +static void Rc_clrTagclk(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 12); +} +static int Rc_getTagclk(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 12); +} +static int Rc_padTagclk(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 12); +} -static void Rc_setTagdata(Rc * my) { LVme_setBitW(my->lvme, trgReg, 13); } -static void Rc_clrTagdata(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 13); } -static int Rc_getTagdata(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 13); } -static int Rc_padTagdata(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 13); } +static void Rc_setTagdata(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 13); +} +static void Rc_clrTagdata(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 13); +} +static int Rc_getTagdata(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 13); +} +static int Rc_padTagdata(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 13); +} -static void Rc_setTbsy(Rc * my) { LVme_setBitW(my->lvme, trgReg, 14); } -static void Rc_clrTbsy(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 14); } -static int Rc_getTbsy(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 14); } -static int Rc_padTbsy(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 14); } +static void Rc_setTbsy(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 14); +} +static void Rc_clrTbsy(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 14); +} +static int Rc_getTbsy(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 14); +} +static int Rc_padTbsy(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 14); +} -static void Rc_setTrg(Rc * my) { LVme_setBitW(my->lvme, trgReg, 15); } -static void Rc_clrTrg(Rc * my) { LVme_clrBitW(my->lvme, trgReg, 15); } -static int Rc_getTrg(Rc * my) { return LVme_tstBitW(my->lvme, trgReg, 15); } -static int Rc_padTrg(Rc * my) { return LVme_tstBitW(my->lvme, trgPad, 15); } +static void Rc_setTrg(Rc *my) +{ + LVme_setBitW(my->lvme, trgReg, 15); +} +static void Rc_clrTrg(Rc *my) +{ + LVme_clrBitW(my->lvme, trgReg, 15); +} +static int Rc_getTrg(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgReg, 15); +} +static int Rc_padTrg(Rc *my) +{ + return LVme_tstBitW(my->lvme, trgPad, 15); +} -static void Rc_TriggerPort(Rc * my) +static void Rc_TriggerPort(Rc *my) { Rc_clrTrg(my); Rc_setTrg(my); } /* Status counter access */ -static unsigned short Rc_getTrgCtr(Rc * my) { return LVme_getW(my->lvme, trgCtr); } -static unsigned short Rc_getPrdoutCtr(Rc * my) { return LVme_getW(my->lvme, prdoutCtr); } -static unsigned short Rc_getArdoutCtr(Rc * my) { return LVme_getW(my->lvme, ardoutCtr); } -static unsigned short Rc_getAdelCtr(Rc * my) { return LVme_getW(my->lvme, adelCtr); } +static unsigned short Rc_getTrgCtr(Rc *my) +{ + return LVme_getW(my->lvme, trgCtr); +} +static unsigned short Rc_getPrdoutCtr(Rc *my) +{ + return LVme_getW(my->lvme, prdoutCtr); +} +static unsigned short Rc_getArdoutCtr(Rc *my) +{ + return LVme_getW(my->lvme, ardoutCtr); +} +static unsigned short Rc_getAdelCtr(Rc *my) +{ + return LVme_getW(my->lvme, adelCtr); +} -static void Rc_setRctr(Rc * my) { LVme_setBitW(my->lvme, ctrlReg, 15); } -static void Rc_clrRctr(Rc * my) { LVme_clrBitW(my->lvme, ctrlReg, 15); } +static void Rc_setRctr(Rc *my) +{ + LVme_setBitW(my->lvme, ctrlReg, 15); +} +static void Rc_clrRctr(Rc *my) +{ + LVme_clrBitW(my->lvme, ctrlReg, 15); +} -static void Rc_ClrCtrs(Rc * my) +static void Rc_ClrCtrs(Rc *my) { Rc_setRctr(my); Rc_clrRctr(my); @@ -255,7 +609,10 @@ static void Rc_ClrCtrs(Rc * my) /* TAG register definitions */ /* This register contains the last distributed SubEventTag */ -static unsigned short Rc_getTagReg(Rc * my) { return LVme_getW(my->lvme, tagReg); } +static unsigned short Rc_getTagReg(Rc *my) +{ + return LVme_getW(my->lvme, tagReg); +} /* LC register definitions */ /* This register contains information on the last command delivered by the DTU_RICH as well */ @@ -263,9 +620,12 @@ static unsigned short Rc_getTagReg(Rc * my) { return LVme_getW(my->lvme, tagR /* missing acknowledge of the RC99 hardware can be easily detected. */ /* Do not use this function alone ! */ -static unsigned short Rc_getLcReg(Rc * my) { return LVme_getW(my->lvme, lcReg); } +static unsigned short Rc_getLcReg(Rc *my) +{ + return LVme_getW(my->lvme, lcReg); +} -static unsigned short Rc_getLcStatus(Rc * my) +static unsigned short Rc_getLcStatus(Rc *my) { unsigned short LcStatus = 0x0000; return LcStatus = (Rc_getLcReg(my) & 0x001f); @@ -276,14 +636,20 @@ static unsigned short Rc_getLcStatus(Rc * my) /* By default, these pads are unconnected and can be used for test purposes. */ /* Do not use these functions alone ! */ -static unsigned short Rc_getgiopReg(Rc * my) { return LVme_getW(my->lvme, giopReg); } -static unsigned short Rc_getgiopPad(Rc * my) { return LVme_getW(my->lvme, giopPad); } +static unsigned short Rc_getgiopReg(Rc *my) +{ + return LVme_getW(my->lvme, giopReg); +} +static unsigned short Rc_getgiopPad(Rc *my) +{ + return LVme_getW(my->lvme, giopPad); +} -static unsigned short Rc_getInterfaceVersion(Rc * my) +static unsigned short Rc_getInterfaceVersion(Rc *my) { - short giopPadValue; - giopPadValue = (0xFF00 & Rc_getgiopPad(my)) >> 8; - return giopPadValue; + short giopPadValue; + giopPadValue = (0xFF00 & Rc_getgiopPad(my)) >> 8; + return giopPadValue; } @@ -293,17 +659,17 @@ static unsigned short Rc_getInterfaceVersion(Rc * my) *********************************/ /* Offsets for MEMORY2 registers */ -static const ptrdiff_t statusid = regRegion + 0x100; -static const ptrdiff_t bugreg = regRegion + 0x102; -static const ptrdiff_t memreg = regRegion + 0x104; -static const ptrdiff_t pages = regRegion + 0x106; +static const ptrdiff_t statusid = regRegion + 0x100; +static const ptrdiff_t bugreg = regRegion + 0x102; +static const ptrdiff_t memreg = regRegion + 0x104; +static const ptrdiff_t pages = regRegion + 0x106; static const ptrdiff_t sedec_high = regRegion + 0x108; -static const ptrdiff_t sedec_low = regRegion + 0x10a; -static const ptrdiff_t seid_high = regRegion + 0x10c; -static const ptrdiff_t seid_low = regRegion + 0x10e; +static const ptrdiff_t sedec_low = regRegion + 0x10a; +static const ptrdiff_t seid_high = regRegion + 0x10c; +static const ptrdiff_t seid_low = regRegion + 0x10e; static const ptrdiff_t versionMem = regRegion + 0x110; -static const ptrdiff_t swCtr = regRegion + 0x112; -static const ptrdiff_t codeMem = regRegion + 0x114; +static const ptrdiff_t swCtr = regRegion + 0x112; +static const ptrdiff_t codeMem = regRegion + 0x114; /* static const ptrdiff_t unused3 = regRegion + 0x116; */ /* static const ptrdiff_t unused4 = regRegion + 0x118; */ /* static const ptrdiff_t unused5 = regRegion + 0x11a; */ @@ -311,117 +677,134 @@ static const ptrdiff_t codeMem = regRegion + 0x114; /* static const ptrdiff_t unused7 = regRegion + 0x11e; */ /* STATUSID register */ -static unsigned int Rc_readStatusid(Rc * my) +static unsigned int Rc_readStatusid(Rc *my) { int realId; realId = 0x00FF & LVme_getW(my->lvme, statusid); return realId; } -static void Rc_writeStatusid(Rc * my, unsigned char value) +static void Rc_writeStatusid(Rc *my, unsigned char value) { unsigned short savedStatusId; savedStatusId = LVme_getW(my->lvme, statusid); - savedStatusId = ( savedStatusId & 0xFF00 ) | ( value & 0x00FF ); + savedStatusId = (savedStatusId & 0xFF00) | (value & 0x00FF); LVme_setW(my->lvme, statusid, savedStatusId); } -static unsigned short Rc_getStatusID(Rc * my) +static unsigned short Rc_getStatusID(Rc *my) { return LVme_getW(my->lvme, statusid); } -static void Rc_setIrqR(Rc * my) { LVme_setBitW(my->lvme, statusid, 15); } -static void Rc_clrIrqR(Rc * my) { LVme_clrBitW(my->lvme, statusid, 15); } -static int Rc_getIrqR(Rc * my) { return LVme_tstBitW(my->lvme, statusid, 15); } -static void Rc_setIrqS(Rc * my) { LVme_setBitW(my->lvme, statusid, 14); } -static void Rc_clrIrqS(Rc * my) { LVme_clrBitW(my->lvme, statusid, 14); } -static int Rc_getIrqS(Rc * my) { return LVme_tstBitW(my->lvme, statusid, 14); } +static void Rc_setIrqR(Rc *my) +{ + LVme_setBitW(my->lvme, statusid, 15); +} +static void Rc_clrIrqR(Rc *my) +{ + LVme_clrBitW(my->lvme, statusid, 15); +} +static int Rc_getIrqR(Rc *my) +{ + return LVme_tstBitW(my->lvme, statusid, 15); +} +static void Rc_setIrqS(Rc *my) +{ + LVme_setBitW(my->lvme, statusid, 14); +} +static void Rc_clrIrqS(Rc *my) +{ + LVme_clrBitW(my->lvme, statusid, 14); +} +static int Rc_getIrqS(Rc *my) +{ + return LVme_tstBitW(my->lvme, statusid, 14); +} -static void Rc_IrqRon(Rc * my) +static void Rc_IrqRon(Rc *my) { Rc_setIrqR(my); } -static void Rc_IrqRoff(Rc * my) +static void Rc_IrqRoff(Rc *my) { Rc_clrIrqR(my); } -static void Rc_IrqSon(Rc * my) +static void Rc_IrqSon(Rc *my) { Rc_setIrqS(my); } -static void Rc_IrqSoff(Rc * my) +static void Rc_IrqSoff(Rc *my) { Rc_clrIrqS(my); } /* BUG register */ -static unsigned short Rc_getBug(Rc * my) +static unsigned short Rc_getBug(Rc *my) { return LVme_getW(my->lvme, bugreg); } /* MEMREG register */ /* Do not use this function alone */ -static unsigned short Rc_readMemreg(Rc * my) +static unsigned short Rc_readMemreg(Rc *my) { return LVme_getW(my->lvme, memreg); } + /* Do not use this function alone */ -static void Rc_writeMemreg(Rc * my, unsigned short value) +static void Rc_writeMemreg(Rc *my, unsigned short value) { LVme_setW(my->lvme, memreg, value); } -static void Rc_setMemfull(Rc * my, unsigned short pages) +static void Rc_setMemfull(Rc *my, unsigned short pages) { unsigned short realMemreg = 0x0000; - pages = pages & 0x07FF; /* PAGES auf untere 11 bits begrenzen */ - if(pages == 0x0000) - { - pages++; /* PAGES muss groesser 1 sein (RCBSY) */ - } - realMemreg = Rc_readMemreg(my); /* Altes Memreg retten */ - realMemreg = realMemreg & 0xF800 ; /* Alte PAGES loeschen */ - realMemreg = realMemreg | pages ; /* Neue PAGES einblenden */ - Rc_writeMemreg(my, realMemreg); /* Memreg zurueckschreiben */ + pages = pages & 0x07FF; /* PAGES auf untere 11 bits begrenzen */ + if (pages == 0x0000) { + pages++; /* PAGES muss groesser 1 sein (RCBSY) */ + } + realMemreg = Rc_readMemreg(my); /* Altes Memreg retten */ + realMemreg = realMemreg & 0xF800; /* Alte PAGES loeschen */ + realMemreg = realMemreg | pages; /* Neue PAGES einblenden */ + Rc_writeMemreg(my, realMemreg); /* Memreg zurueckschreiben */ } /* PAGES register */ /* Do not use this function alone */ -static unsigned short Rc_readPages(Rc * my) +static unsigned short Rc_readPages(Rc *my) { return LVme_getW(my->lvme, pages); } static unsigned short Rc_getPages(Rc *my) { - unsigned short realPages = 0x0000; - realPages = Rc_readPages(my); /* read PAGES content */ - realPages = realPages & 0x07ff; /* mask the number out */ + unsigned short realPages = 0x0000; + realPages = Rc_readPages(my); /* read PAGES content */ + realPages = realPages & 0x07ff; /* mask the number out */ return realPages; /* return value */ } -static void Rc_waitSwitchcomplete(Rc * my) +static void Rc_waitSwitchcomplete(Rc *my) { - unsigned short realPages = 0x0000; - realPages = Rc_readPages(my); /* Altes Register retten */ - realPages = realPages & 0xc000; /* oberste zwei Bits anschauen */ - while((realPages != 0x0000) || (realPages != 0xc000)) /* Schleife, bis beide Bits gleich */ - { - realPages = (Rc_readPages(my) & 0xc000); /* immer wieder reingucken */ + unsigned short realPages = 0x0000; + realPages = Rc_readPages(my); /* Altes Register retten */ + realPages = realPages & 0xc000; /* oberste zwei Bits anschauen */ + while ((realPages != 0x0000) || (realPages != 0xc000)) { /* Schleife, bis beide Bits gleich */ + realPages = (Rc_readPages(my) & 0xc000); /* immer wieder reingucken */ } } -static int Rc_bankRequested(Rc * my) +static int Rc_bankRequested(Rc *my) { unsigned short realPages = 0x0000; realPages = Rc_readPages(my); realPages = ((realPages & 0x4000) >> 14); return (int) realPages; } -static int Rc_bankConfirmed(Rc * my) +static int Rc_bankConfirmed(Rc *my) { unsigned short realPages = 0x0000; realPages = Rc_readPages(my); realPages = ((realPages & 0x8000) >> 15); return (int) realPages; } -static int Rc_SwitchStatus(Rc * my) +static int Rc_SwitchStatus(Rc *my) { unsigned short realPages = 0x0000; realPages = Rc_readPages(my); @@ -432,7 +815,7 @@ static int Rc_SwitchStatus(Rc * my) 0x01: Bank A requested, request still pending 0x00: Bank B requested and activated */ } -static int Rc_testMemfull(Rc * my) +static int Rc_testMemfull(Rc *my) { unsigned short realPages = 0x0000; realPages = Rc_readPages(my); @@ -441,53 +824,53 @@ static int Rc_testMemfull(Rc * my) } /* SEDEC_HIGH register */ -static unsigned short Rc_readSedec_high(Rc * my) +static unsigned short Rc_readSedec_high(Rc *my) { return LVme_getW(my->lvme, sedec_high); } -static void Rc_writeSedec_high(Rc * my, unsigned short value) +static void Rc_writeSedec_high(Rc *my, unsigned short value) { LVme_setW(my->lvme, sedec_high, value); } /* SEDEC_LOW register */ -static unsigned short Rc_readSedec_low(Rc * my) +static unsigned short Rc_readSedec_low(Rc *my) { return LVme_getW(my->lvme, sedec_low); } -static void Rc_writeSedec_low(Rc * my, unsigned short value) +static void Rc_writeSedec_low(Rc *my, unsigned short value) { LVme_setW(my->lvme, sedec_low, value); } /* SEID_HIGH register */ -static unsigned short Rc_readSeid_high(Rc * my) +static unsigned short Rc_readSeid_high(Rc *my) { return LVme_getW(my->lvme, seid_high); } -static void Rc_writeSeid_high(Rc * my, unsigned short value) +static void Rc_writeSeid_high(Rc *my, unsigned short value) { LVme_setW(my->lvme, seid_high, value); } /* SEID_LOW register */ -static unsigned short Rc_readSeid_low(Rc * my) +static unsigned short Rc_readSeid_low(Rc *my) { return LVme_getW(my->lvme, seid_low); } -static void Rc_writeSeid_low(Rc * my, unsigned short value) +static void Rc_writeSeid_low(Rc *my, unsigned short value) { LVme_setW(my->lvme, seid_low, value); } /* VERSIONMEM register */ -static unsigned short Rc_readVersionMem(Rc * my) +static unsigned short Rc_readVersionMem(Rc *my) { return LVme_getW(my->lvme, versionMem); } /* SWCTR register */ -static unsigned short Rc_readSwCtr(Rc * my) +static unsigned short Rc_readSwCtr(Rc *my) { return LVme_getW(my->lvme, swCtr); } @@ -502,16 +885,15 @@ static void Rc_HallOfMemory(Rc *my) LVme_setW(my->lvme, codeMem, 0xc0de); - do - { + do { word = LVme_getW(my->lvme, codeMem); low = word & 0xff; high = (word >> 8) & 0xff; fame[i++] = high; fame[i++] = low; - + } - while(high != 0 || low != 0); + while (high != 0 || low != 0); printf(fame); } @@ -524,50 +906,50 @@ static void Rc_HallOfMemory(Rc *my) /* Offsets for TIMING2 registers */ static const ptrdiff_t evtgReg = busRegion + 0x100; -static const ptrdiff_t errReg = busRegion + 0x102; -static const ptrdiff_t mskReg = busRegion + 0x104; -static const ptrdiff_t stwReg = busRegion + 0x106; +static const ptrdiff_t errReg = busRegion + 0x102; +static const ptrdiff_t mskReg = busRegion + 0x104; +static const ptrdiff_t stwReg = busRegion + 0x106; /* EVTG-Register read/write (16bit wide) */ -static unsigned short Rc_readEvtgreg(Rc * my) +static unsigned short Rc_readEvtgreg(Rc *my) { return LVme_getW(my->lvme, evtgReg); } -static void Rc_writeEvtgreg(Rc * my, unsigned short value) +static void Rc_writeEvtgreg(Rc *my, unsigned short value) { LVme_setW(my->lvme, evtgReg, value); } /* ERR-Register read; write resets register to zero (8bit wide) */ -static int Rc_readErrreg(Rc * my) +static int Rc_readErrreg(Rc *my) { return LVme_getW(my->lvme, errReg); } -static void Rc_writeErrreg(Rc * my, int value) +static void Rc_writeErrreg(Rc *my, int value) { unsigned short realValue = 0x0000; - realValue = 0x0000 | value; + realValue = 0x0000 | value; LVme_setW(my->lvme, errReg, realValue); } /* MSK-Register read/write (8bit wide) */ -static int Rc_readMskreg(Rc * my) +static int Rc_readMskreg(Rc *my) { return LVme_getW(my->lvme, mskReg); } -static void Rc_writeMskreg(Rc * my, int value) +static void Rc_writeMskreg(Rc *my, int value) { unsigned short realValue = 0x0000; - realValue = 0x0000 | value; + realValue = 0x0000 | value; LVme_setW(my->lvme, mskReg, realValue); } /* STW-Register read/write (8bit wide) */ -static int Rc_readStwreg(Rc * my) +static int Rc_readStwreg(Rc *my) { return LVme_getW(my->lvme, stwReg); } -static void Rc_writeStwreg(Rc * my, int value) +static void Rc_writeStwreg(Rc *my, int value) { unsigned short realValue = 0x0000; realValue = 0x0000 | value; @@ -579,74 +961,71 @@ static void Rc_writeStwreg(Rc * my, int value) * Port XC part * ****************/ -static const ptrdiff_t Pstatus = busRegion + 0x002; -static const ptrdiff_t Pcontrol = busRegion + 0x008; +static const ptrdiff_t Pstatus = busRegion + 0x002; +static const ptrdiff_t Pcontrol = busRegion + 0x008; static const ptrdiff_t portOffset = 0x020; -static unsigned short Rc_getPstat(Rc * my, int port) -{ +static unsigned short Rc_getPstat(Rc *my, int port) +{ port = port & 0x07; - return LVme_getW(my->lvme, (port * portOffset + Pstatus)); + return LVme_getW(my->lvme, (port * portOffset + Pstatus)); } -static unsigned short Rc_getPctrl(Rc * my, int port) -{ +static unsigned short Rc_getPctrl(Rc *my, int port) +{ port = port & 0x07; - return LVme_getW(my->lvme, (port * portOffset + Pcontrol)); + return LVme_getW(my->lvme, (port * portOffset + Pcontrol)); } /* ENXCFG bit: enable configuration of frontend FPGAs */ -static void Rc_setXcfg(Rc * my, int port) +static void Rc_setXcfg(Rc *my, int port) { - LVme_setBitW(my->lvme, port * portOffset + Pcontrol, 0); + LVme_setBitW(my->lvme, port * portOffset + Pcontrol, 0); } -static void Rc_clrXcfg(Rc * my, int port) +static void Rc_clrXcfg(Rc *my, int port) { - LVme_clrBitW(my->lvme, port * portOffset + Pcontrol, 0); + LVme_clrBitW(my->lvme, port * portOffset + Pcontrol, 0); } -static int Rc_getXcfg(Rc * my, int port) +static int Rc_getXcfg(Rc *my, int port) { - return LVme_tstBitW(my->lvme, port * portOffset + Pcontrol, 0); + return LVme_tstBitW(my->lvme, port * portOffset + Pcontrol, 0); } -/*************** +/*************** * Memory part * * * ***************/ -static unsigned long Rc_readMem(Rc * my, unsigned long offsetValue) +static unsigned long Rc_readMem(Rc *my, unsigned long offsetValue) { return LVme_getL(my->lvme, memRegion + offsetValue); } -static void Rc_writeMem(Rc * my, unsigned long offsetValue, unsigned long value) +static void Rc_writeMem(Rc *my, unsigned long offsetValue, unsigned long value) { LVme_setL(my->lvme, memRegion + offsetValue, value); } -static void Rc_clearMem(Rc * my) +static void Rc_clearMem(Rc *my) { long i; - const long memSize = 0x80000; + const long memSize = 0x80000; const long clearValue = 0x00000000; - for(i = 0; i < memSize; i = i + 0x04) - { + for (i = 0; i < memSize; i = i + 0x04) { Rc_writeMem(my, i, clearValue); } } -static long Rc_testMem(Rc * my) +static long Rc_testMem(Rc *my) { long i; - const long memSize = 0x80000; + const long memSize = 0x80000; const long clearValue = 0x00000000; unsigned long different = 0x00000000; unsigned long memValue = 0x00000000; - for(i = 0; i < memSize; i = i + 0x04) - { + for (i = 0; i < memSize; i = i + 0x04) { memValue = Rc_readMem(my, i); - if(memValue != clearValue) - { + if (memValue != clearValue) { different++; printf("A: 0x%08x: 0x%08x\n", i, memValue); } @@ -660,46 +1039,42 @@ static long Rc_testMem(Rc * my) * * ***********************/ -static unsigned short Rc_readDpr(Rc * my, unsigned long offsetValue) +static unsigned short Rc_readDpr(Rc *my, unsigned long offsetValue) { unsigned long realValue = 0x00000000; realValue = LVme_getL(my->lvme, dprRegion + offsetValue); realValue = 0x0000FFFF & realValue; return realValue; } -static void Rc_writeDpr(Rc * my, unsigned long offsetValue, unsigned short value) +static void Rc_writeDpr(Rc *my, unsigned long offsetValue, unsigned short value) { unsigned long realValue; realValue = 0x0000FFFF & value; LVme_setL(my->lvme, dprRegion + offsetValue, realValue); } -static void Rc_clearDpr(Rc * my) +static void Rc_clearDpr(Rc *my) { unsigned short i; - const unsigned short dprSize = 0x8000; + const unsigned short dprSize = 0x8000; const unsigned short clearValue = 0x0000; - for(i = 0; i < dprSize; i = i + 0x04) - { - if (i % 256 == 0) - { + for (i = 0; i < dprSize; i = i + 0x04) { + if (i % 256 == 0) { printf("."); } Rc_writeDpr(my, i, clearValue); } printf("\n"); } -static unsigned short Rc_testDpr(Rc * my) +static unsigned short Rc_testDpr(Rc *my) { unsigned short i; - const unsigned short dprSize = 0x8000; + const unsigned short dprSize = 0x8000; const unsigned short clearValue = 0x0000; unsigned short different = 0x0000; unsigned short memValue = 0x0000; - for(i = 0; i < dprSize; i = i + 0x04) - { + for (i = 0; i < dprSize; i = i + 0x04) { memValue = Rc_readDpr(my, i); - if(memValue != clearValue) - { + if (memValue != clearValue) { different++; printf(" -> A: 0x%08x: 0x%04x\n", i, memValue); } @@ -712,11 +1087,11 @@ static unsigned short Rc_testDpr(Rc * my) * * ************************/ -static void Rc_writeDB(Rc * my, ptrdiff_t offset, unsigned short data) +static void Rc_writeDB(Rc *my, ptrdiff_t offset, unsigned short data) { LVme_setW(my->lvme, busRegion + offset, data); } -static unsigned short Rc_readDB(Rc * my, ptrdiff_t offset) +static unsigned short Rc_readDB(Rc *my, ptrdiff_t offset) { return LVme_getW(my->lvme, busRegion + offset); } @@ -727,9 +1102,8 @@ void desRc(Rc *my); -/* This is a comment */ +/* This is a comment */ #endif - diff --git a/hadaq/readout.c b/hadaq/readout.c index 2f64822..9c7803d 100644 --- a/hadaq/readout.c +++ b/hadaq/readout.c @@ -1,4 +1,5 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.24 2002-10-09 16:00:20 hadaq Exp $"; + +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/readout.c,v 6.25 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #define SYSLOG_NAMES @@ -28,7 +29,9 @@ typedef struct TheArgsS { unsigned long queueSize; char verbosity[PARAM_MAX_VALUE_LEN]; char subsystem[PARAM_MAX_VALUE_LEN]; -} TheArgs; +} + +TheArgs; static jmp_buf terminateJmp; @@ -43,7 +46,8 @@ static void usage(const char *progName) syslog(LOG_ERR, "Usage: [-q queueSize] [-w waterMark]"); } -static void argsDump(TheArgs *my) { +static void argsDump(TheArgs *my) +{ syslog(LOG_DEBUG, "waterMark: %d", my->waterMark); syslog(LOG_DEBUG, "priority: %d", my->priority); syslog(LOG_DEBUG, "isStandalone: %d", my->isStandalone); @@ -52,7 +56,8 @@ static void argsDump(TheArgs *my) { syslog(LOG_DEBUG, "subsystem: %s", my->subsystem); } -static void argsDefault(TheArgs *my) { +static void argsDefault(TheArgs *my) +{ my->waterMark = 56 * 1024; my->priority = 0; my->isStandalone = 1; @@ -61,7 +66,8 @@ static void argsDefault(TheArgs *my) { strcpy(my->subsystem, "unknown"); } -static int argsFromCL(TheArgs *my, int argc, char *argv[]) { +static int argsFromCL(TheArgs *my, int argc, char *argv[]) +{ extern char *optarg; int i; @@ -93,7 +99,8 @@ static int argsFromCL(TheArgs *my, int argc, char *argv[]) { return 0; } -static int argsFromParam(TheArgs *my, int argc, char *argv[]) { +static int argsFromParam(TheArgs *my, int argc, char *argv[]) +{ Param paramS, *param = ¶mS; int paramWasFound; @@ -107,7 +114,8 @@ static int argsFromParam(TheArgs *my, int argc, char *argv[]) { desParam(param); } -static void storeInfoStart(const char *n, time_t t, TheArgs *my) { +static void storeInfoStart(const char *n, time_t t, TheArgs *my) +{ Param pS, *p = &pS; int i; char s[20]; @@ -125,14 +133,15 @@ static void storeInfoStart(const char *n, time_t t, TheArgs *my) { desParam(p); } -static void storeInfoStop(const char *n, time_t t, Worker *w) { +static void storeInfoStop(const char *n, time_t t, Worker *w) +{ Param pS, *p = &pS; int i; char s[20]; conSetupParam(p, getenv("DAQ_SETUP")); - for ( i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { + for (i = 0; i < 32 && strcmp(w->statistics[i].name, "") != 0; i++) { Param_storeInt(p, n, w->statistics[i].name, w->statistics[i].value); } strftime(s, 20, "%Y-%m-%dT%H:%M:%S", localtime(&t)); @@ -141,7 +150,7 @@ static void storeInfoStop(const char *n, time_t t, Worker *w) { desParam(p); } -int main(int argc, char *argv[]) +int main(int argc, char *argv[]) { int i; TheArgs theArgsS, *theArgs = &theArgsS; @@ -153,7 +162,7 @@ int main(int argc, char *argv[]) unsigned long *subevtsRead; unsigned long *subevtsDataErr; - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); setlogmask(LOG_UPTO(LOG_INFO)); @@ -164,9 +173,8 @@ int main(int argc, char *argv[]) usage(argv[0]); goto bailOut0; } - for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { + && 0 != strcmp(prioritynames[i].c_name, theArgs->verbosity); i++) { } if (prioritynames[i].c_name == NULL) { goto bailOut0; @@ -186,7 +194,7 @@ int main(int argc, char *argv[]) } if (NULL == (shmTrans = ShmTrans_open("subevtqueue", 2 * theArgs->queueSize))) { syslog(LOG_ERR, - "opening shared memory \"%s\": %s", "subevtqueue", strerror(errno)); + "opening shared memory \"%s\": %s", "subevtqueue", strerror(errno)); goto bailOut2; } trigAccepted = Worker_addStatistic(worker, "trigAccepted"); @@ -196,16 +204,15 @@ int main(int argc, char *argv[]) storeInfoStart(argv[0], time(NULL), theArgs); Worker_initEnd(worker); - + /* at somewhat more than the HadTuQueue header must fit into watermark */ if (theArgs->waterMark < HadTu_hdrSize()) { theArgs->waterMark = HadTu_hdrSize(); } - while (setjmp(terminateJmp) == 0) { void *hadTu; HadTuQueue *hadTuQueue; - size_t transportSize = theArgs->waterMark + Hardware_maxSubEvtSize(hw) + + sizeof(long); /* BUGBUG HadTuQueue truncates size to alignment, so add sizeof(long) here */ + size_t transportSize = theArgs->waterMark + Hardware_maxSubEvtSize(hw) + +sizeof(long); /* BUGBUG HadTuQueue truncates size to alignment, so add sizeof(long) here */ Worker_dump(worker, 1); @@ -213,14 +220,14 @@ int main(int argc, char *argv[]) hadTu = ShmTrans_alloc(shmTrans, transportSize); #ifndef NDEBUG syslog(LOG_DEBUG, - "shmTrans: %p = hadTu: %s", hadTu, HadTu_2charP(hadTu)); + "shmTrans: %p = hadTu: %s", hadTu, HadTu_2charP(hadTu)); #endif hadTuQueue = malloc(HadTuQueue_sizeOf()); conHadTuQueue(hadTuQueue, hadTu, transportSize); while ( - HadTuQueue_size(hadTuQueue) <= theArgs->waterMark - && NULL != (subEvt = HadTuQueue_alloc(hadTuQueue, Hardware_maxSubEvtSize(hw))) - ) { + HadTuQueue_size(hadTuQueue) <= theArgs->waterMark + && NULL != (subEvt = HadTuQueue_alloc(hadTuQueue, Hardware_maxSubEvtSize(hw))) + ) { Hardware_waitForTrigger(hw, subEvt); Hardware_readout(hw, subEvt); diff --git a/hadaq/sam_defs.h b/hadaq/sam_defs.h index 5ff20c8..b283f8c 100644 --- a/hadaq/sam_defs.h +++ b/hadaq/sam_defs.h @@ -1,3 +1,4 @@ + #ifndef SAM_DEFS_H #define SAM_DEFS_H diff --git a/hadaq/shmtrans.c b/hadaq/shmtrans.c index 92db99f..13f6cbc 100644 --- a/hadaq/shmtrans.c +++ b/hadaq/shmtrans.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/shmtrans.c,v 6.6 2002-10-09 12:42:18 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/shmtrans.c,v 6.7 2003-03-02 15:50:10 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L @@ -62,7 +62,7 @@ ShmTrans *ShmTrans_create(const char *name, size_t size) break; default: syslog(LOG_DEBUG, - "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); + "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); goto bailOut1; break; } @@ -97,7 +97,7 @@ ShmTrans *ShmTrans_create(const char *name, size_t size) break; default: syslog(LOG_DEBUG, - "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); + "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); goto bailOut2; break; } @@ -114,7 +114,7 @@ ShmTrans *ShmTrans_create(const char *name, size_t size) break; default: syslog(LOG_DEBUG, - "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); + "%s, line %d: %s", __FILE__, __LINE__, strerror(errno)); goto bailOut3; break; } diff --git a/hadaq/shmtrans.h b/hadaq/shmtrans.h index 86e6da9..0e581dc 100644 --- a/hadaq/shmtrans.h +++ b/hadaq/shmtrans.h @@ -1,3 +1,4 @@ + #ifndef SHMTRANS_H #define SHMTRANS_H @@ -13,13 +14,15 @@ #include "hadtuqueue.h" typedef struct ShmTransS { - char name[_POSIX_PATH_MAX]; - PsxShm *shm; - HadTuQueue *rdQueue; - HadTuQueue *wrQueue; - sem_t *switchRequest; - sem_t *switchComplete; -} ShmTrans; + char name[_POSIX_PATH_MAX]; + PsxShm *shm; + HadTuQueue *rdQueue; + HadTuQueue *wrQueue; + sem_t *switchRequest; + sem_t *switchComplete; +} + +ShmTrans; ShmTrans *ShmTrans_create(const char *name, size_t size); ShmTrans *ShmTrans_open(const char *name, size_t size); diff --git a/hadaq/showevt.c b/hadaq/showevt.c index e9b7ad4..cc5bec9 100644 --- a/hadaq/showevt.c +++ b/hadaq/showevt.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/showevt.c,v 6.7 2001-11-18 11:56:21 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/showevt.c,v 6.8 2003-03-02 15:50:10 hadaq Exp $"; #define _ANSI_C_SOURCE @@ -28,11 +28,11 @@ int analyseEvt(void *evt) /* print the event header */ printf( - "size: 0x%08x decoding: 0x%08x id: 0x%08x seqNr: 0x%08x\n" - "date: %s time: %s runNr: 0x%08x expId: %s\n", - Evt_size(evt), Evt_decoding(evt), Evt_id(evt), Evt_seqNr(evt), - Evt_date2charP(evt), Evt_time2charP(evt), Evt_runNr(evt), - Evt_expId2charP(evt) + "size: 0x%08x decoding: 0x%08x id: 0x%08x seqNr: 0x%08x\n" + "date: %s time: %s runNr: 0x%08x expId: %s\n", + Evt_size(evt), Evt_decoding(evt), Evt_id(evt), Evt_seqNr(evt), + Evt_date2charP(evt), Evt_time2charP(evt), Evt_runNr(evt), + Evt_expId2charP(evt) ); i = 0; diff --git a/hadaq/sniff.c b/hadaq/sniff.c index cd50eb7..1b52a39 100644 --- a/hadaq/sniff.c +++ b/hadaq/sniff.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/sniff.c,v 6.7 2003-02-21 18:58:44 sailer Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/sniff.c,v 6.8 2003-03-02 15:50:10 hadaq Exp $"; #define SYSLOG_NAMES @@ -19,11 +19,12 @@ main(int argc, char *argv[]) CLIENT *cl; char *server; int i; - struct timespec t = {5, 0}; + struct timespec t = + {5, 0}; struct rpc_err rpcErrS, *rpcErr = &rpcErrS; rpcevt rpcEvtS, *rpcEvt = &rpcEvtS; - openlog(argv[0], LOG_PID|LOG_PERROR, LOG_LOCAL0); + openlog(argv[0], LOG_PID | LOG_PERROR, LOG_LOCAL0); setlogmask(LOG_UPTO(LOG_INFO)); @@ -37,7 +38,7 @@ main(int argc, char *argv[]) break; case 'v': for (i = 0; prioritynames[i].c_name != NULL - && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { + && 0 != strcmp(prioritynames[i].c_name, optarg); i++) { } if (prioritynames[i].c_name != NULL) { setlogmask(LOG_UPTO(prioritynames[i].c_val)); diff --git a/hadaq/subevt.c b/hadaq/subevt.c index 75dc114..731e755 100644 --- a/hadaq/subevt.c +++ b/hadaq/subevt.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/subevt.c,v 6.9 2002-10-09 12:42:19 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/subevt.c,v 6.10 2003-03-02 15:50:10 hadaq Exp $"; #include @@ -9,76 +9,77 @@ static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hada #include "subevt.h" -uint32_t SubEvt_dataValue(const void *my, unsigned idx) { - uint32_t val; - - switch (SubEvt_alignment(my)) { - case 4: - if (SubEvt_isSwapped(my)) { - uint32_t tmp0; - uint32_t tmp1; - - tmp0 = ((uint32_t *)SubEvt_data(my))[idx]; - ((char *) &tmp1)[0] = ((char *) &tmp0)[3]; - ((char *) &tmp1)[1] = ((char *) &tmp0)[2]; - ((char *) &tmp1)[2] = ((char *) &tmp0)[1]; - ((char *) &tmp1)[3] = ((char *) &tmp0)[0]; - val = tmp1; - } else { - val = ((uint32_t *)SubEvt_data(my))[idx]; - } - break; - case 2: - if (SubEvt_isSwapped(my)) { - uint16_t v; - swab(((uint16_t *)SubEvt_data(my)) + idx, &v, 2); - val = v; - } else { - val = ((uint16_t *)SubEvt_data(my))[idx]; - } - break; - default: - val = ((uint8_t *)SubEvt_data(my))[idx]; - break; - } - return val; +uint32_t SubEvt_dataValue(const void *my, unsigned idx) +{ + uint32_t val; + + switch (SubEvt_alignment(my)) { + case 4: + if (SubEvt_isSwapped(my)) { + uint32_t tmp0; + uint32_t tmp1; + + tmp0 = ((uint32_t *) SubEvt_data(my))[idx]; + ((char *) &tmp1)[0] = ((char *) &tmp0)[3]; + ((char *) &tmp1)[1] = ((char *) &tmp0)[2]; + ((char *) &tmp1)[2] = ((char *) &tmp0)[1]; + ((char *) &tmp1)[3] = ((char *) &tmp0)[0]; + val = tmp1; + } else { + val = ((uint32_t *) SubEvt_data(my))[idx]; + } + break; + case 2: + if (SubEvt_isSwapped(my)) { + uint16_t v; + swab(((uint16_t *) SubEvt_data(my)) + idx, &v, 2); + val = v; + } else { + val = ((uint16_t *) SubEvt_data(my))[idx]; + } + break; + default: + val = ((uint8_t *) SubEvt_data(my))[idx]; + break; + } + return val; } char *SubEvt_2charP(const void *my) { - static char buf[132]; + static char buf[132]; - sprintf(buf, "size: 0x%08x\tdecoding: 0x%08x\tid: 0x%08x\ttrigNr: 0x%08x", - SubEvt_size(my), SubEvt_decoding(my), SubEvt_id(my), SubEvt_trigNr(my)); + sprintf(buf, "size: 0x%08x\tdecoding: 0x%08x\tid: 0x%08x\ttrigNr: 0x%08x", + SubEvt_size(my), SubEvt_decoding(my), SubEvt_id(my), SubEvt_trigNr(my)); - return buf; + return buf; } void *newSubEvt(uint32_t decoding, uint32_t id, uint32_t trigNr) { - void *my; + void *my; - my = malloc(SubEvt_hdrSize()); + my = malloc(SubEvt_hdrSize()); - SubEvt_setSize(my, SubEvt_hdrSize()); - SubEvt_setDecoding(my, decoding); - SubEvt_setId(my, id); - SubEvt_setTrigNr(my, trigNr); + SubEvt_setSize(my, SubEvt_hdrSize()); + SubEvt_setDecoding(my, decoding); + SubEvt_setId(my, id); + SubEvt_setTrigNr(my, trigNr); - return my; + return my; } void deleteSubEvt(void *my) { - free(my); + free(my); } void *SubEvt_appendData(void *my, const void *data, size_t size) { - my = realloc(my, SubEvt_paddedSize(my) + size); - memcpy(SubEvt_end(my), data, size); - SubEvt_setSize(my, SubEvt_paddedSize(my) + size); + my = realloc(my, SubEvt_paddedSize(my) + size); + memcpy(SubEvt_end(my), data, size); + SubEvt_setSize(my, SubEvt_paddedSize(my) + size); - return my; + return my; } diff --git a/hadaq/subevt.h b/hadaq/subevt.h index d012561..d66ac29 100644 --- a/hadaq/subevt.h +++ b/hadaq/subevt.h @@ -1,3 +1,4 @@ + #ifndef SUBEVT_H #define SUBEVT_H @@ -7,29 +8,29 @@ #include "hadtu.h" enum SubEvtId { - SubEvtId_invalid = 0, - SubEvtId_test1 = 1, - SubEvtId_slow = 2, - SubEvtId_test2 = 3, - SubEvtId_mdc = 6, - SubEvtId_shower = 7, - SubEvtId_rich = 8, - SubEvtId_tof = 9, - SubEvtId_start = 10, - SubEvtId_veto = 11, - SubEvtId_richPed = 12, - SubEvtId_tofTest = 400, - SubEvtId_trigCode = 500, - SubEvtId_trigInfo = 501, - SubEvtId_slowTest = 600 + SubEvtId_invalid = 0, + SubEvtId_test1 = 1, + SubEvtId_slow = 2, + SubEvtId_test2 = 3, + SubEvtId_mdc = 6, + SubEvtId_shower = 7, + SubEvtId_rich = 8, + SubEvtId_tof = 9, + SubEvtId_start = 10, + SubEvtId_veto = 11, + SubEvtId_richPed = 12, + SubEvtId_tofTest = 400, + SubEvtId_trigCode = 500, + SubEvtId_trigInfo = 501, + SubEvtId_slowTest = 600 }; enum SubEvtDecoding { - SubEvtDecoding_8bitData = 1, - SubEvtDecoding_16bitData = (1 << 16) | 1, - SubEvtDecoding_32bitData = (2 << 16) | 1, - SubEvtDecoding_text = 2, - SubEvtDecoding_SubEvts = (3 << 16) | 3 + SubEvtDecoding_8bitData = 1, + SubEvtDecoding_16bitData = (1 << 16) | 1, + SubEvtDecoding_32bitData = (2 << 16) | 1, + SubEvtDecoding_text = 2, + SubEvtDecoding_SubEvts = (3 << 16) | 3 }; #define SubEvt_hdr HadTu_hdr @@ -48,31 +49,31 @@ enum SubEvtDecoding { enum SubEvtIdx { - SubEvtIdx_size, - SubEvtIdx_decoding, - SubEvtIdx_id, - SubEvtIdx_trigNr, - SubEvtIdx_data + SubEvtIdx_size, + SubEvtIdx_decoding, + SubEvtIdx_id, + SubEvtIdx_trigNr, + SubEvtIdx_data }; static size_t SubEvt_hdrLen(void) { - return SubEvtIdx_data; + return SubEvtIdx_data; } static size_t SubEvt_hdrSize(void) { - return SubEvt_hdrLen() * sizeof(uint32_t); + return SubEvt_hdrLen() * sizeof(uint32_t); } static size_t SubEvt_dataSize(const void *my) { - return SubEvt_size(my) - SubEvt_hdrSize(); + return SubEvt_size(my) - SubEvt_hdrSize(); } static void *SubEvt_data(const void *my) { - return (void *) ((char *) my + SubEvt_hdrSize()); + return (void *) ((char *) my + SubEvt_hdrSize()); } uint32_t SubEvt_dataValue(const void *my, unsigned idx); @@ -81,40 +82,42 @@ char *SubEvt_2charP(const void *my); static uint32_t SubEvt_id(const void *my) { - return SubEvt_hdrValue(my, SubEvtIdx_id); + return SubEvt_hdrValue(my, SubEvtIdx_id); } static uint32_t SubEvt_pureId(const void *my) { - return SubEvt_id(my) & 0x7fffffffUL; + return SubEvt_id(my) & 0x7fffffffUL; } static int SubEvt_dataError(const void *my) { - return (SubEvt_id(my) & 0x80000000UL) != 0; + return (SubEvt_id(my) & 0x80000000UL) != 0; } static void SubEvt_setId(void *my, uint32_t id) { - SubEvt_setHdrValue(my, SubEvtIdx_id, id); + SubEvt_setHdrValue(my, SubEvtIdx_id, id); } -static int SubEvt_setDataError(void *my) { - SubEvt_setId(my, SubEvt_id(my) | 0x80000000UL); +static int SubEvt_setDataError(void *my) +{ + SubEvt_setId(my, SubEvt_id(my) | 0x80000000UL); } -static int SubEvt_clrDataError(void *my) { - SubEvt_setId(my, SubEvt_id(my) & ~0x80000000UL); +static int SubEvt_clrDataError(void *my) +{ + SubEvt_setId(my, SubEvt_id(my) & ~0x80000000UL); } static uint32_t SubEvt_trigNr(const void *my) { - return SubEvt_hdrValue(my, SubEvtIdx_trigNr); + return SubEvt_hdrValue(my, SubEvtIdx_trigNr); } static void SubEvt_setTrigNr(void *my, uint32_t trigNr) { - SubEvt_setHdrValue(my, SubEvtIdx_trigNr, trigNr); + SubEvt_setHdrValue(my, SubEvtIdx_trigNr, trigNr); } void *newSubEvt(uint32_t decoding, uint32_t id, uint32_t trigNr); diff --git a/hadaq/tcldaq.c b/hadaq/tcldaq.c index 4dabfa1..053fd90 100644 --- a/hadaq/tcldaq.c +++ b/hadaq/tcldaq.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/tcldaq.c,v 6.11 2003-02-06 10:06:51 hadaq Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/tcldaq.c,v 6.12 2003-03-02 15:50:10 hadaq Exp $"; #define _GNU_SOURCE #include @@ -23,7 +23,9 @@ typedef struct ThrArgsS { int id; char *agent; char *command; -} ThrArgs; +} + +ThrArgs; int AgentCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[]) { @@ -110,20 +112,20 @@ int SystemCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[] Tcl_AppendResult(interp, "usage: c_system command", NULL); return TCL_ERROR; } - strcpy(agents[nThr++], argv[1]); if (NULL == (cl = clnt_create(argv[1], DAQAGENTPROG, DAQAGENTVERS, "tcp"))) { Tcl_AppendResult(interp, clnt_spcreateerror(argv[1]), NULL); SystemCmdR = TCL_ERROR; } else { - struct timeval TIMEOUT = { 0, 0 }; + struct timeval TIMEOUT = + {0, 0}; struct rpc_err rpcErr; - clnt_control(cl, CLSET_TIMEOUT, (char *)&TIMEOUT); - rpcsystem_1(&argv[2], cl); /* will produce a timeout */ + clnt_control(cl, CLSET_TIMEOUT, (char *) &TIMEOUT); + rpcsystem_1(&argv[2], cl); /* will produce a timeout */ clnt_geterr(cl, &rpcErr); - if (rpcErr.re_status != RPC_TIMEDOUT) { /* a real error */ + if (rpcErr.re_status != RPC_TIMEDOUT) { /* a real error */ Tcl_AppendResult(interp, clnt_sperror(cl, "rpcsystem_1"), NULL); SystemCmdR = TCL_ERROR; } else { @@ -148,9 +150,10 @@ int JoinAllCmd(ClientData clientData, Tcl_Interp * interp, int argc, char *argv[ Tcl_AppendResult(interp, clnt_spcreateerror(argv[1]), NULL); JoinAllCmdR = TCL_ERROR; } else { - struct timeval TIMEOUT = { 120, 0 }; + struct timeval TIMEOUT = + {120, 0}; - clnt_control(cl, CLSET_TIMEOUT, (char *)&TIMEOUT); + clnt_control(cl, CLSET_TIMEOUT, (char *) &TIMEOUT); if (NULL == rpcjoin_1(&dummy, cl)) { Tcl_AppendResult(interp, clnt_sperror(cl, "rpcjoin_1"), NULL); JoinAllCmdR = TCL_ERROR; diff --git a/hadaq/tof_defs.h b/hadaq/tof_defs.h index c7ddf5e..4787d32 100644 --- a/hadaq/tof_defs.h +++ b/hadaq/tof_defs.h @@ -1,7 +1,8 @@ + /**** Headerfile for TOF-IPU registers */ /**** created: E.Lins 13-Jan-2000 */ -/* $Id: tof_defs.h,v 1.3 2000-11-11 11:32:33 hades Exp $ */ +/* $Id: tof_defs.h,v 1.4 2003-03-02 15:50:10 hadaq Exp $ */ /* $Source: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/tof_defs.h,v $ */ @@ -42,15 +43,15 @@ /* register offsets (32bit words) in configbase area */ #define CFG_MASTER_CONTROL 0x0000 -#define _START_TIP 0 -#define _LVL2_TRIG_ACTIVE 1 -#define _LVL2_LINK_ACTIVE 2 -#define _MU_LINK_ACTIVE 3 +#define _START_TIP 0 +#define _LVL2_TRIG_ACTIVE 1 +#define _LVL2_LINK_ACTIVE 2 +#define _MU_LINK_ACTIVE 3 #define _LVL2_PIPE1_RQ 4 #define _LVL2_PIPE2_RQ 5 #define CFG_MASTER_STATUS 0x0004 -#define _LVL1_PIPE_FULL 0 +#define _LVL1_PIPE_FULL 0 #define _LVL2_PIPE1_FULL 1 #define _LVL2_PIPE2_FULL 2 #define _LVL2_PIPE 3 @@ -58,7 +59,7 @@ #define _LVL2_PIPE2_GR 5 #define CFG_DEBUG_CONTROL 0x0008 -#define _DEBUG_DUMP 3 +#define _DEBUG_DUMP 3 #define CFG_LVL1_PIPE_SIZE 0x000c @@ -69,10 +70,10 @@ #define CFG_TOTAL_EVENTS 0x0020 - + /* number of vme modules to be rout */ #define CFG_NOF_MODULES 0x002c - + /* declaration of vme modules toread out starts here */ #define CFG_VME_MODULES 0x0030 /* one vme module is described with ... words */ diff --git a/hadaq/worker.c b/hadaq/worker.c index 40b4d9f..29649c8 100644 --- a/hadaq/worker.c +++ b/hadaq/worker.c @@ -1,4 +1,4 @@ -static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.17 2003-02-21 18:58:44 sailer Exp $"; +static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/worker.c,v 6.18 2003-03-02 15:50:11 hadaq Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -125,7 +125,7 @@ static int closeStatShm(Worker *my) static int removeSigHandlers(Worker *my) { return sigaction(my->signal0, my->oldSigAction0, NULL) - | sigaction(my->signal1, my->oldSigAction1, NULL); + | sigaction(my->signal1, my->oldSigAction1, NULL); } static int installSigHandlers(Worker *my, int s0, int s1, @@ -144,14 +144,12 @@ static int installSigHandlers(Worker *my, int s0, int s1, syslog(LOG_DEBUG, "%s:%d: %s", __FILE__, __LINE__, strerror(errno)); my->oldSigAction0 = NULL; } - my->signal1 = s1; my->oldSigAction1 = &my->oldSigAction1S; if (0 > sigaction(my->signal1, act, my->oldSigAction1)) { syslog(LOG_DEBUG, "%s:%d: %s", __FILE__, __LINE__, strerror(errno)); my->oldSigAction1 = NULL; } - if (my->oldSigAction0 == NULL || my->oldSigAction1 == NULL) { removeSigHandlers(my); retVal = -1; @@ -172,7 +170,6 @@ Worker *Worker_initBegin(const char *name, void (*sigHandler) (int), syslog(LOG_ERR, "%s:%d: %s", __FILE__, __LINE__, strerror(errno)); return NULL; } - strcpy(my->name, name); my->pid = getpid(); my->isStandalone = isStandalone; @@ -200,7 +197,6 @@ Worker *Worker_initBegin(const char *name, void (*sigHandler) (int), if (0 > changePriority(priority)) { syslog(LOG_WARNING, "changeing priority: %s", strerror(errno)); } - retVal = my; } @@ -232,7 +228,8 @@ int Worker_start(const char *path, char *const argv[]) { int retVal; Worker myS, *my = &myS; - struct timespec t = {1, 0}; + struct timespec t = + {1, 0}; strcpy(my->name, argv[0]); #ifndef WORKER_NEW_PROTOCOL @@ -259,7 +256,7 @@ int Worker_start(const char *path, char *const argv[]) /* BUGBUG there should be a timeout here */ sigemptyset(sigMask); /* This is the parent, so wait for the */ - sigsuspend(sigMask); /* child to initialize */ + sigsuspend(sigMask);/* child to initialize */ if (sigReceived == SIGCHLD) { nanosleep(&t, NULL); @@ -332,7 +329,8 @@ char *Worker_status(const char *name) void Worker_stop(const char *name, int timeout) { Worker myS, *my = &myS; - struct timespec t = {1, 0}; + struct timespec t = + {1, 0}; strcpy(my->name, name); @@ -340,7 +338,7 @@ void Worker_stop(const char *name, int timeout) my->pid = my->statistics[0].value; if (my->pid > 0) { if (0 == kill(my->pid, SIGTERM)) { - nanosleep(&t, NULL); /* LynxOS had problem without this */ + nanosleep(&t, NULL); /* LynxOS had problem without this */ waitpid(my->pid, NULL, 0); } } diff --git a/hadaq/worker.h b/hadaq/worker.h index b1ce58b..6633da6 100644 --- a/hadaq/worker.h +++ b/hadaq/worker.h @@ -1,3 +1,4 @@ + #ifndef WORKER_H #define WORKER_H @@ -12,7 +13,9 @@ typedef struct StatisticS { char name[WORKER_MAX_NAME_LEN]; unsigned long value; -} Statistic; +} + +Statistic; typedef struct WorkerS { char name[_POSIX_PATH_MAX]; @@ -26,7 +29,9 @@ typedef struct WorkerS { Statistic *statistics; pid_t pid; int isStandalone; -} Worker; +} + +Worker; int Worker_start(const char *path, char *const argv[]); char *Worker_status(const char *name); -- 2.43.0