libusb.h (5b40d9601c72fbb04f32437d529dbf51252dc31e) | libusb.h (37d0636aac290cc86ec7149a55167f6c21ad480f) |
---|---|
1/* $FreeBSD$ */ 2/*- 3 * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 87 unchanged lines hidden (view full) --- 96#define LIBUSB_DT_ENDPOINT_SIZE 7 97#define LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 98#define LIBUSB_DT_HUB_NONVAR_SIZE 7 99#define LIBUSB_DT_SS_ENDPOINT_COMPANION_SIZE 6 100#define LIBUSB_DT_BOS_SIZE 5 101#define LIBUSB_USB_2_0_EXTENSION_DEVICE_CAPABILITY_SIZE 7 102#define LIBUSB_SS_USB_DEVICE_CAPABILITY_SIZE 10 103 | 1/* $FreeBSD$ */ 2/*- 3 * Copyright (c) 2009 Sylvestre Gallon. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 87 unchanged lines hidden (view full) --- 96#define LIBUSB_DT_ENDPOINT_SIZE 7 97#define LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 98#define LIBUSB_DT_HUB_NONVAR_SIZE 7 99#define LIBUSB_DT_SS_ENDPOINT_COMPANION_SIZE 6 100#define LIBUSB_DT_BOS_SIZE 5 101#define LIBUSB_USB_2_0_EXTENSION_DEVICE_CAPABILITY_SIZE 7 102#define LIBUSB_SS_USB_DEVICE_CAPABILITY_SIZE 10 103 |
104#define LIBUSB_BT_USB_2_0_EXTENSION_SIZE 7 105#define LIBUSB_BT_SS_USB_DEVICE_CAPABILITY_SIZE 10 106#define LIBUSB_BT_CONTAINER_ID_SIZE 20 107 |
|
104#define LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f 105#define LIBUSB_ENDPOINT_DIR_MASK 0x80 106 107enum libusb_endpoint_direction { 108 LIBUSB_ENDPOINT_IN = 0x80, 109 LIBUSB_ENDPOINT_OUT = 0x00, 110}; 111 --- 48 unchanged lines hidden (view full) --- 160#define LIBUSB_ISO_USAGE_TYPE_MASK 0x30 161 162enum libusb_iso_usage_type { 163 LIBUSB_ISO_USAGE_TYPE_DATA = 0, 164 LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1, 165 LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2, 166}; 167 | 108#define LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f 109#define LIBUSB_ENDPOINT_DIR_MASK 0x80 110 111enum libusb_endpoint_direction { 112 LIBUSB_ENDPOINT_IN = 0x80, 113 LIBUSB_ENDPOINT_OUT = 0x00, 114}; 115 --- 48 unchanged lines hidden (view full) --- 164#define LIBUSB_ISO_USAGE_TYPE_MASK 0x30 165 166enum libusb_iso_usage_type { 167 LIBUSB_ISO_USAGE_TYPE_DATA = 0, 168 LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1, 169 LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2, 170}; 171 |
172enum libusb_bos_type { 173 LIBUSB_BT_WIRELESS_USB_DEVICE_CAPABILITY = 1, 174 LIBUSB_BT_USB_2_0_EXTENSION = 2, 175 LIBUSB_BT_SS_USB_DEVICE_CAPABILITY = 3, 176 LIBUSB_BT_CONTAINER_ID = 4, 177}; 178 |
|
168enum libusb_error { 169 LIBUSB_SUCCESS = 0, 170 LIBUSB_ERROR_IO = -1, 171 LIBUSB_ERROR_INVALID_PARAM = -2, 172 LIBUSB_ERROR_ACCESS = -3, 173 LIBUSB_ERROR_NO_DEVICE = -4, 174 LIBUSB_ERROR_NOT_FOUND = -5, 175 LIBUSB_ERROR_BUSY = -6, --- 168 unchanged lines hidden (view full) --- 344#define LIBUSB_CAPABILITY_FULL_SPEED_OPERATION (1 << 1) 345#define LIBUSB_CAPABILITY_HIGH_SPEED_OPERATION (1 << 2) 346#define LIBUSB_CAPABILITY_5GBPS_OPERATION (1 << 3) 347 uint8_t bFunctionalitySupport; 348 uint8_t bU1DevExitLat; 349 uint16_t wU2DevExitLat; 350} libusb_ss_usb_device_capability_descriptor __aligned(sizeof(void *)); 351 | 179enum libusb_error { 180 LIBUSB_SUCCESS = 0, 181 LIBUSB_ERROR_IO = -1, 182 LIBUSB_ERROR_INVALID_PARAM = -2, 183 LIBUSB_ERROR_ACCESS = -3, 184 LIBUSB_ERROR_NO_DEVICE = -4, 185 LIBUSB_ERROR_NOT_FOUND = -5, 186 LIBUSB_ERROR_BUSY = -6, --- 168 unchanged lines hidden (view full) --- 355#define LIBUSB_CAPABILITY_FULL_SPEED_OPERATION (1 << 1) 356#define LIBUSB_CAPABILITY_HIGH_SPEED_OPERATION (1 << 2) 357#define LIBUSB_CAPABILITY_5GBPS_OPERATION (1 << 3) 358 uint8_t bFunctionalitySupport; 359 uint8_t bU1DevExitLat; 360 uint16_t wU2DevExitLat; 361} libusb_ss_usb_device_capability_descriptor __aligned(sizeof(void *)); 362 |
363typedef struct libusb_bos_dev_capability_descriptor { 364 uint8_t bLength; 365 uint8_t bDescriptorType; 366 uint8_t bDevCapabilityType; 367 uint8_t dev_capability_data[0]; 368} libusb_bos_dev_capability_descriptor __aligned(sizeof(void *)); 369 |
|
352typedef struct libusb_bos_descriptor { 353 uint8_t bLength; 354 uint8_t bDescriptorType; 355 uint16_t wTotalLength; 356 uint8_t bNumDeviceCapabilities; 357 struct libusb_usb_2_0_device_capability_descriptor *usb_2_0_ext_cap; 358 struct libusb_ss_usb_device_capability_descriptor *ss_usb_cap; 359} libusb_bos_descriptor __aligned(sizeof(void *)); 360 | 370typedef struct libusb_bos_descriptor { 371 uint8_t bLength; 372 uint8_t bDescriptorType; 373 uint16_t wTotalLength; 374 uint8_t bNumDeviceCapabilities; 375 struct libusb_usb_2_0_device_capability_descriptor *usb_2_0_ext_cap; 376 struct libusb_ss_usb_device_capability_descriptor *ss_usb_cap; 377} libusb_bos_descriptor __aligned(sizeof(void *)); 378 |
379typedef struct libusb_usb_2_0_extension_descriptor { 380 uint8_t bLength; 381 uint8_t bDescriptorType; 382 uint8_t bDevCapabilityType; 383 uint32_t bmAttributes; 384} libusb_usb_2_0_extension_descriptor __aligned(sizeof(void *)); 385 386typedef struct libusb_container_id_descriptor { 387 uint8_t bLength; 388 uint8_t bDescriptorType; 389 uint8_t bDevCapabilityType; 390 uint8_t bReserved; 391 uint8_t ContainerID[16]; 392} libusb_container_id_descriptor __aligned(sizeof(void *)); 393 |
|
361typedef struct libusb_control_setup { 362 uint8_t bmRequestType; 363 uint8_t bRequest; 364 uint16_t wValue; 365 uint16_t wIndex; 366 uint16_t wLength; 367} libusb_control_setup; 368 --- 68 unchanged lines hidden (view full) --- 437 438/* USB Descriptors */ 439 440int libusb_get_device_descriptor(libusb_device * dev, struct libusb_device_descriptor *desc); 441int libusb_get_active_config_descriptor(libusb_device * dev, struct libusb_config_descriptor **config); 442int libusb_get_config_descriptor(libusb_device * dev, uint8_t config_index, struct libusb_config_descriptor **config); 443int libusb_get_config_descriptor_by_value(libusb_device * dev, uint8_t bConfigurationValue, struct libusb_config_descriptor **config); 444void libusb_free_config_descriptor(struct libusb_config_descriptor *config); | 394typedef struct libusb_control_setup { 395 uint8_t bmRequestType; 396 uint8_t bRequest; 397 uint16_t wValue; 398 uint16_t wIndex; 399 uint16_t wLength; 400} libusb_control_setup; 401 --- 68 unchanged lines hidden (view full) --- 470 471/* USB Descriptors */ 472 473int libusb_get_device_descriptor(libusb_device * dev, struct libusb_device_descriptor *desc); 474int libusb_get_active_config_descriptor(libusb_device * dev, struct libusb_config_descriptor **config); 475int libusb_get_config_descriptor(libusb_device * dev, uint8_t config_index, struct libusb_config_descriptor **config); 476int libusb_get_config_descriptor_by_value(libusb_device * dev, uint8_t bConfigurationValue, struct libusb_config_descriptor **config); 477void libusb_free_config_descriptor(struct libusb_config_descriptor *config); |
478int libusb_get_ss_endpoint_companion_descriptor(struct libusb_context *ctx, const struct libusb_endpoint_descriptor *endpoint, struct libusb_ss_endpoint_companion_descriptor **ep_comp); 479void libusb_free_ss_endpoint_companion_descriptor(struct libusb_ss_endpoint_companion_descriptor *ep_comp); |
|
445int libusb_get_string_descriptor(libusb_device_handle * devh, uint8_t desc_index, uint16_t langid, unsigned char *data, int length); 446int libusb_get_string_descriptor_ascii(libusb_device_handle * devh, uint8_t desc_index, uint8_t *data, int length); 447int libusb_get_descriptor(libusb_device_handle * devh, uint8_t desc_type, uint8_t desc_index, uint8_t *data, int length); 448int libusb_parse_ss_endpoint_comp(const void *buf, int len, struct libusb_ss_endpoint_companion_descriptor **ep_comp); 449void libusb_free_ss_endpoint_comp(struct libusb_ss_endpoint_companion_descriptor *ep_comp); 450int libusb_parse_bos_descriptor(const void *buf, int len, struct libusb_bos_descriptor **bos); 451void libusb_free_bos_descriptor(struct libusb_bos_descriptor *bos); | 480int libusb_get_string_descriptor(libusb_device_handle * devh, uint8_t desc_index, uint16_t langid, unsigned char *data, int length); 481int libusb_get_string_descriptor_ascii(libusb_device_handle * devh, uint8_t desc_index, uint8_t *data, int length); 482int libusb_get_descriptor(libusb_device_handle * devh, uint8_t desc_type, uint8_t desc_index, uint8_t *data, int length); 483int libusb_parse_ss_endpoint_comp(const void *buf, int len, struct libusb_ss_endpoint_companion_descriptor **ep_comp); 484void libusb_free_ss_endpoint_comp(struct libusb_ss_endpoint_companion_descriptor *ep_comp); 485int libusb_parse_bos_descriptor(const void *buf, int len, struct libusb_bos_descriptor **bos); 486void libusb_free_bos_descriptor(struct libusb_bos_descriptor *bos); |
487int libusb_get_bos_descriptor(libusb_device_handle *handle, struct libusb_bos_descriptor **bos); 488int libusb_get_usb_2_0_extension_descriptor(struct libusb_context *ctx, struct libusb_bos_dev_capability_descriptor *dev_cap, struct libusb_usb_2_0_extension_descriptor **usb_2_0_extension); 489void libusb_free_usb_2_0_extension_descriptor(struct libusb_usb_2_0_extension_descriptor *usb_2_0_extension); 490int libusb_get_ss_usb_device_capability_descriptor(struct libusb_context *ctx, struct libusb_bos_dev_capability_descriptor *dev_cap, struct libusb_ss_usb_device_capability_descriptor **ss_usb_device_capability); 491void libusb_free_ss_usb_device_capability_descriptor(struct libusb_ss_usb_device_capability_descriptor *ss_usb_device_capability); 492int libusb_get_container_id_descriptor(struct libusb_context *ctx, struct libusb_bos_dev_capability_descriptor *dev_cap, struct libusb_container_id_descriptor **container_id); 493void libusb_free_container_id_descriptor(struct libusb_container_id_descriptor *container_id); |
|
452 453/* Asynchronous device I/O */ 454 455struct libusb_transfer *libusb_alloc_transfer(int iso_packets); 456void libusb_free_transfer(struct libusb_transfer *transfer); 457int libusb_submit_transfer(struct libusb_transfer *transfer); 458int libusb_cancel_transfer(struct libusb_transfer *transfer); 459uint8_t *libusb_get_iso_packet_buffer(struct libusb_transfer *transfer, uint32_t index); --- 49 unchanged lines hidden --- | 494 495/* Asynchronous device I/O */ 496 497struct libusb_transfer *libusb_alloc_transfer(int iso_packets); 498void libusb_free_transfer(struct libusb_transfer *transfer); 499int libusb_submit_transfer(struct libusb_transfer *transfer); 500int libusb_cancel_transfer(struct libusb_transfer *transfer); 501uint8_t *libusb_get_iso_packet_buffer(struct libusb_transfer *transfer, uint32_t index); --- 49 unchanged lines hidden --- |