USB services: Difference between revisions
Line 530: | Line 530: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || | ||
|- | |- | ||
| 1 || [[#SetInterface]] | | 1 || [[#SetInterface]] | ||
|- | |- | ||
| 2 || [[#GetInterface]] | | 2 || [[#GetInterface]] | ||
|- | |- | ||
| 3 || [[#GetAlternateInterface]] | | 3 || [[#GetAlternateInterface]] | ||
|- | |- | ||
| 4 [1.0.0] 5) || [[#GetCurrentFrame]] | | 4 [1.0.0] 5) || [[#GetCurrentFrame]] | ||
|- | |- | ||
| [2.0.0+] 5 || [[#CtrlXferAsync]] | | [2.0.0+] 5 || [[#CtrlXferAsync]] | ||
|- | |- | ||
| 6 || ([1.0.0] [[#SubmitControlInRequest]]) | | 6 || ([1.0.0] [[#SubmitControlInRequest]]) | ||
|- | |- | ||
| 7 || [[#GetCtrlXferReport]] ([1.0.0] [[#SubmitControlOutRequest]]) | | 7 || [[#GetCtrlXferReport]] ([1.0.0] [[#SubmitControlOutRequest]]) | ||
|- | |- | ||
| 8 || [[#ResetDevice]] | | 8 || [[#ResetDevice]] | ||
|- | |- | ||
| 9 ([1.0.0] 4) | | 9 ([1.0.0] 4) || [[#OpenUsbEp]] | ||
|} | |} | ||
Line 556: | Line 556: | ||
Immediately after opening the session, official sw uses cmd0 and cmd6. | Immediately after opening the session, official sw uses cmd0 and cmd6. | ||
=== Cmd0 === | |||
No input, returns an output handle. | |||
=== SetInterface === | === SetInterface === | ||
Line 573: | Line 576: | ||
=== CtrlXferAsync === | === CtrlXferAsync === | ||
Takes 2 input u8s ('''bmRequestType''' and '''bRequest'''), 3 input u16s ('''wValue''', '''wIndex''', and '''wLength'''), and an input u64 '''buffer''', no output. | Takes 2 input u8s ('''bmRequestType''' and '''bRequest'''), 3 input u16s ('''wValue''', '''wIndex''', and '''wLength'''), and an input u64 '''buffer''', no output. | ||
=== Cmd6 === | |||
No input, returns an output handle. Signaled when [[#CtrlXferAsync]] finishes. | |||
=== GetCtrlXferReport === | === GetCtrlXferReport === |