Line 1: |
Line 1: |
| One symbol in USB-sysmodule is: "vtable for nn::usb::detail::UsbComplexTegra21x". | | One symbol in USB-sysmodule is: "vtable for nn::usb::detail::UsbComplexTegra21x". |
| | | |
− | =usb:ds= | + | = usb:ds = |
| Used for Switch<>PC USB comms, aka Switch-as-device. | | Used for Switch<>PC USB comms, aka Switch-as-device. |
| This service is used during [[Factory Setup|factory setup]] by [[Manu Services|manu]]. | | This service is used during [[Factory Setup|factory setup]] by [[Manu Services|manu]]. |
Line 9: |
Line 9: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || BindComplex | + | | 0 || [[#BindComplex]] |
| |- | | |- |
− | | 1 || BindClientProcess | + | | 1 || [[#BindClientProcess]] |
| |- | | |- |
− | | 2 || GetDsInterface | + | | 2 || [[#GetDsInterface]] |
| |- | | |- |
− | | 3 || GetStateChangeEvent | + | | 3 || [[#GetStateChangeEvent]] |
| |- | | |- |
| | 4 || | | | 4 || |
| |- | | |- |
− | | 5 || SetVidPidBcd | + | | 5 || [[#SetVidPidBcd]] |
| |} | | |} |
| + | |
| + | == BindComplex == |
| + | Takes an u32 ('''complexId'''). [[Manu_Services|Manu]] sends 0x02. |
| + | |
| + | == BindClientProcess == |
| + | Takes 1 copy-handle for the current process (0xFFFF8001). |
| + | |
| + | == GetDsInterface == |
| + | Takes 2 type-5 buffers and returns an [[#IDsInterface]]. [[Manu_Services|Manu]] sends a 0x09-byte command (e.g.: 0x09, 0x04, 0x04, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x00) in the first buffer and a string ("usb") in the second buffer. |
| + | |
| + | == GetStateChangeEvent == |
| + | Returns an event handle for state changes. |
| + | |
| + | == SetVidPidBcd == |
| + | Takes a type-5 buffer with 0x66 bytes of USB descriptor data (see [[Manu_Services#manu|manu]]). |
| | | |
| == IDsInterface == | | == IDsInterface == |
Line 27: |
Line 42: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || GetDsEndpoint | + | | 0 || [[#GetDsEndpoint]] |
| |- | | |- |
− | | 1 || GetSetupEvent | + | | 1 || [[#GetSetupEvent]] |
| |- | | |- |
| | 2 || | | | 2 || |
| |- | | |- |
− | | 3 || EnableInterface | + | | 3 || [[#EnableInterface]] |
| |- | | |- |
− | | 4 || DisableInterface | + | | 4 || [[#DisableInterface]] |
| |- | | |- |
| | 5 || | | | 5 || |
Line 41: |
Line 56: |
| | 6 || | | | 6 || |
| |- | | |- |
− | | 7 || GetCtrlInCompletionEvent | + | | 7 || [[#GetCtrlInCompletionEvent]] |
| |- | | |- |
| | 8 || | | | 8 || |
| |- | | |- |
− | | 9 || GetCtrlOutCompletionEvent | + | | 9 || [[#GetCtrlOutCompletionEvent]] |
| |- | | |- |
| | 10 || | | | 10 || |
Line 51: |
Line 66: |
| | 11 || | | | 11 || |
| |} | | |} |
| + | |
| + | === GetDsEndpoint === |
| + | Takes a type-5 buffer and returns an [[#IDsEndpoint]]. [[Manu_Services|Manu]] sends a 0x07-byte command (e.g.: 0x07, 0x05, 0x80, 0x02, 0x00, 0x02, 0x00) in the first buffer. |
| + | |
| + | === GetSetupEvent === |
| + | Returns an event handle for interface setup changes. |
| + | |
| + | === EnableInterface === |
| + | Takes no arguments. Enables the current interface. |
| + | |
| + | === DisableInterface === |
| + | Takes no arguments. Disables the current interface. |
| + | |
| + | === GetCtrlInCompletionEvent === |
| + | Returns an event handle for polling the completion of input control commands. |
| + | |
| + | === GetCtrlOutCompletionEvent === |
| + | Returns an event handle for polling the completion of output control commands. |
| | | |
| === IDsEndpoint === | | === IDsEndpoint === |
Line 57: |
Line 90: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || PostBufferAsync | + | | 0 || [[#PostBufferAsync]] |
| |- | | |- |
| | 1 || | | | 1 || |
Line 63: |
Line 96: |
| | 2 || | | | 2 || |
| |- | | |- |
− | | 3 || GetReportData | + | | 3 || [[#GetReportData]] |
| |- | | |- |
| | 4 || | | | 4 || |
Line 70: |
Line 103: |
| |} | | |} |
| | | |
− | =usb:hs= | + | ==== PostBufferAsync ==== |
| + | Takes an u32 ('''size''') and an u64 ('''buffer'''). |
| + | |
| + | ==== GetReportData ==== |
| + | Returns 0x84 bytes of report data from the endpoint. |
| + | |
| + | = usb:hs = |
| General USB devices usage, used by hid-sysmodule and bsdsockets-sysmodule. | | General USB devices usage, used by hid-sysmodule and bsdsockets-sysmodule. |
| | | |
− | =usb:pd= | + | = usb:pd = |
| Only system-titles with access to this are [[PTM_services|PTM]] and [[AM_services|AM]]. | | Only system-titles with access to this are [[PTM_services|PTM]] and [[AM_services|AM]]. |
| | | |
− | =usb:pd:c= | + | = usb:pd:c = |
| USB-sysmodule symbols for this refer to "Cradle", which is the [[Dock]]. | | USB-sysmodule symbols for this refer to "Cradle", which is the [[Dock]]. |
| | | |
− | =usb:pm= | + | = usb:pm = |
| Presumably Power Management, only system-title using this is [[PTM_services|PTM]]. | | Presumably Power Management, only system-title using this is [[PTM_services|PTM]]. |