Line 32: |
Line 32: |
| | | |
| ==Post-9.3.0-21== | | ==Post-9.3.0-21== |
− | Commands for post-9.3.0-21 have been extracted by analyzing the amiibo Settings applet. Therefore this table may be missing commands. | + | Commands for post-9.3.0-21 have been extracted by analyzing the amiibo Settings applet. Therefore this table may be missing commands. Note that the function name is actually a nickname for easeness of reading, as original function names have been stripped off the binaries. |
| | | |
− | Command header is stored at [[Thread Local Storage|TLS]]+0x80. Input and output parameters, if any, are set at TLS+0x84 onwards. If the command specifies has a parameter named "pid", this value has to be set to 0x20, as the kernel will replace the next word ("pidPlaceholder" - which can be left uninitialized) with the process' real PID (see [[IPC_Command_Structure]]).
| + | See [[IPC Command Structure]] for an explanation on how IPC communication works and how to use these functions. |
− | | |
− | Note that the function name is actually a nickname for easeness of reading, as original function names have been stripped off the binaries.
| |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
Line 54: |
Line 52: |
| | nfcStop | | | nfcStop |
| | u8 unknownA | | | u8 unknownA |
| + | | s32 result |
| + | | |
| + | |- |
| + | | 0x00030000 |
| + | | ??? |
| + | | void |
| + | | s32 result |
| + | | |
| + | |- |
| + | | 0x00040000 |
| + | | ??? |
| + | | void |
| | s32 result | | | s32 result |
| | | | | |
Line 92: |
Line 102: |
| | s32 result | | | s32 result |
| | | | | |
| + | |- |
| + | | 0x000B0000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA, u32 unknownB |
| + | | amiibo applet ignores value unknownA. It doesn't even read it from the command buffer. |
| + | |- |
| + | | 0x000C0000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA, u32 unknownB |
| + | | amiibo applet also ignores value unknownA for this command. |
| |- | | |- |
| | 0x000D0000 | | | 0x000D0000 |
Line 140: |
Line 162: |
| | s32 result | | | s32 result |
| | Uses something at TLS+0x180 | | | Uses something at TLS+0x180 |
| + | |- |
| + | | 0x00160242 |
| + | | ??? |
| + | | u32 unknownA, u8 unknownB[32], u32 (buffer_size << 14) <nowiki>|</nowiki> 0x00000002, void * buffer |
| + | | s32 result |
| + | | |
| |- | | |- |
| | 0x00170000 | | | 0x00170000 |
Line 158: |
Line 186: |
| | s32 result, u32 unknownA[8], u32 unknownB[4], u64 unknownC, u32 unknownD | | | s32 result, u32 unknownA[8], u32 unknownB[4], u64 unknownC, u32 unknownD |
| | Apparently output is a struct | | | Apparently output is a struct |
| + | |- |
| + | | 0x040100C2 |
| + | | ??? |
| + | | u32 unknownA, u32 unknownB, u32 unknownC, u32 (sizeof(*buffer) << 14 | 0x402), void * buffer |
| + | | s32 result |
| + | | |
| + | |- |
| + | | 0x04020000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA[16] |
| + | | Output seems to be a struct |
| + | |- |
| + | | 0x04030000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA[41] |
| + | | |
| + | |- |
| + | | 0x04040A40 |
| + | | ??? |
| + | | u32 unknownA[41] |
| + | | s32 result |
| + | | |
| |- | | |- |
| | 0x04060000 | | | 0x04060000 |
Line 163: |
Line 215: |
| | void | | | void |
| | s32 result | | | s32 result |
| + | | |
| + | |- |
| + | | 0x04070000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA |
| + | | |
| + | |- |
| + | | 0x04080000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA |
| + | | |
| + | |- |
| + | | 0x040D0000 |
| + | | ??? |
| + | | void |
| + | | s32 result |
| + | | |
| + | |- |
| + | | 0x040E0000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA, u32 unknownB |
| + | | Again, amiibo applet ignores value unknownA. |
| + | |- |
| + | | 0x040F0000 |
| + | | ??? |
| + | | void |
| + | | s32 result, u32 unknownA, u32 unknownB |
| | | | | |
| |} | | |} |