hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/include/uapi/linux/usb/tmc.h
....@@ -4,6 +4,7 @@
44 * Copyright (C) 2008 Novell, Inc.
55 * Copyright (C) 2008 Greg Kroah-Hartman <gregkh@suse.de>
66 * Copyright (C) 2015 Dave Penkler <dpenkler@gmail.com>
7
+ * Copyright (C) 2018 IVI Foundation, Inc.
78 *
89 * This file holds USB constants defined by the USB Device Class
910 * and USB488 Subclass Definitions for Test and Measurement devices
....@@ -40,9 +41,36 @@
4041 #define USBTMC488_REQUEST_GOTO_LOCAL 161
4142 #define USBTMC488_REQUEST_LOCAL_LOCKOUT 162
4243
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
+
4357 struct usbtmc_termchar {
4458 __u8 term_char;
4559 __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 */
4674 } __attribute__ ((packed));
4775
4876 /* Request values for USBTMC driver's ioctl entry point */
....@@ -53,10 +81,15 @@
5381 #define USBTMC_IOCTL_ABORT_BULK_IN _IO(USBTMC_IOC_NR, 4)
5482 #define USBTMC_IOCTL_CLEAR_OUT_HALT _IO(USBTMC_IOC_NR, 6)
5583 #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)
5685 #define USBTMC_IOCTL_GET_TIMEOUT _IOR(USBTMC_IOC_NR, 9, __u32)
5786 #define USBTMC_IOCTL_SET_TIMEOUT _IOW(USBTMC_IOC_NR, 10, __u32)
5887 #define USBTMC_IOCTL_EOM_ENABLE _IOW(USBTMC_IOC_NR, 11, __u8)
5988 #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)
6093
6194 #define USBTMC488_IOCTL_GET_CAPS _IOR(USBTMC_IOC_NR, 17, unsigned char)
6295 #define USBTMC488_IOCTL_READ_STB _IOR(USBTMC_IOC_NR, 18, unsigned char)
....@@ -64,6 +97,14 @@
6497 #define USBTMC488_IOCTL_GOTO_LOCAL _IO(USBTMC_IOC_NR, 20)
6598 #define USBTMC488_IOCTL_LOCAL_LOCKOUT _IO(USBTMC_IOC_NR, 21)
6699 #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)
67108
68109 /* Driver encoded usb488 capabilities */
69110 #define USBTMC488_CAPABILITY_TRIGGER 1