SVC: Difference between revisions
No edit summary |
|||
Line 227: | Line 227: | ||
! Argument || Type || Name | ! Argument || Type || Name | ||
|- | |- | ||
| (In) | | (In) W1 || u64 || <code>Size</code> | ||
|- | |- | ||
| (Out) W0 || [[#Result]] || <code>Ret</code> | | (Out) W0 || [[#Result]] || <code>Ret</code> | ||
Line 242: | Line 242: | ||
[2.0.0+] <code>Size</code> must be less than 0x18000000. | [2.0.0+] <code>Size</code> must be less than 0x18000000. | ||
== svcSetMemoryPermission == | == svcSetMemoryPermission == | ||
Line 251: | Line 249: | ||
This can be used to move back and forth between ---, r-- and rw-. | This can be used to move back and forth between ---, r-- and rw-. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X0 || u64 || <code>Addr</code> | |||
|- | |||
| (In) X1 || u64 || <code>Size</code> | |||
|- | |||
| (In) W2 || u64 || <code>Prot</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|} | |||
</div> | |||
== svcSetMemoryAttribute == | == svcSetMemoryAttribute == | ||
Line 258: | Line 271: | ||
What happens "under the hood" is the "Memory Attribute Indirection Register" index is changed from 2 to 3 in the MMU descriptor. | What happens "under the hood" is the "Memory Attribute Indirection Register" index is changed from 2 to 3 in the MMU descriptor. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X0 || u64 || <code>Addr</code> | |||
|- | |||
| (In) X1 || u64 || <code>Size</code> | |||
|- | |||
| (In) W2 || u64 || <code>State0</code> | |||
|- | |||
| (In) W3 || u64 || <code>State1</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|} | |||
</div> | |||
{| class=wikitable | {| class=wikitable | ||
Line 285: | Line 315: | ||
[2.0.0+] Support for the <code>0x482907</code> mappings outside the "MapRegion" were removed. | [2.0.0+] Support for the <code>0x482907</code> mappings outside the "MapRegion" were removed. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X0 || u64 || <code>Dst</code> | |||
|- | |||
| (In) X1 || u64 || <code>Src</code> | |||
|- | |||
| (In) X2 || u64 || <code>Size</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|} | |||
</div> | |||
== svcUnmapMemory == | == svcUnmapMemory == | ||
Line 292: | Line 337: | ||
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. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X0 || u64 || <code>Dst</code> | |||
|- | |||
| (In) X1 || u64 || <code>Src</code> | |||
|- | |||
| (In) X2 || u64 || <code>Size</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|} | |||
</div> | |||
== svcQueryMemory == | == svcQueryMemory == | ||
Line 297: | Line 357: | ||
Outputs a [[#MemoryInfo]] struct. | Outputs a [[#MemoryInfo]] struct. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X0 || MemoryInfo*|| <code>Mem Info</code> | |||
|- | |||
| (In) X2 || u64 || <code>Addr</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|- | |||
| (Out) W1 || PageInfo || <code>Page Info</code> | |||
|} | |||
</div> | |||
== svcExitProcess == | == svcExitProcess == | ||
'''Description:''' Exits the current process. | '''Description:''' Exits the current process. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) None || || | |||
|- | |||
| (Out) None || || | |||
|} | |||
</div> | |||
== svcCreateThread == | == svcCreateThread == | ||
Line 305: | Line 391: | ||
Processor_id must be 0,1,2,3 or -2, where -2 uses the default cpuid for process. | Processor_id must be 0,1,2,3 or -2, where -2 uses the default cpuid for process. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) X1 || u64 || <code>Entry</code> | |||
|- | |||
| (In) X2 || u64 || <code>Arg</code> | |||
|- | |||
| (In) X3 || u64 || <code>Stack Top</code> | |||
|- | |||
| (In) W4 || u64 || <code>Priority</code> | |||
|- | |||
| (In) W5 || u64 || <code>Processor ID</code> | |||
|- | |||
| (Out) W0 || [[#Result]] || <code>Ret</code> | |||
|- | |||
| (Out) W1 || Handle || <code>Handle</code> | |||
|} | |||
</div> | |||
== svcStartThread == | == svcStartThread == | ||
'''Description:''' Starts the thread for the provided handle. | '''Description:''' Starts the thread for the provided handle. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) W0|| u64 || <code>Handle</code> | |||
|- | |||
| (Out) None || || | |||
|} | |||
</div> | |||
== svcExitThread == | == svcExitThread == | ||
'''Description:''' Exits the current thread. | '''Description:''' Exits the current thread. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) None || || | |||
|- | |||
| (Out) None || || | |||
|} | |||
</div> | |||
== svcSleepThread == | == svcSleepThread == | ||
Line 335: | Line 464: | ||
Cpu-id is an integer in the range 0-3. | Cpu-id is an integer in the range 0-3. | ||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) None || || | |||
|- | |||
| (Out) W0/X0 || u64 || <code>CPU ID</code> | |||
|} | |||
</div> | |||
== svcMapSharedMemory == | == svcMapSharedMemory == |