Changed the parameter table and associated support routines to support

buffer length specifications of size long instead of short.
This commit is contained in:
John Winans
1995-07-31 19:44:18 +00:00
parent 1e2d258c66
commit 48640936f5
2 changed files with 57 additions and 146 deletions
+15 -134
View File
@@ -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
View File
@@ -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);
}