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. |
| | | |