Manu services: Difference between revisions
| No edit summary | No edit summary | ||
| Line 11: | Line 11: | ||
| | 1 || FsFile_Exists || Takes an X descriptor, and produces, 8 bytes output. | | 1 || FsFile_Exists || Takes an X descriptor, and produces, 8 bytes output. | ||
| |- | |- | ||
| | 2 || || Takes 0x18 bytes of input, a B descriptor, and an X descriptor, and produces 0 bytes of output. | | 2 || FsFile_Read || Takes 0x18 bytes of input, a B descriptor, and an X descriptor, and produces 0 bytes of output. | ||
| |- | |- | ||
| | 3 || || Takes 0x18 bytes of input, an A descriptor, and an X descriptor, and produces 0 bytes of output. | | 3 || FsFile_Write || Takes 0x18 bytes of input, an A descriptor, and an X descriptor, and produces 0 bytes of output. | ||
| |- | |- | ||
| | 4 || || Takes 4 bytes of input, and produces 0 bytes of output. | | 4 || || Takes 4 bytes of input, and produces 0 bytes of output. | ||
| Line 26: | Line 26: | ||
| == FsFile_Exists == | == FsFile_Exists == | ||
| Takes an input path string, returns 8-bytes for the output u8 flag. | Takes an input path string(type-0x9 buffer), returns 8-bytes for the output u8 flag. | ||
| Checks whether the specified file exists. | Checks whether the specified file exists. | ||
| This is "FsFile::Exists" in SystemInitializer. | 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. | |||
Revision as of 06:13, 1 September 2017
Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the factory but not on normal retail systems.
manu
| Cmd | Name | Notes | 
|---|---|---|
| 0 | Takes 4 bytes of input, and produces 0 bytes output. | |
| 1 | FsFile_Exists | Takes an X descriptor, and produces, 8 bytes output. | 
| 2 | FsFile_Read | Takes 0x18 bytes of input, a B descriptor, and an X descriptor, and produces 0 bytes of output. | 
| 3 | FsFile_Write | Takes 0x18 bytes of input, an A descriptor, and an X descriptor, and produces 0 bytes of output. | 
| 4 | Takes 4 bytes of input, and produces 0 bytes of output. | |
| 5 | Takes 0x10 bytes of input and a B descriptor, and produces 8 bytes of output. | |
| 6 | Takes 0x10 bytes of input and an A descriptor, and produces 8 bytes of output. | 
This seems to interface with usb:ds. SystemInitializer only uses cmd1..cmd3.
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.