PSC services: Difference between revisions
(17 intermediate revisions by 3 users not shown) | |||
Line 155: | Line 155: | ||
| 12001 || [8.0.0+] | | 12001 || [8.0.0+] | ||
|- | |- | ||
| 13000 || [8.0.0+] | | 13000 || [8.0.0+] [[#OpenSyslogLogger]] | ||
|- | |- | ||
| 13001 || [8.0.0+] | | 13001 || [8.0.0+] | ||
Line 174: | Line 174: | ||
|} | |} | ||
== | [10.0.0+] Cmd20100 now takes an additional 0x10-bytes of input. | ||
== OpenSyslogLogger == | |||
Takes a type-0x5 input buffer, no output. | Takes a type-0x5 input buffer, no output. | ||
[9.0.0+] No input, returns a total of 0xC-bytes of output, an [[# | [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" | {| class="wikitable" border="1" | ||
Line 241: | Line 245: | ||
|} | |} | ||
= time: | = time:m = | ||
This is "nn::timesrv::detail::service::ITimeServiceManager". | This is "nn::timesrv::detail::service::ITimeServiceManager". | ||
This was added with [9.0.0+]. | This was added with [9.0.0+]. | ||
This service has max_sessions 1. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 250: | Line 256: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || [[#GetStaticServiceAsUser]] | ||
|- | |- | ||
| 5 || | | 5 || [[#GetStaticServiceAsAdmin]] | ||
|- | |- | ||
| 6 || | | 6 || [[#GetStaticServiceAsRepair]] | ||
|- | |- | ||
| 9 || | | 9 || [[#GetStaticServiceAsServiceManager]] | ||
|- | |- | ||
| 10 || | | 10 || [[#SetupStandardSteadyClockCore]] | ||
|- | |- | ||
| 11 || | | 11 || [[#SetupStandardLocalSystemClockCore]] | ||
|- | |- | ||
| 12 || | | 12 || [[#SetupStandardNetworkSystemClockCore]] | ||
|- | |- | ||
| 13 || | | 13 || [[#SetupStandardUserSystemClockCore]] | ||
|- | |- | ||
| 14 || | | 14 || [[#SetupTimeZoneServiceCore]] | ||
|- | |- | ||
| 15 || | | 15 || [[#SetupEphemeralNetworkSystemClockCore]] | ||
|- | |- | ||
| 50 || | | 50 || GetStandardLocalClockOperationEvent | ||
|- | |- | ||
| 51 || | | 51 || GetStandardNetworkClockOperationEventForServiceManager | ||
|- | |- | ||
| 52 || | | 52 || GetEphemeralNetworkClockOperationEventForServiceManager | ||
|- | |- | ||
| 60 || | | 60 || GetStandardUserSystemClockAutomaticCorrectionUpdatedEvent | ||
|- | |- | ||
| 100 || | | 100 || [[#SetStandardSteadyClockBaseTime]] | ||
|- | |- | ||
| 200 || | | 200 || GetClosestAlarmUpdatedEvent | ||
|- | |- | ||
| 201 || | | 201 || [[#CheckAndSignalAlarms]] | ||
|- | |- | ||
| 202 || | | 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 = | = time:al = | ||
Line 291: | Line 341: | ||
This was added with [9.0.0+]. | This was added with [9.0.0+]. | ||
This has max_sessions 4. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 296: | Line 348: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || [[#CreateWakeupAlarm]] | ||
|- | |- | ||
| 1 || | | 1 || [[#CreateBackgroundTaskAlarm]] | ||
|} | |} | ||
== CreateWakeupAlarm == | |||
No input. Returns an [[#ISteadyClockAlarm]]. | |||
== CreateBackgroundTaskAlarm == | |||
No input. Returns an [[#ISteadyClockAlarm]]. | |||
== ISteadyClockAlarm == | == ISteadyClockAlarm == | ||
Line 312: | Line 368: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || [[#GetAlarmEvent]] | ||
|- | |- | ||
| 1 || | | 1 || [[#Enable]] | ||
|- | |- | ||
| 2 || | | 2 || [[#Disable]] | ||
|- | |- | ||
| 3 || | | 3 || [[#IsEnabled]] | ||
|- | |- | ||
| 10 || | | 10 || [[#CreateWakeLock]] | ||
|- | |- | ||
| 11 || | | 11 || [[#DestroyWakeLock]] | ||
|} | |} | ||
=== | === GetAlarmEvent === | ||
No input, returns an output Event handle with EventClearMode=0. | |||
Official sw uses this during object creation. | |||
=== Enable === | |||
Takes an input u64, no output. | |||
The u64 is a nanoseconds value. | |||
=== Disable === | |||
No input/output. | |||
Official sw uses [[#IsEnabled]] first, if the output bool is 0 it will skip using the Disable cmd. | |||
=== IsEnabled === | |||
No input, returns an output bool. | |||
=== CreateWakeLock === | |||
Opens a session for [[#psc:l|psc:l]] and returns it's interface. | Opens a session for [[#psc:l|psc:l]] and returns it's interface. | ||
= time: | === DestroyWakeLock === | ||
No input/output. | |||
Close the session opened by [[#CreateWakeLock]] when the alarm is disabled. | |||
= time:p = | |||
This is "nn::timesrv::detail::service::IPowerStateRequestHandler". | This is "nn::timesrv::detail::service::IPowerStateRequestHandler". | ||
This was added with [9.0.0+]. | This was added with [9.0.0+]. | ||
This service has max_sessions 1. | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 337: | Line 418: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| 0 || | | 0 || GetPowerStateRequestEventReadableHandle | ||
|- | |- | ||
| 1 || | | 1 || GetAndClearPowerStateRequest | ||
|} | |} | ||
= time: | = time:su, time:s = | ||
These are "nn::timesrv::detail::service::IStaticService". | These are "nn::timesrv::detail::service::IStaticService". | ||
These were added with [9.0.0+]. | 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" | {| class="wikitable" border="1" | ||
Line 647: | Line 730: | ||
Takes an input u32 '''InsID''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled. | 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" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! Name || Module | ||
|- | |||
| 0x00 || | |||
|- | |||
| 0x01 || | |||
|- | |||
| 0x02 || | |||
|- | |- | ||
| 0x03 || | | 0x03 || | ||
|- | |- | ||
| 0x04 || [[ | | 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 || | | 0x1B || [[Filesystem_services|Fs]] | ||
|- | |- | ||
| 0x1C || [[ | | 0x1C || [[Audio_services|Audio]] | ||
|- | |- | ||
| | | 0x1D || | ||
|- | |- | ||
| | | 0x1E || [[TMA_services|TmaHostIo]] | ||
|- | |- | ||
| | | 0x1F || [[Bluetooth_Driver_services|Bluetooth]] | ||
|- | |- | ||
| | | 0x20 || [[PCV_services|Bpc]] | ||
|- | |- | ||
| 0x23 || [[ | | 0x21 || [[PTM_services|Fan]] | ||
|- | |||
| 0x22 || [[PTM_services|Pcm]] | |||
|- | |||
| 0x23 || [[NFC_services|Nfc]] | |||
|- | |- | ||
| 0x24 || [[ | | 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]] | ||
|} | |} | ||
Line 734: | Line 869: | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! | ! State || Name || Description | ||
|- | |- | ||
| Awake || 0 || Everything is awake. | | Awake || 0 || Everything is awake. |