This new ioctl reads the status byte (STB) from the device and returns the STB unmodified to the application. The srq_asserted bit is not taken into account and not changed. This ioctl is useful to support non USBTMC-488 compliant devices.
Unified · Split
| @@ -2149,6 +2149,12 @@ static long usbtmc_ioctl(struct file *file, unsigned int cmd, unsigned long arg) · 2148 unmodified lines | |||
| 2149 | file_data->auto_abort = !!tmp_byte; | 2149 | file_data->auto_abort = !!tmp_byte; |
| 2150 | break; | 2150 | break; |
| 2151 | 2151 | ||
| 2152 | case USBTMC_IOCTL_GET_STB: | ||
| 2153 | retval = usbtmc_get_stb(file_data, &tmp_byte); | ||
| 2154 | if (retval > 0) | ||
| 2155 | retval = put_user(tmp_byte, (__u8 __user *)arg); | ||
| 2156 | break; | ||
| 2157 | |||
| 2152 | case USBTMC_IOCTL_CANCEL_IO: | 2158 | case USBTMC_IOCTL_CANCEL_IO: |
| 2153 | retval = usbtmc_ioctl_cancel_io(file_data); | 2159 | retval = usbtmc_ioctl_cancel_io(file_data); |
| 2154 | break; | 2160 | break; |
| @@ -102,6 +102,8 @@ struct usbtmc_message { · 101 unmodified lines | |||
| 102 | #define USBTMC_IOCTL_MSG_IN_ATTR _IOR(USBTMC_IOC_NR, 24, __u8) | 102 | #define USBTMC_IOCTL_MSG_IN_ATTR _IOR(USBTMC_IOC_NR, 24, __u8) |
| 103 | #define USBTMC_IOCTL_AUTO_ABORT _IOW(USBTMC_IOC_NR, 25, __u8) | 103 | #define USBTMC_IOCTL_AUTO_ABORT _IOW(USBTMC_IOC_NR, 25, __u8) |
| 104 | 104 | ||
| 105 | #define USBTMC_IOCTL_GET_STB _IOR(USBTMC_IOC_NR, 26, __u8) | ||
| 106 | |||
| 105 | /* Cancel and cleanup asynchronous calls */ | 107 | /* Cancel and cleanup asynchronous calls */ |
| 106 | #define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35) | 108 | #define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35) |
| 107 | #define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36) | 109 | #define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36) |