SVC: Difference between revisions

Adubbz (talk | contribs)
No edit summary
Adubbz (talk | contribs)
No edit summary
Line 933: Line 933:


== svcMapDeviceAddressSpaceByForce ==
== 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.
'''Description:''' Maps an attached device address space to an userspace address.


Line 940: Line 962:


== svcMapDeviceAddressSpaceAligned ==
== 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.
'''Description:''' Maps an attached device address space to an userspace address.


Line 945: Line 989:


== svcUnmapDeviceAddressSpace ==
== 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.
'''Description:''' Unmaps an attached device address space from an userspace address.


== svcMapProcessMemory ==
== 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.
Maps the src address from the supplied process handle into the current process.


Line 953: Line 1,035:


== svcUnmapProcessMemory ==
== 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]].
Unmaps what was mapped by [[#svcMapProcessMemory]].


== svcQueryProcessMemory ==
== 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.
Equivalent to [[#svcQueryMemory]] except takes a process handle.


== svcMapProcessCodeMemory ==
== 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.
Takes a process handle, and maps normal heap in that process as executable code in that process. Used when loading NROs.


== svcUnmapProcessCodeMemory ==
== 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]].
Unmaps what was mapped by [[#svcMapProcessCodeMemory]].


== svcCreateProcess ==
== 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.
Takes a [[#CreateProcessInfo]] as input.


== svcGetProcessInfo ==
== 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.
Returns an enum with value 0-7.