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