Line 33: |
Line 33: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || Initialize | + | | 0 || [[#Initialize|Initialize]] |
| |- | | |- |
− | | 1 || DispatchRequest | + | | 1 || [[#DispatchRequest|DispatchRequest]] |
| |- | | |- |
− | | 2 || GetResult | + | | 2 || [[#GetResult|GetResult]] |
| |- | | |- |
− | | 3 || GetState | + | | 3 || [[#GetState|GetState]] |
| |- | | |- |
− | | 4 || Cancel | + | | 4 || [[#Cancel|Cancel]] |
| |- | | |- |
− | | 5 || [1.0.0-6.2.0] PrintModuleInformation | + | | 5 || [1.0.0-6.2.0] [[#PrintModuleInformation|PrintModuleInformation]] |
| |- | | |- |
− | | 6 || GetModuleInformation | + | | 6 || [[#GetModuleInformation|GetModuleInformation]] |
| |- | | |- |
− | | 10 || [9.0.0+] | + | | 7 || [17.0.0+] SetRandomDelay |
| |- | | |- |
− | | 11 || [9.0.0+] | + | | 10 || [9.0.0+] [[#GetStateLockUpdateEvent|GetStateLockUpdateEvent]] |
| + | |- |
| + | | 11 || [9.0.0+] [[#IsStateLocked|IsStateLocked]] |
| |} | | |} |
| + | |
| + | == Initialize == |
| + | No input. Returns an output readable Event handle. |
| + | |
| + | == DispatchRequest == |
| + | Takes an input [[#PmState]], an input [[#PmTransitionOrder]] and an input u32 '''Flags'''. No output. |
| + | |
| + | == GetResult == |
| + | No input/output. |
| + | |
| + | == GetState == |
| + | No input. Returns an output [[#PmState]]. |
| + | |
| + | == Cancel == |
| + | No input/output. |
| + | |
| + | == PrintModuleInformation == |
| + | No input/output. |
| + | |
| + | == GetModuleInformation == |
| + | Takes two type-0x6 output buffers '''DependencyInformationBefore''' and '''DependencyInformationAfter'''. Returns an output [[#PmModuleTransitionInformation]] and two output u32s '''DependencyInformationBeforeCount''' and '''DependencyInformationAfterCount'''. |
| + | |
| + | == GetStateLockUpdateEvent == |
| + | No input. Returns an output readable Event handle. |
| + | |
| + | == IsStateLocked == |
| + | Takes an input [[#PmState]]. Returns an output bool. |
| | | |
| = psc:m = | | = psc:m = |
Line 57: |
Line 86: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Cmd || Name || Notes | + | ! Cmd || Name |
| |- | | |- |
− | | 0 || GetPmModule || Returns an [[#IPmModule]]. | + | | 0 || [[#GetPmModule|GetPmModule]] |
| |} | | |} |
| + | |
| + | == GetPmModule == |
| + | No input. Returns an [[#IPmModule]]. |
| | | |
| == IPmModule == | | == IPmModule == |
Line 69: |
Line 101: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || Initialize | + | | 0 || [[#Initialize_2|Initialize]] |
| |- | | |- |
− | | 1 || GetRequest | + | | 1 || [[#GetRequest|GetRequest]] |
| |- | | |- |
− | | 2 || Acknowledge | + | | 2 || [[#Acknowledge|Acknowledge]] |
| |- | | |- |
− | | 3 || Finalize | + | | 3 || [[#Finalize|Finalize]] |
| |- | | |- |
− | | 4 || [5.1.0+] AcknowledgeEx | + | | 4 || [5.1.0+] [[#AcknowledgeEx|AcknowledgeEx]] |
| |} | | |} |
| + | |
| + | === Initialize === |
| + | Takes an input [[#PmModuleId]] and a type-0x5 input buffer '''Dependencies'''. Returns an output Event handle. |
| + | |
| + | === GetRequest === |
| + | No input. Returns an output [[#PmState]] and an output u32 '''Flags'''. |
| + | |
| + | === Acknowledge === |
| + | No input/output. |
| + | |
| + | On newer versions this cmd just Aborts - this was replaced by [[#AcknowledgeEx|AcknowledgeEx]]. |
| + | |
| + | === Finalize === |
| + | No input/output. |
| + | |
| + | === AcknowledgeEx === |
| + | Takes an input [[#PmState]]. No output. |
| | | |
| = psc:l = | | = psc:l = |
| + | This is "nn::psc::sf::IPmStateLock". |
| + | |
| This was added with [9.0.0+]. | | This was added with [9.0.0+]. |
| | | |
Line 87: |
Line 138: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || [[#Initialize_3|Initialize]] |
| |- | | |- |
− | | 1 || | + | | 1 || [[#Lock|Lock]] |
| |- | | |- |
− | | 2 || | + | | 2 || [[#Unlock|Unlock]] |
| |- | | |- |
− | | 3 || | + | | 3 || [[#IsLocked|IsLocked]] |
| |- | | |- |
− | | 4 || | + | | 4 || [[#GetRelatedState|GetRelatedState]] |
| |} | | |} |
| + | |
| + | == Initialize == |
| + | Takes an input [[#PmState]]. No output. |
| + | |
| + | == Lock == |
| + | No input/output. |
| + | |
| + | == Unlock == |
| + | No input/output. |
| + | |
| + | == IsLocked == |
| + | No input. Returns an output bool. |
| + | |
| + | == GetRelatedState == |
| + | No input. Returns an output [[#PmState]]. |
| | | |
| = srepo:u, srepo:a = | | = srepo:u, srepo:a = |
Line 102: |
Line 168: |
| | | |
| These were added with [5.0.0+]. | | These were added with [5.0.0+]. |
| + | |
| + | Some commands are only accessible by srepo:a. srepo:a is only accessible by [[BCAT_services|bcat]] on retail. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 107: |
Line 175: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 10100 || | + | | 10100 || [[#SaveReport]] |
| + | |- |
| + | | 10101 || [6.0.0+] [[#SaveReportWithUser]] |
| + | |- |
| + | | 10200 || [6.0.0+] [[#SaveReportForAntiPiracy]] |
| + | |- |
| + | | 10201 || [6.0.0+] [[#SaveReportWithUserForAntiPiracy]] |
| |- | | |- |
− | | 10101 || [6.0.0+] | + | | 10300 || [15.0.0+] [[#SendReportWithUser]] |
| |- | | |- |
− | | 10200 || [6.0.0+] | + | | 11000 || [6.0.0+] [[#NotifyUserList]] |
| |- | | |- |
− | | 10201 || [6.0.0+] | + | | 11001 || [6.0.0+] [[#NotifyUserDeleted]] |
| |- | | |- |
− | | 11000 || [6.0.0+] | + | | 11002 || [6.0.0+] [[#NotifyUserRegistered]] |
| |- | | |- |
− | | 11001 || [6.0.0+] | + | | 11003 || [6.0.0-10.2.0] [[#NotifyUserClosed]] |
| |- | | |- |
− | | 11002 || [6.0.0+] | + | | 11004 || [6.0.0-10.2.0] [[#NotifyUserOpened]] |
| |- | | |- |
− | | 11003 || [6.0.0+] | + | | 11005 || [11.0.0+] [[#NotifyUserClosedWithApplicationId]] |
| |- | | |- |
− | | 11004 || [6.0.0+] | + | | 11006 || [11.0.0+] [[#NotifyUserOpenedWithApplicationId]] |
| |- | | |- |
− | | 11100 || [6.0.0+] | + | | 11100 || [6.0.0+] [[#NotifyCompletedNetworkRequestChanged]] |
| |- | | |- |
− | | 11200 || [6.0.0+] | + | | 11200 || [6.0.0+] [[#NotifyFriendPresenceChanged]] |
| |- | | |- |
− | | 11300 || [6.0.0+] | + | | 11300 || [6.0.0+] [[#NotifyNotificationConnectivityChanged]] |
| |- | | |- |
− | | 11400 || [6.0.0+] | + | | 11400 || [6.0.0+] [[#NotifyDeviceOperationModeChanged]] |
| |- | | |- |
− | | 11500 || [6.0.0+] | + | | 11500 || [6.0.0+] [[#NotifySystemPowerStateChanged]] |
| |- | | |- |
− | | 11600 || [6.0.0+] | + | | 11600 || [6.0.0+] [[#NotifyAppletLaunched]] |
| |- | | |- |
− | | 11601 || [6.0.0+] | + | | 11601 || [6.0.0+] [[#NotifyAppletExited]] |
| |- | | |- |
− | | 11602 || [6.0.0+] | + | | 11602 || [6.0.0+] [[#NotifyForegroundAppletChanged]] |
| |- | | |- |
− | | 11700 || [6.0.0+] | + | | 11700 || [6.0.0+] [[#NotifyControllerCountChanged]] |
| |- | | |- |
− | | 11800 || [6.0.0+] | + | | 11800 || [6.0.0+] [[#NotifyAudioInStarted]] |
| |- | | |- |
− | | 11801 || [6.0.0+] | + | | 11801 || [6.0.0+] [[#NotifyAudioInStopped]] |
| |- | | |- |
− | | 11810 || [8.0.0+] | + | | 11810 || [8.0.0+] [[#NotifyLaunchApplicationStorage]] |
| |- | | |- |
− | | 11811 || [8.0.0+] | + | | 11811 || [8.0.0+] [[#NotifyApplicationRightsInfo]] |
| |- | | |- |
− | | 12000 || [8.0.0+] | + | | 12000 || [8.0.0+] [[#RegisterWatchdog]] |
| |- | | |- |
− | | 12001 || [8.0.0+] | + | | 12001 || [8.0.0+] [[#UnregisterWatchdog]] |
| |- | | |- |
− | | 13000 || [8.0.0+] [[#OpenSyslogLogger]] | + | | 13000 || [8.0.0+] [[#GetSyslogLogger]] |
| |- | | |- |
− | | 13001 || [8.0.0+] | + | | 13001 || [8.0.0+] [[#SaveSyslogReport]] |
| |- | | |- |
− | | 20100 || | + | | 13002 || [19.0.0+] |
| |- | | |- |
− | | 20200 || | + | | 20100 || [[#PopReport]] |
| |- | | |- |
− | | 20300 || [6.0.0+] | + | | 20200 || [[#GetPushEventReadableHandle]] |
| |- | | |- |
− | | 20400 || [6.0.0+] | + | | 20300 || [6.0.0+] [[#Shutdown]] |
| |- | | |- |
− | | 20401 || [6.0.0+] | + | | 20400 || [6.0.0+] [[#PopLostByBufferShortageInfo]] |
| |- | | |- |
− | | 20402 || [7.0.0+] | + | | 20401 || [6.0.0+] [[#GetBufferUsageInfo]] |
| |- | | |- |
− | | 20500 || [8.0.0+] | + | | 20402 || [7.0.0+] [[#SetDurationReportChatteringDetectionThreshold]] |
| + | |- |
| + | | 20500 || [8.0.0+] [[#GetWatchdogStatistics]] |
| + | |- |
| + | | 20600 || [15.0.0+] [[#NotifyForegroundTransmissionResult]] |
| |} | | |} |
| | | |
− | [10.0.0+] Cmd20100 now takes an additional 0x10-bytes of input. | + | == 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. |
| + | |
| + | <code>nn::srepo::detail::VerifyEventId</code> is then used with the [[#EventId]], throwing error on failure. |
| + | |
| + | The [[#SystemReport]] is used with <code>nn::srepo::detail::VerifyReport</code> and with last param = 0x8000, throwing error on failure. |
| + | |
| + | Lastly, the actual processing func is called, returning the Result from here. Besides various cmd input being passed to this etc, this also passes the output from <code>nn::util::GenerateUuid()</code> to this. |
| + | |
| + | == 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. |
| + | |
| + | 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). |
| + | |
| + | == SaveReportForAntiPiracy == |
| + | Takes a type-0x9 input buffer containing the [[#EventId]], an input u64 '''ApplicationId''' and a type-0x5 input buffer containing the [[#SystemReport]]. No output. |
| + | |
| + | Same as [[#SaveReport]] except the [[#SystemReport]] Flags field is 1 instead of 0. |
| + | |
| + | == SaveReportWithUserForAntiPiracy == |
| + | 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. |
| + | |
| + | Same as [[#SaveReportWithUser]] except the [[#SystemReport]] Flags field is 1 instead of 0. |
| + | |
| + | == SendReportWithUser == |
| + | Takes an input [[Account_services#Uid|Uid]], an input u64 '''ApplicationId''', an input bool (padded to u64), two input u32s, a type-0x9 input buffer and a TransferMemory handle. Returns an output [[#IAsyncContext]]. |
| + | |
| + | The mapped TransferMemory buffer is used with <code>nn::srepo::detail::VerifyReport</code>, returning an error on failure. |
| + | |
| + | == NotifyUserList == |
| + | Takes a type-0x9 input buffer containing an array of [[Account_services#Uid|Uid]]. No output. |
| + | |
| + | The Sf handler code (func which calls the serv obj vfunc) will throw an error if the buffer size is >0x8F (that is, >8 entries). |
| + | |
| + | This gets data from a state list, then clears the is_initialized flag for each entry. Lastly when the input array count is non-zero, this loops through the input array writing each entry into the aforementioned state list. If this would run out of space, it would skip writing that entry and still continue - however this shouldn't be possible with the above Sf check. Then this returns 0. |
| + | |
| + | == NotifyUserDeleted == |
| + | Takes an input [[Account_services#Uid|Uid]]. No output. |
| + | |
| + | This calls the same state-reset func as [[#NotifyUserList]], except this passes the input Uid instead. Then this returns 0. |
| + | |
| + | == NotifyUserRegistered == |
| + | Takes an input [[Account_services#Uid|Uid]]. No output. |
| + | |
| + | This calls the same state-writing func as [[#NotifyUserList]], except this passes the input Uid instead. Then this returns 0. |
| + | |
| + | == NotifyUserClosed == |
| + | Takes an input [[Account_services#Uid|Uid]]. No output. |
| + | |
| + | == NotifyUserOpened == |
| + | Takes an input [[Account_services#Uid|Uid]]. No output. |
| + | |
| + | == NotifyUserClosedWithApplicationId == |
| + | Takes an input [[Account_services#Uid|Uid]] and an input u64 '''ApplicationId'''. No output. |
| + | |
| + | == NotifyUserOpenedWithApplicationId == |
| + | 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. |
| + | |
| + | == RegisterWatchdog == |
| + | Takes a type-0x9 input buffer, an input [[#TimeSpanType]] and an input u64. Returns an output [[#WatchdogHandle]]. |
| + | |
| + | == UnregisterWatchdog == |
| + | Takes an input [[#WatchdogHandle]]. No output. |
| + | |
| + | == GetSyslogLogger == |
| + | Takes a type-0x5 input buffer. No output. |
| + | |
| + | [9.0.0+] No input. Returns three output u32s, an [[#ISyslogLogger]] and a SharedMemory handle. |
| + | |
| + | The SharedMemory is mapped with the returned size and with permissions=RW. |
| + | |
| + | == SaveSyslogReport == |
| + | Takes an input u128 "nn::util::Uuid". No output. |
| + | |
| + | == PopReport == |
| + | Takes a type-0xA output buffer and a type-0x6 output buffer. Returns an output [[Account_services#Uid|Uid]]. |
| + | |
| + | [6.0.0+] This now returns an additional output u64 '''ApplicationId''' and an output u128 "nn::util::Uuid". |
| + | |
| + | [10.0.0+] This now returns an additional output u64 and two output u32s. |
| + | |
| + | This is only usable with srepo:a. |
| + | |
| + | == GetPushEventReadableHandle == |
| + | No input. Returns an output Event handle. |
| + | |
| + | This is only usable with srepo:a. |
| + | |
| + | == Shutdown == |
| + | No input/output. |
| + | |
| + | == PopLostByBufferShortageInfo == |
| + | Takes an input u32. Returns two output u64s. |
| + | |
| + | The input u32 must be <=1. This gets data from a state array with the specified index. |
| + | |
| + | == GetBufferUsageInfo == |
| + | No input. Returns two output u64s. |
| + | |
| + | The first u64 is a constant value, while the second u64 is from state. |
| + | |
| + | == SetDurationReportChatteringDetectionThreshold == |
| + | Takes an input [[#TimeSpanType]] and an input u64. No output. |
| + | |
| + | The input s64 must be >=1. The two input fields are written into global state, and various state is also cleared. |
| + | |
| + | == GetWatchdogStatistics == |
| + | No input. Returns an output [[#WatchdogStatistics]]. |
| | | |
− | == OpenSyslogLogger ==
| + | This gets two u64s from global state. |
− | 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. | + | == NotifyForegroundTransmissionResult == |
| + | Takes an input u128 "nn::util::Uuid" and an input [[#ResultHolder]]. No output. |
| + | |
| + | This goes through the global list of [[#IAsyncContext]] looking for an entry with data matching the input struct, then writes the input [[#ResultHolder]] into that [[#IAsyncContext]]. This Result would then be returned by [[#GetResult]] - the Event from [[#GetSystemEvent]] is also signaled. |
| + | |
| + | This always returns 0. |
| | | |
| == ISyslogLogger == | | == ISyslogLogger == |
Line 190: |
Line 418: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || [[#ReallocateBuffer|ReallocateBuffer]] |
| |} | | |} |
| | | |
− | Cmd0: no input, returns a total of 8-bytes of output.
| + | === ReallocateBuffer === |
| + | No input. Returns two output u32s. |
| + | |
| + | This does the same entry-allocation in sharedmem as [[#GetSyslogLogger]]. |
| + | |
| + | == IAsyncContext == |
| + | This is "nn::srepo::detail::ipc::IAsyncContext". |
| + | |
| + | This was added with [15.0.0+]. |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || [[#GetSystemEvent]] |
| + | |- |
| + | | 1 || [[#Cancel]] |
| + | |- |
| + | | 2 || [[#GetResult]] |
| + | |} |
| + | |
| + | === GetSystemEvent === |
| + | No input, returns an output Event. |
| + | |
| + | === Cancel === |
| + | No input/output. |
| + | |
| + | This just returns 0. |
| + | |
| + | === GetResult === |
| + | No input/output. |
| + | |
| + | This checks if the Event from GetSystemEvent was signaled throwing an error if not, otherwise this returns the Result stored in the context object. |
| | | |
| = ovln:rcv = | | = ovln:rcv = |
Line 275: |
Line 535: |
| |- | | |- |
| | 15 || [[#SetupEphemeralNetworkSystemClockCore]] | | | 15 || [[#SetupEphemeralNetworkSystemClockCore]] |
| + | |- |
| + | | 20 || [19.0.0+] GetStandardSteadyClockCurrentTimePoint |
| |- | | |- |
| | 50 || GetStandardLocalClockOperationEvent | | | 50 || GetStandardLocalClockOperationEvent |
Line 514: |
Line 776: |
| | | |
| === TimeSpanType === | | === TimeSpanType === |
− | This is an u64. | + | This is an s64. |
| | | |
| == ISystemClock == | | == ISystemClock == |
Line 704: |
Line 966: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || [[#GetInputSourceState]] |
| |- | | |- |
− | | 1 || | + | | 1 || [[#GetTriggerTargetEvent]] |
| |} | | |} |
| | | |
− | == Cmd0 == | + | == GetInputSourceState == |
− | Takes an input u32 '''InsID'''. Returns an u64. | + | Takes an input u32 '''SourceId'''. Returns an output u64 '''EventTime'''. |
| | | |
− | == Cmd1 == | + | == GetTriggerTargetEvent == |
− | 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 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled. |
| | | |
| = ins:s = | | = ins:s = |
Line 724: |
Line 986: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || [[#GetNotifyEvent]] |
| |} | | |} |
| | | |
− | == Cmd0 == | + | == GetNotifyEvent == |
− | 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 '''SourceId''' and an input u64 (unused, official software passes struct pointer). Returns an output Event handle with autoclear disabled. |
| | | |
| = hshl:sys = | | = hshl:sys = |
| + | This is "nn::hshl::IManager". |
| + | |
| This was added with [11.0.0+]. | | This was added with [11.0.0+]. |
| | | |
Line 737: |
Line 1,001: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || GetBatteryPercentage |
| + | |- |
| + | | 1 || GetChargerType |
| + | |- |
| + | | 2 || [[#OpenChargeSession]] |
| + | |- |
| + | | 3 || GetRawBatteryPercentage |
| + | |- |
| + | | 4 || GetBatteryVoltageLevel |
| + | |- |
| + | | 5 || [[#OpenThermalSession]] |
| + | |- |
| + | | 6 || GetAbnormalTemperatureSet |
| + | |- |
| + | | 7 || [[#OpenClockSession]] |
| + | |- |
| + | | 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 |
| + | |} |
| + | |
| + | == OpenChargeSession == |
| + | No input. Returns an [[#IChargeSession]]. |
| + | |
| + | == OpenThermalSession == |
| + | No input. Returns an [[#IThermalSession]]. |
| + | |
| + | == OpenClockSession == |
| + | Takes an input u32. Returns an [[#IClockSession]]. |
| + | |
| + | == OpenBridgeSession == |
| + | No input. Returns an [[#IBridgeSession]]. |
| + | |
| + | == OpenVsysVoltageSession == |
| + | No input. Returns an [[#IVsysVoltageSession]]. |
| + | |
| + | == IChargeSession == |
| + | This is "nn::hshl::IChargeSession". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || GetStateChangeEvent |
| + | |- |
| + | | 1 || SetStateChangeSet |
| + | |} |
| + | |
| + | == IThermalSession == |
| + | This is "nn::hshl::IThermalSession". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| |- | | |- |
− | | 1 || | + | | 0 || GetAbnormalTemperatureEvent |
| |- | | |- |
− | | 2 || | + | | 1 || SetAbnormalTemperatureEventMask |
| + | |} |
| + | |
| + | == IClockSession == |
| + | This is "nn::hshl::IClockSession". |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 3 ||
| + | ! Cmd || Name |
| |- | | |- |
− | | 4 || | + | | 0 || GetStateChangeEvent |
| + | |} |
| + | |
| + | == IBridgeSession == |
| + | This is "nn::hshl::IBridgeSession". |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 5 ||
| + | ! Cmd || Name |
| |- | | |- |
− | | 6 || | + | | 0 || GetStateChangeEvent |
| + | |} |
| + | |
| + | == IVsysVoltageSession == |
| + | This is "nn::hshl::IVsysVoltageSession". |
| + | |
| + | {| class="wikitable" border="1" |
| |- | | |- |
− | | 7 ||
| + | ! Cmd || Name |
| |- | | |- |
− | | 8 || | + | | 0 || GetStateChangeEvent |
| |} | | |} |
| | | |
| = hshl:set = | | = hshl:set = |
| + | This is "nn::hshl::ISetterManager". |
| + | |
| This was added with [11.0.0+]. | | This was added with [11.0.0+]. |
| | | |
Line 763: |
Line 1,108: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || [[#OpenChargeSession_2|OpenChargeSession]] |
| + | |- |
| + | | 1 || [[#OpenThermalSession_2|OpenThermalSession]] |
| + | |- |
| + | | 2 || SetClockRate |
| + | |- |
| + | | 3 || [17.0.0+] SetBridgePowerSupply |
| + | |- |
| + | | 4 || [18.0.0+] |
| + | |- |
| + | | 5 || [18.0.0+] |
| + | |} |
| + | |
| + | == OpenChargeSession == |
| + | Takes an input u32. Returns an [[#IChargeSetterSession]]. |
| + | |
| + | == OpenThermalSession == |
| + | Takes an input u32. Returns an [[#IThermalSetterSession]]. |
| + | |
| + | == IChargeSetterSession == |
| + | This is "nn::hshl::IChargeSetterSession". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || SetBatteryPercentage |
| + | |- |
| + | | 1 || SetRawBatteryPercentage |
| + | |- |
| + | | 2 || SetChargerType |
| + | |- |
| + | | 3 || SetBatteryVoltageLevel |
| |- | | |- |
− | | 1 || | + | | 4 || [18.0.0+] |
| |- | | |- |
− | | 2 || | + | | 5 || [19.0.0+] |
| + | |} |
| + | |
| + | == IThermalSetterSession == |
| + | This is "nn::hshl::IThermalSetterSession". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Cmd || Name |
| + | |- |
| + | | 0 || SetAbnormalTemperatureSet |
| |} | | |} |
| | | |
Line 787: |
Line 1,174: |
| | 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 813: |
Line 1,200: |
| | 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 881: |
Line 1,268: |
| | 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 893: |
Line 1,280: |
| | 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 || | + | | 0x3E || [[PTM_services|Powctl]] |
| |- | | |- |
− | | 0x3F || [[Applet_Manager_services|NotificationPresenter]] | + | | 0x3F || [[OMM_services|NotificationPresenter]] |
| |- | | |- |
− | | 0x40 || | + | | 0x40 || [[Glue_services|Notification]] |
| |- | | |- |
− | | 0x41 || [[Sockets_services|DhcpClient]] | + | | 0x41 || [[Sockets_services|Dhcpc]] |
| + | |- |
| + | | 0x42 || [[BCAT_services|Mnpp]] |
| + | |- |
| + | | 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]] |
| |} | | |} |
| | | |
Line 925: |
Line 1,316: |
| ! Value || Name || Description | | ! Value || Name || Description |
| |- | | |- |
− | | 0 || Awake || Everything is awake. | + | | 0 || FullAwake || Everything is awake. |
| + | |- |
| + | | 1 || MinimumAwake || Preparing to transition to awake. |
| + | |- |
| + | | 2 || SleepReady || Preparing to transition to sleep. |
| + | |- |
| + | | 3 || EssentialServicesSleepReady || Critical services are ready to sleep. |
| + | |- |
| + | | 4 || EssentialServicesAwake || Critical services are ready to wake up. |
| + | |- |
| + | | 5 || ShutdownReady || Preparing to transition to shutdown. |
| + | |- |
| + | | 6 || Invalid || Default state. |
| + | |} |
| + | |
| + | = PmTransitionOrder = |
| + | This is "nn::psc::PmTransitionOrder". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value |
| + | ! Description |
| + | |- |
| + | | 0 || ToLowerPowerState |
| + | |- |
| + | | 1 || ToHigherPowerState |
| + | |} |
| + | |
| + | = PmModuleTransitionInformation = |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x08 |
| + | | TimeBefore |
| |- | | |- |
− | | 1 || ReadyAwaken || Preparing to transition to awake. | + | | 0x08 |
| + | | 0x10 |
| + | | TimeAfter |
| |- | | |- |
− | | 2 || ReadySleep || Preparing to transition to sleep. | + | | 0x10 |
| + | | 0x04 |
| + | | Result |
| |- | | |- |
− | | 3 || ReadySleepCritical || Critical services are ready to sleep. | + | | 0x14 |
| + | | 0x04 |
| + | | [[#PmState|StateBefore]] |
| |- | | |- |
− | | 4 || ReadyAwakenCritical || Critical services are ready to wake up. | + | | 0x18 |
| + | | 0x04 |
| + | | [[#PmState|StateAfter]] |
| |- | | |- |
− | | 5 || ReadyShutdown || Preparing to transition to shutdown. | + | | 0x1C |
| + | | 0x04 |
| + | | Reserved |
| |} | | |} |
| + | |
| + | = SystemReport = |
| + | This is "nn::srepo::SystemReport". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x20 |
| + | | [[#EventId|EventId]] |
| + | |- |
| + | | 0x20 |
| + | | 0x08 |
| + | | ApplicationId |
| + | |- |
| + | | 0x28 |
| + | | 0x04 |
| + | | Flags |
| + | |- |
| + | | 0x2C |
| + | | 0x01 |
| + | | |
| + | |- |
| + | | 0x2D |
| + | | 0x03 |
| + | | Reserved |
| + | |- |
| + | | 0x30 |
| + | | 0x08 |
| + | | ReportBufferAddress |
| + | |- |
| + | | 0x38 |
| + | | 0x08 |
| + | | ReportBufferTotalSize |
| + | |- |
| + | | 0x40 |
| + | | 0x08 |
| + | | ReportBufferCurrentSize |
| + | |} |
| + | |
| + | = EventId = |
| + | This is "nn::srepo::EventId". This is a 0x20-byte string. |
| + | |
| + | = WatchdogHandle = |
| + | This is "nn::srepo::WatchdogHandle". This is an u64. |
| + | |
| + | = WatchdogStatistics = |
| + | This is "nn::srepo::WatchdogStatistics". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset |
| + | ! Size |
| + | ! Description |
| + | |- |
| + | | 0x00 |
| + | | 0x08 |
| + | | |
| + | |- |
| + | | 0x08 |
| + | | 0x08 |
| + | | |
| + | |} |
| + | |
| + | = ResultHolder = |
| + | This is "nn::srepo::detail::ipc::ResultHolder". This is an u32. |
| + | |
| + | = SfAppletIdentityInfo = |
| + | This is "nn::srepo::detail::ipc::SfAppletIdentityInfo". This is a 0x10-byte struct. |
| | | |
| [[Category:Services]] | | [[Category:Services]] |