USB services: Difference between revisions
Line 422: | Line 422: | ||
== CreateInterfaceAvailableEvent == | == CreateInterfaceAvailableEvent == | ||
Takes an input u8 and returns an output handle. | Takes an input u8 and returns an output handle. | ||
Value 0: when signaled, this indicates that the user-process should use [[#QueryAvailableInterfaces]] and [[#AcquireUsbIf]] with the output interfaces (and the rest of interface setup). | |||
== DestroyInterfaceAvailableEvent == | == DestroyInterfaceAvailableEvent == | ||
Line 428: | Line 430: | ||
== GetInterfaceStateChangeEvent == | == GetInterfaceStateChangeEvent == | ||
No input, returns an output event handle with autoclear disabled. | No input, returns an output event handle with autoclear disabled. | ||
When signaled, this indicates that the user-process should use [[#QueryAcquiredInterfaces]] and cleanup state for interfaces which were already initialized. | |||
== AcquireUsbIf == | == AcquireUsbIf == | ||
Line 453: | Line 457: | ||
| 5 || [[#CtrlXferAsync]] || | | 5 || [[#CtrlXferAsync]] || | ||
|- | |- | ||
| 6 || || No input, returns an output handle. | | 6 || || No input, returns an output handle. Signaled when [[#CtrlXferAsync]] finishes. | ||
|- | |- | ||
| 7 || [[#GetCtrlXferReport]] || | | 7 || [[#GetCtrlXferReport]] || | ||
Line 461: | Line 465: | ||
| 9 || [[#OpenUsbEp]] || | | 9 || [[#OpenUsbEp]] || | ||
|} | |} | ||
Official sw uses autoclear=false for the above events. | |||
=== SetInterface === | === SetInterface === | ||
Line 503: | Line 509: | ||
| 1 || [[#Close]] || | | 1 || [[#Close]] || | ||
|- | |- | ||
| 2 || || No input, returns an output handle. | | 2 || || No input, returns an output handle. Signaled when [[#PostBufferAsync_2|#PostBufferAsync]] finishes. | ||
|- | |- | ||
| 3 || [[#Populate]] || | | 3 || [[#Populate]] || | ||
Line 517: | Line 523: | ||
| 8 || [4.0.0+] || | | 8 || [4.0.0+] || | ||
|} | |} | ||
Official sw uses autoclear=false for the above event. | |||
Immediately after opening the endpoint session, official sw uses [[#Populate]] and cmd2. | |||
==== Open ==== | ==== Open ==== | ||
Line 523: | Line 533: | ||
==== Close ==== | ==== Close ==== | ||
No input/output. | No input/output. | ||
Used by official sw prior to closing the endpoint session. | |||
==== Populate ==== | ==== Populate ==== | ||
No input/output. | No input/output. | ||
Used after opening the endpoint session (see above). | |||
==== PostBufferAsync ==== | ==== PostBufferAsync ==== |