Services API: Difference between revisions

No edit summary
Line 10: Line 10:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#Initialize]]
| 0 || [[#RegisterClient]]
|-
|-
| 1 || [[#GetService]]
| 1 || [[#GetServiceHandle]]
|-
|-
| 2 || [[#RegisterService]]
| 2 || [[#RegisterService]]
Line 18: Line 18:
| 3 || [[#UnregisterService]]
| 3 || [[#UnregisterService]]
|-
|-
| 4 || [11.0.0+]
| 4 || [11.0.0+] [[#DetachClient]]
|}
|}


== Initialize ==
== RegisterClient ==
Takes a pid descriptor and a reserved input u64.
Takes a PID-descriptor and a reserved input u64.


== GetService ==
== GetServiceHandle ==
Takes a zero-padded service name encoded as an u64 integer. Returns a handle.
Takes a zero-padded service name encoded as an u64 integer. Returns a handle.


== RegisterService ==
== RegisterService ==
Takes a zero-padded service name encoded as an u64 integer, an u8 bool is_light, and a s32 max_sessions at the next word. Returns a handle.
Takes a zero-padded service name encoded as an u64 integer, an u8 bool '''IsLight''', and a s32 '''MaxSessions''' at the next word. Returns a handle.


== UnregisterService ==
== UnregisterService ==
Takes a zero-padded service name encoded as an u64 integer.
Takes a zero-padded service name encoded as an u64 integer.
== DetachClient ==
Takes a PID-descriptor and a reserved input u64.


= sm:m =
= sm:m =
Line 46: Line 49:


== RegisterProcess ==
== RegisterProcess ==
Takes a pid and two A descriptors with the ACID and ACI0 service lists. That data originates from [[NPDM]].
Takes a PID and two type-0x5 input buffers with the ACID and ACI0 service lists. That data originates from [[NPDM]].


== UnregisterProcess ==
== UnregisterProcess ==
Takes a pid.
Takes a PID.


= Service List =
= Service List =