Import some USB devices class definitions headers.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4076 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin 2003-07-26 01:07:12 +00:00
parent a8dcb2c935
commit 52fc197a09
4 changed files with 376 additions and 0 deletions

View File

@ -0,0 +1,47 @@
#ifndef USB_AUDIO_H
#define USB_AUDIO_H
// (Partial) USB Class Definitions for Audio Devices, version 1.0
// (usb_audio_class_10.pdf)
#define USB_AUDIO_DEVICE_CLASS 0x01
#define USB_AUDIO_CLASS_VERSION 0x0100
enum {
USB_AUDIO_INTERFACE_AUDIO_CLASS = 0x01
};
enum { // Audio Interface Subclasses
USB_AUDIO_INTERFACE_AUDIOCONTROL_SUBCLASS = 0x01, //
USB_AUDIO_INTERFACE_AUDIOSTREAMING_SUBCLASS, //
USB_AUDIO_INTERFACE_MIDISTREAMING_SUBCLASS //
};
enum { // Audio Class-Specific AudioControl Interface descriptor subtypes
USB_AUDIO_AC_HEADER = 0x01,
USB_AUDIO_AC_INPUT_TERMINAL,
USB_AUDIO_AC_OUTPUT_TERMINAL,
USB_AUDIO_AC_MIXER_UNIT,
USB_AUDIO_AC_SELECTOR_UNIT,
USB_AUDIO_AC_FEATURE_UNIT,
USB_AUDIO_AC_PROCESSING_UNIT,
USB_AUDIO_AC_EXTENSION_UNIT
};
enum { // Audio Class-Specific AudioStreaming Interface descriptor subtypes
USB_AUDIO_AS_GENERAL = 0x01,
USB_AUDIO_AS_FORMAT_GENERAL,
USB_AUDIO_AS_FORMAT_SPECIFIC
};
enum { // Processing Unit Process Types (for USB_AUDIO_AC_PROCESSING_UNIT)
USB_AUDIO_UP_DOWNMIX_PROCESS = 0x01,
USB_AUDIO_DOLBY_PROLOGIC_PROCESS,
USB_AUDIO_3D_STEREO_EXTENDER_PROCESS,
USB_AUDIO_REVERBERATION_PROCESS,
USB_AUDIO_CHORUS_PROCESS,
USB_AUDIO_DYN_RANGE_COMP_PROCESS
};
#endif // USB_AUDIO_H

View File

@ -0,0 +1,136 @@
#ifndef USB_CDC_H
#define USB_CDC_H
// (Partial) USB Class Definitions for Communication Devices (CDC), version 1.1
// (usbcdc11.pdf)
#define USB_COMMUNICATION_DEVICE_CLASS 0x02
#define USB_CDC_COMMUNICATION_INTERFACE_CLASS 0x02
#define USB_CDC_CLASS_VERSION 0x0101
enum { // Communication Interface Subclasses
USB_CDC_COMMUNICATION_INTERFACE_DLCM_SUBCLASS = 0x01, // Direct Line Control Model
USB_CDC_COMMUNICATION_INTERFACE_ACM_SUBCLASS, // Abstract Control Model
USB_CDC_COMMUNICATION_INTERFACE_TCM_SUBCLASS, // Telephone Control Model
USB_CDC_COMMUNICATION_INTERFACE_MCCM_SUBCLASS, // Multi-Channel Control Model
USB_CDC_COMMUNICATION_INTERFACE_CAPICM_SUBCLASS, // CAPI Control Model
USB_CDC_COMMUNICATION_INTERFACE_ENCM_SUBCLASS, // Ethernet Networking Control Model
USB_CDC_COMMUNICATION_INTERFACE_ATMNCM_SUBCLASS // ATM Networking Control Model
};
enum { // Communication Interface Class Control Protocols
USB_CDC_COMMUNICATION_INTERFACE_NONE_PROTOCOL = 0x00, // No class specific protocol required
USB_CDC_COMMUNICATION_INTERFACE_V25TER_PROTOCOL = 0x01, // Common AT commands (also knowns as "Hayes compatible")
USB_CDC_COMMUNICATION_INTERFACE_SPECIFIC_PROTOCOL = 0xff // Vendor-specific protocol
};
#define USB_CDC_DATA_INTERFACE_CLASS 0x0a
enum { // Management Element Requests (p62)
USB_CDC_SEND_ENCAPSULATED_COMMAND = 0x00,
USB_CDC_GET_ENCAPSULATED_RESPONSE,
USB_CDC_SET_COMM_FEATURE,
USB_CDC_GET_COMM_FEATURE,
USB_CDC_CLEAR_COMM_FEATURE,
// 0x05 -> 0x0F: reserved for future use
USB_CDC_SET_AUX_LINE_STATE = 0x10,
USB_CDC_SET_HOOK_STATE,
USB_CDC_PULSE_SETUP,
USB_CDC_SEND_PULSE,
USB_CDC_SET_PULSE_TIME,
USB_CDC_RING_AUX_JACK,
// 0x16 -> 0x1F: reserved for future use
USB_CDC_SET_LINE_CODING = 0x20,
USB_CDC_GET_LINE_CODING,
USB_CDC_SET_CONTROL_LINE_STATE,
USB_CDC_SEND_BREAK,
// 0x24 -> 0x2F: reserved for future use
USB_CDC_SET_RINGER_PARMS = 0x30,
USB_CDC_GET_RINGER_PARMS,
USB_CDC_SET_OPERATION_PARMS,
USB_CDC_GET_OPERATION_PARMS,
USB_CDC_SET_LINE_PARMS,
USB_CDC_GET_LINE_PARMS,
USB_CDC_DIAL_DIGITS,
USB_CDC_SET_UNIT_PARAMETER,
USB_CDC_GET_UNIT_PARAMETER,
USB_CDC_CLEAR_UNIT_PARAMETER,
USB_CDC_GET_PROFILE,
// 0x3B -> 0x3F: reserved for future use
USB_CDC_SET_ETHERNET_MULTICAST_FILTERS = 0x40,
USB_CDC_SET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER,
USB_CDC_GET_ETHERNET_POWER_MANAGEMENT_PATTERN_FILTER,
USB_CDC_SET_ETHERNET_PACKET_FILTER,
USB_CDC_GET_ETHERNET_STATISTIC,
// 0x45 -> 0x4F: reserved for future use
USB_CDC_SET_ATM_DATA_FORMAT = 0x50,
USB_CDC_GET_ATM_DEVICE_STATISTICS,
USB_CDC_SET_ATM_DEFAULT_VC,
USB_CDC_GET_ATM_VC_STATISTICS
// 0x54 -> 0xFF: reserved for future use
};
enum { // Feature Selector (for USB_CDC_SET/GET/CLEAR_COMM_FEATURE (p65-66))
USB_CDC_ABSTRACT_STATE = 0x01,
USB_CDC_COUNTRY_SETTING = 0x02
};
enum { // ABSTRACT_STATE bitmap (for USB_CDC_ABSTRAT_STATE Feature Selector (p66))
USB_CDC_ABSTRACT_STATE_IDLE = 0x01,
USB_CDC_ABSTRACT_STATE_DATA_MULTIPLEXED = 0x02
};
typedef struct { // Line Coding Structure (for USB_CDC_SET/GET_LINE_CODING (p69))
uint32 speed;
uint8 stopbits;
uint8 parity;
uint8 databits;
} _PACKED usb_cdc_line_coding;
enum { // CDC stopbits values (for Line Coding Structure stopbits field)
USB_CDC_1_STOPBIT = 0,
USB_CDC_1_5_STOPBITS,
USB_CDC_2_STOPBITS
};
enum { // CDC parity values (for Line Coding Structure parity field)
USB_CDC_NO_PARITY = 0,
USB_CDC_ODD_PARITY,
USB_CDC_EVEN_PARITY,
USB_CDC_MARK_PARITY,
USB_CDC_SPACE_PARITY
};
enum { // CDC Control Signal bitmap (for CDC_SET_CONTROL_LINE_STATE request)
USB_CDC_CONTROL_SIGNAL_STATE_DTR = 0x01,
USB_CDC_CONTROL_SIGNAL_STATE_RTS = 0x02
};
enum { // Notification Elements notifications (p84)
USB_CDC_NETWORK_CONNECTION = 0x00,
USB_CDC_RESPONSE_AVAILABLE,
// 0x02 -> 0x07: reserved for future use
USB_CDC_AUX_JACK_HOOK_STATE = 0x08,
USB_CDC_RING_DETECT,
// 0x0a -> 0x1f: reserved for future use
USB_CDC_SERIAL_STATE = 0x20,
// 0x21 -> 0x27: reserved for future use
USB_CDC_CALL_STATE_CHANGE = 0x28,
USB_CDC_LINE_STATE_CHANGE,
USB_CDC_CONNECTION_SPEED_CHANGE
// 0x2b -> 0xff: reserved for future use
};
enum { // CDC UART State bitmap (for USB_CDC_SERIAL_STATE notification)
USB_CDC_UART_STATE_DCD = 0x01,
USB_CDC_UART_STATE_DSR = 0x02,
USB_CDC_UART_STATE_BREAK = 0x04,
USB_CDC_UART_STATE_RING = 0x08,
USB_CDC_UART_STATE_FRAMING_ERROR = 0x10,
USB_CDC_UART_STATE_PARITY_ERROR = 0x20,
USB_CDC_UART_STATE_OVERRUN_ERROR = 0x40
};
#endif // USB_CDC_H

View File

@ -0,0 +1,173 @@
#ifndef USB_LANGIDS_H
#define USB_LANGIDS_H
// USB Language Identifiers, 3/29/2000, version 1.0
// (http://www.usb.org/developers/data/USB_LANGIDs.pdf)
#define USB_LANGIDS_VERSION 0x0100 // version 1.0
// descriptor string index 0 = supported LANGIDs array
#define USB_LANGIDS_STRING_INDEX (0)
#define USB_PRIMARY_LANGID_MASK (0x003F) // 9 to 0 bits
#define USB_SUB_LANGID_MASK (0xFC00) // 15 to 10 bits
#define USB_PRIMARY_LANGID(id) (id & USB_PRIMARY_LANGID_MASK)
#define USB_SUB_LANGID(id) ((id & USB_SUB_LANGID_MASK) >> 10)
enum {
USB_LANGID_AFRIKAANS = 0x0436, // Afrikaans
USB_LANGID_ALBANIAN = 0x041c, // Albanian
USB_LANGID_ARABIC_SAUDI_ARABIA = 0x0401, // Arabic (Saudi Arabia)
USB_LANGID_ARABIC_IRAK = 0x0801, // Arabic (Irak)
USB_LANGID_ARABIC_EGYPT = 0x0c01, // Arabic (Egypt)
USB_LANGID_ARABIC_LYBYA = 0x1001, // Arabic (Libya)
USB_LANGID_ARABIC_ALGERIA = 0x1401, // Arabic (Algeria)
USB_LANGID_ARABIC_MOROCCO = 0x1801, // Arabic (Morocco)
USB_LANGID_ARABIC_TUNISIA = 0x1c01, // Arabic (Tunisia)
USB_LANGID_ARABIC_OMAN = 0x2001, // Arabic (Oman)
USB_LANGID_ARABIC_YEMEN = 0x2401, // Arabic (Yemen)
USB_LANGID_ARABIC_SYRIA = 0x2801, // Arabic (Syria)
USB_LANGID_ARABIC_JORDAN = 0x2c01, // Arabic (Jordan)
USB_LANGID_ARABIC_LEBANON = 0x3001, // Arabic (Lebanon)
USB_LANGID_ARABIC_KUWAIT = 0x3401, // Arabic (Kuwait)
USB_LANGID_ARABIC_UAE = 0x3801, // Arabic (U.A.E.)
USB_LANGID_ARABIC_BAHRAIN = 0x3c01, // Arabic (Bahrain)
USB_LANGID_ARABIC_QATAR = 0x4001, // Arabic (Qatar)
USB_LANGID_ARMENIAN = 0x042b, // Armenian
USB_LANGID_ASSAMESE = 0x044d, // Assamese
USB_LANGID_AZERI_LATIN = 0x042c, // Azeri (Latin)
USB_LANGID_AZERI_CYRILLIC = 0x082c, // Azeri (Cyrillic)
USB_LANGID_BASQUE = 0x042d, // Basque
USB_LANGID_BELARUSSIAN = 0x0423, // Belarussian
USB_LANGID_BENGALI = 0x0445, // Bengali
USB_LANGID_BULGARIAN = 0x0402, // Bulgarian
USB_LANGID_BURMESE = 0x0455, // Burmese
USB_LANGID_CATALAN = 0x0403, // Catalan
USB_LANGID_CHINESE_TAIWAN = 0x0404, // Chinese (Taiwan)
USB_LANGID_CHINESE_PRC = 0x0804, // Chinese (PRC = People Republic of Chinese)
USB_LANGID_CHINESE_HONG_KONG = 0x0c04, // Chinese (Hong Kong)
USB_LANGID_CHINESE_SINGAPORE = 0x1004, // Chinese (Singapore)
USB_LANGID_CHINESE_MACAU_SAR = 0x1404, // Chinese (Macau SAR)
USB_LANGID_CROATIAN = 0x041a, // Croatian
USB_LANGID_CZECH = 0x0405, // Czech
USB_LANGID_DANISH = 0x0406, // Danish
USB_LANGID_DUTCH_NETHERLANDS = 0x0413, // Dutch (Netherlands)
USB_LANGID_DUTCH_BELGIUM = 0x0813, // Dutch (Belgium)
USB_LANGID_ENGLISH_UNITED_STATES = 0x0409, // English (United States)
USB_LANGID_ENGLISH_UNITED_KINGDOM = 0x0809, // English (United Kingdom)
USB_LANGID_ENGLISH_AUSTRALIAN = 0x0c09, // English (Australian)
USB_LANGID_ENGLISH_CANADIAN = 0x1009, // English (Canadian)
USB_LANGID_ENGLISH_NEW_ZEALAND = 0x1409, // English (New Zealand)
USB_LANGID_ENGLISH_IRELAND = 0x1809, // English (Ireland)
USB_LANGID_ENGLISH_SOUTH_AFRICA = 0x1c09, // English (South Africa)
USB_LANGID_ENGLISH_JAMAICA = 0x2009, // English (Jamaica)
USB_LANGID_ENGLISH_CARIBBEAN = 0x2409, // English (Caribbean)
USB_LANGID_ENGLISH_BELIZE = 0x2809, // English (Belize)
USB_LANGID_ENGLISH_TRINIDAD = 0x2c09, // English (Trinidad)
USB_LANGID_ENGLISH_ZIMBABWE = 0x3009, // English (Zimbabwe)
USB_LANGID_ENGLISH_PHLIPPINES = 0x3409, // English (Philippines)
USB_LANGID_ESTONIAN = 0x0425, // Estonian
USB_LANGID_FAEROESE = 0x0438, // Faeroese
USB_LANGID_FARSI = 0x0429, // Farsi
USB_LANGID_FINNISH = 0x040b, // Finnish
USB_LANGID_FRENCH_STANDARD = 0x040c, // French (Standard)
USB_LANGID_FRENCH_BELGIAN = 0x080c, // French (Belgian)
USB_LANGID_FRENCH_CANADIAN = 0x0c0c, // French (Canadian)
USB_LANGID_FRENCH_SWITZERLAND = 0x100c, // French (Switzerland)
USB_LANGID_FRENCH_LUXEMBOURG = 0x140c, // French (Luxembourg)
USB_LANGID_FRENCH_MONACO = 0x180c, // French (Monaco)
USB_LANGID_GEORGIAN = 0x0437, // Georgian
USB_LANGID_GERMAN_STANDARD = 0x0407, // German (Standard)
USB_LANGID_GERMAN_SWITZERLAND = 0x0807, // German (Switzerland)
USB_LANGID_GERMAN_AUSTRIA = 0x0c07, // German (Austria)
USB_LANGID_GERMAN_LUXEMBOURG = 0x1007, // German (Luxembourg)
USB_LANGID_GERMAN_LIECHTENSTEIN = 0x1407, // German (Liechtenstein)
USB_LANGID_GREEK = 0x0408, // Greek
USB_LANGID_GUJARATI = 0x0447, // Gujarati
USB_LANGID_HEBREW = 0x040d, // Hebrew
USB_LANGID_HINDI = 0x0439, // Hindi
USB_LANGID_HUNGARIAN = 0x040e, // Hungarian
USB_LANGID_ICELANDIC = 0x040f, // Icelandic
USB_LANGID_INDONESIAN = 0x0421, // Indonesian
USB_LANGID_ITALIAN_STANDARD = 0x0410, // Italian (Standard)
USB_LANGID_ITALIAN_SWITZERLAND = 0x0810, // Italian (Switzerland)
USB_LANGID_JAPANESE = 0x0411, // Japanese
USB_LANGID_KANNADA = 0x044b, // Kannada
USB_LANGID_KASHMIRI_INDIA = 0x0860, // Kashmiri (India)
USB_LANGID_KAZAKH = 0x043f, // Kazakh
USB_LANGID_KONKANI = 0x0457, // Konkani
USB_LANGID_KOREAN_JOHAB = 0x0412, // Korean (Johab)
USB_LANGID_LATVIAN = 0x0426, // Latvian
USB_LANGID_LITHUANIAN = 0x0427, // Lithuanian
USB_LANGID_LITHUANIAN_CLASSIC = 0x0827, // Lithuanian (Classic)
USB_LANGID_MACEDONIAN = 0x042f, // Macedonian
USB_LANGID_MALAY_MALAYSIAN = 0x043e, // Malay (Malaysian)
USB_LANGID_MALAY_BRUNEI_DARUSSALAM = 0x083e, // Malay (Brunei Darussalam)
USB_LANGID_MALAYALAM = 0x044c, // Malayalam
USB_LANGID_MANIPURI = 0x0458, // Manipuri
USB_LANGID_MARATHI = 0x044e, // Marathi
USB_LANGID_NEPALI_INDIA = 0x0861, // Nepali (India)
USB_LANGID_NORWEGIAN_BOKMAL = 0x0414, // Norwegian (Bokmal)
USB_LANGID_NORWEGIAN_NYNORSK = 0x0814, // Norwegian (Nynorsk)
USB_LANGID_ORIYA = 0x0448, // Oriya
USB_LANGID_POLISH = 0x0415, // Polish
USB_LANGID_PORTUGUESE_BRAZIL = 0x0416, // Portuguese (Brazil)
USB_LANGID_PORTUGUESE_STANDARD = 0x0816, // Portuguese (Standard)
USB_LANGID_PUNJABI = 0x0446, // Punjabi
USB_LANGID_ROMANIAN = 0x0418, // Romanian
USB_LANGID_RUSSIAN = 0x0419, // Russian
USB_LANGID_SANSKRIT = 0x044f, // Sanskrit
USB_LANGID_SERBIAN_CYRILLIC = 0x0c1a, // Serbian (Cyrillic)
USB_LANGID_SERBIAN_LATIN = 0x081a, // Serbian (Latin)
USB_LANGID_SINDHI = 0x0459, // Sindhi
USB_LANGID_SLOVAK = 0x041b, // Slovak
USB_LANGID_SLOVENIAN = 0x0424, // Slovenian
USB_LANGID_SPANNISH_TRADITIONAL_SORT= 0x040a, // Spannish (Traditional Sort)
USB_LANGID_SPANNISH_MEXICAN = 0x080a, // Spannish (Mexican)
USB_LANGID_SPANNISH_MODERN_SORT = 0x0c0a, // Spannish (Modern Sort)
USB_LANGID_SPANNISH_GUATEMALA = 0x100a, // Spannish (Guatemala)
USB_LANGID_SPANNISH_COSTA_RICA = 0x140a, // Spannish (Costa Rica)
USB_LANGID_SPANNISH_PANAMA = 0x180a, // Spannish (Panama)
USB_LANGID_SPANNISH_DOMINICAN_REPUBLIC = 0x1c0a, // Spannish (Dominican Republic)
USB_LANGID_SPANNISH_VENEZUELA = 0x200a, // Spannish (Venezuela)
USB_LANGID_SPANNISH_COLOMBIA = 0x240a, // Spannish (Colombia)
USB_LANGID_SPANNISH_PERU = 0x280a, // Spannish (Peru)
USB_LANGID_SPANNISH_ARGENTINA = 0x2c0a, // Spannish (Argentina)
USB_LANGID_SPANNISH_ECUADOR = 0x300a, // Spannish (Ecuador)
USB_LANGID_SPANNISH_CHILE = 0x340a, // Spannish (Chile)
USB_LANGID_SPANNISH_URUGUAY = 0x380a, // Spannish (Uruguay)
USB_LANGID_SPANNISH_PARAGUAY = 0x3c0a, // Spannish (Paraguay)
USB_LANGID_SPANNISH_BOLIVIA = 0x400a, // Spannish (Bolivia)
USB_LANGID_SPANNISH_EL_SALVADOR = 0x440a, // Spannish (El Salvador)
USB_LANGID_SPANNISH_HONDURAS = 0x480a, // Spannish (Honduras)
USB_LANGID_SPANNISH_NICARAGUA = 0x4c0a, // Spannish (Nicaragua)
USB_LANGID_SPANNISH_PUERTO_RICO = 0x500a, // Spannish (Puerto Rico)
USB_LANGID_SUTU = 0x0430, // Sutu
USB_LANGID_SWAHILI_KENYA = 0x0441, // Swahili (Kenya)
USB_LANGID_SWEDISH = 0x041d, // Swedish
USB_LANGID_SWEDISH_FINLAND = 0x081d, // Swedish (Finland)
USB_LANGID_TAMIL = 0x0449, // Tamil
USB_LANGID_TATAR_TATARSTAN = 0x0444, // Tatar (Tatarstan)
USB_LANGID_TELUGU = 0x044a, // Telugu
USB_LANGID_THAI = 0x041e, // Thai
USB_LANGID_TURKISH = 0x041f, // Turkish
USB_LANGID_UKRAINIAN = 0x0422, // Ukrainian
USB_LANGID_URDU_PAKISTAN = 0x0420, // Urdu (Pakistan)
USB_LANGID_URDU_INDIA = 0x0820, // Urdu (India)
USB_LANGID_UZBEK_LATIN = 0x0443, // Uzbek (Latin)
USB_LANGID_UZBEK_CYRILLIC = 0x0843, // Uzbek (Cyrillic)
USB_LANGID_VIETNAMESE = 0x042a, // Vietnamese
USB_LANGID_HID_UDD = 0x04ff, // HID (Usage Data Descriptor)
USB_LANGID_HID1 = 0xf0ff, // HID (Vendor Defined 1)
USB_LANGID_HID2 = 0xf4ff, // HID (Vendor Defined 2)
USB_LANGID_HID3 = 0xf8ff, // HID (Vendor Defined 3)
USB_LANGID_HID4 = 0xfcff, // HID (Vendor Defined 4)
USB_LANGID_INVALID = 0x0000 // Invalid LANG ID
};
#endif // USB_LANGIDS_H

View File

@ -0,0 +1,20 @@
#ifndef USB_MIDI_H
#define USB_MIDI_H
#include "USB_audio.h"
// (Partial) USB Class Definitions for MIDI Devices, version 1.0
// (usb_midi_class_10.pdf)
#define USB_MIDI_CLASS_VERSION 0x0100 // Class specification version 1.0
// USB MIDI Event Packet
// ... as clean structure:
typedef struct { // USB MIDI Event Packet
uint8 cin:4; // Code Index Number
uint8 cn:4; // Cable Number
uint8 midi[3];
} _PACKED usb_midi_event_packet;
#endif // USB_MIDI_H