SVC: Difference between revisions

svcWaitSynchronization: add info on what this waits for and what it will return
Add svcAcceptSession info
Line 109: Line 109:
| 0x40 || svcCreateSession || W2=is_light, X3=? || W0=result, W1=client_handle, W2=server_handle
| 0x40 || svcCreateSession || W2=is_light, X3=? || W0=result, W1=client_handle, W2=server_handle
|-
|-
| 0x41 || svcAcceptSession || W1=port_handle || W0=result, W1=session_handle
| 0x41 || [[#svcAcceptSession]] || W1=port_handle || W0=result, W1=session_handle
|-
|-
| 0x42 || svcReplyAndReceiveLight || W0=light_session_handle || W0=result, W1,W2,W3,W4,W5,W6,W7=out
| 0x42 || svcReplyAndReceiveLight || W0=light_session_handle || W0=result, W1,W2,W3,W4,W5,W6,W7=out
Line 632: Line 632:
'''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed.
'''Session (server-side):''' signals when there is an incoming message waiting to be [[#svcReplyAndReceive|received]] or the pipe is closed.


=== Return codes ===
=== Result codes ===


'''0x0:''' Success. One of the objects was signalled before the timeout expired. Handle index is updated to indicate which object signalled.
'''0x0:''' Success. One of the objects was signalled before the timeout expired. Handle index is updated to indicate which object signalled.
Line 751: Line 751:


Does nothing, just returns with registers set to all-zero.
Does nothing, just returns with registers set to all-zero.
== svcAcceptSession ==
<div style="display: inline-block;">
{| class="wikitable" border="1"
|-
! Argument || Type || Name
|-
| (In) W1 || Handle<Port> || <code>Port</code>
|-
| (Out) W0 || [[#Result]] || <code>Result</code>
|-
| (Out) W1 || Handle<ServerSession> || <code>Session</code>
|}
</div>
=== Result codes ===
'''0xf201:''' No session waiting to be accepted


== svcReadWriteRegister ==
== svcReadWriteRegister ==