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
|
|
|}
|}