Changes

Jump to navigation Jump to search
15,844 bytes added ,  02:01, 15 April 2020
Line 2: Line 2:     
= Concept =
 
= Concept =
   
psc:m allows a process to register a module that depends on power management in some way. A client calls GetPmModule to receive an IPmModule (Power Managed Module), and then calls IPmModule->Initialize(module_id, module_dependency_list) where module_id is the ModuleId enum member for the client, and the dependency list is an array of module IDs for the modules that this depends on. Initialize() returns an event handle that the client can wait on to be notified of a power state change.
 
psc:m allows a process to register a module that depends on power management in some way. A client calls GetPmModule to receive an IPmModule (Power Managed Module), and then calls IPmModule->Initialize(module_id, module_dependency_list) where module_id is the ModuleId enum member for the client, and the dependency list is an array of module IDs for the modules that this depends on. Initialize() returns an event handle that the client can wait on to be notified of a power state change.
   Line 44: Line 43:  
| 4 || Cancel
 
| 4 || Cancel
 
|-
 
|-
| 5 || PrintModuleInformation
+
| 5 || [1.0.0-6.2.0] PrintModuleInformation
 
|-
 
|-
 
| 6 || GetModuleInformation
 
| 6 || GetModuleInformation
 +
|-
 +
| 10 || [9.0.0+]
 +
|-
 +
| 11 || [9.0.0+]
 
|}
 
|}
   Line 74: Line 77:  
| 3 || Finalize
 
| 3 || Finalize
 
|-
 
|-
| 4 || [6.0.0+] AcknowledgeEx
+
| 4 || [5.1.0+] AcknowledgeEx
 +
|}
 +
 
 +
= psc:l =
 +
This was added with [9.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 ||
 +
|-
 +
| 1 ||
 +
|-
 +
| 2 ||
 +
|-
 +
| 3 ||
 +
|-
 +
| 4 ||
 
|}
 
|}
    
= srepo:u, srepo:a =
 
= srepo:u, srepo:a =
 
These are "nn::srepo::detail::ipc::ISrepoService".
 
These are "nn::srepo::detail::ipc::ISrepoService".
 +
 +
These were added with [5.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 123: Line 146:  
|-
 
|-
 
| 11801 || [6.0.0+]
 
| 11801 || [6.0.0+]
 +
|-
 +
| 11810 || [8.0.0+]
 +
|-
 +
| 11811 || [8.0.0+]
 +
|-
 +
| 12000 || [8.0.0+]
 +
|-
 +
| 12001 || [8.0.0+]
 +
|-
 +
| 13000 || [8.0.0+] [[#OpenSyslogLogger]]
 +
|-
 +
| 13001 || [8.0.0+]
 
|-
 
|-
 
| 20100 ||
 
| 20100 ||
Line 133: Line 168:  
|-
 
|-
 
| 20401 || [6.0.0+]
 
| 20401 || [6.0.0+]
 +
|-
 +
| 20402 || [7.0.0+]
 +
|-
 +
| 20500 || [8.0.0+]
 +
|}
 +
 +
[10.0.0+] Cmd20100 now takes an additional 0x10-bytes of input.
 +
 +
== OpenSyslogLogger ==
 +
Takes a type-0x5 input buffer, no output.
 +
 +
[9.0.0+] No input, returns a total of 0xC-bytes of output, an [[#ISyslogLogger]], and a handle.
 +
 +
== ISyslogLogger ==
 +
This is "nn::srepo::detail::ipc::ISyslogLogger".
 +
 +
This was added with [9.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 ||
 +
|}
 +
 +
Cmd0: no input, returns a total of 8-bytes of output.
 +
 +
= ovln:rcv =
 +
This is "nn::ovln::IReceiverService".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || OpenReceiver
 +
|}
 +
 +
== IReceiver ==
 +
This is "nn::ovln::IReceiver".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || AddSource
 +
|-
 +
| 1 || RemoveSource
 +
|-
 +
| 2 || GetReceiveEventHandle
 +
|-
 +
| 3 || Receive
 +
|-
 +
| 4 || ReceiveWithTick
 +
|}
 +
 +
= ovln:snd =
 +
This is "nn::ovln::ISenderService".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || OpenSender
 +
|}
 +
 +
== ISender ==
 +
This is "nn::ovln::ISender".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || Send
 +
|-
 +
| 1 || GetUnreceivedMessageCount
 +
|}
 +
 +
= time:m =
 +
This is "nn::timesrv::detail::service::ITimeServiceManager".
 +
 +
This was added with [9.0.0+].
 +
 +
This service has max_sessions 1.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#GetStaticServiceAsUser]]
 +
|-
 +
| 5 || [[#GetStaticServiceAsAdmin]]
 +
|-
 +
| 6 || [[#GetStaticServiceAsRepair]]
 +
|-
 +
| 9 || [[#GetStaticServiceAsServiceManager]]
 +
|-
 +
| 10 || [[#SetupStandardSteadyClockCore]]
 +
|-
 +
| 11 || [[#SetupStandardLocalSystemClockCore]]
 +
|-
 +
| 12 || [[#SetupStandardNetworkSystemClockCore]]
 +
|-
 +
| 13 || [[#SetupStandardUserSystemClockCore]]
 +
|-
 +
| 14 || [[#SetupTimeZoneServiceCore]]
 +
|-
 +
| 15 || [[#SetupEphemeralNetworkSystemClockCore]]
 +
|-
 +
| 50 || GetStandardLocalClockOperationEvent
 +
|-
 +
| 51 || GetStandardNetworkClockOperationEventForServiceManager
 +
|-
 +
| 52 || GetEphemeralNetworkClockOperationEventForServiceManager
 +
|-
 +
| 60 || GetStandardUserSystemClockAutomaticCorrectionUpdatedEvent
 +
|-
 +
| 100 || [[#SetStandardSteadyClockBaseTime]]
 +
|-
 +
| 200 || GetClosestAlarmUpdatedEvent
 +
|-
 +
| 201 || [[#CheckAndSignalAlarms]]
 +
|-
 +
| 202 || GetClosestAlarmInfo
 +
|}
 +
 +
== GetStaticServiceAsUser ==
 +
Returns an [[#IStaticService]].
 +
 +
This is used for the wrapped instance of "time:u" in [[Glue_services#time:a.2C_time:r.2C_time:u|glue]].
 +
 +
== GetStaticServiceAsAdmin ==
 +
Returns an [[#IStaticService]].
 +
 +
This is used for the wrapped instance of "time:a" in [[Glue_services#time:a.2C_time:r.2C_time:u|glue]].
 +
 +
== GetStaticServiceAsRepair ==
 +
Returns an [[#IStaticService]].
 +
 +
This is used for the wrapped instance of "time:r" in [[Glue_services#time:a.2C_time:r.2C_time:u|glue]].
 +
 +
== GetStaticServiceAsServiceManager ==
 +
Returns an [[#IStaticService]].
 +
 +
This is used as a wrapper for "time:sm".
 +
 +
== SetupStandardSteadyClockCore ==
 +
Takes an input rtc_clock_source UUID, an input rtc_offset s64, an input internal_offset s64, an input test_offset s64 and a is_rtc_reset_detected bool. No output.
 +
 +
== SetupStandardLocalSystemClockCore ==
 +
Takes an input [[#SystemClockContext]] and an input [[#PosixTime]]. No output.
 +
 +
== SetupStandardNetworkSystemClockCore ==
 +
Takes an input [[#SystemClockContext]] and an input sufficient_accuracy_minutes u64. No output.
 +
 +
== SetupStandardUserSystemClockCore ==
 +
Takes an input automatic_correction bool and an input [[#SteadyClockTimePoint]]. No output.
 +
 +
== SetupTimeZoneServiceCore ==
 +
Takes an input [[#LocationName]], an input [[#SteadyClockTimePoint]], an input total_location_name_count u32, an input [[#TimeZoneRuleVersion]] and a type-0x21 input buffer containing a TimeZoneBinary. No output.
 +
 +
== SetupEphemeralNetworkSystemClockCore ==
 +
No input, no output.
 +
 +
== SetStandardSteadyClockBaseTime ==
 +
An input rtc_offset s64, no output.
 +
 +
== CheckAndSignalAlarms ==
 +
No input, no output.
 +
 +
= time:al =
 +
This is "nn::timesrv::detail::service::IAlarmService".
 +
 +
This was added with [9.0.0+].
 +
 +
This has max_sessions 4.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || [[#CreateWakeupAlarm]]
 +
|-
 +
| 1 || [[#CreateBackgroundTaskAlarm]]
 +
|}
 +
 +
== CreateWakeupAlarm ==
 +
No input. Returns an [[#ISteadyClockAlarm]].
 +
 +
== CreateBackgroundTaskAlarm ==
 +
No input. Returns an [[#ISteadyClockAlarm]].
 +
 +
== ISteadyClockAlarm ==
 +
This is "nn::timesrv::detail::service::ISteadyClockAlarm".
 +
 +
This was added with [9.0.0+].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetAlarmEvent
 +
|-
 +
| 1 || Enable
 +
|-
 +
| 2 || Disable
 +
|-
 +
| 3 || IsEnabled
 +
|-
 +
| 10 || [[#CreateWakeLock]]
 +
|-
 +
| 11 || [[#DestroyWakeLock]]
 +
|}
 +
 +
=== CreateWakeLock ===
 +
Opens a session for [[#psc:l|psc:l]] and returns it's interface.
 +
 +
=== DestroyWakeLock ===
 +
Close the session opened by [[#CreateWakeLock]] when the alarm is disabled.
 +
 +
= time:p =
 +
This is "nn::timesrv::detail::service::IPowerStateRequestHandler".
 +
 +
This was added with [9.0.0+].
 +
 +
This service has max_sessions 1.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name
 +
|-
 +
| 0 || GetPowerStateRequestEventReadableHandle
 +
|-
 +
| 1 || GetAndClearPowerStateRequest
 +
|}
 +
 +
= time:su, time:s =
 +
These are "nn::timesrv::detail::service::IStaticService".
 +
 +
These were added with [9.0.0+].
 +
 +
The time:su service has max_sessions 6, and time:s has max_sessions 4.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetStandardUserSystemClock || Returns an [[#ISystemClock]].
 +
|-
 +
| 1 || GetStandardNetworkSystemClock || Returns an [[#ISystemClock]].
 +
|-
 +
| 2 || GetStandardSteadyClock || Returns an [[#ISteadyClock]].
 +
|-
 +
| 3 || GetTimeZoneService || Returns an [[#ITimeZoneService]].
 +
|-
 +
| 4 || GetStandardLocalSystemClock || Returns an [[#ISystemClock]].
 +
|-
 +
| 5 || [4.0.0+] GetEphemeralNetworkSystemClock || Returns an [[#ISystemClock]].
 +
|-
 +
| 20 || [6.0.0+] GetSharedMemoryNativeHandle ||
 +
|-
 +
| 30 || [6.0.0-8.1.0] GetStandardNetworkClockOperationEventReadableHandle ||
 +
|-
 +
| 31 || [6.0.0-8.1.0] GetEphemeralNetworkClockOperationEventReadableHandle ||
 +
|-
 +
| 50 || [4.0.0+] SetStandardSteadyClockInternalOffset ||
 +
|-
 +
| 51 || [9.0.0+] GetStandardSteadyClockRtcValue ||
 +
|-
 +
| 100 || IsStandardUserSystemClockAutomaticCorrectionEnabled ||
 +
|-
 +
| 101 || SetStandardUserSystemClockAutomaticCorrectionEnabled ||
 +
|-
 +
| 102 || [5.0.0+] GetStandardUserSystemClockInitialYear ||
 +
|-
 +
| 200 || [3.0.0+] IsStandardNetworkSystemClockAccuracySufficient ||
 +
|-
 +
| 201 || [6.0.0+] GetStandardUserSystemClockAutomaticCorrectionUpdatedTime ||
 +
|-
 +
| 300 || [4.0.0+] CalculateMonotonicSystemClockBaseTimePoint ||
 +
|-
 +
| 400 || [4.0.0+] GetClockSnapshot ||
 +
|-
 +
| 401 || [4.0.0+] GetClockSnapshotFromSystemClockContext ||
 +
|-
 +
| 500 || [4.0.0+] CalculateStandardUserSystemClockDifferenceByUser ||
 +
|-
 +
| 501 || [4.0.0+] CalculateSpanBetween ||
 +
|}
 +
 +
== ISteadyClock ==
 +
This is "nn::timesrv::detail::service::ISteadyClock".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetCurrentTimePoint || No input, returns an output [[#SteadyClockTimePoint]].
 +
|-
 +
| 2 || GetTestOffset || No input, returns an output [[#TimeSpanType]].
 +
|-
 +
| 3 || SetTestOffset || Takes an input [[#TimeSpanType]], no output.
 +
|-
 +
| 100 || [2.0.0+] GetRtcValue || No input, returns an output s64.
 +
|-
 +
| 101 || [2.0.0+] IsRtcResetDetected || No input, returns an output u8 bool.
 +
|-
 +
| 102 || [2.0.0+] GetSetupResultValue || No input, returns an output u32.
 +
|-
 +
| 200 || [3.0.0+] GetInternalOffset || No input, returns an output [[#TimeSpanType]].
 +
|-
 +
| 201 || [3.0.0-3.0.2] SetInternalOffset || Takes an input [[#TimeSpanType]], no output.
 +
|}
 +
 +
=== SteadyClockTimePoint ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8|| A u64 representing a point in time.
 +
|-
 +
| 0x8 || 0x10 || An ID representing the clock source.
 +
|}
 +
 +
This is a 0x18-byte struct.
 +
 +
=== TimeSpanType ===
 +
This is an u64.
 +
 +
== ISystemClock ==
 +
This is "nn::timesrv::detail::service::ISystemClock".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetCurrentTime || Returns an output [[#PosixTime]].
 +
|-
 +
| 1 || SetCurrentTime || Takes an input [[#PosixTime]].
 +
|-
 +
| 2 || GetSystemClockContext || Returns an output [[#SystemClockContext]].
 +
|-
 +
| 3 || SetSystemClockContext || Takes an input [[#SystemClockContext]].
 +
|-
 +
| 4 || [9.0.0+] GetOperationEventReadableHandle ||
 +
|}
 +
 +
=== PosixTime ===
 +
This is an s64 for UTC POSIX time.
 +
 +
=== SystemClockContext ===
 +
This is an 0x20-byte struct.
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x8|| a [[#PosixTime]] representing the system clock epoch.
 +
|-
 +
| 0x8 || 0x18 || a [[#SteadyClockTimePoint]]
 +
|}
 +
 +
== ITimeZoneService ==
 +
This is "nn::timesrv::detail::service::ITimeZoneService".
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Cmd || Name || Notes
 +
|-
 +
| 0 || GetDeviceLocationName || No input, returns an output [[#LocationName]].
 +
|-
 +
| 1 || SetDeviceLocationName || Takes an input [[#LocationName]], no output.
 +
|-
 +
| 2 || GetTotalLocationNameCount || No input, returns an output s32.
 +
|-
 +
| 3 || LoadLocationNameList ||
 +
|-
 +
| 4 || LoadTimeZoneRule || Takes an input [[#LocationName]] and a type-0x16 output buffer for [[#TimeZoneRule]], no output.
 +
|-
 +
| 5 || [2.0.0+] GetTimeZoneRuleVersion ||  No input, returns an output [[#TimeZoneRuleVersion]].
 +
|-
 +
| 6 || [5.0.0+] GetDeviceLocationNameAndUpdatedTime ||
 +
|-
 +
| 7 || [9.0.0+] SetDeviceLocationNameWithTimeZoneRule ||
 +
|-
 +
| 8 || [9.0.0+] ParseTimeZoneBinary ||
 +
|-
 +
| 20 || [9.0.0+] GetDeviceLocationNameOperationEventReadableHandle ||
 +
|-
 +
| 100 || ToCalendarTime || Takes an input [[#PosixTime]] and a type-0x15 input buffer for [[#TimeZoneRule]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].
 +
|-
 +
| 101 || ToCalendarTimeWithMyRule || Takes an input [[#PosixTime]], returns an output [[#CalendarTime]] and [[#CalendarAdditionalInfo]].
 +
|-
 +
| 201 || ToPosixTime || Takes an input [[#CalendarTime]], a type-0x15 input buffer for [[#TimeZoneRule]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.
 +
|-
 +
| 202 || ToPosixTimeWithMyRule || Takes an input [[#CalendarTime]], an type-0xA output buffer for [[#PosixTime]] array, and returns an output s32.
 +
|}
 +
 +
=== LoadLocationNameList ===
 +
Takes an input s32 LocationName_index and a type-0x6 output buffer for [[#LocationName]], returns an output s32 for total output entries.
 +
 +
=== LocationName ===
 +
This contains a TimeZone location string with a max size of 0x24 bytes.
 +
 +
=== TimeZoneRule ===
 +
This is an 0x4000-byte struct. Official sw uses fixed-size 0x4000 for the buffer size with the above commands.
 +
 +
This is loaded from the [[Title_list|TimeZoneBinary]] title with the specified LocationName under the zoneinfo/ directory, the content is then converted into this TimeZoneRule structure.
 +
 +
The files contained under zoneinfo/ directory are Tzif2 files without Tzif1 header and data at the begining of them (see [https://tools.ietf.org/html/rfc8536 RFC8536] for more information).
 +
 +
The conversion of a Tzif2 file to a TimeZoneRule structure is based on [https://github.com/eggert/tz/blob/master/localtime.c tz database code] with some custom modifications (Leap seconds aren't handled, no usage of "posixrules" and Tzif1 support stripped out).
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || timecnt
 +
|-
 +
| 0x4 || 0x4 || typecnt
 +
|-
 +
| 0x8 || 0x4 || charcnt
 +
|-
 +
| 0xC || 0x1 || goback
 +
|-
 +
| 0xD || 0x1 || goahead
 +
|-
 +
| 0xE || 0x2 || Padding
 +
|-
 +
| 0x10 || 0x8 * 1000 || ats
 +
|-
 +
| 0x1f50 || 0x1 * 1000 || types
 +
|-
 +
| 0x2338 || 0x10 * 128 || ttis (time type information), struct ttinfo[1000]
 +
|-
 +
| 0x2b38 || 0x1 * 512 || chars
 +
|-
 +
| 0x2d38 || 0x4 || defaulttype
 +
|-
 +
| 0x2d3c || 0x12c4 || Reserved / Unused
 +
|}
 +
 +
=== ttinfo ===
 +
This is an 0x10-byte struct.
 +
Represent a Time Type Information used in [[#TimeZoneRule]].
 +
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || tt_gmtoff
 +
|-
 +
| 0x4 || 0x1 || tt_isdst
 +
|-
 +
| 0x5 || 0x3 || Padding
 +
|-
 +
| 0x8 || 0x4 || tt_abbrind
 +
|-
 +
| 0xC || 0x1 || tt_ttisstd
 +
|-
 +
| 0xD || 0x1 || tt_ttisgmt
 +
|-
 +
| 0xE || 0x2 || Padding
 +
|}
 +
 +
=== TimeZoneRuleVersion ===
 +
This is an u128.
 +
 +
=== CalendarTime ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x2 || Year
 +
|-
 +
| 0x2 || 0x1 || Month
 +
|-
 +
| 0x3 || 0x1 || Day
 +
|-
 +
| 0x4 || 0x1 || Hour
 +
|-
 +
| 0x5 || 0x1 || Minute
 +
|-
 +
| 0x6 || 0x1 || Second
 +
|-
 +
| 0x7 || 0x1 || Padding / unknown?
 +
|}
 +
 +
This is an 0x8-byte struct.
 +
 +
=== CalendarAdditionalInfo ===
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset || Size || Description
 +
|-
 +
| 0x0 || 0x4 || 0-based day-of-week.
 +
|-
 +
| 0x4 || 0x4 || 0-based day-of-year.
 +
|-
 +
| 0x8 || 0x8 || Timezone name string.
 +
|-
 +
| 0x10 || 0x4 || 0 = no DST, 1 = DST.
 +
|-
 +
| 0x14 || 0x4 || s32 seconds relative to UTC for this timezone.
 
|}
 
|}
   −
= PSC Module IDs =
+
This is an 0x18-byte struct. This stores timezone info.
 +
 
 +
= ins:r =
 +
This is "nn::ins::IReceiverManager".
 +
 
 +
This was added with [9.0.0+].
    
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! ID || Module
+
! Cmd || Name
 
|-
 
|-
| 0x13 || [[PCIe services|PCIe]]
+
| 0 ||
 
|-
 
|-
| 0x1B ||
+
| 1 ||
 +
|}
 +
 
 +
== Cmd0 ==
 +
Takes an input u32 '''InsID'''. Returns an u64.
 +
 
 +
== Cmd1 ==
 +
Takes an input u32 '''InsID''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.
 +
 
 +
= ins:s =
 +
This is "nn::ins::ISenderManager".
 +
 
 +
This was added with [9.0.0+].
 +
 
 +
{| class="wikitable" border="1"
 
|-
 
|-
| 0x1E ||
+
! Cmd || Name
 
|-
 
|-
| 0x29 || [[Log services|nn::psc::PmModuleId_Lm]]
+
| 0 ||
 
|}
 
|}
   −
[[Category:Services]]
+
== Cmd0 ==
 +
Takes an input u32 '''InsID''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.
 +
 
 +
= PmModuleId =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Name || Module
 +
|-
 +
| 0x00 ||
 +
|-
 +
| 0x01 ||
 +
|-
 +
| 0x02 ||
 +
|-
 +
| 0x03 ||
 +
|-
 +
| 0x04 || [[USB_services|Usb]]
 +
|-
 +
| 0x05 || [[Sockets_services|Ethernet]]
 +
|-
 +
| 0x06 || [[PTM_services|Fgm]]
 +
|-
 +
| 0x07 || [[PCV_services|PcvClock]]
 +
|-
 +
| 0x08 || [[PCV_services|PcvVoltage]]
 +
|-
 +
| 0x09 || [[Bus_services|Gpio]]
 +
|-
 +
| 0x0A || [[Bus_services|Pinmux]]
 +
|-
 +
| 0x0B || [[Bus_services|Uart]]
 +
|-
 +
| 0x0C || [[Bus_services|I2c]]
 +
|-
 +
| 0x0D || [[Bus_services|I2cPcv]]
 +
|-
 +
| 0x0E || [[Bus_services|Spi]]
 +
|-
 +
| 0x0F || [[Bus_services|Pwm]]
 +
|-
 +
| 0x10 || [[PTM_services|Psm]]
 +
|-
 +
| 0x11 || [[PTM_services|Tc]]
 +
|-
 +
| 0x12 || [[Applet_Manager_services|Omm]]
 +
|-
 +
| 0x13 || [[PCIe_services|Pcie]]
 +
|-
 +
| 0x14 || [[Backlight_services|Lbl]]
 +
|-
 +
| 0x15 || [[Nvnflinger_services|Display]]
 +
|-
 +
| 0x16 ||
 +
|-
 +
| 0x17 ||
 +
|-
 +
| 0x18 || [[HID_services|Hid]]
 +
|-
 +
| 0x19 || [[WLAN_services|WlanSockets]]
 +
|-
 +
| 0x1A ||
 +
|-
 +
| 0x1B || [[Filesystem_services|Fs]]
 +
|-
 +
| 0x1C || [[Audio_services|Audio]]
 +
|-
 +
| 0x1D ||
 +
|-
 +
| 0x1E || [[TMA_services|TmaHostIo]]
 +
|-
 +
| 0x1F || [[Bluetooth_Driver_services|Bluetooth]]
 +
|-
 +
| 0x20 || [[PCV_services|Bpc]]
 +
|-
 +
| 0x21 || [[PTM_services|Fan]]
 +
|-
 +
| 0x22 || [[PTM_services|Pcm]]
 +
|-
 +
| 0x23 || [[NFC_services|Nfc]]
 +
|-
 +
| 0x24 || [[PTM_services|Apm]]
 +
|-
 +
| 0x25 || [[BTM_services|Btm]]
 +
|-
 +
| 0x26 || [[Network_Interface_services|Nifm]]
 +
|-
 +
| 0x27 || [[Bus_services|GpioLow]]
 +
|-
 +
| 0x28 || [[NPNS_services|Npns]]
 +
|-
 +
| 0x29 || [[Log_services|Lm]]
 +
|-
 +
| 0x2A || [[BCAT_services|Bcat]]
 +
|-
 +
| 0x2B || [[Glue_services|Time]]
 +
|-
 +
| 0x2C || [[Parental_Control_services|Pctl]]
 +
|-
 +
| 0x2D || [[Error_Report_services|Erpt]]
 +
|-
 +
| 0x2E || [[Error_Upload_services|Eupld]]
 +
|-
 +
| 0x2F || [[Friend_services|Friends]]
 +
|-
 +
| 0x30 || [[Glue_services|Bgtc]]
 +
|-
 +
| 0x31 || [[Account_services|Account]]
 +
|-
 +
| 0x32 || [[Bus_services|Sasbus]]
 +
|-
 +
| 0x33 || [[NIM_services|Ntc]]
 +
|-
 +
| 0x34 || [[Applet_Manager_services|Idle]]
 +
|-
 +
| 0x35 || [[Applet_Manager_services|Tcap]]
 +
|-
 +
| 0x36 || [[PTM_services|PsmLow]]
 +
|-
 +
| 0x37 || [[LDN_services|Ndd]]
 +
|-
 +
| 0x38 || [[OLSC_services|Olsc]]
 +
|-
 +
| 0x39 || [[PCV_services|Rtc]]
 +
|-
 +
| 0x3A ||
 +
|-
 +
| 0x3B ||
 +
|-
 +
| 0x3C ||
 +
|-
 +
| 0x3D || [[NS_Services|Ns]]
 +
|-
 +
| 0x3F || [[Applet_Manager_services|NotificationPresenter]]
 +
|-
 +
| 0x65 || [[NV_services|Nvservices]]
 +
|-
 +
| 0x7F || [[Applet_Manager_services|Spsm]]
 +
|}
    
= Power Management States =
 
= Power Management States =
   
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! ID || Name || Description
+
! State || Name || Description
 
|-
 
|-
 
| Awake || 0 || Everything is awake.
 
| Awake || 0 || Everything is awake.
Line 170: Line 863:  
| ReadyShutdown || 5 || Preparing to transition to shutdown.
 
| ReadyShutdown || 5 || Preparing to transition to shutdown.
 
|}
 
|}
 +
 +
[[Category:Services]]

Navigation menu