Changes

273 bytes added ,  18:29, 5 April 2015
no edit summary
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