PSC services: Difference between revisions

No edit summary
 
(21 intermediate revisions by 3 users not shown)
Line 47: Line 47:
| 6 || [[#GetModuleInformation|GetModuleInformation]]
| 6 || [[#GetModuleInformation|GetModuleInformation]]
|-
|-
| 10 || [9.0.0+] [[#AcquireStateLock|AcquireStateLock]]
| 7 || [17.0.0+] SetRandomDelay
|-
|-
| 11 || [9.0.0+] [[#HasStateLock|HasStateLock]]
| 10 || [9.0.0+] [[#GetStateLockUpdateEvent|GetStateLockUpdateEvent]]
|-
| 11 || [9.0.0+] [[#IsStateLocked|IsStateLocked]]
|}
|}


Line 73: Line 75:
Takes two type-0x6 output buffers '''DependencyInformationBefore''' and '''DependencyInformationAfter'''. Returns an output [[#PmModuleTransitionInformation]] and two output u32s '''DependencyInformationBeforeCount''' and '''DependencyInformationAfterCount'''.
Takes two type-0x6 output buffers '''DependencyInformationBefore''' and '''DependencyInformationAfter'''. Returns an output [[#PmModuleTransitionInformation]] and two output u32s '''DependencyInformationBeforeCount''' and '''DependencyInformationAfterCount'''.


== AcquireStateLock ==
== GetStateLockUpdateEvent ==
Unofficial name.
 
No input. Returns an output readable Event handle.
No input. Returns an output readable Event handle.


== HasStateLock ==
== IsStateLocked ==
Unofficial name.
 
Takes an input [[#PmState]]. Returns an output bool.
Takes an input [[#PmState]]. Returns an output bool.


Line 148: Line 146:
| 3 || [[#IsLocked|IsLocked]]
| 3 || [[#IsLocked|IsLocked]]
|-
|-
| 4 || [[#GetLockState|GetLockState]]
| 4 || [[#GetRelatedState|GetRelatedState]]
|}
|}


== Initialize ==
== Initialize ==
Unofficial name.
Takes an input [[#PmState]]. No output.
Takes an input [[#PmState]]. No output.


== Lock ==
== Lock ==
Unofficial name.
No input/output.
No input/output.


== Unlock ==
== Unlock ==
Unofficial name.
No input/output.
No input/output.


== IsLocked ==
== IsLocked ==
Unofficial name.
No input. Returns an output bool.
No input. Returns an output bool.


== GetLockState ==
== GetRelatedState ==
Unofficial name.
 
No input. Returns an output [[#PmState]].
No input. Returns an output [[#PmState]].


Line 211: Line 199:
| 11006 || [11.0.0+] [[#NotifyUserOpenedWithApplicationId]]
| 11006 || [11.0.0+] [[#NotifyUserOpenedWithApplicationId]]
|-
|-
| 11100 || [6.0.0+] NotifyCompletedNetworkRequestChanged
| 11100 || [6.0.0+] [[#NotifyCompletedNetworkRequestChanged]]
|-
|-
| 11200 || [6.0.0+] NotifyFriendPresenceChanged
| 11200 || [6.0.0+] [[#NotifyFriendPresenceChanged]]
|-
|-
| 11300 || [6.0.0+] NotifyNotificationConnectivityChanged
| 11300 || [6.0.0+] [[#NotifyNotificationConnectivityChanged]]
|-
|-
| 11400 || [6.0.0+] NotifyDeviceOperationModeChanged
| 11400 || [6.0.0+] [[#NotifyDeviceOperationModeChanged]]
|-
|-
| 11500 || [6.0.0+] NotifySystemPowerStateChanged
| 11500 || [6.0.0+] [[#NotifySystemPowerStateChanged]]
|-
|-
| 11600 || [6.0.0+] NotifyAppletLaunched
| 11600 || [6.0.0+] [[#NotifyAppletLaunched]]
|-
|-
| 11601 || [6.0.0+] NotifyAppletExited
| 11601 || [6.0.0+] [[#NotifyAppletExited]]
|-
|-
| 11602 || [6.0.0+] NotifyForegroundAppletChanged
| 11602 || [6.0.0+] [[#NotifyForegroundAppletChanged]]
|-
|-
| 11700 || [6.0.0+] NotifyControllerCountChanged
| 11700 || [6.0.0+] [[#NotifyControllerCountChanged]]
|-
|-
| 11800 || [6.0.0+] NotifyAudioInStarted
| 11800 || [6.0.0+] [[#NotifyAudioInStarted]]
|-
|-
| 11801 || [6.0.0+] NotifyAudioInStopped
| 11801 || [6.0.0+] [[#NotifyAudioInStopped]]
|-
|-
| 11810 || [8.0.0+] NotifyLaunchApplicationStorage
| 11810 || [8.0.0+] [[#NotifyLaunchApplicationStorage]]
|-
|-
| 11811 || [8.0.0+] NotifyApplicationRightsInfo
| 11811 || [8.0.0+] [[#NotifyApplicationRightsInfo]]
|-
|-
| 12000 || [8.0.0+] [[#RegisterWatchdog]]
| 12000 || [8.0.0+] [[#RegisterWatchdog]]
|-
|-
| 12001 || [8.0.0+] [[#UnregisterWatchdog]]
| 12001 || [8.0.0+] [[#UnregisterWatchdog]]
|-
| 12010 || [20.0.0+]
|-
|-
| 13000 || [8.0.0+] [[#GetSyslogLogger]]
| 13000 || [8.0.0+] [[#GetSyslogLogger]]
|-
|-
| 13001 || [8.0.0+] [[#SaveSyslogReport]]
| 13001 || [8.0.0-19.0.1] [[#SaveSyslogReport]]
|-
| 13002 || [19.0.0+]
|-
| 13003 || [20.0.0+]
|-
| 13004 || [20.0.0+]  
|-
|-
| 20100 || [[#PopReport]]
| 20100 || [[#PopReport]]
Line 259: Line 255:
| 20500 || [8.0.0+] [[#GetWatchdogStatistics]]
| 20500 || [8.0.0+] [[#GetWatchdogStatistics]]
|-
|-
| 20600 || [15.0.0+] NotifyForegroundTransmissionResult
| 20600 || [15.0.0+] [[#NotifyForegroundTransmissionResult]]
|}
|}
[20.0.0+] Cmd13002 now takes a total of 8-bytes of input.


== SaveReport ==
== SaveReport ==
Takes a type-0x9 input buffer containing the [[#EventId]], an input u64 '''ApplicationId''' and a type-0x5 input buffer containing the [[#SystemReport]]. No output.
Takes a type-0x9 input buffer containing the [[#EventId]], an input u64 '''ApplicationId''' and a type-0x5 input buffer containing the [[#SystemReport]]. No output.
[21.0.0+] Now takes an additional 8-bytes of input.


<code>nn::srepo::detail::VerifyEventId</code> is then used with the [[#EventId]], throwing error on failure.
<code>nn::srepo::detail::VerifyEventId</code> is then used with the [[#EventId]], throwing error on failure.
Line 273: Line 273:
== SaveReportWithUser ==
== SaveReportWithUser ==
Takes a type-0x9 input buffer containing the [[#EventId]], an input u64 '''ApplicationId''', a type-0x5 input buffer containing the [[#SystemReport]] and an input [[Account_services#Uid|Uid]]. No output.
Takes a type-0x9 input buffer containing the [[#EventId]], an input u64 '''ApplicationId''', a type-0x5 input buffer containing the [[#SystemReport]] and an input [[Account_services#Uid|Uid]]. No output.
[21.0.0+] Now takes an additional 8-bytes of input.


Same as [[#SaveReport]] except instead of calling the processing func with Uid=all-zero, the input Uid is passed instead (which must be non-zero).
Same as [[#SaveReport]] except instead of calling the processing func with Uid=all-zero, the input Uid is passed instead (which must be non-zero).
Line 319: Line 321:
== NotifyUserOpenedWithApplicationId ==
== NotifyUserOpenedWithApplicationId ==
Takes an input [[Account_services#Uid|Uid]] and an input u64 '''ApplicationId'''. No output.
Takes an input [[Account_services#Uid|Uid]] and an input u64 '''ApplicationId'''. No output.
== NotifyCompletedNetworkRequestChanged ==
Takes an input s8 and an input bool. No output.
== NotifyFriendPresenceChanged ==
Takes an input [[Account_services#Uid|Uid]] and an input s8 (padded to u64). No output.
== NotifyNotificationConnectivityChanged ==
Takes an input s8. No output.
== NotifyDeviceOperationModeChanged ==
Takes an input s8. No output.
== NotifySystemPowerStateChanged ==
Takes an input s8. No output.
== NotifyAppletLaunched ==
Takes an input [[#SfAppletIdentityInfo]]. No output.
== NotifyAppletExited ==
Takes an input [[#SfAppletIdentityInfo]]. No output.
== NotifyForegroundAppletChanged ==
Takes an input [[#SfAppletIdentityInfo]]. No output.
== NotifyControllerCountChanged ==
Takes three input s8s. No output.
== NotifyAudioInStarted ==
Takes a type-0x5 input buffer and an input u64. No output.
== NotifyAudioInStopped ==
Takes a type-0x5 input buffer and an input u64. No output.
== NotifyLaunchApplicationStorage ==
Takes an input u64 '''ApplicationId''' and an input u8 (padded to u64). No output.
== NotifyApplicationRightsInfo ==
Takes an input u64 '''ApplicationId''' and an input u32 (padded to u64). No output.
If the input u32 is 0 or none of the bits are recognized, this just returns 0. Otherwise the lowest set bit is used to determine a value to write to stack (the ApplicationId is also written afterwards), for passing to a func.
{| class="wikitable" border="1"
|-
! Bit || Write value
|-
| 0 || 0x2
|-
| 3 || 0x3
|-
| 4 || 0x4
|-
| 5 || [20.1.0+] 0x5
|-
| 6 || [20.1.0+] 0x6
|}


== RegisterWatchdog ==
== RegisterWatchdog ==
Line 506: Line 564:
|-
|-
| 15 || [[#SetupEphemeralNetworkSystemClockCore]]
| 15 || [[#SetupEphemeralNetworkSystemClockCore]]
|-
| 20 || [19.0.0+] GetStandardSteadyClockCurrentTimePoint
|-
| 21 || [22.0.0+]
|-
|-
| 50 || GetStandardLocalClockOperationEvent
| 50 || GetStandardLocalClockOperationEvent
Line 706: Line 768:
|-
|-
| 501 || [4.0.0+] CalculateSpanBetween ||  
| 501 || [4.0.0+] CalculateSpanBetween ||  
|-
| 600 || [19.0.0+] GetInitialLaunchEndTime ||
|-
| 601 || [22.0.0+] ||
|}
|}


Line 935: Line 1,001:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#AddSource]]
| 0 || [[#GetInputSourceState]]
|-
|-
| 1 || [[#Receive]]
| 1 || [[#GetTriggerTargetEvent]]
|}
|}


== AddSource ==
== GetInputSourceState ==
Unofficial name.
 
Takes an input u32 '''SourceId'''. Returns an output u64 '''EventTime'''.
Takes an input u32 '''SourceId'''. Returns an output u64 '''EventTime'''.


== Receive ==
== GetTriggerTargetEvent ==
Unofficial name.
 
Takes an input u32 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.
Takes an input u32 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.


Line 959: Line 1,021:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#Send]]
| 0 || [[#GetNotifyEvent]]
|}
|}


== Send ==
== GetNotifyEvent ==
Unofficial name.
 
Takes an input u32 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.
Takes an input u32 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled.


Line 976: Line 1,036:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || GetBatteryPercentage
|-
|-
| 1 ||
| 1 || GetChargerType
|-
|-
| 2 || [[#OpenChargeSession]]
| 2 || [[#OpenChargeSession]]
|-
|-
| 3 ||
| 3 || GetRawBatteryPercentage
|-
|-
| 4 ||
| 4 || GetBatteryVoltageLevel
|-
|-
| 5 || [[#OpenThermalSession]]
| 5 || [[#OpenThermalSession]]
|-
|-
| 6 ||
| 6 || GetAbnormalTemperatureSet
|-
|-
| 7 || [[#OpenClockSession]]
| 7 || [[#OpenClockSession]]
|-
|-
| 8 ||
| 8 || GetClockRate
|-
| 9 || [17.0.0+] [[#OpenBridgeSession]]
|-
| 10 || [17.0.0+] GetBridgePowerSupply
|-
| 11 || [18.0.0+] [[#OpenVsysVoltageSession]]
|-
| 12 || [18.0.0+] GetIsBatteryEnoughForFullAwake
|-
| 13 || [19.0.0+] GetIsCharging
|-
| 14 || [20.0.0+]
|-
| 15 || [20.0.0+]
|}
|}


Line 1,003: Line 1,077:
== OpenClockSession ==
== OpenClockSession ==
Takes an input u32. Returns an [[#IClockSession]].
Takes an input u32. Returns an [[#IClockSession]].
== OpenBridgeSession ==
No input. Returns an [[#IBridgeSession]].
== OpenVsysVoltageSession ==
No input. Returns an [[#IVsysVoltageSession]].


== IChargeSession ==
== IChargeSession ==
Line 1,011: Line 1,091:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || GetStateChangeEvent
|-
|-
| 1 ||
| 1 || SetStateChangeSet
|}
|}


Line 1,023: Line 1,103:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || GetAbnormalTemperatureEvent
|-
|-
| 1 ||
| 1 || SetAbnormalTemperatureEventMask
|}
|}


Line 1,035: Line 1,115:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || GetStateChangeEvent
|}
 
== IBridgeSession ==
This is "nn::hshl::IBridgeSession".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetStateChangeEvent
|}
 
== IVsysVoltageSession ==
This is "nn::hshl::IVsysVoltageSession".
 
{| class="wikitable" border="1"
|-
! Cmd || Name
|-
| 0 || GetStateChangeEvent
|}
|}


Line 1,047: Line 1,147:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#OpenChargeSetterSession]]
| 0 || [[#OpenChargeSession_2|OpenChargeSession]]
|-
|-
| 1 || [[#OpenThermalSetterSession]]
| 1 || [[#OpenThermalSession_2|OpenThermalSession]]
|-
|-
| 2 ||
| 2 || SetClockRate
|-
| 3 || [17.0.0+] SetBridgePowerSupply
|-
| 4 || [18.0.0+]
|-
| 5 || [18.0.0+]
|}
|}


== OpenChargeSetterSession ==
== OpenChargeSession ==
Takes an input u32. Returns an [[#IChargeSetterSession]].
Takes an input u32. Returns an [[#IChargeSetterSession]].


== OpenThermalSetterSession ==
== OpenThermalSession ==
Takes an input u32. Returns an [[#IThermalSetterSession]].
Takes an input u32. Returns an [[#IThermalSetterSession]].


Line 1,067: Line 1,173:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || SetBatteryPercentage
|-
|-
| 1 ||
| 1 || SetRawBatteryPercentage
|-
|-
| 2 ||
| 2 || SetChargerType
|-
|-
| 3 ||
| 3 || SetBatteryVoltageLevel
|-
| 4 || [18.0.0+]
|-
| 5 || [19.0.0+]
|-
| 6 || [20.0.0+]
|-
| 7 || [20.0.0+]
|}
|}


Line 1,083: Line 1,197:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||
| 0 || SetAbnormalTemperatureSet
|}
|}


Line 1,103: Line 1,217:
| 0x04 || [[USB_services|Usb]]
| 0x04 || [[USB_services|Usb]]
|-
|-
| 0x05 || [[Sockets_services|Eth]]
| 0x05 || [[Ethernet_services|Eth]]
|-
|-
| 0x06 || [[PTM_services|Fgm]]
| 0x06 || [[PTM_services|Fgm]]
Line 1,129: Line 1,243:
| 0x11 || [[PTM_services|Tc]]
| 0x11 || [[PTM_services|Tc]]
|-
|-
| 0x12 || [[Applet_Manager_services|Omm]]
| 0x12 || [[OMM_services|Omm]]
|-
|-
| 0x13 || [[PCIe_services|Pcie]]
| 0x13 || [[PCIe_services|Pcie]]
Line 1,197: Line 1,311:
| 0x33 || [[NIM_services|Ntc]]
| 0x33 || [[NIM_services|Ntc]]
|-
|-
| 0x34 || [[Applet_Manager_services|Idle]]
| 0x34 || [[OMM_services|Idle]]
|-
|-
| 0x35 || [[Applet_Manager_services|Tcap]]
| 0x35 || [[Applet_Manager_services|Tcap]]
Line 1,209: Line 1,323:
| 0x39 || [[PCV_services|Rtc]]
| 0x39 || [[PCV_services|Rtc]]
|-
|-
| 0x3A ||
| 0x3A || [[PCV_services|Regulator]]
|-
|-
| 0x3B ||
| 0x3B || [[PCV_services|Clkrst]]
|-
|-
| 0x3C || [[Bus_services|Led]]
| 0x3C || [[Bus_services|Led]]
|-
|-
| 0x3D || [[NS_Services|Ns]]
| 0x3D || [[NS_Services|NuiShell]]
|-
| 0x3E || [[PTM_services|Powctl]]
|-
| 0x3F || [[OMM_services|NotificationPresenter]]
|-
|-
| 0x3E ||  
| 0x40 || [[Glue_services|Notification]]
|-
|-
| 0x3F || [[Applet_Manager_services|NotificationPresenter]]
| 0x41 || [[Sockets_services|Dhcpc]]
|-
|-
| 0x40 ||  
| 0x42 || [[BCAT_services|Mnpp]]
|-
|-
| 0x41 || [[Sockets_services|DhcpClient]]
| 0x43 || [[OLSC_services|Sprofile]]
|-
|-
| 0x65 || [[NV_services|NvHost]]
| 0x65 || [[NV_services|NvHost]]
|-
|-
| 0x69 || [[NV_services|NvDbgSvc]]
| 0x69 || NvDbgSvc
|-
|-
| 0x6A || Tspm
| 0x6A || Tspm
|-
|-
| 0x7F || [[Applet_Manager_services|Spsm]]
| 0x7F || [[OMM_services|Spsm]]
|}
|}