SVC: Difference between revisions

Roblabla (talk | contribs)
IsBorrowed is also set to true when it's the source of a MapMemory.
Roblabla (talk | contribs)
Add svcGetSystemTick 32-bit ABI. Change the detailed 32-bit ABI table format.
Line 73: Line 73:
|-
|-
| 0x1E || [[#svcGetSystemTick]] || None || X0={value of cntpct_el0}
| 0x1E || [[#svcGetSystemTick]] || None || X0={value of cntpct_el0}
R0=cntpct_el0_lower32, R1=cntpct_el0_upper32
|-
|-
| 0x1F || svcConnectToNamedPort || X1=port_name_str || W0=result, W1=handle
| 0x1F || svcConnectToNamedPort || X1=port_name_str || W0=result, W1=handle
Line 490: Line 491:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Argument || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (In) X0 || s64 || Nanoseconds
| (In) X0 || R0, R1 || s64 || Nanoseconds
|-
|}
</div>
<div style="display: inline-block;vertical-align:top;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) R0 || u32 || NanosecondsLower32
|-
| (In) R1 || u32 || NanosecondsUpper32
|-
|-
|}
|}
Line 567: Line 557:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Argument || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (In) W2 || Handle<Thread> || Handle
| (In) W2 || R2 || Handle<Thread> || Handle
|-
|-
| (Out) W0 || [[#Result]] || Ret
| (Out) W0 || R0 || [[#Result]] || Ret
|-
|-
| (Out) W1 || u32 || Out0
| (Out) W1 || R1 || u32 || Out0
|-
|-
| (Out) X2 || u64 || Out1
| (Out) X2 || R2, R3 || u64 || Out1
|}
</div>
<div style="display: inline-block; vertical-align:top;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) R2 || Handle<Thread> || Handle
|-
| (Out) R0 || [[#Result]] || Ret
|-
| (Out) R1 || u32 || Out0
|-
| (Out) R2 || u32 || Out1Lower32
|-
| (Out) R3 || u32 || Out1Upper32
|}
|}
</div>
</div>
Line 602: Line 576:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Argument || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (In) W0 || Handle<Thread> || Handle
| (In) W0 || R0 || Handle<Thread> || Handle
|-
|-
| (In) W1 || u32 || In0
| (In) W1 || R1 || u32 || In0
|-
|-
| (In) X2 || u64 || In1
| (In) X2 || R2, R3 || u64 || In1
|-
|-
| (Out) W0 || [[#Result]] || Ret
| (Out) W0 || R0 || [[#Result]] || Ret
|}
</div>
<div style="display: inline-block;vertical-align:top;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) R0 || Handle<Thread> || Handle
|-
| (In) R1 || u32 || In0
|-
| (In) R2 || u32 || In1Lower32
|-
| (In) R3 || u32 || In1Upper32
|-
| (Out) R0 || [[#Result]] || Ret
|}
|}
</div>
</div>
'''Description:''' Set affinity mask of provided thread handle.
'''Description:''' Set affinity mask of provided thread handle.


Line 701: Line 660:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Argument || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (In) X1 || Handle* || HandlesPtr
| (In) X1 || R1 || Handle* || HandlesPtr
|-
|-
| (In) W2 || u64 || HandlesNum
| (In) W2 || R2 || u64 || HandlesNum
|-
|-
| (In) X3 || u64 || Timeout
| (In) X3 || R0, R3 || u64 || Timeout
|-
|-
| (Out) W0 || [[#Result]] || Ret
| (Out) W0 || R0 || [[#Result]] || Ret
|-
|-
| (Out) W1 || u64 || HandleIndex
| (Out) W1 || R1 || u64 || HandleIndex
|}
</div>
<div style="display: inline-block;vertical-align:top;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) R0 || u32 || TimeoutLower32
|-
| (In) R1 || Handle* || HandlesPtr
|-
| (In) R2 || u32 || HandlesNum
|-
| (In) R3 || u32 || TimeoutUpper32
|-
| (Out) W0 || [[#Result]] || Ret
|-
| (Out) W1 || u64 || HandleIndex
|}
|}
</div>
</div>
Line 799: Line 740:
{| class="wikitable" border="1"
{| class="wikitable" border="1"
|-
|-
! Argument || Type || Name
! Argument64 || Argument32 || Type || Name
|-
|-
| (Out) X0 || u64 || Ticks
| (Out) X0 || R0, R1 || u64 || Ticks
|}
|}
</div>
</div>