| 129,7 → 129,6 |
| if (ioctl(dev->nFileNo, PCIVME_INIT_HARDWARE, &init) < 0) |
| { |
| dev->nLastError = errno; |
| printf("initHardware:err=%d %s\n" , errno, strerror(errno) ); |
| return errno; |
| } |
| |
| 148,7 → 147,6 |
| if (ioctl(dev->nFileNo, PCIVME_DEINIT_HARDWARE, &deinit) < 0) |
| { |
| dev->nLastError = errno; |
| printf("deInitHardware:err=%d %s\n" , errno, strerror(errno) ); |
| return errno; |
| } |
| |
| 167,11 → 165,10 |
| 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; |
| } |
| 208,7 → 205,6 |
| 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; |
| } |
| |
| 224,31 → 220,18 |
| 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); |
| |
| 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) |
| 269,9 → 252,7 |
| 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))) |
| 278,26 → 259,16 |
| return error; |
| } |
| |
| 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; |
| } |
| if (lseek(dev->nFileNo, ulAddress, SEEK_SET) < 0) |
| 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 |