Line 13:
Line 13:
0x00: CMD
0x00: CMD
−
0x04: Client reply address
+
0x04: Reply to client
0x08: Client FD
0x08: Client FD
0x0C: Flags (always 0)
0x0C: Flags (always 0)
−
0x10: Client node ID (CPU number)
+
0x10: Client CPU (0=ARM internal, 1-3=PPC cores 0-2)
−
0x14: Client PID
+
0x14: Client PID (PFID in older versions, RAMPID more recently?)
0x18: Client group ID (Title ID, upper)
0x18: Client group ID (Title ID, upper)
0x1C: Client group ID (Title ID, lower)
0x1C: Client group ID (Title ID, lower)
Line 28:
Line 28:
0x38: CMD (previous)
0x38: CMD (previous)
0x3C: Client FD (previous)
0x3C: Client FD (previous)
−
0x40: Virt0 (virtual addresses to be translated)
+
0x40: Virt0 (PPC virtual addresses to be translated)
−
0x44: Virt1 (virtual addresses to be translated)
+
0x44: Virt1 (PPC virtual addresses to be translated)
IPC commands
IPC commands
Line 49:
Line 49:
0x0E -> IOS_SVCMSG (internal to IOSU)
0x0E -> IOS_SVCMSG (internal to IOSU)
−
IPC client node IDs
+
IPC client PIDs
+
+
On older versions of IOSU, it seems to match the PFID list (shown below). More recently, it appears to use the RAMPID.
−
0x00 -> IOS_NODE_INTERNAL (ARM)
−
0x01 -> IOS_NODE_EXTERNAL0 (CPU0)
−
0x02 -> IOS_NODE_EXTERNAL1 (CPU1)
−
0x03 -> IOS_NODE_EXTERNAL2 (CPU2)
−
−
IPC client PIDs
−
0x00 -> COS-KERNEL
0x00 -> COS-KERNEL
0x01 -> COS-ROOT
0x01 -> COS-ROOT