18 #define MATCH_ANY 0x000
19 #define MATCH_DEV_VID 0x001
20 #define MATCH_DEV_PID 0x002
21 #define MATCH_DEV_CLASS 0x010
22 #define MATCH_DEV_SUBCLASS 0x020
23 #define MATCH_DEV_PROTOCOL 0x040
24 #define MATCH_IF_CLASS 0x080
25 #define MATCH_IF_SUBCLASS 0x100
26 #define MATCH_IF_PROTOCOL 0x200
45 #define UHS_CONFIG_BUFFER_SIZE 0x137f
54 WUT_CHECK_OFFSET(
UhsConfig, 0x00, controller_num);
55 WUT_CHECK_OFFSET(
UhsConfig, 0x04, buffer);
56 WUT_CHECK_OFFSET(
UhsConfig, 0x08, buffer_size);
69 WUT_CHECK_OFFSET(
UhsHandle, 0x04, ipc_buffer);
70 WUT_CHECK_OFFSET(
UhsHandle, 0x0C, handle);
71 WUT_CHECK_OFFSET(
UhsHandle, 0x10, config);
75 #define ENDPOINT_TRANSFER_OUT 1
76 #define ENDPOINT_TRANSFER_IN 2
79 #define TIMEOUT_NONE -1
116 WUT_UNKNOWN_BYTES(0x2);
130 WUT_UNKNOWN_BYTES(0x24);
181 uint32_t drv_handle);
192 uint8_t string_index,
202 int32_t max_profiles);
231 uint32_t endpointMask,
232 uint32_t max_pending_requests,
233 uint32_t max_request_size);
247 uint8_t bmRequestType,
282 uint32_t endpoint_mask;
289 return endpoint_mask;
UHSStatus UhsSubmitInterruptRequest(UhsHandle *handle, uint32_t if_handle, uint8_t endpoint, int32_t direction, void *buffer, int32_t length, int32_t timeout)
UHSStatus UhsSubmitControlRequest(UhsHandle *handle, uint32_t if_handle, void *buffer, uint8_t bRequest, uint8_t bmRequestType, uint16_t wValue, uint16_t wIndex, uint16_t wLength, int32_t timeout)
UHSStatus UhsSubmitBulkRequest(UhsHandle *handle, uint32_t if_handle, uint8_t endpoint, int32_t direction, void *buffer, int32_t length, int32_t timeout)
UHSStatus UhsAcquireInterface(UhsHandle *handle, uint32_t if_handle, void *context, UhsAcquireInterfaceCallback callback)
UHSStatus UhsQueryInterfaces(UhsHandle *handle, UhsInterfaceFilter *filter, UhsInterfaceProfile *profiles, int32_t max_profiles)
UHSStatus UhsReleaseInterface(UhsHandle *handle, uint32_t if_handle, bool no_reacquire)
static uint32_t UHSEndpointDirIsIn(UhsEndpointDescriptor *endpoint_descriptor)
static uint32_t UHSEndpointGetMask(UhsEndpointDescriptor *endpoint_descriptor)
UHSStatus UhsClearEndpointHalt(UhsHandle *handle, uint32_t if_handle, uint32_t endpoint, int32_t direction)
UHSStatus UhsClassDrvReg(UhsHandle *handle, UhsInterfaceFilter *filter, void *context, UHSDrvRegCallback callback)
UHSStatus UhsAdministerEndpoint(UhsHandle *handle, uint32_t if_handle, UHSAdminEpType type, uint32_t endpointMask, uint32_t max_pending_requests, uint32_t max_request_size)
UhsConfigDescriptor cfg_desc
UHSStatus UhsAdministerDevice(UhsHandle *handle, uint32_t if_handle, UHSAdminDevType type, int32_t arg3)
void(* UHSDrvRegCallback)(void *context, UhsInterfaceProfile *profile)
UhsDeviceDescriptor dev_desc
UHSStatus UhsClientOpen(UhsHandle *handle, UhsConfig *config)
UHSStatus UhsClassDrvUnReg(UhsHandle *handle, uint32_t drv_handle)
static uint32_t UHSEndpointGetNum(UhsEndpointDescriptor *endpoint_descriptor)
UHSStatus UhsClientClose(UhsHandle *handle)
UHSStatus UhsGetFullConfigDescriptor(UhsHandle *handle, uint32_t if_handle, void *data, uint32_t size)
@ UHS_ADMIN_EP_CANCEL_RESET
UHSStatus UhsGetDescriptorString(UhsHandle *handle, uint32_t if_handle, uint8_t string_index, BOOL as_unicode, void *data, uint32_t size)
UhsInterfaceDescriptor if_desc
@ UHS_HANDLE_STATE_OPENING
@ UHS_HANDLE_STATE_OPENED
@ UHS_HANDLE_STATE_CLOSED
@ UHS_HANDLE_STATE_CLOSING
@ UHS_STATUS_HANDLE_INVALID_ARGS
@ UHS_STATUS_HANDLE_INVALID_STATE
void(* UhsAcquireInterfaceCallback)(void *context, int32_t arg1, int32_t arg2)