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 __LINUX_USB_MIDI_H 8*8d67ca89SAndroid Build Coastguard Worker #define __LINUX_USB_MIDI_H 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_HEADER 0x01 11*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_MIDI_IN_JACK 0x02 12*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_MIDI_OUT_JACK 0x03 13*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_ELEMENT 0x04 14*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_GENERAL 0x01 15*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_EMBEDDED 0x01 16*8d67ca89SAndroid Build Coastguard Worker #define USB_MS_EXTERNAL 0x02 17*8d67ca89SAndroid Build Coastguard Worker struct usb_ms_header_descriptor { 18*8d67ca89SAndroid Build Coastguard Worker __u8 bLength; 19*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorType; 20*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorSubtype; 21*8d67ca89SAndroid Build Coastguard Worker __le16 bcdMSC; 22*8d67ca89SAndroid Build Coastguard Worker __le16 wTotalLength; 23*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 24*8d67ca89SAndroid Build Coastguard Worker #define USB_DT_MS_HEADER_SIZE 7 25*8d67ca89SAndroid Build Coastguard Worker struct usb_midi_in_jack_descriptor { 26*8d67ca89SAndroid Build Coastguard Worker __u8 bLength; 27*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorType; 28*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorSubtype; 29*8d67ca89SAndroid Build Coastguard Worker __u8 bJackType; 30*8d67ca89SAndroid Build Coastguard Worker __u8 bJackID; 31*8d67ca89SAndroid Build Coastguard Worker __u8 iJack; 32*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 33*8d67ca89SAndroid Build Coastguard Worker #define USB_DT_MIDI_IN_SIZE 6 34*8d67ca89SAndroid Build Coastguard Worker struct usb_midi_source_pin { 35*8d67ca89SAndroid Build Coastguard Worker __u8 baSourceID; 36*8d67ca89SAndroid Build Coastguard Worker __u8 baSourcePin; 37*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 38*8d67ca89SAndroid Build Coastguard Worker struct usb_midi_out_jack_descriptor { 39*8d67ca89SAndroid Build Coastguard Worker __u8 bLength; 40*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorType; 41*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorSubtype; 42*8d67ca89SAndroid Build Coastguard Worker __u8 bJackType; 43*8d67ca89SAndroid Build Coastguard Worker __u8 bJackID; 44*8d67ca89SAndroid Build Coastguard Worker __u8 bNrInputPins; 45*8d67ca89SAndroid Build Coastguard Worker struct usb_midi_source_pin pins[]; 46*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 47*8d67ca89SAndroid Build Coastguard Worker #define USB_DT_MIDI_OUT_SIZE(p) (7 + 2 * (p)) 48*8d67ca89SAndroid Build Coastguard Worker #define DECLARE_USB_MIDI_OUT_JACK_DESCRIPTOR(p) struct usb_midi_out_jack_descriptor_ ##p { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bJackType; __u8 bJackID; __u8 bNrInputPins; struct usb_midi_source_pin pins[p]; __u8 iJack; \ 49*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)) 50*8d67ca89SAndroid Build Coastguard Worker struct usb_ms_endpoint_descriptor { 51*8d67ca89SAndroid Build Coastguard Worker __u8 bLength; 52*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorType; 53*8d67ca89SAndroid Build Coastguard Worker __u8 bDescriptorSubtype; 54*8d67ca89SAndroid Build Coastguard Worker __u8 bNumEmbMIDIJack; 55*8d67ca89SAndroid Build Coastguard Worker __u8 baAssocJackID[]; 56*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)); 57*8d67ca89SAndroid Build Coastguard Worker #define USB_DT_MS_ENDPOINT_SIZE(n) (4 + (n)) 58*8d67ca89SAndroid Build Coastguard Worker #define DECLARE_USB_MS_ENDPOINT_DESCRIPTOR(n) struct usb_ms_endpoint_descriptor_ ##n { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bNumEmbMIDIJack; __u8 baAssocJackID[n]; \ 59*8d67ca89SAndroid Build Coastguard Worker } __attribute__((packed)) 60*8d67ca89SAndroid Build Coastguard Worker #endif 61