Services API: Difference between revisions

No edit summary
Line 5: Line 5:
= sm: =
= sm: =
This is "nn::sm::detail::IUserInterface".
This is "nn::sm::detail::IUserInterface".
[12.0.0+] This is now a TIPC interface so the command numbers are subtracted by 16.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 22: Line 24:


== RegisterClient ==
== RegisterClient ==
Takes a PID-descriptor and a reserved input u64. The input u64 is not sent with TIPC.
Takes a PID-descriptor and a reserved input u64. No output.
 
[12.0.0+] Now only takes a PID-descriptor with TIPC.


== GetServiceHandle ==
== GetServiceHandle ==
Takes a zero-padded service name encoded as an u64 integer. Returns a handle.
Takes an input [[#ServiceName|ServiceName]]. Returns an output Service handle.


== RegisterService ==
== RegisterService ==
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.
Takes an input [[#ServiceName|ServiceName]], an input bool '''IsLight''' and an input s32 '''MaxSessions'''. Returns an output Service handle.


[12.0.0+] This is only available with tipc.
[S2] [20.1.0+] Now takes an additional input u32.


== UnregisterService ==
== UnregisterService ==
Takes a zero-padded service name encoded as an u64 integer.
Takes an input [[#ServiceName|ServiceName]]. No output.


[12.0.0+] This is only available with tipc.
[S2] [20.1.0+] Now takes an additional input u32.


== DetachClient ==
== DetachClient ==
Takes a PID-descriptor and a reserved input u64.
Takes a PID-descriptor and a reserved input u64. No output.


= sm:m =
= sm:m =
This is "nn::sm::detail::IManagerInterface".
This is "nn::sm::detail::IManagerInterface".
[12.0.0+] This is now a TIPC interface so the command numbers are subtracted by 16.


{| class="wikitable" border="1"
{| class="wikitable" border="1"
Line 53: Line 59:


== RegisterProcess ==
== RegisterProcess ==
Takes a PID and two type-0x5 input buffers with the ACID and ACI0 service lists. That data originates from [[NPDM]].
Takes a PID and two type-0x5 input buffers '''AccessRightsLimit''' and '''AccessRights'''. No output.
 
'''AccessRightsLimit''' and '''AccessRights''' contain the [[NPDM#ACID|ACID]] and [[NPDM#ACI0|ACI0]] service lists, respectively.


== UnregisterProcess ==
== UnregisterProcess ==
Takes a PID.
Takes a PID. No output.
 
= ServiceName =
This is "nn::sm::ServiceName". This is an u64 encoded from a zero-padded string.


= Service List =
= Service List =