1 use crate::*; 2 use libc::c_int; 3 4 // libusb_error 5 pub const LIBUSB_SUCCESS: c_int = 0; 6 pub const LIBUSB_ERROR_IO: c_int = -1; 7 pub const LIBUSB_ERROR_INVALID_PARAM: c_int = -2; 8 pub const LIBUSB_ERROR_ACCESS: c_int = -3; 9 pub const LIBUSB_ERROR_NO_DEVICE: c_int = -4; 10 pub const LIBUSB_ERROR_NOT_FOUND: c_int = -5; 11 pub const LIBUSB_ERROR_BUSY: c_int = -6; 12 pub const LIBUSB_ERROR_TIMEOUT: c_int = -7; 13 pub const LIBUSB_ERROR_OVERFLOW: c_int = -8; 14 pub const LIBUSB_ERROR_PIPE: c_int = -9; 15 pub const LIBUSB_ERROR_INTERRUPTED: c_int = -10; 16 pub const LIBUSB_ERROR_NO_MEM: c_int = -11; 17 pub const LIBUSB_ERROR_NOT_SUPPORTED: c_int = -12; 18 pub const LIBUSB_ERROR_OTHER: c_int = -99; 19 20 // libusb_transfer_status 21 pub const LIBUSB_TRANSFER_COMPLETED: c_int = 0; 22 pub const LIBUSB_TRANSFER_ERROR: c_int = 1; 23 pub const LIBUSB_TRANSFER_TIMED_OUT: c_int = 2; 24 pub const LIBUSB_TRANSFER_CANCELLED: c_int = 3; 25 pub const LIBUSB_TRANSFER_STALL: c_int = 4; 26 pub const LIBUSB_TRANSFER_NO_DEVICE: c_int = 5; 27 pub const LIBUSB_TRANSFER_OVERFLOW: c_int = 6; 28 29 pub const LIBUSB_TRANSFER_SHORT_NOT_OK: u8 = 1 << 0; 30 pub const LIBUSB_TRANSFER_FREE_BUFFER: u8 = 1 << 1; 31 pub const LIBUSB_TRANSFER_FREE_TRANSFER: u8 = 1 << 2; 32 pub const LIBUSB_TRANSFER_ADD_ZERO_PACKET: u8 = 1 << 3; 33 34 // libusb_capability 35 pub const LIBUSB_CAP_HAS_CAPABILITY: u32 = 0x0000; 36 pub const LIBUSB_CAP_HAS_HOTPLUG: u32 = 0x0001; 37 pub const LIBUSB_CAP_HAS_HID_ACCESS: u32 = 0x0100; 38 pub const LIBUSB_CAP_SUPPORTS_DETACH_KERNEL_DRIVER: u32 = 0x0101; 39 40 //// libusb_log_level 41 pub const LIBUSB_LOG_LEVEL_NONE: c_int = 0; 42 pub const LIBUSB_LOG_LEVEL_ERROR: c_int = 1; 43 pub const LIBUSB_LOG_LEVEL_WARNING: c_int = 2; 44 pub const LIBUSB_LOG_LEVEL_INFO: c_int = 3; 45 pub const LIBUSB_LOG_LEVEL_DEBUG: c_int = 4; 46 47 // libusb_class_code 48 pub const LIBUSB_CLASS_PER_INTERFACE: u8 = 0; 49 pub const LIBUSB_CLASS_AUDIO: u8 = 1; 50 pub const LIBUSB_CLASS_COMM: u8 = 2; 51 pub const LIBUSB_CLASS_HID: u8 = 3; 52 pub const LIBUSB_CLASS_PHYSICAL: u8 = 5; 53 pub const LIBUSB_CLASS_PRINTER: u8 = 7; 54 pub const LIBUSB_CLASS_IMAGE: u8 = 6; 55 pub const LIBUSB_CLASS_MASS_STORAGE: u8 = 8; 56 pub const LIBUSB_CLASS_HUB: u8 = 9; 57 pub const LIBUSB_CLASS_DATA: u8 = 10; 58 pub const LIBUSB_CLASS_SMART_CARD: u8 = 0x0B; 59 pub const LIBUSB_CLASS_CONTENT_SECURITY: u8 = 0x0D; 60 pub const LIBUSB_CLASS_VIDEO: u8 = 0x0E; 61 pub const LIBUSB_CLASS_PERSONAL_HEALTHCARE: u8 = 0x0F; 62 pub const LIBUSB_CLASS_DIAGNOSTIC_DEVICE: u8 = 0xDC; 63 pub const LIBUSB_CLASS_WIRELESS: u8 = 0xE0; 64 pub const LIBUSB_CLASS_APPLICATION: u8 = 0xFE; 65 pub const LIBUSB_CLASS_VENDOR_SPEC: u8 = 0xFF; 66 67 // libusb_speed 68 pub const LIBUSB_SPEED_UNKNOWN: c_int = 0; 69 pub const LIBUSB_SPEED_LOW: c_int = 1; 70 pub const LIBUSB_SPEED_FULL: c_int = 2; 71 pub const LIBUSB_SPEED_HIGH: c_int = 3; 72 pub const LIBUSB_SPEED_SUPER: c_int = 4; 73 pub const LIBUSB_SPEED_SUPER_PLUS: c_int = 5; 74 75 // libusb_descriptor_type 76 pub const LIBUSB_DT_DEVICE: u8 = 0x01; 77 pub const LIBUSB_DT_CONFIG: u8 = 0x02; 78 pub const LIBUSB_DT_STRING: u8 = 0x03; 79 pub const LIBUSB_DT_INTERFACE: u8 = 0x04; 80 pub const LIBUSB_DT_ENDPOINT: u8 = 0x05; 81 pub const LIBUSB_DT_BOS: u8 = 0x0F; 82 pub const LIBUSB_DT_DEVICE_CAPABILITY: u8 = 0x10; 83 pub const LIBUSB_DT_HID: u8 = 0x21; 84 pub const LIBUSB_DT_REPORT: u8 = 0x22; 85 pub const LIBUSB_DT_PHYSICAL: u8 = 0x23; 86 pub const LIBUSB_DT_HUB: u8 = 0x29; 87 pub const LIBUSB_DT_SUPERSPEED_HUB: u8 = 0x2A; 88 pub const LIBUSB_DT_SS_ENDPOINT_COMPANION: u8 = 0x30; 89 90 // libusb_endpoint_direction 91 pub const LIBUSB_ENDPOINT_ADDRESS_MASK: u8 = 0x0F; 92 pub const LIBUSB_ENDPOINT_DIR_MASK: u8 = 0x80; 93 pub const LIBUSB_ENDPOINT_IN: u8 = 0x80; 94 pub const LIBUSB_ENDPOINT_OUT: u8 = 0x00; 95 96 // libusb_transfer_type 97 pub const LIBUSB_TRANSFER_TYPE_MASK: u8 = 0x03; 98 pub const LIBUSB_TRANSFER_TYPE_CONTROL: u8 = 0; 99 pub const LIBUSB_TRANSFER_TYPE_ISOCHRONOUS: u8 = 1; 100 pub const LIBUSB_TRANSFER_TYPE_BULK: u8 = 2; 101 pub const LIBUSB_TRANSFER_TYPE_INTERRUPT: u8 = 3; 102 pub const LIBUSB_TRANSFER_TYPE_BULK_STREAM: u8 = 4; 103 104 // libusb_iso_sync_type 105 pub const LIBUSB_ISO_SYNC_TYPE_MASK: u8 = 0x0C; 106 pub const LIBUSB_ISO_SYNC_TYPE_NONE: u8 = 0; 107 pub const LIBUSB_ISO_SYNC_TYPE_ASYNC: u8 = 1; 108 pub const LIBUSB_ISO_SYNC_TYPE_ADAPTIVE: u8 = 2; 109 pub const LIBUSB_ISO_SYNC_TYPE_SYNC: u8 = 3; 110 111 // libusb_iso_usage_type 112 pub const LIBUSB_ISO_USAGE_TYPE_MASK: u8 = 0x30; 113 pub const LIBUSB_ISO_USAGE_TYPE_DATA: u8 = 0; 114 pub const LIBUSB_ISO_USAGE_TYPE_FEEDBACK: u8 = 1; 115 pub const LIBUSB_ISO_USAGE_TYPE_IMPLICIT: u8 = 2; 116 117 // libusb_request_type 118 pub const LIBUSB_REQUEST_TYPE_STANDARD: u8 = 0x00 << 5; 119 pub const LIBUSB_REQUEST_TYPE_CLASS: u8 = 0x01 << 5; 120 pub const LIBUSB_REQUEST_TYPE_VENDOR: u8 = 0x02 << 5; 121 pub const LIBUSB_REQUEST_TYPE_RESERVED: u8 = 0x03 << 5; 122 123 // libusb_request_recipient 124 pub const LIBUSB_RECIPIENT_DEVICE: u8 = 0x00; 125 pub const LIBUSB_RECIPIENT_INTERFACE: u8 = 0x01; 126 pub const LIBUSB_RECIPIENT_ENDPOINT: u8 = 0x02; 127 pub const LIBUSB_RECIPIENT_OTHER: u8 = 0x03; 128 129 // libusb_standard_request 130 pub const LIBUSB_REQUEST_GET_STATUS: u8 = 0x00; 131 pub const LIBUSB_REQUEST_CLEAR_FEATURE: u8 = 0x01; 132 pub const LIBUSB_REQUEST_SET_FEATURE: u8 = 0x03; 133 pub const LIBUSB_REQUEST_SET_ADDRESS: u8 = 0x05; 134 pub const LIBUSB_REQUEST_GET_DESCRIPTOR: u8 = 0x06; 135 pub const LIBUSB_REQUEST_SET_DESCRIPTOR: u8 = 0x07; 136 pub const LIBUSB_REQUEST_GET_CONFIGURATION: u8 = 0x08; 137 pub const LIBUSB_REQUEST_SET_CONFIGURATION: u8 = 0x09; 138 pub const LIBUSB_REQUEST_GET_INTERFACE: u8 = 0x0A; 139 pub const LIBUSB_REQUEST_SET_INTERFACE: u8 = 0x0B; 140 pub const LIBUSB_REQUEST_SYNCH_FRAME: u8 = 0x0C; 141 pub const LIBUSB_REQUEST_SET_SEL: u8 = 0x30; 142 pub const LIBUSB_SET_ISOCH_DELAY: u8 = 0x31; 143 144 // libusb_hotplug 145 pub const LIBUSB_HOTPLUG_NO_FLAGS: c_int = 0; 146 pub const LIBUSB_HOTPLUG_ENUMERATE: c_int = 1 << 0; 147 pub const LIBUSB_HOTPLUG_EVENT_DEVICE_ARRIVED: c_int = 0x01; 148 pub const LIBUSB_HOTPLUG_EVENT_DEVICE_LEFT: c_int = 0x02; 149 pub const LIBUSB_HOTPLUG_MATCH_ANY: c_int = -1; 150 151 pub const LIBUSB_OPTION_LOG_LEVEL: u32 = 0x00; 152 pub const LIBUSB_OPTION_USE_USBDK: u32 = 0x01; 153 pub const LIBUSB_OPTION_WEAK_AUTHORITY: u32 = 0x02; 154 pub const LIBUSB_OPTION_NO_DEVICE_DISCOVERY: u32 = 0x02; 155 156 // libusb_log_cb_mode 157 pub const LIBUSB_LOG_CB_GLOBAL: libusb_log_cb_mode = 1 << 0; 158 pub const LIBUSB_LOG_CB_CONTEXT: libusb_log_cb_mode = 1 << 1; 159 160 pub const LIBUSB_CONTROL_SETUP_SIZE: usize = std::mem::size_of::<libusb_control_setup>(); 161