Changes

29 bytes added ,  23:34, 25 September 2015
→‎IPC: Put some more detail back into the main IPC struct, clarify other things
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
203

edits