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 ====