Home | History | Annotate | Download | only in usb
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ***   To edit the content of this header, modify the corresponding
     11  ***   source file (e.g. under external/kernel-headers/original/) then
     12  ***   run bionic/libc/kernel/tools/update_all.py
     13  ***
     14  ***   Any manual change here will be lost the next time this script will
     15  ***   be run. You've been warned!
     16  ***
     17  ****************************************************************************
     18  ****************************************************************************/
     19 #ifndef __LINUX_USB_MIDI_H
     20 #define __LINUX_USB_MIDI_H
     21 #include <linux/types.h>
     22 #define USB_MS_HEADER 0x01
     23 #define USB_MS_MIDI_IN_JACK 0x02
     24 #define USB_MS_MIDI_OUT_JACK 0x03
     25 #define USB_MS_ELEMENT 0x04
     26 #define USB_MS_GENERAL 0x01
     27 #define USB_MS_EMBEDDED 0x01
     28 #define USB_MS_EXTERNAL 0x02
     29 struct usb_ms_header_descriptor {
     30   __u8 bLength;
     31   __u8 bDescriptorType;
     32   __u8 bDescriptorSubtype;
     33   __le16 bcdMSC;
     34   __le16 wTotalLength;
     35 } __attribute__((packed));
     36 #define USB_DT_MS_HEADER_SIZE 7
     37 struct usb_midi_in_jack_descriptor {
     38   __u8 bLength;
     39   __u8 bDescriptorType;
     40   __u8 bDescriptorSubtype;
     41   __u8 bJackType;
     42   __u8 bJackID;
     43   __u8 iJack;
     44 } __attribute__((packed));
     45 #define USB_DT_MIDI_IN_SIZE 6
     46 struct usb_midi_source_pin {
     47   __u8 baSourceID;
     48   __u8 baSourcePin;
     49 } __attribute__((packed));
     50 struct usb_midi_out_jack_descriptor {
     51   __u8 bLength;
     52   __u8 bDescriptorType;
     53   __u8 bDescriptorSubtype;
     54   __u8 bJackType;
     55   __u8 bJackID;
     56   __u8 bNrInputPins;
     57   struct usb_midi_source_pin pins[];
     58 } __attribute__((packed));
     59 #define USB_DT_MIDI_OUT_SIZE(p) (7 + 2 * (p))
     60 #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; \
     61 } __attribute__((packed))
     62 struct usb_ms_endpoint_descriptor {
     63   __u8 bLength;
     64   __u8 bDescriptorType;
     65   __u8 bDescriptorSubtype;
     66   __u8 bNumEmbMIDIJack;
     67   __u8 baAssocJackID[];
     68 } __attribute__((packed));
     69 #define USB_DT_MS_ENDPOINT_SIZE(n) (4 + (n))
     70 #define DECLARE_USB_MS_ENDPOINT_DESCRIPTOR(n) struct usb_ms_endpoint_descriptor_ ##n { __u8 bLength; __u8 bDescriptorType; __u8 bDescriptorSubtype; __u8 bNumEmbMIDIJack; __u8 baAssocJackID[n]; \
     71 } __attribute__((packed))
     72 #endif
     73