SVC: Difference between revisions

Sanae6 (talk | contribs)
m fix type on SleepThread
 
(7 intermediate revisions by one other user not shown)
Line 254: Line 254:
|-
|-
| 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
|- 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 507: Line 509:
! 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 2,666: Line 2,668:
|-
|-
| Process || 28 || 0 || [18.0.0+] AliasRegionExtraSize
| Process || 28 || 0 || [18.0.0+] AliasRegionExtraSize
|-
| Process || 29 || 0 || [S2] Returns 0 in compatibility processes.
|-
| Process || 30 || 0 || [S2] Returns 0 in compatibility processes.
|-
| Process || 31 || 0 || [S2]
|-
| Process || 32 || 0 || [S2]
|-
| Process || 33 || 0 || [S2] ProcessPageSize
|-
| TransferMemory || 34 || 0 || [19.0.0+] TransferMemoryHint
|}
|}


Line 3,001: Line 3,015:
|-
|-
| 4 || PermissionLocked ||  
| 4 || PermissionLocked ||  
|-
| 5-6 || [S2] ? || GPU/IOMMU related?
|-
|}
|}


Line 3,160: Line 3,177:
! Bit || Bitmask || Description
! Bit || Bitmask || Description
|-
|-
| 0 || 1 || IgnoreException (note: doesn't need to be set in the same call than Resume)
| 0 || 1 || HandleException (note: doesn't need to be set in the same call than Resume)
|-
|-
| 1 || 2 || DontCatchExceptions
| 1 || 2 || EnableExceptionEvent
|-
|-
| 2 || 4 || Resume
| 2 || 4 || ContinueAll
|-
|-
| 3 || 8 || IgnoreOtherThreadsExceptions
| 3 || 8 || ContinueOthers
|}
|}


IgnoreExceptionsOfOthers is like IgnoreException but acts on all threads that aren't in the input list. The affected threads are resumed.
ContinueOthers is like ContinueAll but acts on all threads that aren't in the input list. The affected threads are resumed.


Only one of of Resume and IgnoreOtherThreadsExceptions can be set at a time.
Only one of of HandleException and EnableExceptionEvent can be set at a time.


If the input number of threads is 0, this means "all threads".
If the input number of threads is 0, this means "all threads".