Difference between revisions of "Services"

From 3dbrew
Jump to navigation Jump to search
Line 1: Line 1:
 
Handles for services are retrieved from the service manager port, "srv:". Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a [[SVC]](svcConnectToPort).
 
Handles for services are retrieved from the service manager port, "srv:". Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a [[SVC]](svcConnectToPort).
  
 
+
==Service Manager Port "srv:"==
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 11: Line 11:
 
|-
 
|-
 
| 0x00020000
 
| 0x00020000
| GetProcSemaphore
+
| GetProcSemaphore (the handle from this gets signaled when notifications for this process gets triggered)
 
|-
 
|-
 
| 0x00030100
 
| 0x00030100
Line 21: Line 21:
 
| 0x00050100
 
| 0x00050100
 
| GetServiceHandle (same input as RegisterService)
 
| GetServiceHandle (same input as RegisterService)
 +
|-
 +
| 0x00090040
 +
| This enables the specified notificationID for the current process.
 +
|-
 +
| 0x000B0000
 +
| This returns the notificationID which was triggered, if any(see GetProcSemaphore).
 +
|}
 +
 +
==Notifications==
 +
{| class="wikitable" border="1"
 +
|-
 +
!  ID
 +
!  Description
 +
|-
 +
| 0x100
 +
| This indicates that all processes must terminate: power-off, reboot, or [[FIRM]]-launch.
 +
|-
 +
| 0x204
 +
| This indicates that the HOME button was pressed.
 
|}
 
|}

Revision as of 21:21, 1 April 2014

Handles for services are retrieved from the service manager port, "srv:". Services are an abstraction of ports, they operate the same way except regular ports can have their handles retrieved directly from a SVC(svcConnectToPort).

Service Manager Port "srv:"

Command Header Description
0x00010002 Initialize
0x00020000 GetProcSemaphore (the handle from this gets signaled when notifications for this process gets triggered)
0x00030100 RegisterService (8-byte servicename, u32 strlen, u32 flags?)
0x000400C0 UnregisterService (8-byte servicename, u32 strlen)
0x00050100 GetServiceHandle (same input as RegisterService)
0x00090040 This enables the specified notificationID for the current process.
0x000B0000 This returns the notificationID which was triggered, if any(see GetProcSemaphore).

Notifications

ID Description
0x100 This indicates that all processes must terminate: power-off, reboot, or FIRM-launch.
0x204 This indicates that the HOME button was pressed.