USB services: Difference between revisions
→OpenUsbEp: Names from debug print. |
→OpenUsbEp: Debug print names. |
||
Line 498: | Line 498: | ||
Takes an input u16 and 4 input u32s, returns a 0x7-byte output struct and an [[#IClientEpSession]]. | Takes an input u16 and 4 input u32s, returns a 0x7-byte output struct and an [[#IClientEpSession]]. | ||
The u16 is '''maxUrbCount'''. The u32s are: '''epType''', '''epNumber''', '''epDirection''', and '''maxXferSize'''. | |||
The | The user-process loads the input params from the endpoint descriptor. HID-sysmodule sets '''maxXferSize''' to wMaxPacketSize from the endpoint descriptor. However, other sysmodules pass hard-coded values for '''maxXferSize''', including 0. | ||
HID-sysmodule passes hard-coded value 0x1 for ''' | HID-sysmodule passes hard-coded value 0x1 for '''maxUrbCount''', for bsd-sysmodule this is 0x2. For audio-sysmodule, this is 0x0 (used when passing '''maxXferSize'''=0), 0x3, or 0x6. | ||
'''epNumber''' is <code>bEndpointAddress & LIBUSB_ENDPOINT_ADDRESS_MASK</code>. '''epDirection''' is 0x1 for LIBUSB_ENDPOINT_OUT, and 0x2 for LIBUSB_ENDPOINT_IN. | '''epType''' is <code>libusb_transfer_type+1</code>. '''epNumber''' is <code>bEndpointAddress & LIBUSB_ENDPOINT_ADDRESS_MASK</code>. '''epDirection''' is 0x1 for LIBUSB_ENDPOINT_OUT, and 0x2 for LIBUSB_ENDPOINT_IN. | ||
=== IClientEpSession === | === IClientEpSession === |