Line 201: |
Line 201: |
| | 0x72 || svcConnectToPort || W1=clientport_handle || W0=result, W1=session_handle | | | 0x72 || svcConnectToPort || W1=clientport_handle || W0=result, W1=session_handle |
| |- | | |- |
− | | 0x73 || svcSetProcessMemoryPermission || X0=addr, X1=size, W2=perm || W0=result | + | | 0x73 || [[#svcSetProcessMemoryPermission]] || W0=process_handle, X1=addr, X2=size, W3=perm || W0=result |
| |- | | |- |
| | 0x74 || [[#svcMapProcessMemory]] || X0=srcaddr, W1=process_handle, X2=dstaddr, X3=size || W0=result | | | 0x74 || [[#svcMapProcessMemory]] || X0=srcaddr, W1=process_handle, X2=dstaddr, X3=size || W0=result |
Line 1,118: |
Line 1,118: |
| | | |
| '''Description:''' Unmaps an attached device address space from an userspace address. | | '''Description:''' Unmaps an attached device address space from an userspace address. |
| + | |
| + | == svcSetProcessMemoryPermission == |
| + | |
| + | <div style="display: inline-block;"> |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Argument || Type || Name |
| + | |- |
| + | | (In) W0 || Handle<Process> || ProcessHandle |
| + | |- |
| + | | (In) X1 || u64 || Addr |
| + | |- |
| + | | (In) X2 || u64 || Size |
| + | |- |
| + | | (In) W3 || void* || Perm |
| + | |- |
| + | | (Out) W0 || [[#Result]] || Ret |
| + | |} |
| + | </div> |
| + | |
| + | This sets the memory permissions for the specified memory with the supplied process handle. |
| + | |
| + | This throws an error(0xD801) when the input perm is >0x5, hence -WX and RWX are not allowed. |
| | | |
| == svcMapProcessMemory == | | == svcMapProcessMemory == |
Line 1,128: |
Line 1,151: |
| | (In) X0 || u64 || SrcAddr | | | (In) X0 || u64 || SrcAddr |
| |- | | |- |
− | | (In) W1 || u64 || ProcessHandle | + | | (In) W1 || Handle<Process> || ProcessHandle |
| |- | | |- |
| | (In) X2 || void* || DstAddr | | | (In) X2 || void* || DstAddr |