-static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtip.c,v 1.18 2001-04-23 13:34:41 hades Exp $";
+static char *rcsId = "$Header: /misc/hadesprojects/daq/cvsroot/eventbuilder/hadaq/Attic/hwtip.c,v 1.19 2001-08-30 16:37:37 hades Exp $";
#include <assert.h>
#include <string.h>
void HwTip_requestBuffer(HwTip * my)
{
- LVme_clrBitL(my->lvme, CONFIG1BASE + CFG_MASTER_CONTROL, my->daqRq);
-
- while (LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->daqGr)) {
-#if 1
- struct timespec tS, *t = &tS;
- t->tv_sec = 0;
- t->tv_nsec = 020000000;
- nanosleep(t, NULL);
-#endif
- }
if (my->bankRequested == 0) {
my->bankRequested = 1;
my->pipeFull = _LVL2_PIPE2_FULL;
#ifndef NDEBUG
msglog(LOG_DEBUG, "wait for data\n");
#endif
+
+#if 0
while (!LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->pipeFull)) {
#if 1
struct timespec tS, *t = &tS;
nanosleep(t, NULL);
#endif
}
-#ifndef NDEBUG
- msglog(LOG_DEBUG, "data available\n");
#endif
+
LVme_setBitL(my->lvme, CONFIG1BASE + CFG_MASTER_CONTROL, my->daqRq);
my->currAddr = my->fifo + 0x4;
int HwTip_isBusy(HwTip * my)
{
- return !LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->daqGr);
+ int isGranted;
+
+ isGranted = LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->daqGr);
+
+ if (isGranted) {
+#ifndef NDEBUG
+ msglog(LOG_DEBUG, "data available\n");
+#endif
+ LVme_clrBitL(my->lvme, CONFIG1BASE + CFG_MASTER_CONTROL, my->daqRq);
+
+ while (LVme_tstBitL(my->lvme, CONFIG1BASE + CFG_MASTER_STATUS, my->daqGr)) {
+ #if 1
+ struct timespec tS, *t = &tS;
+ t->tv_sec = 0;
+ t->tv_nsec = 020000000;
+ nanosleep(t, NULL);
+ #endif
+ }
+ }
+ return !isGranted;
}
int HwTip_isEmpty(HwTip * my)