Committer:
RichardUK
Date:
Sun Jul 08 20:18:58 2012 +0000
Revision:
0:63d45df56584
Child:
1:4461071ed964
Fixed memory leak where endpoints were being allocated over and over again. Now only allocates on first use.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RichardUK 0:63d45df56584 1 #ifndef __USB_ENUMS_H__
RichardUK 0:63d45df56584 2 #define __USB_ENUMS_H__
RichardUK 0:63d45df56584 3
RichardUK 0:63d45df56584 4 enum TransferCompletionCode
RichardUK 0:63d45df56584 5 {
RichardUK 0:63d45df56584 6 /**
RichardUK 0:63d45df56584 7 * General TD or isochronous data packet processing completed with no detected errors
RichardUK 0:63d45df56584 8 */
RichardUK 0:63d45df56584 9 TCC_NOERROR = 0,
RichardUK 0:63d45df56584 10
RichardUK 0:63d45df56584 11 /**
RichardUK 0:63d45df56584 12 * Last data packet from endpoint contained a CRC error.
RichardUK 0:63d45df56584 13 */
RichardUK 0:63d45df56584 14 TCC_CRC = 1,
RichardUK 0:63d45df56584 15
RichardUK 0:63d45df56584 16 /**
RichardUK 0:63d45df56584 17 * Last data packet from endpoint contained a bit stuffing violation
RichardUK 0:63d45df56584 18 */
RichardUK 0:63d45df56584 19 TCC_BITSTUFFING = 2,
RichardUK 0:63d45df56584 20
RichardUK 0:63d45df56584 21 /**
RichardUK 0:63d45df56584 22 * Last packet from endpoint had data toggle PID that did not match the expected value.
RichardUK 0:63d45df56584 23 */
RichardUK 0:63d45df56584 24 TCC_DATATOGGLEMISMATCH = 3,
RichardUK 0:63d45df56584 25
RichardUK 0:63d45df56584 26 /**
RichardUK 0:63d45df56584 27 * TD was moved to the Done Queue because the endpoint returned a STALL PID
RichardUK 0:63d45df56584 28 */
RichardUK 0:63d45df56584 29 TCC_STALL = 4,
RichardUK 0:63d45df56584 30
RichardUK 0:63d45df56584 31 /**
RichardUK 0:63d45df56584 32 * Device did not respond to token (IN) or did not provide a handshake (OUT)
RichardUK 0:63d45df56584 33 */
RichardUK 0:63d45df56584 34 TCC_DEVICENOTRESPONDING = 5,
RichardUK 0:63d45df56584 35
RichardUK 0:63d45df56584 36 /**
RichardUK 0:63d45df56584 37 * Check bits on PID from endpoint failed on data PID (IN) or handshake (OUT)
RichardUK 0:63d45df56584 38 */
RichardUK 0:63d45df56584 39 TCC_PIDCHECKFAILURE = 6,
RichardUK 0:63d45df56584 40
RichardUK 0:63d45df56584 41 /**
RichardUK 0:63d45df56584 42 * Receive PID was not valid when encountered or PID value is not defined.
RichardUK 0:63d45df56584 43 */
RichardUK 0:63d45df56584 44 TCC_UNEXPECTEDPID = 7,
RichardUK 0:63d45df56584 45
RichardUK 0:63d45df56584 46 /**
RichardUK 0:63d45df56584 47 * The amount of data returned by the endpoint exceeded either the size of the maximum data packet allowed from the endpoint (found in MaximumPacketSize field of ED) or the remaining buffer size.
RichardUK 0:63d45df56584 48 */
RichardUK 0:63d45df56584 49 TCC_DATAOVERRUN = 8,
RichardUK 0:63d45df56584 50
RichardUK 0:63d45df56584 51 /**
RichardUK 0:63d45df56584 52 * The endpoint returned less than MaximumPacketSize and that amount was not sufficient to fill the specified buffer
RichardUK 0:63d45df56584 53 */
RichardUK 0:63d45df56584 54 TCC_DATAUNDERRUN = 9,
RichardUK 0:63d45df56584 55
RichardUK 0:63d45df56584 56 //
RichardUK 0:63d45df56584 57 TCC_reserved1 = 10,
RichardUK 0:63d45df56584 58
RichardUK 0:63d45df56584 59 //
RichardUK 0:63d45df56584 60 TCC_reserved2 = 11,
RichardUK 0:63d45df56584 61
RichardUK 0:63d45df56584 62 /**
RichardUK 0:63d45df56584 63 * During an IN, HC received data from endpoint faster than it could be written to system memory
RichardUK 0:63d45df56584 64 */
RichardUK 0:63d45df56584 65 TCC_BUFFEROVERRUN = 12,
RichardUK 0:63d45df56584 66
RichardUK 0:63d45df56584 67 /**
RichardUK 0:63d45df56584 68 * During an OUT, HC could not retrieve data from system memory fast enough to keep up with data USB data rate.
RichardUK 0:63d45df56584 69 */
RichardUK 0:63d45df56584 70 TCC_BUFFERUNDERRUN = 13,
RichardUK 0:63d45df56584 71 };
RichardUK 0:63d45df56584 72
RichardUK 0:63d45df56584 73 enum ControlTransferState
RichardUK 0:63d45df56584 74 {
RichardUK 0:63d45df56584 75 CTS_IDLE = 0,
RichardUK 0:63d45df56584 76 CTS_SETUP = 1,
RichardUK 0:63d45df56584 77 CTS_DATA = 2,
RichardUK 0:63d45df56584 78 CTS_ACK = 3
RichardUK 0:63d45df56584 79 };
RichardUK 0:63d45df56584 80
RichardUK 0:63d45df56584 81 enum DataToggle
RichardUK 0:63d45df56584 82 {
RichardUK 0:63d45df56584 83 TOGGLE_DATA0 = 2,
RichardUK 0:63d45df56584 84 TOGGLE_DATA1 = 3,
RichardUK 0:63d45df56584 85 };
RichardUK 0:63d45df56584 86
RichardUK 0:63d45df56584 87 enum TransferDescriptorDirection
RichardUK 0:63d45df56584 88 {
RichardUK 0:63d45df56584 89 TDD_SETUP = 0,
RichardUK 0:63d45df56584 90 TDD_OUT = 1,
RichardUK 0:63d45df56584 91 TDD_IN = 2,
RichardUK 0:63d45df56584 92 TDD_RESERVED = 3,
RichardUK 0:63d45df56584 93 };
RichardUK 0:63d45df56584 94
RichardUK 0:63d45df56584 95 enum libusb_endpoint_direction
RichardUK 0:63d45df56584 96 {
RichardUK 0:63d45df56584 97 LIBUSB_ENDPOINT_IN = 0x80,
RichardUK 0:63d45df56584 98 LIBUSB_ENDPOINT_OUT = 0x00
RichardUK 0:63d45df56584 99 };
RichardUK 0:63d45df56584 100
RichardUK 0:63d45df56584 101 enum libusb_descriptor_type
RichardUK 0:63d45df56584 102 {
RichardUK 0:63d45df56584 103 LIBUSB_DT_DEVICE = 0x01,
RichardUK 0:63d45df56584 104 LIBUSB_DT_CONFIG = 0x02,
RichardUK 0:63d45df56584 105 LIBUSB_DT_STRING = 0x03,
RichardUK 0:63d45df56584 106 LIBUSB_DT_INTERFACE = 0x04,
RichardUK 0:63d45df56584 107 LIBUSB_DT_ENDPOINT = 0x05,
RichardUK 0:63d45df56584 108 LIBUSB_DT_INTERFACE_ASSOCIATION = 0x0A,
RichardUK 0:63d45df56584 109 LIBUSB_DT_HID = 0x21,
RichardUK 0:63d45df56584 110 LIBUSB_DT_REPORT = 0x22,
RichardUK 0:63d45df56584 111 LIBUSB_DT_PHYSICAL = 0x23,
RichardUK 0:63d45df56584 112 LIBUSB_DT_HUB = 0x29,
RichardUK 0:63d45df56584 113 };
RichardUK 0:63d45df56584 114
RichardUK 0:63d45df56584 115 enum libusb_standard_request
RichardUK 0:63d45df56584 116 {
RichardUK 0:63d45df56584 117 LIBUSB_REQUEST_GET_STATUS = 0x00,
RichardUK 0:63d45df56584 118 LIBUSB_REQUEST_CLEAR_FEATURE = 0x01,
RichardUK 0:63d45df56584 119 /* 0x02 is reserved */
RichardUK 0:63d45df56584 120 LIBUSB_REQUEST_SET_FEATURE = 0x03,
RichardUK 0:63d45df56584 121 /* 0x04 is reserved */
RichardUK 0:63d45df56584 122 LIBUSB_REQUEST_SET_ADDRESS = 0x05,
RichardUK 0:63d45df56584 123 LIBUSB_REQUEST_GET_DESCRIPTOR = 0x06,
RichardUK 0:63d45df56584 124 LIBUSB_REQUEST_SET_DESCRIPTOR = 0x07,
RichardUK 0:63d45df56584 125 LIBUSB_REQUEST_GET_CONFIGURATION = 0x08,
RichardUK 0:63d45df56584 126 LIBUSB_REQUEST_SET_CONFIGURATION = 0x09,
RichardUK 0:63d45df56584 127 LIBUSB_REQUEST_GET_INTERFACE = 0x0A,
RichardUK 0:63d45df56584 128 LIBUSB_REQUEST_SET_INTERFACE = 0x0B,
RichardUK 0:63d45df56584 129 LIBUSB_REQUEST_SYNCH_FRAME = 0x0C,
RichardUK 0:63d45df56584 130 };
RichardUK 0:63d45df56584 131
RichardUK 0:63d45df56584 132 enum libusb_request_type
RichardUK 0:63d45df56584 133 {
RichardUK 0:63d45df56584 134 LIBUSB_REQUEST_TYPE_STANDARD = (0x00 << 5),
RichardUK 0:63d45df56584 135 LIBUSB_REQUEST_TYPE_CLASS = (0x01 << 5),
RichardUK 0:63d45df56584 136 LIBUSB_REQUEST_TYPE_VENDOR = (0x02 << 5),
RichardUK 0:63d45df56584 137 LIBUSB_REQUEST_TYPE_RESERVED = (0x03 << 5)
RichardUK 0:63d45df56584 138 };
RichardUK 0:63d45df56584 139
RichardUK 0:63d45df56584 140 enum libusb_request_recipient
RichardUK 0:63d45df56584 141 {
RichardUK 0:63d45df56584 142 LIBUSB_RECIPIENT_DEVICE = 0x00,
RichardUK 0:63d45df56584 143 LIBUSB_RECIPIENT_INTERFACE = 0x01,
RichardUK 0:63d45df56584 144 LIBUSB_RECIPIENT_ENDPOINT = 0x02,
RichardUK 0:63d45df56584 145 LIBUSB_RECIPIENT_OTHER = 0x03,
RichardUK 0:63d45df56584 146 };
RichardUK 0:63d45df56584 147
RichardUK 0:63d45df56584 148 #endif//#ifndef __USB_ENUMS_H__