.. | .. |
---|
4 | 4 | * Copyright (C) 2008 Novell, Inc. |
---|
5 | 5 | * Copyright (C) 2008 Greg Kroah-Hartman <gregkh@suse.de> |
---|
6 | 6 | * Copyright (C) 2015 Dave Penkler <dpenkler@gmail.com> |
---|
| 7 | + * Copyright (C) 2018 IVI Foundation, Inc. |
---|
7 | 8 | * |
---|
8 | 9 | * This file holds USB constants defined by the USB Device Class |
---|
9 | 10 | * and USB488 Subclass Definitions for Test and Measurement devices |
---|
.. | .. |
---|
40 | 41 | #define USBTMC488_REQUEST_GOTO_LOCAL 161 |
---|
41 | 42 | #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162 |
---|
42 | 43 | |
---|
| 44 | +struct usbtmc_request { |
---|
| 45 | + __u8 bRequestType; |
---|
| 46 | + __u8 bRequest; |
---|
| 47 | + __u16 wValue; |
---|
| 48 | + __u16 wIndex; |
---|
| 49 | + __u16 wLength; |
---|
| 50 | +} __attribute__ ((packed)); |
---|
| 51 | + |
---|
| 52 | +struct usbtmc_ctrlrequest { |
---|
| 53 | + struct usbtmc_request req; |
---|
| 54 | + void __user *data; /* pointer to user space */ |
---|
| 55 | +} __attribute__ ((packed)); |
---|
| 56 | + |
---|
43 | 57 | struct usbtmc_termchar { |
---|
44 | 58 | __u8 term_char; |
---|
45 | 59 | __u8 term_char_enabled; |
---|
| 60 | +} __attribute__ ((packed)); |
---|
| 61 | + |
---|
| 62 | +/* |
---|
| 63 | + * usbtmc_message->flags: |
---|
| 64 | + */ |
---|
| 65 | +#define USBTMC_FLAG_ASYNC 0x0001 |
---|
| 66 | +#define USBTMC_FLAG_APPEND 0x0002 |
---|
| 67 | +#define USBTMC_FLAG_IGNORE_TRAILER 0x0004 |
---|
| 68 | + |
---|
| 69 | +struct usbtmc_message { |
---|
| 70 | + __u32 transfer_size; /* size of bytes to transfer */ |
---|
| 71 | + __u32 transferred; /* size of received/written bytes */ |
---|
| 72 | + __u32 flags; /* bit 0: 0 = synchronous; 1 = asynchronous */ |
---|
| 73 | + void __user *message; /* pointer to header and data in user space */ |
---|
46 | 74 | } __attribute__ ((packed)); |
---|
47 | 75 | |
---|
48 | 76 | /* Request values for USBTMC driver's ioctl entry point */ |
---|
.. | .. |
---|
53 | 81 | #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4) |
---|
54 | 82 | #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6) |
---|
55 | 83 | #define USBTMC_IOCTL_CLEAR_IN_HALT _IO(USBTMC_IOC_NR, 7) |
---|
| 84 | +#define USBTMC_IOCTL_CTRL_REQUEST _IOWR(USBTMC_IOC_NR, 8, struct usbtmc_ctrlrequest) |
---|
56 | 85 | #define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32) |
---|
57 | 86 | #define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32) |
---|
58 | 87 | #define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8) |
---|
59 | 88 | #define USBTMC_IOCTL_CONFIG_TERMCHAR _IOW(USBTMC_IOC_NR, 12, struct usbtmc_termchar) |
---|
| 89 | +#define USBTMC_IOCTL_WRITE _IOWR(USBTMC_IOC_NR, 13, struct usbtmc_message) |
---|
| 90 | +#define USBTMC_IOCTL_READ _IOWR(USBTMC_IOC_NR, 14, struct usbtmc_message) |
---|
| 91 | +#define USBTMC_IOCTL_WRITE_RESULT _IOWR(USBTMC_IOC_NR, 15, __u32) |
---|
| 92 | +#define USBTMC_IOCTL_API_VERSION _IOR(USBTMC_IOC_NR, 16, __u32) |
---|
60 | 93 | |
---|
61 | 94 | #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char) |
---|
62 | 95 | #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char) |
---|
.. | .. |
---|
64 | 97 | #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20) |
---|
65 | 98 | #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21) |
---|
66 | 99 | #define USBTMC488_IOCTL_TRIGGER _IO(USBTMC_IOC_NR, 22) |
---|
| 100 | +#define USBTMC488_IOCTL_WAIT_SRQ _IOW(USBTMC_IOC_NR, 23, __u32) |
---|
| 101 | + |
---|
| 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) |
---|
| 104 | + |
---|
| 105 | +/* Cancel and cleanup asynchronous calls */ |
---|
| 106 | +#define USBTMC_IOCTL_CANCEL_IO _IO(USBTMC_IOC_NR, 35) |
---|
| 107 | +#define USBTMC_IOCTL_CLEANUP_IO _IO(USBTMC_IOC_NR, 36) |
---|
67 | 108 | |
---|
68 | 109 | /* Driver encoded usb488 capabilities */ |
---|
69 | 110 | #define USBTMC488_CAPABILITY_TRIGGER 1 |
---|