Changes

416 bytes added ,  05:13, 2 November 2012
no edit summary
Line 5: Line 5:  
|-
 
|-
 
| 0x1  
 
| 0x1  
| ControlMemory(Handle*, unsigned int Addr, unsigned int Unk, unsigned int Size, unsigned int Unk, unsigned int Permissions)
+
| ControlMemory(Handle*, unsigned int Addr, unsigned int Unk, unsigned int Size, unsigned int MemoryType, unsigned int Permissions)
 
|-
 
|-
 
| 0x2  
 
| 0x2  
Line 326: Line 326:  
|}
 
|}
   −
Calling svcBreak on retail will only terminate the process which called this SVC. Only ControlMemory and MapMemoryBlock can be used to map memory pages, these SVCs only support mapping execute-never R/W pages.
+
Calling svcBreak on retail will only terminate the process which called this SVC.
 +
 
 +
Only ControlMemory and MapMemoryBlock can be used to map memory pages, these SVCs only support mapping execute-never R/W pages. The input permissions parameter for these SVCs must be <=3, where value zero is used when un-mapping memory. Bitmask 0xf00 for ControlMemory parameter MemoryType is the memory-type, when this is zero the memory-type is loaded from the kernel flags stored in the exheader ARM11 kernel descriptors, for the process using the SVC. The low 8-bits are the flags: 1 is for un-mapping memory, 3 for mapping memory.
    
DebugActiveProcess is used to attach to a process for debugging. This SVC can only be used when the target process' ARM11 descriptors stored in the exheader have the kernel flag for "Enable debug" set. Otherwise when that flag is clear, the kernel flags for the process using this SVC must have the "Force debug" flag set.
 
DebugActiveProcess is used to attach to a process for debugging. This SVC can only be used when the target process' ARM11 descriptors stored in the exheader have the kernel flag for "Enable debug" set. Otherwise when that flag is clear, the kernel flags for the process using this SVC must have the "Force debug" flag set.