-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 <unistd.h>
#include "hardware.h"
+#define NRACES 2
+
+typedef struct ModulesS {
+ HwRace *race[NRACES];
+}
+
size_t Hardware_maxSubEvtSize(const Hardware *my)
{
return my->maxSubEvtSize;
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);
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);
void Hardware_readout(const Hardware *my, void *subEvt)
{
- HwRace *race = (HwRace *) my->specific;
+ HwRace **race = ((Modules *) my->specific)->race;
HwRace_readSubEvt(race, subEvt);
}