SVC: Difference between revisions
Misson20000 (talk | contribs) m →svcWaitSynchronization: add note about 0xec01 result |
Misson20000 (talk | contribs) Add svcCancelSynchronization section |
||
Line 53: | Line 53: | ||
| 0x18 || [[#svcWaitSynchronization]] || X1=handles_ptr, W2=num_handles. X3=timeout || W0=result, W1=handle_idx | | 0x18 || [[#svcWaitSynchronization]] || X1=handles_ptr, W2=num_handles. X3=timeout || W0=result, W1=handle_idx | ||
|- | |- | ||
| 0x19 || svcCancelSynchronization || W0=thread_handle || W0=result | | 0x19 || [[#svcCancelSynchronization]] || W0=thread_handle || W0=result | ||
|- | |- | ||
| 0x1A || svcArbitrateLock || W0=cur_thread_handle, X1=ptr, W2=req_thread_handle || | | 0x1A || svcArbitrateLock || W0=cur_thread_handle, X1=ptr, W2=req_thread_handle || | ||
Line 665: | Line 665: | ||
'''0xec01:''' Interrupted. Returns when another thread uses [[#svcCancelSynchronization]] to cancel this thread. | '''0xec01:''' Interrupted. Returns when another thread uses [[#svcCancelSynchronization]] to cancel this thread. | ||
== svcCancelSynchronization == | |||
<div style="display: inline-block;"> | |||
{| class="wikitable" border="1" | |||
|- | |||
! Argument || Type || Name | |||
|- | |||
| (In) W0 || Handle<Thread> || Handle | |||
|- | |||
| (Out) W0 || [[#Result]] || Ret | |||
|} | |||
</div> | |||
If the referenced thread is currently in an [[#svcWaitSynchronization]] call, that call will be interrupted and return 0xec01. | |||
If that thread is not currently executing [[#svcWaitSynchronization]], the next call to [[#svcWaitSynchronization]] will return 0xec01. | |||
=== Result codes === | |||
'''0x0:''' Success. The thread was either interrupted or has had its flag set. | |||
'''0xe401:''' Invalid handle. The handle given was either invalid or not a thread handle. | |||
== svcGetSystemTick == | == svcGetSystemTick == |