SVC: Difference between revisions
No edit summary |
No edit summary |
||
Line 125: | Line 125: | ||
| 0x45 || svcCreateEvent || None || W0=result, W1=client_handle ?, W2=server_handle ? | | 0x45 || svcCreateEvent || None || W0=result, W1=client_handle ?, W2=server_handle ? | ||
|- style="border-top: double" | |- style="border-top: double" | ||
| 0x4B || [4.0.0+] | | 0x4B || [4.0.0+] svcCreateJitMemory || X1=addr, X2=size || W0=result, W1=jit_handle | ||
|- | |- | ||
| 0x4C || [4.0.0+] || || | | 0x4C || [4.0.0+] [[#svcMapJitMemory]] || W0=jit_handle, W1=[[#MapJitOperation]], X2=dstaddr, X3=size, W4=perm || W0=result | ||
|- | |- | ||
| 0x4D || svcSleepSystem || None || None | | 0x4D || svcSleepSystem || None || None | ||
Line 818: | Line 818: | ||
'''0xf601:''' Port remote dead. One of the sessions has been closed. HandleIndex is set appropriately. | '''0xf601:''' Port remote dead. One of the sessions has been closed. HandleIndex is set appropriately. | ||
== svcCreateJitMemory == | |||
Takes an address range with backing memory to create the JIT memory object. | |||
The memory is initially memset to 0xFF after being locked. | |||
== svcMapJitMemory == | |||
Maps the backing memory for a JIT memory object into the current process. | |||
If operation is JitMapOperation_MapOwner, permission must be RW-. | |||
If operation is JitMapOperation_MapSlave, permission must be R-- or R-X. | |||
This allows one "secure JIT" process to map the memory as RW-, and the other "slave" process to map it R-X. | |||
== svcReadWriteRegister == | == svcReadWriteRegister == | ||
Line 1,349: | Line 1,363: | ||
| 38 || DeviceName_NVDEC1 | | 38 || DeviceName_NVDEC1 | ||
|} | |} | ||
== MapJitOperation == | |||
{| class=wikitable | |||
! Value || Name | |||
|- | |||
| 0 || MapJitOperation_MapOwner | |||
|- | |||
| 1 || MapJitOperation_MapSlave | |||
|- | |||
| 2 || MapJitOperation_UnmapOwner | |||
|- | |||
| 3 || MapJitOperation_UnmapSlave | |||
|} | |||
== LimitableResource == | == LimitableResource == | ||
Line 1,517: | Line 1,545: | ||
| 24 || [[#svcSetMemoryAttribute|AttributeChangeAllowed]] | | 24 || [[#svcSetMemoryAttribute|AttributeChangeAllowed]] | ||
|- | |- | ||
| 25 || [4.0.0+] | | 25 || [4.0.0+] JitMemoryAllowed | ||
|} | |} | ||
Line 1,582: | Line 1,610: | ||
|- | |- | ||
| 0x00002013 || MemoryType_KernelStack || Mapped in kernel during [[#svcCreateThread]]. | | 0x00002013 || MemoryType_KernelStack || Mapped in kernel during [[#svcCreateThread]]. | ||
|- | |||
| 0x00402214 || MemoryType_JitReadOnly || Mapped in kernel during [[#svcMapJitMemory]]. | |||
|- | |||
| 0x00402015 || MemoryType_JitWritable || Mapped in kernel during [[#svcMapJitMemory]]. | |||
|} | |} | ||