SVC: Difference between revisions
No edit summary |
|||
Line 13: | Line 13: | ||
| 0x5 || [[#svcUnmapMemory]] || X0=dstaddr, X1=srcaddr, X2=size || W0=result | | 0x5 || [[#svcUnmapMemory]] || X0=dstaddr, X1=srcaddr, X2=size || W0=result | ||
|- | |- | ||
| 0x6 || svcQueryMemory || X0=meminfo_ptr, X2=addr || W0=result, W1=pageinfo | | 0x6 || [[#svcQueryMemory]] || X0=meminfo_ptr, X2=addr || W0=result, W1=pageinfo | ||
|- | |- | ||
| 0x7 || svcExitProcess || None || | | 0x7 || [[#svcExitProcess]] || None || | ||
|- | |- | ||
| 0x8 || [[#svcCreateThread]] || X1=entry, X2=arg, X3=stacktop, W4=prio, W5=processor_id || W0=result, W1=handle | | 0x8 || [[#svcCreateThread]] || X1=entry, X2=arg, X3=stacktop, W4=prio, W5=processor_id || W0=result, W1=handle | ||
Line 264: | Line 264: | ||
The srcaddr/dstaddr must match what was given when the pages were originally mapped. | The srcaddr/dstaddr must match what was given when the pages were originally mapped. | ||
== svcQueryMemory == | |||
'''Description:''' Query information about an address. Will always fetch the lowest page-aligned mapping that contains the provided address. | |||
Outputs a [[#MemoryInfo]] struct. | |||
== svcExitProcess == | |||
'''Description:''' Exits the current process. | |||
== svcCreateThread == | == svcCreateThread == | ||
Line 543: | Line 551: | ||
|- | |- | ||
| 0x2C || 4 || | | 0x2C || 4 || | ||
|} | |||
== MemoryInfo == | |||
{| class=wikitable | |||
! Offset || Length || Description | |||
|- | |||
| 0 || 8 || BaseAddress | |||
|- | |||
| 8 || 8 || Size | |||
|- | |||
| 0x10 || 4 || MemoryType: lower 8 bits of [[#MemoryState]] | |||
|- | |||
| 0x14 || 4 || [[#MemoryAttribute]] | |||
|- | |||
| 0x18 || 4 || Permission (bit0: R, bit1: W, bit2: X) | |||
|- | |||
| 0x1C || 4 || DeviceRefCount | |||
|- | |||
| 0x20 || 4 || IpcRefCount | |||
|} | |} | ||