Changes

Jump to navigation Jump to search
3,724 bytes added ,  11:49, 14 October 2017
no edit summary
== svcMapDeviceAddressSpaceByForce ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Device as Handle</code>
|-
| (In) W1 || u64 || <code>Process Handle</code>
|-
| (In) X2 || u64 || <code>Device Map Addr</code>
|-
| (In) X3 || u64 || <code>Device as Size</code>
|-
| (In) X4 || u64 || <code>Device as Addr</code>
|-
| (In) W5 || u64 || <code>Permissions</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
'''Description:''' Maps an attached device address space to an userspace address.
== svcMapDeviceAddressSpaceAligned ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Device as Handle</code>
|-
| (In) W1 || u64 || <code>Process Handle</code>
|-
| (In) X2 || u64 || <code>Device Map Addr</code>
|-
| (In) X3 || u64 || <code>Device as Size</code>
|-
| (In) X4 || u64 || <code>Device as Addr</code>
|-
| (In) W5 || u64 || <code>Permissions</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
'''Description:''' Maps an attached device address space to an userspace address.
== svcUnmapDeviceAddressSpace ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Device as Handle</code>
|-
| (In) W1 || u64 || <code>Process Handle</code>
|-
| (In) X2 || u64 || <code>Device Map Addr</code>
|-
| (In) X3 || u64 || <code>Device as Size</code>
|-
| (In) X4 || u64 || <code>Device as Addr</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
'''Description:''' Unmaps an attached device address space from an userspace address.
== svcMapProcessMemory ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) X0 || u64 || <code>Src Addr</code>
|-
| (In) W1 || u64 || <code>Process Handle</code>
|-
| (In) X2 || u64 || <code>Dest Addr</code>
|-
| (In) X3 || u64 || <code>Size</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
Maps the src address from the supplied process handle into the current process.
== svcUnmapProcessMemory ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Process Handle</code>
|-
| (In) X1 || u64 || <code>Dest Addr</code>
|-
| (In) X2 || u64 || <code>Src Addr</code>
|-
| (In) X3 || u64 || <code>Size</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
Unmaps what was mapped by [[#svcMapProcessMemory]].
== svcQueryProcessMemory ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) X0 || u64 || <code>Meminfo Pointer</code>
|-
| (In) W2 || u64 || <code>Process Handle</code>
|-
| (In) X3 || u64 || <code>Addr</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|-
| (Out) W1 || PageInfo || <code>Page Info</code>
|}
</div>
 
Equivalent to [[#svcQueryMemory]] except takes a process handle.
== svcMapProcessCodeMemory ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Process Handle</code>
|-
| (In) X1 || u64 || <code>Dest Addr</code>
|-
| (In) X2 || u64 || <code>Src Addr</code>
|-
| (In) X3 || u64 || <code>Size</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
Takes a process handle, and maps normal heap in that process as executable code in that process. Used when loading NROs.
== svcUnmapProcessCodeMemory ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Process Handle</code>
|-
| (In) X1 || u64 || <code>Dest Addr</code>
|-
| (In) X2 || u64 || <code>Src Addr</code>
|-
| (In) X3 || u64 || <code>Size</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|}
</div>
 
Unmaps what was mapped by [[#svcMapProcessCodeMemory]].
== svcCreateProcess ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) X1 || u64 || <code>ProcInfo Pointer</code>
|-
| (In) X2 || u64 || <code>Capabilities Pointer</code>
|-
| (In) X3 || u64 || <code>Capibility Num</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|-
| (Out) W1 || u64 || <code>Process Handle</code>
|}
</div>
 
Takes a [[#CreateProcessInfo]] as input.
== svcGetProcessInfo ==
 
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W0 || u64 || <code>Process Handle</code>
|-
| (Out) W0 || [[#Result]] || <code>Ret</code>
|-
| (Out) W1 || [[#ProcessState|| <code>Process State</code>
|}
</div>
 
Returns an enum with value 0-7.
48

edits

Navigation menu