SVC: Difference between revisions

 
(6 intermediate revisions by 3 users not shown)
Line 255: Line 255:
| 0x7F || void || [[#CallSecureMonitor|CallSecureMonitor]] || SecureMonitorArguments *args
| 0x7F || void || [[#CallSecureMonitor|CallSecureMonitor]] || SecureMonitorArguments *args
|-
|-
| [S2] 0x80 || Result || SetMemoryAttribute2? || uintptr_t address, size_t size, uint32_t mask, uint32_t attr
| [S2] 0x80 || Result || SetGpuMemoryAttribute || uintptr_t address, size_t size, uint32_t mask, uint32_t attr
|-
| [S2] 0x81 || Result || LockGpuSharableMemory || PhysicalMemoryInfo* info_out, Handle process_handle, uintptr_t address, size_t size
|-
| [S2] 0x80 || Result || UnlockGpuSharableMemory || Handle process_handle, uintptr_t address, size_t size
|- style="border-top: double"
|- style="border-top: double"
| [15.0.0+] 0x90  || Result || MapInsecurePhysicalMemory || uintptr_t address, size_t size
| [15.0.0+] 0x90  || Result || MapInsecurePhysicalMemory || uintptr_t address, size_t size
Line 509: Line 513:
! Argument64 || Argument32 || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (In) X0 || R0, R1 || uint64_t || Nanoseconds
| (In) X0 || R0, R1 || int64_t || Nanoseconds
|}
|}
</div>
</div>
Line 944: Line 948:
|}
|}
</div>
</div>
[S2] All errors returned by the SendSyncRequest* SVCs will automatically close the session (unknown whether handled by kernel/sysmodule).


== SendSyncRequestWithUserBuffer ==
== SendSyncRequestWithUserBuffer ==
Line 2,669: Line 2,675:
| Process || 28 || 0 || [18.0.0+] AliasRegionExtraSize
| Process || 28 || 0 || [18.0.0+] AliasRegionExtraSize
|-
|-
| Process || 29 || 0 || [S2] Returns 0 in compatibility processes.
| Process || 29 || 0 || [S2] RemoteRegionAddress
|-
|-
| Process || 30 || 0 || [S2] Returns 0 in compatibility processes.
| Process || 30 || 0 || [S2] RemoteRegionSize
|-
|-
| Process || 31 || 0 || [S2]  
| Process || 31 || 0 || [S2] RemoteMemoryUsage
|-
|-
| Process || 32 || 0 || [S2]  
| Process || 32 || 0 || [S2] RemoteMemoryUsagePeak
|-
|-
| Process || 33 || 0 || [S2] ProcessPageSize
| Process || 33 || 0 || [S2] ProcessPageSize
Line 3,016: Line 3,022:
| 4 || PermissionLocked ||  
| 4 || PermissionLocked ||  
|-
|-
| 5-6 || [S2] ? || GPU/IOMMU related?
| 5 || [S2] GpuSharable ||
|-
| 6 || [S2] GpuShared ||  
|-
|-
|}
|}
Line 3,063: Line 3,071:
|-
|-
| 26 || [15.0.0+] FlagLinearMapped ||
| 26 || [15.0.0+] FlagLinearMapped ||
|-
| 27 || [17.0.0+] FlagCanPermissionLock ||
|}
|}


Line 3,363: Line 3,373:
Userland reporting path and [[#ReturnFromException]]:
Userland reporting path and [[#ReturnFromException]]:


TLS region start (A64):
TLS region start (UserExceptionContext):
{| class=wikitable
{| class=wikitable
! Offset || Length || Description
! Offset || Length || Description
Line 3,369: Line 3,379:
| 0x0 || 0x148 || Exception stack
| 0x0 || 0x148 || Exception stack
|-
|-
| 0x148 || 0x78 || ExceptionFrameA64
| 0x148 || 0x78 (A64) or 0x44 (A32) || ExceptionFrameA64 or ExceptionFrameA32
|-
| 0x1C0 || 0x8 || DyingMessage address (unused by kernel)
|-
| 0x1C8 || 0x8 || DyingMessage size (unused by kernel)
|}
|}


Line 3,393: Line 3,407:
|-
|-
| 0x70 || 0x8 || far
| 0x70 || 0x8 || far
|}
TLS region start (A32):
{| class=wikitable
! Offset || Length || Description
|-
| 0x0 || 0x178 || Exception stack
|-
| 0x148 || 0x44 || ExceptionFrameA32
|}
|}