xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/usb/cdc.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef __UAPI_LINUX_USB_CDC_H
8*8d67ca89SAndroid Build Coastguard Worker #define __UAPI_LINUX_USB_CDC_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_ACM 0x02
11*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_ETHERNET 0x06
12*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_WHCM 0x08
13*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_DMM 0x09
14*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_MDLM 0x0a
15*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_OBEX 0x0b
16*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_EEM 0x0c
17*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_NCM 0x0d
18*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SUBCLASS_MBIM 0x0e
19*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PROTO_NONE 0
20*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_V25TER 1
21*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_PCCA101 2
22*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_PCCA101_WAKE 3
23*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_GSM 4
24*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_3G 5
25*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_AT_CDMA 6
26*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_PROTO_VENDOR 0xff
27*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PROTO_EEM 7
28*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_PROTO_NTB 1
29*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_PROTO_NTB 2
30*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_HEADER_TYPE 0x00
31*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CALL_MANAGEMENT_TYPE 0x01
32*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ACM_TYPE 0x02
33*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_UNION_TYPE 0x06
34*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_COUNTRY_TYPE 0x07
35*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NETWORK_TERMINAL_TYPE 0x0a
36*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ETHERNET_TYPE 0x0f
37*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_WHCM_TYPE 0x11
38*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MDLM_TYPE 0x12
39*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MDLM_DETAIL_TYPE 0x13
40*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_DMM_TYPE 0x14
41*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_OBEX_TYPE 0x15
42*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_TYPE 0x1a
43*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_TYPE 0x1b
44*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_EXTENDED_TYPE 0x1c
45*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_header_desc {
46*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
47*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
48*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
49*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdCDC;
50*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
51*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_call_mgmt_descriptor {
52*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
53*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
54*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
55*8d67ca89SAndroid Build Coastguard Worker   __u8 bmCapabilities;
56*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CALL_MGMT_CAP_CALL_MGMT 0x01
57*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CALL_MGMT_CAP_DATA_INTF 0x02
58*8d67ca89SAndroid Build Coastguard Worker   __u8 bDataInterface;
59*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
60*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_acm_descriptor {
61*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
62*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
63*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
64*8d67ca89SAndroid Build Coastguard Worker   __u8 bmCapabilities;
65*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
66*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_COMM_FEATURE 0x01
67*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CAP_LINE 0x02
68*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CAP_BRK 0x04
69*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CAP_NOTIFY 0x08
70*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_union_desc {
71*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
72*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
73*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
74*8d67ca89SAndroid Build Coastguard Worker   __u8 bMasterInterface0;
75*8d67ca89SAndroid Build Coastguard Worker   __u8 bSlaveInterface0;
76*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
77*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_country_functional_desc {
78*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
79*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
80*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
81*8d67ca89SAndroid Build Coastguard Worker   __u8 iCountryCodeRelDate;
82*8d67ca89SAndroid Build Coastguard Worker   __le16 wCountyCode0;
83*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
84*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_network_terminal_desc {
85*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
86*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
87*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
88*8d67ca89SAndroid Build Coastguard Worker   __u8 bEntityId;
89*8d67ca89SAndroid Build Coastguard Worker   __u8 iName;
90*8d67ca89SAndroid Build Coastguard Worker   __u8 bChannelIndex;
91*8d67ca89SAndroid Build Coastguard Worker   __u8 bPhysicalInterface;
92*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
93*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ether_desc {
94*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
95*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
96*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
97*8d67ca89SAndroid Build Coastguard Worker   __u8 iMACAddress;
98*8d67ca89SAndroid Build Coastguard Worker   __le32 bmEthernetStatistics;
99*8d67ca89SAndroid Build Coastguard Worker   __le16 wMaxSegmentSize;
100*8d67ca89SAndroid Build Coastguard Worker   __le16 wNumberMCFilters;
101*8d67ca89SAndroid Build Coastguard Worker   __u8 bNumberPowerFilters;
102*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
103*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_dmm_desc {
104*8d67ca89SAndroid Build Coastguard Worker   __u8 bFunctionLength;
105*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
106*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubtype;
107*8d67ca89SAndroid Build Coastguard Worker   __u16 bcdVersion;
108*8d67ca89SAndroid Build Coastguard Worker   __le16 wMaxCommand;
109*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
110*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_mdlm_desc {
111*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
112*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
113*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
114*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdVersion;
115*8d67ca89SAndroid Build Coastguard Worker   __u8 bGUID[16];
116*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
117*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_mdlm_detail_desc {
118*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
119*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
120*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
121*8d67ca89SAndroid Build Coastguard Worker   __u8 bGuidDescriptorType;
122*8d67ca89SAndroid Build Coastguard Worker   __u8 bDetailData[];
123*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
124*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_obex_desc {
125*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
126*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
127*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
128*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdVersion;
129*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
130*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_desc {
131*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
132*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
133*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
134*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdNcmVersion;
135*8d67ca89SAndroid Build Coastguard Worker   __u8 bmNetworkCapabilities;
136*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
137*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_mbim_desc {
138*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
139*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
140*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
141*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdMBIMVersion;
142*8d67ca89SAndroid Build Coastguard Worker   __le16 wMaxControlMessage;
143*8d67ca89SAndroid Build Coastguard Worker   __u8 bNumberFilters;
144*8d67ca89SAndroid Build Coastguard Worker   __u8 bMaxFilterSize;
145*8d67ca89SAndroid Build Coastguard Worker   __le16 wMaxSegmentSize;
146*8d67ca89SAndroid Build Coastguard Worker   __u8 bmNetworkCapabilities;
147*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
148*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_mbim_extended_desc {
149*8d67ca89SAndroid Build Coastguard Worker   __u8 bLength;
150*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorType;
151*8d67ca89SAndroid Build Coastguard Worker   __u8 bDescriptorSubType;
152*8d67ca89SAndroid Build Coastguard Worker   __le16 bcdMBIMExtendedVersion;
153*8d67ca89SAndroid Build Coastguard Worker   __u8 bMaxOutstandingCommandMessages;
154*8d67ca89SAndroid Build Coastguard Worker   __le16 wMTU;
155*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
156*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SEND_ENCAPSULATED_COMMAND 0x00
157*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_ENCAPSULATED_RESPONSE 0x01
158*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_REQ_SET_LINE_CODING 0x20
159*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_REQ_GET_LINE_CODING 0x21
160*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_REQ_SET_CONTROL_LINE_STATE 0x22
161*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_REQ_SEND_BREAK 0x23
162*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_ETHERNET_MULTICAST_FILTERS 0x40
163*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_ETHERNET_PM_PATTERN_FILTER 0x41
164*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_ETHERNET_PM_PATTERN_FILTER 0x42
165*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_ETHERNET_PACKET_FILTER 0x43
166*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_ETHERNET_STATISTIC 0x44
167*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_NTB_PARAMETERS 0x80
168*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_NET_ADDRESS 0x81
169*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_NET_ADDRESS 0x82
170*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_NTB_FORMAT 0x83
171*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_NTB_FORMAT 0x84
172*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_NTB_INPUT_SIZE 0x85
173*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_NTB_INPUT_SIZE 0x86
174*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_MAX_DATAGRAM_SIZE 0x87
175*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_MAX_DATAGRAM_SIZE 0x88
176*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_GET_CRC_MODE 0x89
177*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SET_CRC_MODE 0x8a
178*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_line_coding {
179*8d67ca89SAndroid Build Coastguard Worker   __le32 dwDTERate;
180*8d67ca89SAndroid Build Coastguard Worker   __u8 bCharFormat;
181*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_1_STOP_BITS 0
182*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_1_5_STOP_BITS 1
183*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_2_STOP_BITS 2
184*8d67ca89SAndroid Build Coastguard Worker   __u8 bParityType;
185*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NO_PARITY 0
186*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_ODD_PARITY 1
187*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_EVEN_PARITY 2
188*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MARK_PARITY 3
189*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SPACE_PARITY 4
190*8d67ca89SAndroid Build Coastguard Worker   __u8 bDataBits;
191*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
192*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CTRL_DTR (1 << 0)
193*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_CTRL_RTS (1 << 1)
194*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PACKET_TYPE_PROMISCUOUS (1 << 0)
195*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PACKET_TYPE_ALL_MULTICAST (1 << 1)
196*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PACKET_TYPE_DIRECTED (1 << 2)
197*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PACKET_TYPE_BROADCAST (1 << 3)
198*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_PACKET_TYPE_MULTICAST (1 << 4)
199*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NOTIFY_NETWORK_CONNECTION 0x00
200*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NOTIFY_RESPONSE_AVAILABLE 0x01
201*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NOTIFY_SERIAL_STATE 0x20
202*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NOTIFY_SPEED_CHANGE 0x2a
203*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_notification {
204*8d67ca89SAndroid Build Coastguard Worker   __u8 bmRequestType;
205*8d67ca89SAndroid Build Coastguard Worker   __u8 bNotificationType;
206*8d67ca89SAndroid Build Coastguard Worker   __le16 wValue;
207*8d67ca89SAndroid Build Coastguard Worker   __le16 wIndex;
208*8d67ca89SAndroid Build Coastguard Worker   __le16 wLength;
209*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
210*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_DCD (1 << 0)
211*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_DSR (1 << 1)
212*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_BREAK (1 << 2)
213*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_RING_SIGNAL (1 << 3)
214*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_FRAMING (1 << 4)
215*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_PARITY (1 << 5)
216*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_SERIAL_STATE_OVERRUN (1 << 6)
217*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_speed_change {
218*8d67ca89SAndroid Build Coastguard Worker   __le32 DLBitRRate;
219*8d67ca89SAndroid Build Coastguard Worker   __le32 ULBitRate;
220*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
221*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_ntb_parameters {
222*8d67ca89SAndroid Build Coastguard Worker   __le16 wLength;
223*8d67ca89SAndroid Build Coastguard Worker   __le16 bmNtbFormatsSupported;
224*8d67ca89SAndroid Build Coastguard Worker   __le32 dwNtbInMaxSize;
225*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpInDivisor;
226*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpInPayloadRemainder;
227*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpInAlignment;
228*8d67ca89SAndroid Build Coastguard Worker   __le16 wPadding1;
229*8d67ca89SAndroid Build Coastguard Worker   __le32 dwNtbOutMaxSize;
230*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpOutDivisor;
231*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpOutPayloadRemainder;
232*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpOutAlignment;
233*8d67ca89SAndroid Build Coastguard Worker   __le16 wNtbOutMaxDatagrams;
234*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
235*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTH16_SIGN 0x484D434E
236*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTH32_SIGN 0x686D636E
237*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_nth16 {
238*8d67ca89SAndroid Build Coastguard Worker   __le32 dwSignature;
239*8d67ca89SAndroid Build Coastguard Worker   __le16 wHeaderLength;
240*8d67ca89SAndroid Build Coastguard Worker   __le16 wSequence;
241*8d67ca89SAndroid Build Coastguard Worker   __le16 wBlockLength;
242*8d67ca89SAndroid Build Coastguard Worker   __le16 wNdpIndex;
243*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
244*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_nth32 {
245*8d67ca89SAndroid Build Coastguard Worker   __le32 dwSignature;
246*8d67ca89SAndroid Build Coastguard Worker   __le16 wHeaderLength;
247*8d67ca89SAndroid Build Coastguard Worker   __le16 wSequence;
248*8d67ca89SAndroid Build Coastguard Worker   __le32 dwBlockLength;
249*8d67ca89SAndroid Build Coastguard Worker   __le32 dwNdpIndex;
250*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
251*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP16_CRC_SIGN 0x314D434E
252*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP16_NOCRC_SIGN 0x304D434E
253*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E
254*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E
255*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_NDP16_IPS_SIGN 0x00535049
256*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_NDP32_IPS_SIGN 0x00737069
257*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_NDP16_DSS_SIGN 0x00535344
258*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_MBIM_NDP32_DSS_SIGN 0x00737364
259*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_dpe16 {
260*8d67ca89SAndroid Build Coastguard Worker   __le16 wDatagramIndex;
261*8d67ca89SAndroid Build Coastguard Worker   __le16 wDatagramLength;
262*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
263*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_ndp16 {
264*8d67ca89SAndroid Build Coastguard Worker   __le32 dwSignature;
265*8d67ca89SAndroid Build Coastguard Worker   __le16 wLength;
266*8d67ca89SAndroid Build Coastguard Worker   __le16 wNextNdpIndex;
267*8d67ca89SAndroid Build Coastguard Worker   struct usb_cdc_ncm_dpe16 dpe16[];
268*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
269*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_dpe32 {
270*8d67ca89SAndroid Build Coastguard Worker   __le32 dwDatagramIndex;
271*8d67ca89SAndroid Build Coastguard Worker   __le32 dwDatagramLength;
272*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
273*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_ndp32 {
274*8d67ca89SAndroid Build Coastguard Worker   __le32 dwSignature;
275*8d67ca89SAndroid Build Coastguard Worker   __le16 wLength;
276*8d67ca89SAndroid Build Coastguard Worker   __le16 wReserved6;
277*8d67ca89SAndroid Build Coastguard Worker   __le32 dwNextNdpIndex;
278*8d67ca89SAndroid Build Coastguard Worker   __le32 dwReserved12;
279*8d67ca89SAndroid Build Coastguard Worker   struct usb_cdc_ncm_dpe32 dpe32[];
280*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
281*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP16_INDEX_MIN 0x000C
282*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP32_INDEX_MIN 0x0010
283*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_DATAGRAM_FORMAT_CRC 0x30
284*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_DATAGRAM_FORMAT_NOCRC 0X31
285*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_PROTO_CODE_NO_ENCAP_COMMANDS 0x00
286*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_PROTO_CODE_EXTERN_PROTO 0xFE
287*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_ETH_FILTER (1 << 0)
288*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_NET_ADDRESS (1 << 1)
289*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_ENCAP_COMMAND (1 << 2)
290*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_MAX_DATAGRAM_SIZE (1 << 3)
291*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_CRC_MODE (1 << 4)
292*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NCAP_NTB_INPUT_SIZE (1 << 5)
293*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB16_SUPPORTED (1 << 0)
294*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB32_SUPPORTED (1 << 1)
295*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NDP_ALIGN_MIN_SIZE 0x04
296*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB_MAX_LENGTH 0x1C
297*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB16_FORMAT 0x00
298*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB32_FORMAT 0x01
299*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB_MIN_IN_SIZE 2048
300*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_NTB_MIN_OUT_SIZE 2048
301*8d67ca89SAndroid Build Coastguard Worker struct usb_cdc_ncm_ndp_input_size {
302*8d67ca89SAndroid Build Coastguard Worker   __le32 dwNtbInMaxSize;
303*8d67ca89SAndroid Build Coastguard Worker   __le16 wNtbInMaxDatagrams;
304*8d67ca89SAndroid Build Coastguard Worker   __le16 wReserved;
305*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed));
306*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_CRC_NOT_APPENDED 0x00
307*8d67ca89SAndroid Build Coastguard Worker #define USB_CDC_NCM_CRC_APPENDED 0x01
308*8d67ca89SAndroid Build Coastguard Worker #endif
309