Difference between revisions of "Manu services"
m (Hexkyz moved page Manu Services to Manu services: Consistency with other pages) |
|||
Line 2: | Line 2: | ||
= manu = | = manu = | ||
+ | This is "nn::manu::IManu". | ||
+ | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! Cmd || Name | + | ! Cmd || Name |
|- | |- | ||
− | | 0 || InitUsbTransferPipeFsFile | | + | | 0 || [[#InitUsbTransferPipeFsFile|InitUsbTransferPipeFsFile]] |
|- | |- | ||
− | | 1 || FsFile_Exists | | + | | 1 || [[#FsFile_Exists|FsFile_Exists]] |
|- | |- | ||
− | | 2 || FsFile_Read | | + | | 2 || [[#FsFile_Read|FsFile_Read]] |
|- | |- | ||
− | | 3 || FsFile_Write | | + | | 3 || [[#FsFile_Write|FsFile_Write]] |
|- | |- | ||
− | | 4 || InitUsbTransferPipeRaw | | + | | 4 || [[#InitUsbTransferPipeRaw|InitUsbTransferPipeRaw]] |
|- | |- | ||
− | | 5 || Raw_Read | | + | | 5 || [[#Raw_Read|Raw_Read]] |
|- | |- | ||
− | | 6 || Raw_Write | | + | | 6 || [[#Raw_Write|Raw_Write]] |
|- | |- | ||
+ | | 7 || [7.0.0+] | ||
+ | |- | ||
+ | | 8 || [7.0.0+] | ||
|} | |} | ||
Revision as of 22:09, 5 August 2023
Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the factory but not on normal retail systems.
manu
This is "nn::manu::IManu".
Cmd | Name |
---|---|
0 | InitUsbTransferPipeFsFile |
1 | FsFile_Exists |
2 | FsFile_Read |
3 | FsFile_Write |
4 | InitUsbTransferPipeRaw |
5 | Raw_Read |
6 | Raw_Write |
7 | [7.0.0+] |
8 | [7.0.0+] |
All commands are wrappers for usb:ds requests with USB configured as:
VID: 0x057E (Nintendo Co., Ltd) PID: 0x3000 bcdDevice: 0x0100 (1.00) Manufacturer: "Nintendo" Product: "NintendoSdkDebugger" SerialNumber: "SerialNumber"
SystemInitializer only uses cmd1..cmd3.
InitUsbTransferPipeFsFile
Takes an unknown u32 (ID?) and configures a transfer pipe over usb:ds for file access mode.
FsFile_Exists
Takes an input path string (type-0x9 buffer), returns 8-bytes for the output u8 flag.
Checks whether the specified file exists.
This is "FsFile::Exists" in SystemInitializer.
FsFile_Read
Takes a type-0x6 output buffer and a type-0x9 input string path buffer, and 3 u64s: <same size value from databuf>, unk, <same size value from databuf>. Where unk is probably offset?
Reads data from the specified file.
FsFile_Write
Same as FsFile_Read except the databuf is a type-0x5 input buffer.
Writes data to the specified file.
SystemInitializer also uses this as "FsFile::Create" with all input u64s set to 0.
InitUsbTransferPipeRaw
Takes an unknown u32 (ID?) and configures a transfer pipe over usb:ds for raw access mode.
Raw_Read
Takes a type-0x6 output buffer and 2 u64s: offset and size.
Reads raw data from the device.
Raw_Write
Takes a type-0x5 input buffer and 2 u64s: offset and size.
Writes raw data to the device.