Line 1:
Line 1:
Services are an abstraction of ports and are the commonly used way of inter-process communication outside of the kernel. While handles of regular ports are retrieved from [[SVC]](svcConnectToPort), service handles are retrieved through the port ''srv:'' ("service manager").
Services are an abstraction of ports and are the commonly used way of inter-process communication outside of the kernel. While handles of regular ports are retrieved from [[SVC]](svcConnectToPort), service handles are retrieved through the port ''srv:'' ("service manager").
+
+
When a service is registered, [[SVC|svcCreatePort]] is used without a port-name. This means that the port is inaccessible via the port SVCs outside of sm-module. See below for getting a session handle for sending commands to services.
Processes with PID less than or equal to the number of NATIVE_FIRM built-in modules (fs, sm, pm, pxi, ldr) have access to all services.
Processes with PID less than or equal to the number of NATIVE_FIRM built-in modules (fs, sm, pm, pxi, ldr) have access to all services.
Line 22:
Line 24:
|-
|-
| 0x00050100
| 0x00050100
−
| GetServiceSessionHandle(8-byte servicename, u32 strlen, u32 flags). Flags bit0: if not set, return port-handle instead of session-handle when session-handle unavailable (max sessions/timeout?).
+
| GetServiceSessionHandle(8-byte servicename, u32 strlen, u32 flags). Flags bit0: if not set, return port-handle instead of session-handle(from [[SVC|svcCreateSessionToPort]]) when session-handle unavailable (max sessions/timeout?).
|-
|-
| 0x000600c2
| 0x000600c2