Changed the parameter table and associated support routines to support
buffer length specifications of size long instead of short.
This commit is contained in:
+15
-134
@@ -3,6 +3,9 @@
|
||||
|
||||
/*
|
||||
* $Log$
|
||||
* Revision 1.24 1995/03/10 16:55:40 winans
|
||||
* Added waveform writing support
|
||||
*
|
||||
* Revision 1.23 1995/01/06 16:55:52 winans
|
||||
* Added the log parameter to the doc
|
||||
*
|
||||
@@ -1302,13 +1305,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pai,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1353,13 +1350,7 @@ int srqStatus;
|
||||
{
|
||||
devGpibLib_setPvSevr(pai,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
devGpibLib_aiGpibFinish(pdpvt); /* and finish the processing */
|
||||
@@ -1404,13 +1395,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(pai,READ_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -1452,13 +1437,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(pao,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(IDLE);
|
||||
}
|
||||
@@ -1489,13 +1468,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pli,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1540,13 +1513,7 @@ int srqStatus;
|
||||
{
|
||||
devGpibLib_setPvSevr(pli,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
devGpibLib_liGpibFinish(pdpvt); /* and finish the processing */
|
||||
@@ -1590,13 +1557,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(pli,READ_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -1638,13 +1599,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(plo,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
return(IDLE);
|
||||
}
|
||||
|
||||
@@ -1671,13 +1626,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pbi,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
else /* interpret response that came back */
|
||||
{
|
||||
@@ -1720,13 +1669,7 @@ int srqStatus;
|
||||
{
|
||||
devGpibLib_setPvSevr(pbi,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
devGpibLib_biGpibFinish(pdpvt); /* and finish the processing */
|
||||
@@ -1773,13 +1716,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(pbi,READ_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -1821,14 +1758,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pbo,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(IDLE);
|
||||
}
|
||||
@@ -1856,13 +1786,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pmbbi,WRITE_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1907,13 +1831,7 @@ int srqStatus;
|
||||
{
|
||||
devGpibLib_setPvSevr(pmbbi,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
devGpibLib_mbbiGpibFinish(pdpvt); /* and finish the processing */
|
||||
@@ -1960,13 +1878,7 @@ struct gpibDpvt *pdpvt;
|
||||
devGpibLib_setPvSevr(pmbbi,READ_ALARM,VALID_ALARM);
|
||||
}
|
||||
}
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -2009,14 +1921,8 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pmbbo,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
return(IDLE);
|
||||
}
|
||||
|
||||
@@ -2046,13 +1952,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(psi,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2097,13 +1997,7 @@ int srqStatus;
|
||||
{
|
||||
devGpibLib_setPvSevr(psi,READ_ALARM,VALID_ALARM);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
}
|
||||
|
||||
devGpibLib_stringinGpibFinish(pdpvt); /* and finish the processing */
|
||||
@@ -2139,13 +2033,7 @@ struct gpibDpvt *pdpvt;
|
||||
psi->val[40] = '\0';
|
||||
psi->udf = FALSE;
|
||||
}
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
@@ -2185,14 +2073,8 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pso,WRITE_ALARM,VALID_ALARM);
|
||||
}
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
#if 1
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
#else
|
||||
pdpvt->head.header.callback.callback = devGpibLib_processCallback;
|
||||
pdpvt->head.header.callback.priority = priorityLow;
|
||||
callbackRequest(&pdpvt->head.header.callback);
|
||||
#endif
|
||||
return(IDLE);
|
||||
}
|
||||
|
||||
@@ -2225,7 +2107,7 @@ unsigned short val; /* used for EFAST operations only */
|
||||
bbnode = pdpvt->head.bitBusDpvt->txMsg.node;
|
||||
|
||||
/*
|
||||
* check to see if this node has timed out within last 10 sec
|
||||
* check to see if this node has timed out within last <timeWindow> ticks
|
||||
*/
|
||||
if(tickGet() < (pdpvt->phwpvt->tmoVal + parmBlock->timeWindow) )
|
||||
{
|
||||
@@ -2679,8 +2561,7 @@ struct gpibDpvt *pdpvt;
|
||||
{
|
||||
devGpibLib_setPvSevr(pwf,READ_ALARM,VALID_ALARM);
|
||||
}
|
||||
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
RegisterProcessCallback(&pdpvt->head.callback, priorityLow, pdpvt);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
+42
-12
@@ -59,6 +59,9 @@
|
||||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.3 1995/04/25 15:32:23 winans
|
||||
* Changed name of HiDEOS link configuration command/function.
|
||||
*
|
||||
* Revision 1.2 1995/04/12 19:31:41 winans
|
||||
* Added support for the HiDEOS system as a GPIB bus transport agent.
|
||||
*
|
||||
@@ -974,12 +977,36 @@ char *buffer; /* data to transfer */
|
||||
int length; /* number of bytes to transfer */
|
||||
int time; /* time to wait on the DMA operation */
|
||||
{
|
||||
int status;
|
||||
short cnt;
|
||||
register struct ibregs *b;
|
||||
char w_imr2;
|
||||
int temp_addr;
|
||||
int tmoTmp;
|
||||
int status = ERROR;
|
||||
unsigned short cnt;
|
||||
struct ibregs *b;
|
||||
char w_imr2;
|
||||
int temp_addr;
|
||||
int tmoTmp;
|
||||
|
||||
#ifdef NI_GPIB_LOOP_LENGTH
|
||||
#define NI_GPIB_CHUNKSIZE 0x0ffff
|
||||
while (length > 0)
|
||||
{
|
||||
if (length > NI_GPIB_CHUNKSIZE)
|
||||
{
|
||||
cnt = NI_GPIB_CHUNKSIZE;
|
||||
length -= NI_GPIB_CHUNKSIZE;
|
||||
}
|
||||
else
|
||||
{
|
||||
cnt = length;
|
||||
length = 0;
|
||||
}
|
||||
#else
|
||||
cnt = length;
|
||||
|
||||
if (cnt > 0x0fffe)
|
||||
{
|
||||
errMessage(S_IB_SIZE, "NI-1014 max length (65535) exceeded");
|
||||
return(ERROR);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (pNiLink[link]->A24BounceBuffer == NULL)
|
||||
{
|
||||
@@ -993,25 +1020,24 @@ int time; /* time to wait on the DMA operation */
|
||||
logMsg("Got a bouncer at 0x%8.8X\n", pNiLink[link]->A24BounceBuffer);
|
||||
}
|
||||
|
||||
if (pNiLink[link]->A24BounceSize < length)
|
||||
if (pNiLink[link]->A24BounceSize < cnt)
|
||||
{ /* Reallocate a larger bounce buffer */
|
||||
|
||||
devLibA24Free(pNiLink[link]->A24BounceBuffer); /* Loose the old one */
|
||||
|
||||
if ((pNiLink[link]->A24BounceBuffer = devLibA24Malloc(length)) == NULL)
|
||||
if ((pNiLink[link]->A24BounceBuffer = devLibA24Malloc(cnt)) == NULL)
|
||||
{
|
||||
errMessage(S_IB_A24 ,"niPhysIo ran out of A24 memory!");
|
||||
pNiLink[link]->A24BounceSize = 0;
|
||||
pNiLink[link]->A24BounceBuffer = NULL;
|
||||
return(ERROR);
|
||||
}
|
||||
pNiLink[link]->A24BounceSize = length;
|
||||
pNiLink[link]->A24BounceSize = cnt;
|
||||
if(ibDebug > 5)
|
||||
logMsg("Got a new bouncer at 0x%8.8X\n", pNiLink[link]->A24BounceBuffer);
|
||||
}
|
||||
|
||||
b = pNiLink[link]->ibregs;
|
||||
cnt = length;
|
||||
|
||||
b->auxmr = AUX_GTS; /* go to standby mode */
|
||||
b->ch1.ccr = D_SAB; /* halt channel activity */
|
||||
@@ -1049,7 +1075,7 @@ int time; /* time to wait on the DMA operation */
|
||||
else /* (dir == READ) */
|
||||
{
|
||||
/* We will be writing, copy data into the bounce buffer */
|
||||
memcpy(pNiLink[link]->A24BounceBuffer, buffer, length);
|
||||
memcpy(pNiLink[link]->A24BounceBuffer, buffer, cnt);
|
||||
|
||||
if (cnt != 1)
|
||||
pNiLink[link]->DmaStuff->cc_byte = AUX_SEOI; /* send EOI with last byte */
|
||||
@@ -1231,9 +1257,13 @@ int time; /* time to wait on the DMA operation */
|
||||
|
||||
if (dir == READ)
|
||||
{ /* Copy data from the bounce buffer to the user's buffer */
|
||||
memcpy(buffer, pNiLink[link]->A24BounceBuffer, length);
|
||||
memcpy(buffer, pNiLink[link]->A24BounceBuffer, cnt);
|
||||
}
|
||||
#ifdef NI_GPIB_LOOP_LENGTH
|
||||
|
||||
buffer += NI_GPIB_CHUNKSIZE;
|
||||
}
|
||||
#endif
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user