COPTS = -g
CFLAGS = $(COPTS) $(INCLUDES) $(DEFINES)
-DAQCTRL_OBJS = daqctrl.o daq_lib.o param.o \
+DAQCTRL_OBJS = daqctrl.o daq_lib.o \
worker.o psxshm.o mman.o
DAQ_XMANAGE_OBJS = tcldaq.o tkAppInit.o \
agent_clnt.o agent_xdr.o worker.o psxshm.o mman.o
worker.o psxshm.o mman.o
DAQ_READOUT_OBJS = readout.o \
worker.o \
- $(HW_OBJS) param.o subevt.o \
+ $(HW_OBJS) subevt.o \
shmtrans.o semaphore.o hadtuqueue.o \
psxshm.o mman.o \
hadtu.o
hadtu.o: hadtu.c hadtu.h
hadtuqueue.o: hadtuqueue.c hadtu.h hadtuqueue.h
hldread.o: hldread.c evt.h hadtu.h subevt.h hldread.h
-hwdtu.o: hwdtu.c subevt.h hadtu.h param.h hwdtu.h rc.h
-hwmdc.o: hwmdc.c param.h subevt.h hadtu.h hwsam.h hardware.h
-hwrace.o: hwrace.c subevt.h hadtu.h param.h rc.h hwrace.h
-hwrich.o: hwrich.c param.h subevt.h hadtu.h hwrace.h rc.h hardware.h
-hwsam.o: hwsam.c subevt.h hadtu.h sam_defs.h hwsam.h param.h
-hwship.o: hwship.c param.h ipc_basis.h hwship.h
-hwshow.o: hwshow.c param.h subevt.h hadtu.h hwship.h hardware.h
-hwsis3801.o: hwsis3801.c subevt.h hadtu.h param.h hwsis3801.h rc.h
-hwsoft.o: hwsoft.c subevt.h hadtu.h param.h hardware.h
-hwtbus.o: hwtbus.c param.h subevt.h hadtu.h hwdtu.h rc.h hardware.h
-hwtip.o: hwtip.c subevt.h hadtu.h param.h tof_defs.h hwtip.h
-hwtof.o: hwtof.c param.h subevt.h hadtu.h hwtip.h hardware.h
-hwtrig.o: hwtrig.c subevt.h hadtu.h param.h hardware.h
-hwv488.o: hwv488.c subevt.h hadtu.h param.h hwv488.h rc.h
-hwv775.o: hwv775.c subevt.h hadtu.h param.h hwv775.h rc.h
-hwv878.o: hwv878.c subevt.h hadtu.h param.h hwv878.h rc.h
+hwdtu.o: hwdtu.c subevt.h hadtu.h hwdtu.h rc.h
+hwmdc.o: hwmdc.c subevt.h hadtu.h hwsam.h hardware.h
+hwrace.o: hwrace.c subevt.h hadtu.h rc.h hwrace.h
+hwrich.o: hwrich.c subevt.h hadtu.h hwrace.h rc.h hardware.h
+hwsam.o: hwsam.c subevt.h hadtu.h sam_defs.h hwsam.h
+hwship.o: hwship.c ipc_basis.h hwship.h
+hwshow.o: hwshow.c subevt.h hadtu.h hwship.h hardware.h
+hwsis3801.o: hwsis3801.c subevt.h hadtu.h hwsis3801.h rc.h
+hwsoft.o: hwsoft.c subevt.h hadtu.h hardware.h
+hwtbus.o: hwtbus.c subevt.h hadtu.h hwdtu.h rc.h hardware.h
+hwtip.o: hwtip.c subevt.h hadtu.h tof_defs.h hwtip.h
+hwtof.o: hwtof.c subevt.h hadtu.h hwtip.h hardware.h
+hwtrig.o: hwtrig.c subevt.h hadtu.h hardware.h
+hwv488.o: hwv488.c subevt.h hadtu.h hwv488.h rc.h
+hwv775.o: hwv775.c subevt.h hadtu.h hwv775.h rc.h
+hwv878.o: hwv878.c subevt.h hadtu.h hwv878.h rc.h
memnet.o: memnet.c shmtrans.h semaphore.h psxshm.h hadtuqueue.h \
hadtu.h nettrans.h worker.h
mman.o: mman.c mman.h
online_clnt.o: online_clnt.c online.h
online_svc.o: online_svc.c online.h
online_xdr.o: online_xdr.c online.h
-param.o: param.c param.h
psxshm.o: psxshm.c mman.h psxshm.h
rc.o: rc.c rc.h
readout.o: readout.c grmblfx.h hardware.h shmtrans.h semaphore.h \
-static char rcsId[] = "$Id: daq_lib.c,v 6.1 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Id: daq_lib.c,v 6.2 2000-09-21 09:28:47 hades Exp $";
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <lvme.h>
-#include "param.h"
+#include <p.h>
#include "worker.h"
#include "daq_lib.h"
-int Daq_reset(const char *name, const Param *param)
+typedef struct OurParamsS {
+ char file[PARAM_MAX_VALUE_LEN];
+ char args[PARAM_MAX_VALUE_LEN];
+} OurParams;
+
+static OurParams *getParams(const char *n, const Param *p) {
+ static OurParams *pa = NULL;
+
+ if (pa == NULL) {
+ int i;
+
+ pa = malloc(sizeof(OurParams));
+
+ if (pa == NULL
+ || -1 == Param_getString(p, n, "file", &i, pa->file) || i == 0
+ || -1 == Param_getString(p, n, "args", &i, pa->args) || i == 0
+ ) {
+ free(pa);
+ pa = NULL;
+ }
+ }
+
+ return pa;
+}
+
+int Daq_reset(const char *n, const Param *p)
{
- Daq_stop(name, param);
+ Daq_stop(n, p);
return 0;
}
-int Daq_init(const char *name, const Param *param)
+int Daq_init(const char *n, const Param *p)
{
- Daq_reset(name, param);
+ Daq_reset(n, p);
return 0;
}
-int Daq_start(const char *name, const Param *param)
+int Daq_start(const char *n, const Param *p)
{
- const char *file;
- const char *args;
char *argv[512];
int i;
char *s;
+ OurParams *pa;
- file = Param_getString(param, name, "file");
- args = Param_getString(param, name, "args");
+ pa = getParams(n, p);
i = 0;
- s = malloc(strlen(args));
- strcpy(s, args);
+ s = malloc(strlen(pa->args) + 1);
+ strcpy(s, pa->args);
while((argv[i++] = strtok(s, " \t\n")) != NULL) {
s = NULL;
}
free(s);
- return Worker_start(file, argv);
+ return Worker_start(pa->file, argv);
}
-int Daq_stop(const char *name, const Param *param)
+int Daq_stop(const char *n, const Param *p)
{
- const char *args;
char *s;
+ OurParams *pa;
- args = Param_getString(param, name, "args");
- s = malloc(strlen(args));
- strcpy(s, args);
+ pa = getParams(n, p);
+ s = malloc(strlen(pa->args) + 1);
+ strcpy(s, pa->args);
strtok(s, " \t\n");
Worker_stop(s, 15);
free(s);
return 0;
}
-int Daq_status(const char *name, const Param *param)
+int Daq_status(const char *n, const Param *p)
{
- const char *args;
char *s;
+ OurParams *pa;
- args = Param_getString(param, name, "args");
- s = malloc(strlen(args));
- strcpy(s, args);
+ pa = getParams(n, p);
+ s = malloc(strlen(pa->args) + 1);
+ strcpy(s, pa->args);
strtok(s, " \t\n");
puts(Worker_status(s));
free(s);
#ifndef Daq_LIB_H
#define Daq_LIB_H
-#include "param.h"
+#include <param.h>
int Daq_init(const char *name, const Param *param);
int Daq_reset(const char *name, const Param *param);
-static char rcsId[] = "$Id: daqctrl.c,v 6.1 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Id: daqctrl.c,v 6.2 2000-09-21 09:28:47 hades Exp $";
#include <stdlib.h>
#include <stddef.h>
#include <strings.h>
#include <signal.h>
-#include "param.h"
+#include <param.h>
#include "daq_lib.h"
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwdtu.c,v 1.3 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwdtu.c,v 1.4 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include "subevt.h"
-#include "param.h"
+#include <param.h>
#include "hwdtu.h"
int conHwDtu(HwDtu *my, const char *name, const Param *param)
{
unsigned long cardBase;
+ int paramWasFound;
int i;
assert(my != NULL);
strcpy(my->name, name);
my->trigNr = 0;
- cardBase = Param_getInt(param, my->name, "cardbase");
+ Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", my->name, "cardbase");
+ cardBase = 0;
+ }
+
my->lvme = allocMem(sizeof(LVme));
if (0 > conLVme(my->lvme, cardBase, 0x10000, 0x09, DTU_MAGIC, 1)) {
#include <lvme.h>
#include "rc.h"
-#include "param.h"
+#include <param.h>
typedef struct HwDtuS {
char name[16];
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwmdc.c,v 6.4 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwmdc.c,v 6.5 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
-#include "param.h"
+#include <param.h>
#include "subevt.h"
#include "hwsam.h"
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.7 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrace.c,v 6.8 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include "subevt.h"
-#include "param.h"
+#include <param.h>
#include "rc.h"
#include "hwrace.h"
int conHwRace(HwRace *my, const char *name, const Param *param)
{
unsigned long cardBase;
+ int paramWasFound;
int i;
assert(my != NULL);
my->trigNr = 0;
- cardBase = Param_getInt(param, my->name, "cardbase");
+ Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", my->name, "cardbase");
+ cardBase = 0;
+ }
+
my->rc = allocMem(sizeof(Rc));
if (0 > conRc(my->rc, "rc", cardBase)) {
#include <lvme.h>
#include "rc.h"
-#include "param.h"
+#include <param.h>
typedef struct HwRaceS {
char name[16];
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.8 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwrich.c,v 6.9 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include "dtu_defs.h"
#endif
-#include "param.h"
+#include <param.h>
#include "subevt.h"
#include "hwrace.h"
int conHwSam(HwSam * my, const char *name, const Param *param)
{
unsigned long cardBase;
+ int paramWasFound;
int i;
assert(my != NULL);
strcpy(my->name, name);
- cardBase = Param_getInt(param, my->name, "cardbase");
+ Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", my->name, "cardbase");
+ cardBase = 0;
+ }
+
my->cram = allocMem(sizeof(LVme));
if (0 > conLVme(my->cram, cardBase, 0x10000L, 0x09, 0x0, 4)) {
msglog(LOG_ERR, "HwSam on %p not found\n", cardBase);
#include <lvme.h>
-#include "param.h"
+#include <param.h>
typedef struct HwSamS {
char name[16];
#include <hadesstd.h>
#include <lvme.h>
-#include "param.h"
+#include <param.h>
#include "ipc_basis.h"
#include "hwship.h"
int conHwShip(HwShip * my, const char *name, const Param *param)
{
unsigned long cardBase;
+ int paramWasFound;
int i;
assert(my != NULL);
strcpy(my->name, name);
- cardBase = Param_getInt(param, my->name, "cardbase");
+ Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", my->name, "cardbase");
+ cardBase = 0;
+ }
+
my->lvme = allocMem(sizeof(LVme));
if (0 > conLVme(my->lvme, cardBase, 0x400000UL, 0x39UL, 0, 0)) {
msglog(LOG_ERR, "HwShip on %p not found\n", cardBase);
#include <lvme.h>
-#include "param.h"
+#include <param.h>
typedef struct HwShipS {
char name[16];
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.7 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwshow.c,v 6.8 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
-#include "param.h"
+#include <param.h>
#include "subevt.h"
#include "hwship.h"
#include <sys/time.h>
+#include <param.h>
+
#include "subevt.h"
-#include "param.h"
struct HardwareS {
size_t maxSubEvtSize;
{
Hardware *my;
Param *param;
+ int paramWasFound;
+ unsigned long size;
my = allocMem(sizeof(Hardware));
my->maxSubEvtSize = 2 * SubEvt_hdrSize() + 5004 * sizeof(UInt4);
param = allocMem(sizeof(Param));
conParam(param);
- printf("%d\n", Param_getInt(param, "soft", "size"));
+ Param_getInt(param, "soft", "size", ¶mWasFound, &size);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, defaulting to 0\n", "soft", "size");
+ size = 0;
+ }
+ printf("size: %d\n", size);
desParam(param);
return my;
}
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtbus.c,v 1.3 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtbus.c,v 1.4 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
-#include "param.h"
+#include <param.h>
#include "subevt.h"
#include "hwdtu.h"
#if 1
#include "subevt.h"
#endif
-#include "param.h"
+#include <param.h>
#include "tof_defs.h"
#include "hwtip.h"
int conHwTip(HwTip * my, const char *name, const Param *param)
{
unsigned long cardBase;
+ int paramWasFound;
int i;
assert(my != NULL);
signal(SIGBUS, sigbusHandler);
strcpy(my->name, name);
- cardBase = Param_getInt(param, my->name, "cardbase");
+ Param_getInt(param, my->name, "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", my->name, "cardbase");
+ cardBase = 0;
+ }
+
my->lvme = allocMem(sizeof(LVme));
if (0 > conLVme(my->lvme, cardBase, 0x2000000UL, 0x09UL, 0, 0)) {
msglog(LOG_ERR, "HwTip on %p not found\n", cardBase);
#include <lvme.h>
-#include "param.h"
+#include <param.h>
typedef struct HwTipS {
char name[16];
-static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.12 2000-07-18 14:24:36 hades Exp $";
+static char rcsId[] = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtof.c,v 1.13 2000-09-21 09:28:47 hades Exp $";
#define _POSIX_C_SOURCE 199309L
#include <unistd.h>
#include <string.h>
#include <sys/time.h>
-#include "param.h"
+#include <param.h>
#include "subevt.h"
#include "hwtip.h"
#include <lvme.h>
#include "subevt.h"
-#include "param.h"
+#include <param.h>
#define MU_EVT_COUNT 0x0e8014UL
#define MU_FIFO 0x0000UL
{
Hardware *my;
unsigned long cardBase;
+ int paramWasFound;
Param *param;
my = allocMem(sizeof(Hardware));
param = allocMem(sizeof(Param));
conParam(param);
- cardBase = Param_getInt(param, "mu", "cardbase");
+ Param_getInt(param, "mu", "cardbase", ¶mWasFound, &cardBase);
+ if (!paramWasFound) {
+ msglog(LOG_WARNING,
+ "Parameter %s(%s) not found, default = 0\n", "mu", "cardbase");
+ cardBase = 0;
+ }
+
desParam(param);
my->lvme0 = allocMem(sizeof(LVme));
then
export CC="gcc"
export RPCGEN="rpcgen"
- export LOADLIBES="-L$HOME/lib/$SYSTYPE -lhadesstd -llatm -llvme -ltk -L/usr/X11R6/lib -lX11 -ltcl -lm -ldl -latm"
- export INCLUDES="-I$HOME/include"
+ export LOADLIBES="-L$HOME/lib/$SYSTYPE -lhadesstd -llatm -llvme -ltclParam -ltk -L/usr/X11R6/lib -lX11 -ltcl -lm -ldl -latm"
+ export INCLUDES="-I$HOME/include -I$HOME/include/tcl"
export DEFINES="-UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT"
elif test $HADAQ_CONF = "LINUX_NOATM"
then
export CC="gcc"
export RPCGEN="rpcgen"
- export LOADLIBES="-L$HOME/lib/$SYSTYPE -lhadesstd -llatm -llvme -ltk -L/usr/X11R6/lib -lX11 -ltcl -lm -ldl"
- export INCLUDES="-I$HOME/include"
+ export LOADLIBES="-L$HOME/lib/$SYSTYPE -lhadesstd -llatm -llvme -ltclParam -ltk -L/usr/X11R6/lib -lX11 -ltcl -lm -ldl"
+ export INCLUDES="-I$HOME/include -I$HOME/include/tcl"
export DEFINES="-UNDEBUG -DHADESSTD_NEXITSTAT -DHADESSTD_NGETOPT -DNOATM"
elif test $HADAQ_CONF = "LINUX_E128"
then
+++ /dev/null
-static char rcsId[] = "$Id: param.c,v 6.3 2000-07-18 14:24:36 hades Exp $";
-
-#include <unistd.h>
-
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <tcl.h>
-
-#include "param.h"
-
-int conParam(Param *my)
-{
- int retVal;
- char *fileName;
- int code;
-
- fileName = getenv("DAQSLOW_PARAM_FILE");
- if (fileName == NULL) {
- fileName = "param.tcl";
- }
- my->interp = Tcl_CreateInterp();
- code = Tcl_EvalFile(my->interp, fileName);
- if (*my->interp->result != 0) {
- fprintf(stderr, "opening param file: %s\n", my->interp->result);
- retVal = -1;
- } else {
- if (code != TCL_OK) {
- retVal = -1;
- } else {
- retVal = 0;
- }
- }
- return retVal;
-}
-
-void desParam(Param *my)
-{
- Tcl_DeleteInterp(my->interp);
-}
-
-const char *Param_getString(const Param *my, const char *name, const char *idx)
-{
- const char *val;
-
- val = Tcl_GetVar2(my->interp, name, idx, 0);
- if (val == NULL) {
- val = "";
- fprintf(stderr,
- "Parameter %s(%s) not found, default is \"\"\n", name, idx);
- }
- return val;
-}
-
-unsigned long Param_getInt(const Param *my, const char *name, const char *idx)
-{
- return strtoul(Param_getString(my, name, idx), NULL, 0);
-}
+++ /dev/null
-#ifndef PARAM_H
-#define PARAM_H
-
-#include <tcl.h>
-
-typedef struct ParamS {
- Tcl_Interp *interp;
-} Param;
-
-int conParam(Param *my);
-void desParam(Param *my);
-const char *Param_getString(const Param *my, const char *name, const char *idx);
-unsigned long Param_getInt(const Param *my, const char *name, const char *idx);
-
-#endif
set evtbuild(file) ./daq_evtbuild
-set evtbuild(args) "daq_evtbuild -s 1 -m 1 -a"
+set evtbuild(args) "daq_evtbuild -s 1 -a"
set netmem(file) ./daq_netmem
set netmem(args) "daq_netmem -a -i UDP:0.0.0.0:3000 -m 1"
set memnet(file) ./daq_memnet