From: hades Date: Sun, 5 Sep 1999 20:23:22 +0000 (+0000) Subject: not working, intermediate with specific pointer X-Git-Url: https://jspc29.x-matter.uni-frankfurt.de/git/?a=commitdiff_plain;h=2d199bb27f8a23246f937836d3348aee8fc638d0;p=daqdata.git not working, intermediate with specific pointer --- diff --git a/hadaq/hwrich.c b/hadaq/hwrich.c index e62273a..b365301 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.1 1999-08-31 10:37:24 muench Exp $"; +static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.2 1999-09-05 20:23:22 hades Exp $"; #define _POSIX_C_SOURCE 199309L #include @@ -19,6 +19,12 @@ struct HardwareS { #include "hardware.h" +#define NRACES 2 + +typedef struct ModulesS { + HwRace *race[NRACES]; +} + size_t Hardware_maxSubEvtSize(const Hardware *my) { return my->maxSubEvtSize; @@ -41,16 +47,22 @@ Hardware *newHardware(void) return NULL; } my = allocMem(sizeof(Hardware)); - my->specific = allocMem(sizeof(race)); + my->specific = allocMem(sizeof(Modules)); my->maxSubEvtSize = SubEvt_hdrSize() + (2564 * sizeof(UInt4)); - race = allocMem(sizeof(HwRace)); - if (0 > conHwRace(race, "race", param)) { - msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno)); - return NULL; - } (HwRace *) my->specific = race; + for (i = 0; i < NRACES; i++) { + char buf[16]; + + race[i] = allocMem(sizeof(HwRace)); + sprintf(buf, "race%d", i); + if (0 > conHwRace(race[i], buf, param)) { + msglog(LOG_DEBUG, "%s:%d:%s\n", __FILE__, __LINE__, strerror(errno)); + return NULL; + } + ((Modules *) my->specific)->race[i] = race[i]; + } desParam(param); @@ -59,17 +71,20 @@ Hardware *newHardware(void) void deleteHardware(Hardware *my) { - HwRace *race = (HwRace *) my->specific; + HwRace **race = ((Modules *) my->specific)->race; + int i; - desHwRace(race); - freeMem(race); + for (i = 0; i < NRACES; i++) { + desHwRace(race[i]); + freeMem(race[i]); + } freeMem(my); } void Hardware_waitForTrigger(const Hardware *my, void *subEvt) { - HwRace *race = (HwRace *) my->specific; + HwRace **race = ((Modules *) my->specific)->race; if (HwRace_isEmpty(race)) { HwRace_requestBuffer(race); @@ -86,7 +101,7 @@ void Hardware_waitForTrigger(const Hardware *my, void *subEvt) void Hardware_readout(const Hardware *my, void *subEvt) { - HwRace *race = (HwRace *) my->specific; + HwRace **race = ((Modules *) my->specific)->race; HwRace_readSubEvt(race, subEvt); }