openusb_get_raw_desc, openusb_free_raw_desc, openusb_parse_device_desc,
openusb_parse_config_desc, openusb_parse_interface_desc, openusb_parse_endpoint_desc
openusb_get_raw_desc, openusb_free_raw_desc, openusb_parse_device_desc,
openusb_parse_config_desc, openusb_parse_interface_desc, openusb_parse_endpoint_desc
-- Get/Free raw device descriptors; Get cooked Device, Configuration, Interface,
Endpoint descriptors int32_t openusb_get_raw_desc
(openusb_handle_t handle, openusb_devid_t devid, uint8_t type, uint8_t descidx, uint16_t langid, uint8_t **buffer, uint16_t *buflen);
int32_t openusb_parse_device_desc
(openusb_handle_t handle, openusb_devid_t devid, uint8_t *buffer, uint16_t buflen, usb_device_desc_t *devdesc);
int32_t openusb_parse_config_desc
(openusb_handle_t handle, openusb_devid_t devid, uint8_t *buffer, uint16_t buflen, uint8_t cfgidx, usb_config_desc_t *cfgdesc);
int32_t openusb_parse_interface_desc
(openusb_handle_t handle, openusb_devid_t devid, uint8_t *buffer, uint16_t buflen, uint8_t cfgidx, uint8_t ifcidx, uint8_t alt, usb_interface_desc_t *ifcdesc);
int32_t openusb_parse_endpoint_desc
(openusb_handle_t handle, openusb_devid_t devid, uint8_t *buffer, uint16_t buflen, uint8_t cfgidx, uint8_t ifcidx, uint8_t alt, uint8_t eptidx, usb_endpoint_desc_t *eptdesc);
void openusb_free_raw_desc
(uint8_t *buffer);
handle
Libusb handle.
devid
Device's devid.
type
Descriptor type.
descidx
Index for config/string descriptor, zero for others
langid
Language ID for string descriptor, zero for others
buffer
Data buffer of raw descriptors data.
buflen
Length of raw descriptors.
devdesc
Pointer to device descriptor.
cfgidx
Configuration descriptor index.
cfgdesc
Pointer to configuration descriptor.
ifcidx
Interface index.
alt
Alternate setting number.
ifcdesc
Pointer to interface descriptor.
eptidx
Endpoint index.
eptdesc
Pointer to endpoint descriptor.
openusb_get_raw_desc()
will return raw descriptors of type, descidx and
langid
which an application specifies on calling this function. The raw
descriptor is returned in buffer
and length of it is in
buflen
.
Application should call openusb_free_raw_desc()
to free descriptor memory
if it has called openusb_get_raw_desc()
.
openusb_parse_device_desc()
returns the cooked device descriptors of the
specified devid
.
openusb_parse_config_desc()
returns the cooked configuration descriptor of
specified devid
and cfgidx
.
openusb_parse_interface_desc()
returns the cooked interface descriptor of
number alt alternate setting of interface ifcidx
in configuration
cfgidx
.
openusb_parse_endpoint_desc()
returns an endpoint's descriptor of which is
in alternate setting alt
of interface ifcidx
in
configuration cfgidx
.
For openusb_parse_device_desc(), openusb_parse_config_desc(),
openusb_parse_interface_desc() and openusb_parse_endpoint_desc()
, application
can use the raw descriptor buffer got through openusb_get_raw_desc()
. If
application pass a NULL buffer pointer, these four openusb functions will
call openusb_get_raw_desc()
internally and return the cooked descriptors.
OPENUSB_SUCCESS Success.
OPENUSB_UNKNOWN_DEVICE Can't find the device specified by devid.
OPENUSB_INVALID_HANDLE Invalid openusb handle.
OPENUSB_NO_RESOURCES Memory allocation failure.
OPENUSB_PARSE_ERROR Fail to parse descriptors.
OPENUSB_PLATFORM_FAILURE Kernel/driver failure.
OPENUSB_BADARG Invalid arguments. devdesc, cfgdesc, ifcdesc or eptdesc is NULL. buflen is invalid if buffer is not NULL.