Changes

1,090 bytes added ,  07:51, 8 October 2017
no edit summary
Line 187: Line 187:  
| 4 || [[#DisableInterface]] ||  
 
| 4 || [[#DisableInterface]] ||  
 
|-
 
|-
| 5 || || Takes an u32 and an u64. Returns an output u32.
+
| 5 || [[#CtrlInPostBufferAsync]] ||  
 
|-
 
|-
| 6 || || Takes an u32 and an u64. Returns an output u32.
+
| 6 || [[#CtrlOutPostBufferAsync]] ||  
 
|-
 
|-
 
| 7 || [[#GetCtrlInCompletionEvent]] ||  
 
| 7 || [[#GetCtrlInCompletionEvent]] ||  
 
|-
 
|-
| 8 || || No input. Returns 0x84 bytes of output.
+
| 8 || [[#GetCtrlInReportData]] ||  
 
|-
 
|-
 
| 9 || [[#GetCtrlOutCompletionEvent]] ||  
 
| 9 || [[#GetCtrlOutCompletionEvent]] ||  
 
|-
 
|-
| 10 || || No input. Returns 0x84 bytes of output.
+
| 10 || [[#GetCtrlOutReportData]] ||  
 
|-
 
|-
 
| 11 || [[#StallCtrl]] ||  
 
| 11 || [[#StallCtrl]] ||  
 
|}
 
|}
 +
 +
Commands [[#CtrlInPostBufferAsync]], [[#CtrlOutPostBufferAsync]], and [[#StallCtrl]], will throw an error if the interface is not [[#EnableInterface|enabled]]. [[#GetDsEndpoint]] will throw an error if the interface is [[#EnableInterface|enabled]].
    
=== GetDsEndpoint ===
 
=== GetDsEndpoint ===
Line 223: Line 225:  
=== DisableInterface ===
 
=== DisableInterface ===
 
Takes no arguments. Disables the current interface.
 
Takes no arguments. Disables the current interface.
 +
 +
=== CtrlInPostBufferAsync ===
 +
Same as [[#PostBufferAsync]](with same input/output), except this uses control input endpoint 0x80.
 +
 +
=== CtrlOutPostBufferAsync ===
 +
Same as [[#PostBufferAsync]](with same input/output), except this uses control output endpoint 0x00.
    
=== GetCtrlInCompletionEvent ===
 
=== GetCtrlInCompletionEvent ===
Returns an event handle for polling the completion of input control commands.
+
Returns an event handle for polling the completion of input control commands. Same as [[#GetCompletionEvent]], except this uses control input endpoint 0x80.
 +
 
 +
=== GetCtrlInReportData ===
 +
Same as [[#GetReportData]](with same input/output), except this uses control input endpoint 0x80.
    
=== GetCtrlOutCompletionEvent ===
 
=== GetCtrlOutCompletionEvent ===
Returns an event handle for polling the completion of output control commands.
+
Returns an event handle for polling the completion of output control commands. Same as [[#GetCompletionEvent]], except this uses control output endpoint 0x00.
 +
 
 +
=== GetCtrlOutReportData ===
 +
Same as [[#GetReportData]](with same input/output), except this uses control output endpoint 0x00.
    
=== StallCtrl ===
 
=== StallCtrl ===
Line 244: Line 258:  
| 1 || || No input/output.
 
| 1 || || No input/output.
 
|-
 
|-
| 2 || || No input. Returns an output handle?
+
| 2 || [[#GetCompletionEvent]] ||  
 
|-
 
|-
 
| 3 || [[#GetReportData]] ||  
 
| 3 || [[#GetReportData]] ||  
Line 255: Line 269:  
==== PostBufferAsync ====
 
==== PostBufferAsync ====
 
Takes an u32 ('''size''') and an u64 ('''buffer'''). Returns an output u32.
 
Takes an u32 ('''size''') and an u64 ('''buffer'''). Returns an output u32.
 +
 +
The buffer address must be 0x1000-byte aligned.
 +
 +
Used for data-transfer with input/output endpoints.
 +
 +
==== GetCompletionEvent ====
 +
No input. Returns an output event handle for polling the completion of [[#PostBufferAsync]](?).
    
==== GetReportData ====
 
==== GetReportData ====
Returns 0x84 bytes of report data from the endpoint.
+
No input. Returns 0x84 bytes of report data from the endpoint.
    
==== Stall ====
 
==== Stall ====