Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 10 → Rev 11

/pcivme-3.2/lib/pcivme_ni.c
129,6 → 129,7
if (ioctl(dev->nFileNo, PCIVME_INIT_HARDWARE, &init) < 0)
{
dev->nLastError = errno;
printf("initHardware:err=%d %s\n" , errno, strerror(errno) );
return errno;
}
 
147,6 → 148,7
if (ioctl(dev->nFileNo, PCIVME_DEINIT_HARDWARE, &deinit) < 0)
{
dev->nLastError = errno;
printf("deInitHardware:err=%d %s\n" , errno, strerror(errno) );
return errno;
}
 
165,10 → 167,11
return errno;
 
dev->nFileNo = open(cszDeviceName, O_RDWR);
 
printf("VMEopen: dev->nFileNo %d size=%d %s\n" , dev->nFileNo,sizeof(*dev), cszDeviceName );
if (dev->nFileNo == -1)
{
error = errno;
printf("VMEopen:err=%d %s\n" , error, strerror(error) );
free(dev);
return error;
}
177,7 → 180,7
*pnHandle = (int)dev;
 
error = initHardware(dev);
if (error)
if (error)
return error;
 
dev->nLastError = 0;
205,6 → 208,7
if (ioctl(dev->nFileNo, PCIVME_SET_ACCESS_PARA, &access_command) < 0)
{
dev->nLastError = errno;
printf("setAccessProperties:err=%d %s\n" , errno, strerror(errno) );
return errno;
}
 
220,18 → 224,31
size_t count = (size_t)(ulElementCount * ubAccessWidth);
ssize_t result;
int error;
long pos;
 
printf("VMEread: AW 0x%0x 0x%0x , AM 0x%0x \n", dev->cAccessWidth, ubAccessWidth, dev->cAddressModifier);
if (dev->cAccessWidth != ubAccessWidth)
{
if ((error = setAccessProperties(nHandle, dev->cAddressModifier, ubAccessWidth)))
return error;
}
pos = lseek(dev->nFileNo, ulAddress, SEEK_SET);
if ( pos < 0){
printf("VMEread: pos=0x%08lx dev->nFileNo=%d ADDR=0x%08lx %s\n",pos, dev->nFileNo, ulAddress, strerror(errno));
switch (errno){
case EBADF:printf("errno =EBADF\n");break;
case EINVAL:printf("errno =EINVAL\n");break;
case EOVERFLOW:printf("errno =EOVERFLOW\n");break;
case ESPIPE:printf("errno =ESPIPE\n");break;
case ENXIO:printf("errno =ENXIO\n");break;
}
//return errno;
}
 
if (lseek(dev->nFileNo, ulAddress, SEEK_SET) < 0)
return errno;
 
result = read(dev->nFileNo, pvBuffer, count);
 
printf("VMEread: read %d dev->nFileNo=%d err=%d %s\n",count, dev->nFileNo, errno, strerror(errno));
if (result != count)
{
if (result < 0)
252,7 → 269,9
size_t count = (size_t)(ulElementCount * ubAccessWidth);
ssize_t result;
int error;
long pos;
 
printf("VMEwrite: AW 0x%0x 0x%0x , AM 0x%0x \n", dev->cAccessWidth, ubAccessWidth, dev->cAddressModifier);
if (dev->cAccessWidth != ubAccessWidth)
{
if ((error = setAccessProperties(nHandle, dev->cAddressModifier, ubAccessWidth)))
259,16 → 278,26
return error;
}
 
if (lseek(dev->nFileNo, ulAddress, SEEK_SET) < 0)
return errno;
 
pos = lseek(dev->nFileNo, ulAddress, SEEK_SET);
if (pos < 0){
printf("VMEwrite: pos=0x%08lx dev->nFileNo=%d ADDR=0x%08lx %s\n",pos, dev->nFileNo, ulAddress, strerror(errno));
switch (errno){
case EBADF:printf("errno =EBADF\n");break;
case EINVAL:printf("errno =EINVAL\n");break;
case EOVERFLOW:printf("errno =EOVERFLOW\n");break;
case ESPIPE:printf("errno =ESPIPE\n");break;
case ENXIO:printf("errno =ENXIO\n");break;
}
//return errno;
}
result = write(dev->nFileNo, pvBuffer, count);
 
printf("VMEwrite: write %d dev->nFileNo=%d err=%d %s\n",count, dev->nFileNo,errno, strerror(errno));
if (result != count)
{
if (result < 0)
{
dev->nLastError = errno;
return errno;
}
else