Difference between revisions of "PTM services"
(→psm) |
|||
(72 intermediate revisions by 7 users not shown) | |||
Line 6: | Line 6: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || [[#OpenController]] |
|- | |- | ||
− | | 1 || | + | | 1 || [16.0.0+] GetRpm |
+ | |} | ||
+ | |||
+ | == OpenController == | ||
+ | Takes an input [[#FanName]]. Returns an output [[#IController]]. | ||
+ | |||
+ | [7.0.0+] Now takes an input [[Bus_services#GpioPadName|DeviceCode]] instead of an input [[#FanName]]. | ||
+ | |||
+ | == IController == | ||
+ | This is "nn::fan::detail::IController". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
|- | |- | ||
− | | | + | | 0 || [[#SetRotationSpeedLevel]] |
|- | |- | ||
− | | | + | | 1 || [7.0.0+] [[#GetRotationSpeedLevel]] ([1.0.0-6.2.0] [[#SetRotationSpeedLevelByDiff]]) |
|- | |- | ||
− | | | + | | 2 || [7.0.0+] [[#GetActualRotationSpeedLevel]] ([1.0.0-6.2.0] [[#GetRotationSpeedLevel]]) |
|- | |- | ||
− | | | + | | 3 || [7.0.0+] [[#EnableFan]] ([1.0.0-6.2.0] [[#SetRotationRate]]) |
|- | |- | ||
− | | | + | | 4 || [7.0.0+] [[#DisableFan]] ([1.0.0-6.2.0] [[#GetRotationRate]]) |
|- | |- | ||
− | | | + | | 5 || [1.0.0-6.2.0] [[#EnableFan]] |
|- | |- | ||
+ | | 6 || [1.0.0-6.2.0] [[#DisableFan]] | ||
+ | |- | ||
+ | | 7 || [1.0.0-6.2.0] [[#GetActualRotationSpeedLevel]] | ||
|} | |} | ||
+ | |||
+ | === SetRotationSpeedLevel === | ||
+ | Takes an input float. No output. | ||
+ | |||
+ | === SetRotationSpeedLevelByDiff === | ||
+ | Takes an input float. Returns an output float. | ||
+ | |||
+ | === GetRotationSpeedLevel === | ||
+ | No input. Returns an output float. | ||
+ | |||
+ | === SetRotationRate === | ||
+ | Takes an input float. No output. | ||
+ | |||
+ | === GetRotationRate === | ||
+ | No input. Returns an output float. | ||
+ | |||
+ | === EnableFan === | ||
+ | No input/output. | ||
+ | |||
+ | === DisableFan === | ||
+ | No input/output. | ||
+ | |||
+ | === GetActualRotationSpeedLevel === | ||
+ | No input. Returns an output float. | ||
= psm = | = psm = | ||
Line 31: | Line 71: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || [[#GetBatteryChargePercentage]] | + | | 0 || [[#GetBatteryChargePercentage|GetBatteryChargePercentage]] |
|- | |- | ||
− | | 1 || [[#GetChargerType]] | + | | 1 || [[#GetChargerType|GetChargerType]] |
|- | |- | ||
− | | 2 || EnableBatteryCharging | + | | 2 || [[#EnableBatteryCharging|EnableBatteryCharging]] |
|- | |- | ||
− | | 3 || DisableBatteryCharging | + | | 3 || [[#DisableBatteryCharging|DisableBatteryCharging]] |
|- | |- | ||
− | | 4 || IsBatteryChargingEnabled | + | | 4 || [[#IsBatteryChargingEnabled|IsBatteryChargingEnabled]] |
|- | |- | ||
− | | 5 || AcquireControllerPowerSupply | + | | 5 || [[#AcquireControllerPowerSupply|AcquireControllerPowerSupply]] |
|- | |- | ||
− | | 6 || ReleaseControllerPowerSupply | + | | 6 || [[#ReleaseControllerPowerSupply|ReleaseControllerPowerSupply]] |
|- | |- | ||
− | | 7 || OpenSession | + | | 7 || [[#OpenSession|OpenSession]] |
|- | |- | ||
− | | 8 || EnableEnoughPowerChargeEmulation | + | | 8 || [[#EnableEnoughPowerChargeEmulation|EnableEnoughPowerChargeEmulation]] |
|- | |- | ||
− | | 9 || DisableEnoughPowerChargeEmulation | + | | 9 || [[#DisableEnoughPowerChargeEmulation|DisableEnoughPowerChargeEmulation]] |
|- | |- | ||
− | | 10 || EnableFastBatteryCharging | + | | 10 || [[#EnableFastBatteryCharging|EnableFastBatteryCharging]] |
|- | |- | ||
− | | 11 || DisableFastBatteryCharging | + | | 11 || [[#DisableFastBatteryCharging|DisableFastBatteryCharging]] |
|- | |- | ||
− | | 12 || GetBatteryVoltageState | + | | 12 || [[#GetBatteryVoltageState|GetBatteryVoltageState]] |
|- | |- | ||
− | | 13 || GetRawBatteryChargePercentage | + | | 13 || [[#GetRawBatteryChargePercentage|GetRawBatteryChargePercentage]] |
|- | |- | ||
− | | 14 || IsEnoughPowerSupplied | + | | 14 || [[#IsEnoughPowerSupplied|IsEnoughPowerSupplied]] |
|- | |- | ||
− | | 15 || GetBatteryAgePercentage | + | | 15 || [[#GetBatteryAgePercentage|GetBatteryAgePercentage]] |
|- | |- | ||
− | | 16 || GetBatteryChargeInfoEvent | + | | 16 || [[#GetBatteryChargeInfoEvent|GetBatteryChargeInfoEvent]] |
|- | |- | ||
− | | 17 || GetBatteryChargeInfoFields | + | | 17 || [[#GetBatteryChargeInfoFields|GetBatteryChargeInfoFields]] |
|- | |- | ||
+ | | 18 || [3.0.0+] [[#GetBatteryChargeCalibratedEvent|GetBatteryChargeCalibratedEvent]] | ||
+ | |- | ||
+ | | 19 || [18.0.0+] | ||
+ | |- | ||
+ | | 20 || [18.0.0+] | ||
+ | |- | ||
+ | | 21 || [19.0.0+] | ||
+ | |- | ||
+ | | 22 || [19.0.0+] | ||
+ | |- | ||
+ | | 23 || [19.0.0+] | ||
|} | |} | ||
== GetBatteryChargePercentage == | == GetBatteryChargePercentage == | ||
− | No input | + | No input. Returns an output u32. |
== GetChargerType == | == GetChargerType == | ||
− | No input | + | No input. Returns an output [[#ChargerType|ChargerType]]. |
+ | |||
+ | == EnableBatteryCharging == | ||
+ | No input/output. | ||
+ | |||
+ | == DisableBatteryCharging == | ||
+ | No input/output. | ||
+ | |||
+ | == IsBatteryChargingEnabled == | ||
+ | No input. Returns an output bool. | ||
+ | |||
+ | == AcquireControllerPowerSupply == | ||
+ | No input/output. | ||
+ | |||
+ | == ReleaseControllerPowerSupply == | ||
+ | No input/output. | ||
+ | |||
+ | == OpenSession == | ||
+ | No input. Returns an output [[#IPsmSession]]. | ||
+ | |||
+ | == EnableEnoughPowerChargeEmulation == | ||
+ | No input/output. | ||
+ | |||
+ | == DisableEnoughPowerChargeEmulation == | ||
+ | No input/output. | ||
+ | |||
+ | == EnableFastBatteryCharging == | ||
+ | No input/output. | ||
+ | |||
+ | == DisableFastBatteryCharging == | ||
+ | No input/output. | ||
+ | |||
+ | == GetBatteryVoltageState == | ||
+ | No input. Returns an output [[#BatteryVoltageState|BatteryVoltageState]]. | ||
+ | |||
+ | == GetRawBatteryChargePercentage == | ||
+ | No input. Returns an output double. | ||
+ | |||
+ | == IsEnoughPowerSupplied == | ||
+ | No input. Returns an output bool. | ||
+ | |||
+ | == GetBatteryAgePercentage == | ||
+ | No input. Returns an output double. | ||
+ | |||
+ | == GetBatteryChargeInfoEvent == | ||
+ | No input. Returns an output Event handle. | ||
+ | |||
+ | == GetBatteryChargeInfoFields == | ||
+ | No input. Returns an output [[#BatteryChargeInfoFields|BatteryChargeInfoFields]]. | ||
+ | |||
+ | == GetBatteryChargeCalibratedEvent == | ||
+ | No input. Returns an output Event handle. | ||
== IPsmSession == | == IPsmSession == | ||
Line 82: | Line 184: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || BindStateChangeEvent | + | | 0 || [[#BindStateChangeEvent|BindStateChangeEvent]] |
+ | |- | ||
+ | | 1 || [[#UnbindStateChangeEvent|UnbindStateChangeEvent]] | ||
+ | |- | ||
+ | | 2 || [[#SetChargerTypeChangeEventEnabled|SetChargerTypeChangeEventEnabled]] | ||
+ | |- | ||
+ | | 3 || [[#SetPowerSupplyChangeEventEnabled|SetPowerSupplyChangeEventEnabled]] | ||
+ | |- | ||
+ | | 4 || [[#SetBatteryVoltageStateChangeEventEnabled|SetBatteryVoltageStateChangeEventEnabled]] | ||
+ | |} | ||
+ | |||
+ | === BindStateChangeEvent === | ||
+ | No input. Returns an output Event handle with EventClearMode=0. | ||
+ | |||
+ | === UnbindStateChangeEvent === | ||
+ | No input/output. | ||
+ | |||
+ | === SetChargerTypeChangeEventEnabled === | ||
+ | Takes an input bool. No output. | ||
+ | |||
+ | === SetPowerSupplyChangeEventEnabled === | ||
+ | Takes an input bool. No output. | ||
+ | |||
+ | === SetBatteryVoltageStateChangeEventEnabled === | ||
+ | Takes an input bool. No output. | ||
+ | |||
+ | = psm:manu = | ||
+ | This is "nn::psm::IPsmManufactureServer". | ||
+ | |||
+ | This service is not present in retail units. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#EnableVdd50StateControl|EnableVdd50StateControl]] | ||
+ | |- | ||
+ | | 1 || [[#DisableVdd50StateControl|DisableVdd50StateControl]] | ||
+ | |- | ||
+ | | 2 || [[#SetVdd50State|SetVdd50State]] | ||
+ | |} | ||
+ | |||
+ | == EnableVdd50StateControl == | ||
+ | Unofficial name. | ||
+ | |||
+ | No input/output. | ||
+ | |||
+ | == DisableVdd50StateControl == | ||
+ | Unofficial name. | ||
+ | |||
+ | No input/output. | ||
+ | |||
+ | == SetVdd50State == | ||
+ | Unofficial name. | ||
+ | |||
+ | Takes an input [[#Vdd50State]]. No output. | ||
+ | |||
+ | = powctl = | ||
+ | This is "nn::powctl::IPowctlManager". | ||
+ | |||
+ | This service is not present in retail units. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#OpenSession_3|OpenSession]] | ||
+ | |} | ||
+ | |||
+ | == OpenSession == | ||
+ | Takes a '''DeviceCode''' and an input [[#AccessMode]]. Returns an [[#IPowctlSession]]. | ||
+ | |||
+ | == IPowctlSession == | ||
+ | This is "nn::powctl::IPowctlSession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || GetAlertEvent | ||
+ | |- | ||
+ | | 1 || SetAlertEnabled | ||
+ | |- | ||
+ | | 2 || GetAlertStatus | ||
+ | |- | ||
+ | | 3 || ClearAlertStatus | ||
+ | |- | ||
+ | | 4 || | ||
+ | |- | ||
+ | | 5 || | ||
+ | |- | ||
+ | | 6 || | ||
+ | |- | ||
+ | | 7 || | ||
+ | |- | ||
+ | | 8 || | ||
+ | |- | ||
+ | | 9 || | ||
+ | |- | ||
+ | | 10 || | ||
+ | |- | ||
+ | | 11 || GetChargeType | ||
+ | |- | ||
+ | | 12 || SetChargeType | ||
+ | |- | ||
+ | | 13 || SetChargeCurrentLimitInMilliAmpere | ||
+ | |- | ||
+ | | 14 || GetChargeVoltageLimitInMilliVolt | ||
+ | |- | ||
+ | | 15 || SetChargeVoltageLimitInMilliVolt | ||
+ | |- | ||
+ | | 16 || SetChargeConfig | ||
+ | |- | ||
+ | | 17 || GetHiZ | ||
+ | |- | ||
+ | | 18 || SetHiZ | ||
+ | |- | ||
+ | | 19 || GetAverageChargeCurrentInMilliAmpere | ||
+ | |- | ||
+ | | 20 || GetChargeCurrentInMilliAmpere | ||
+ | |- | ||
+ | | 21 || | ||
+ | |- | ||
+ | | 22 || | ||
+ | |- | ||
+ | | 23 || | ||
+ | |- | ||
+ | | 24 || | ||
+ | |- | ||
+ | | 25 || GetParameter | ||
+ | |- | ||
+ | | 26 || SetParameter | ||
+ | |- | ||
+ | | 27 || | ||
+ | |- | ||
+ | | 28 || | ||
+ | |- | ||
+ | | 29 || | ||
+ | |- | ||
+ | | 30 || | ||
+ | |- | ||
+ | | 31 || | ||
+ | |- | ||
+ | | 32 || | ||
+ | |- | ||
+ | | 33 || | ||
+ | |- | ||
+ | | 34 || | ||
+ | |- | ||
+ | | 35 || | ||
+ | |- | ||
+ | | 36 || | ||
+ | |- | ||
+ | | 37 || | ||
+ | |- | ||
+ | | 38 || | ||
+ | |- | ||
+ | | 39 || | ||
+ | |- | ||
+ | | 40 || GetAverageBatteryVoltageInMilliVolt | ||
+ | |- | ||
+ | | 41 || SetBatteryVoltageAlertMinInMilliVolt | ||
+ | |- | ||
+ | | 42 || SetBatteryVoltageAlertMaxInMilliVolt | ||
+ | |- | ||
+ | | 43 || GetWatchdogTimerEnabled | ||
+ | |- | ||
+ | | 44 || SetWatchdogTimerEnabled | ||
+ | |- | ||
+ | | 45 || SetWatchdogTimerPeriod | ||
+ | |- | ||
+ | | 46 || ResetWatchdogTimer | ||
+ | |- | ||
+ | | 47 || | ||
+ | |- | ||
+ | | 48 || | ||
+ | |- | ||
+ | | 49 || GetBatteryVoltageInMilliVolt | ||
+ | |- | ||
+ | | 50 || GetAverageVoltageTimeConstant | ||
|- | |- | ||
− | | | + | | 51 || GetChargeCurrentLimitInMilliAmpere |
|- | |- | ||
− | | | + | | 52 || |
|- | |- | ||
− | | | + | | 53 || |
|- | |- | ||
− | | | + | | 54 || GetVfOcvInMilliVolt |
+ | |- | ||
+ | | 55 || | ||
+ | |- | ||
+ | | 56 || | ||
|} | |} | ||
Line 100: | Line 385: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || SetOperationMode |
|- | |- | ||
− | | 1 || GetThermalEvent | + | | 1 || [1.0.0-10.2.0] GetThermalEvent |
|- | |- | ||
− | | 2 || | + | | 2 || IsActionAllowed |
|- | |- | ||
− | | 3 || | + | | 3 || EnableVirtualTemperature |
|- | |- | ||
− | | 4 || | + | | 4 || DisableVirtualTemperature |
|- | |- | ||
− | | 5 || | + | | 5 || SetVirtualTemperature |
|- | |- | ||
− | | 6 || | + | | 6 || EnableFanControl |
|- | |- | ||
− | | 7 || | + | | 7 || DisableFanControl |
|- | |- | ||
− | | 8 || | + | | 8 || IsFanControlEnabled |
|- | |- | ||
+ | | 9 || [5.0.0+] GetSkinTemperatureMilliC | ||
+ | |- | ||
+ | | 10 || [11.0.0+] LoadAndApplySettings | ||
|} | |} | ||
= ts = | = ts = | ||
This is "nn::ts::server::IMeasurementServer". | This is "nn::ts::server::IMeasurementServer". | ||
+ | |||
+ | [18.0.0+] This is "nn::ts::server::ITsManager". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 127: | Line 417: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || [1.0.0-16.1.0] [[#GetTemperatureRange|GetTemperatureRange]] |
|- | |- | ||
− | | 1 || | + | | 1 || [1.0.0-16.1.0] [[#GetTemperature|GetTemperature]] |
|- | |- | ||
− | | 2 || | + | | 2 || [1.0.0-13.2.1] [[#SetMeasurementMode|SetMeasurementMode]] |
|- | |- | ||
− | | 3 || | + | | 3 || [1.0.0-13.2.1] [[#GetTemperatureMilliC|GetTemperatureMilliC]] |
|- | |- | ||
+ | | 4 || [8.0.0+] [[#OpenSession_2|OpenSession]] | ||
+ | |} | ||
+ | |||
+ | == GetTemperatureRange == | ||
+ | Takes an input u8 [[#Location]]. Returns two s32s '''MinimumTemperature''' and '''MaximumTemperature'''. | ||
+ | |||
+ | The returned temperature values are in Celsius. | ||
+ | |||
+ | == GetTemperature == | ||
+ | Takes an input u8 [[#Location]]. Returns an output s32. | ||
+ | |||
+ | The output is the temperature in Celsius. | ||
+ | |||
+ | == SetMeasurementMode == | ||
+ | Takes two input u8s [[#Location]] and '''MeasurementMode'''. No output. | ||
+ | |||
+ | == GetTemperatureMilliC == | ||
+ | Takes an input u8 [[#Location]]. Returns an output s32. | ||
+ | |||
+ | The output is the temperature in MilliC. | ||
+ | |||
+ | == OpenSession == | ||
+ | Takes an input [[#Location|DeviceCode]]. Returns an [[#ISession]]. | ||
+ | |||
+ | == ISession == | ||
+ | This is "nn::ts::server::ISession". | ||
+ | |||
+ | This was added with [8.0.0+]. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || GetTemperatureRange | ||
+ | |- | ||
+ | | 1 || [8.0.0-13.2.1] | ||
+ | |- | ||
+ | | 2 || SetMeasurementMode | ||
+ | |- | ||
+ | | 3 || [8.0.0-13.2.1] | ||
+ | |- | ||
+ | | 4 || [10.0.0+] GetTemperature | ||
+ | |- | ||
+ | | 5 || [17.0.0+] SetAlertThreshold | ||
+ | |- | ||
+ | | 6 || [17.0.0+] SetThermThreshold | ||
+ | |- | ||
+ | | 7 || [17.0.0+] GetTemperatureWithError | ||
|} | |} | ||
= pcm = | = pcm = | ||
This is "nn::pcm::IManager". | This is "nn::pcm::IManager". | ||
+ | |||
+ | [4.0.0+] This service was moved to '''nvdbgsvc''' and is only available to SDEV units. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 147: | Line 487: | ||
|- | |- | ||
| 1 || ReadCurrentPower | | 1 || ReadCurrentPower | ||
+ | |- | ||
+ | | 2 || [4.0.0+] IsServiceEnabled | ||
+ | |- | ||
+ | | 3 || [4.0.0+] ReadCurrentVoltage | ||
+ | |} | ||
+ | |||
+ | = apm:am = | ||
+ | This is "nn::apm::IManager". | ||
+ | |||
+ | This was added with [8.0.0+] and replaces the old [[PPC_services#apm|apm]] service. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#OpenSession_4|OpenSession]] | ||
+ | |- | ||
+ | | 1 || [[#GetPerformanceMode]] | ||
+ | |- | ||
+ | | 6 || [7.0.0+] [[#IsCpuOverclockEnabled]] | ||
+ | |} | ||
+ | |||
+ | == OpenSession == | ||
+ | No input. Returns an output [[#ISession]]. | ||
+ | |||
+ | == GetPerformanceMode == | ||
+ | No input. Returns an output [[#PerformanceMode]]. | ||
+ | |||
+ | == IsCpuOverclockEnabled == | ||
+ | No input. Returns an output bool. | ||
+ | |||
+ | = apm:sys = | ||
+ | This is "nn::apm::ISystemManager". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#RequestPerformanceMode]] | ||
+ | |- | ||
+ | | 1 || [[#GetPerformanceEvent]] | ||
+ | |- | ||
+ | | 2 || [[#GetThrottlingState]] | ||
+ | |- | ||
+ | | 3 || [[#GetLastThrottlingState]] | ||
+ | |- | ||
+ | | 4 || [[#ClearLastThrottlingState]] | ||
+ | |- | ||
+ | | 5 || [5.0.0+] [[#LoadAndApplySettings]] | ||
+ | |- | ||
+ | | 6 || [7.0.0+] [[#SetCpuBoostMode]] | ||
+ | |- | ||
+ | | 7 || [7.0.0+] [[#GetCurrentPerformanceConfiguration]] | ||
+ | |- | ||
+ | | 8 || [17.0.0+] GetCurrentPerformanceMode | ||
+ | |} | ||
+ | |||
+ | == RequestPerformanceMode == | ||
+ | Takes an input [[#PerformanceMode]]. No output. | ||
+ | |||
+ | == GetPerformanceEvent == | ||
+ | Takes an input [[#EventTarget]]. Returns an Event handle with EventClearMode 0. | ||
+ | |||
+ | == GetThrottlingState == | ||
+ | No input. Returns an output [[#ThrottlingState]]. | ||
+ | |||
+ | == GetLastThrottlingState == | ||
+ | No input. Returns an output [[#ThrottlingState]]. | ||
+ | |||
+ | == ClearLastThrottlingState == | ||
+ | No input/output. | ||
+ | |||
+ | == LoadAndApplySettings == | ||
+ | No input/output. | ||
+ | |||
+ | == SetCpuBoostMode == | ||
+ | Takes an input [[#CpuBoostMode]]. No output. | ||
+ | |||
+ | == GetCurrentPerformanceConfiguration == | ||
+ | No input. Returns an output [[#PerformanceConfiguration]] (default value is 0x00020003). | ||
+ | |||
+ | = ISession = | ||
+ | This is "nn::apm::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#SetPerformanceConfiguration]] | ||
+ | |- | ||
+ | | 1 || [[#GetPerformanceConfiguration]] | ||
+ | |- | ||
+ | | 2 || [8.0.0+] [[#SetCpuOverclockEnabled]] | ||
+ | |} | ||
+ | |||
+ | == SetPerformanceConfiguration == | ||
+ | Takes an input [[#PerformanceMode]] and an input [[#PerformanceConfiguration]]. No output. | ||
+ | |||
+ | == GetPerformanceConfiguration == | ||
+ | Takes an input [[#PerformanceMode]]. Returns an output [[#PerformanceConfiguration]]. | ||
+ | |||
+ | == SetCpuOverclockEnabled == | ||
+ | Takes an input bool. No output. | ||
+ | |||
+ | = fgm, fgm:0, fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6, fgm:7, fgm:9 = | ||
+ | These are "nn::fgm::sf::ISession". | ||
+ | |||
+ | [19.0.0+] These are "nn::fgm::ISession". | ||
+ | |||
+ | Each service represents a different priority from 0 (Highest/Thermal) to 9 (Lowest). The "fgm" service represents priority 8 (Default). | ||
+ | |||
+ | [2.0.0+] Only "fgm", "fgm:0" and "fgm:9" are now valid. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#Initialize]] | ||
+ | |} | ||
+ | |||
+ | == Initialize == | ||
+ | No input. Returns an output [[#IRequest]]. | ||
+ | |||
+ | == IRequest == | ||
+ | This is "nn::fgm::sf::IRequest". | ||
+ | |||
+ | [19.0.0+] This is "nn::fgm::IRequest". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#Initialize_2|Initialize]] | ||
+ | |- | ||
+ | | 1 || [[#Set|Set]] | ||
+ | |- | ||
+ | | 2 || [[#Get|Get]] | ||
+ | |- | ||
+ | | 3 || [[#Cancel|Cancel]] | ||
+ | |} | ||
+ | |||
+ | === Initialize === | ||
+ | Takes a PID-descriptor, a [[#Module|ModuleId]] and a reserved input u64. Returns an Event handle with EventClearMode 0. | ||
+ | |||
+ | === Set === | ||
+ | Takes 2 u32s '''ClockRateMin''' and '''ClockRateMax'''. No output. | ||
+ | |||
+ | === Get === | ||
+ | No input. Returns an u32 '''ClockRateActual'''. | ||
+ | |||
+ | === Cancel === | ||
+ | No input/output. | ||
+ | |||
+ | = fgm:dbg = | ||
+ | This is "nn::fgm::sf::IDebugger". | ||
+ | |||
+ | This was removed with [17.0.0]. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#Initialize_3|Initialize]] | ||
+ | |- | ||
+ | | 1 || [[#Read|Read]] | ||
+ | |- | ||
+ | | 2 || [[#Cancel_2|Cancel]] | ||
+ | |} | ||
+ | |||
+ | == Initialize == | ||
+ | Takes the current process handle (0xFFFF8001) and an input u64 '''MemorySize'''. Returns an Event handle with EventClearMode 0. | ||
+ | |||
+ | == Read == | ||
+ | Takes a type-0x6 output buffer of [[#DebugEntry|DebugEntry]]. Returns three output s32s '''NumberReadOut''', '''NumberLostOut''' and '''NumberRemainingOut'''. | ||
+ | |||
+ | == Cancel == | ||
+ | No input/output. | ||
+ | |||
+ | = lbl = | ||
+ | This is "nn::lbl::detail::ILblController". | ||
+ | |||
+ | [10.0.0+] This was moved from [[Backlight_services|lbl]]. | ||
+ | |||
+ | [11.0.0+] this was moved into [[Display_services|vi]]. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || SaveCurrentSetting | ||
+ | |- | ||
+ | | 1 || LoadCurrentSetting | ||
+ | |- | ||
+ | | 2 || SetCurrentBrightnessSetting | ||
+ | |- | ||
+ | | 3 || GetCurrentBrightnessSetting | ||
+ | |- | ||
+ | | 4 || ApplyCurrentBrightnessSettingToBacklight | ||
+ | |- | ||
+ | | 5 || GetBrightnessSettingAppliedToBacklight | ||
+ | |- | ||
+ | | 6 || SwitchBacklightOn | ||
+ | |- | ||
+ | | 7 || SwitchBacklightOff | ||
+ | |- | ||
+ | | 8 || GetBacklightSwitchStatus | ||
+ | |- | ||
+ | | 9 || EnableDimming | ||
+ | |- | ||
+ | | 10 || DisableDimming | ||
+ | |- | ||
+ | | 11 || IsDimmingEnabled | ||
+ | |- | ||
+ | | 12 || EnableAutoBrightnessControl | ||
+ | |- | ||
+ | | 13 || DisableAutoBrightnessControl | ||
+ | |- | ||
+ | | 14 || IsAutoBrightnessControlEnabled | ||
+ | |- | ||
+ | | 15 || SetAmbientLightSensorValue | ||
+ | |- | ||
+ | | 16 || GetAmbientLightSensorValue | ||
+ | |- | ||
+ | | 17 || SetBrightnessReflectionDelayLevel | ||
+ | |- | ||
+ | | 18 || GetBrightnessReflectionDelayLevel | ||
+ | |- | ||
+ | | 19 || SetCurrentBrightnessMapping | ||
+ | |- | ||
+ | | 20 || GetCurrentBrightnessMapping | ||
+ | |- | ||
+ | | 21 || SetCurrentAmbientLightSensorMapping | ||
+ | |- | ||
+ | | 22 || GetCurrentAmbientLightSensorMapping | ||
+ | |- | ||
+ | | 23 || [3.0.0+] IsAmbientLightSensorAvailable | ||
+ | |- | ||
+ | | 24 || [3.0.0+] SetCurrentBrightnessSettingForVrMode | ||
+ | |- | ||
+ | | 25 || [3.0.0+] GetCurrentBrightnessSettingForVrMode | ||
+ | |- | ||
+ | | 26 || [3.0.0+] EnableVrMode | ||
+ | |- | ||
+ | | 27 || [3.0.0+] DisableVrMode | ||
+ | |- | ||
+ | | 28 || [3.0.0+] IsVrModeEnabled | ||
+ | |- | ||
+ | | 29 || [7.0.0+] IsAutoBrightnessControlSupported | ||
+ | |} | ||
+ | |||
+ | = FanName= | ||
+ | This is "nn::fan::FanName". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Unknown | ||
+ | |- | ||
+ | | 1 || Cpu | ||
+ | |} | ||
+ | |||
+ | = ChargerType = | ||
+ | This is "nn::psm::ChargerType". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Unconnected | ||
+ | |- | ||
+ | | 1 || EnoughPower | ||
+ | |- | ||
+ | | 2 || LowPower | ||
+ | |- | ||
+ | | 3 || NotSupported | ||
+ | |} | ||
+ | |||
+ | = Vdd50State = | ||
+ | This is "nn::psm::Vdd50State". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Unknown | ||
+ | |- | ||
+ | | 1 || Vdd50AOffVdd50BOff | ||
+ | |- | ||
+ | | 2 || Vdd50AOnVdd50BOff | ||
+ | |- | ||
+ | | 3 || Vdd50AOffVdd50BOn | ||
+ | |} | ||
+ | |||
+ | = BatteryVoltageState = | ||
+ | This is "nn::psm::BatteryVoltageState". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || ShutdownRequired | ||
+ | |- | ||
+ | | 1 || SleepRequired | ||
+ | |- | ||
+ | | 2 || BoostPerformanceModeProhibited | ||
+ | |- | ||
+ | | 3 || Good | ||
+ | |} | ||
+ | |||
+ | = BatteryChargeInfoFields = | ||
+ | This is "nn::psm::BatteryChargeInfoFields". This is a 0x40-byte struct. | ||
+ | |||
+ | [17.0.0+] This is a 0x54-byte struct. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x00 || 0x4 || InputCurrentLimit (input/sink current limit in mA) | ||
+ | |- | ||
+ | | 0x04 || 0x4 || BoostModeCurrentLimit (output/source/vbus/OTG current limit in mA) | ||
+ | |- | ||
+ | | 0x08 || 0x4 || FastChargeCurrentLimit (battery charging current limit in mA) | ||
+ | |- | ||
+ | | 0x0C || 0x4 || ChargeVoltageLimit (battery charging voltage limit in mV) | ||
+ | |- | ||
+ | | 0x10 || 0x4 || [[#ChargerType_2|ChargerType]] | ||
+ | |- | ||
+ | | 0x14 || 0x1 || [[#HiZMode|HiZMode]] | ||
+ | |- | ||
+ | | 0x15 || 0x1 || [[#BatteryCharging|BatteryCharging]] | ||
+ | |- | ||
+ | | 0x16 || 0x2 || Reserved | ||
+ | |- | ||
+ | | 0x18 || 0x4 || [[#Vdd50State|Vdd50State]] | ||
+ | |- | ||
+ | | 0x1C || 0x4 || TemperatureCelsius (battery temperature in milli C) | ||
+ | |- | ||
+ | | 0x20 || 0x4 || BatteryChargePercentage (capacity now per cent-mille, i.e. 100% = 100000 pcm) | ||
+ | |- | ||
+ | | 0x24 || 0x4 || BatteryChargeMilliVoltage (voltage avg in mV) | ||
+ | |- | ||
+ | | 0x28 || 0x4 || BatteryAgePercentage (battery age capacity full/capacity design per cent-mille, i.e. 100% = 100000 pcm) | ||
+ | |- | ||
+ | | 0x2C || 0x4 || [[USB_services#UsbPowerRole|UsbPowerRole]] | ||
+ | |- | ||
+ | | 0x30 || 0x4 || [[USB_services#UsbChargerType|UsbChargerType]] | ||
+ | |- | ||
+ | | 0x34 || 0x4 || ChargerInputVoltageLimit (charger voltage limit in mV) | ||
+ | |- | ||
+ | | 0x38 || 0x4 || ChargerInputCurrentLimit (charger current limit in mA) | ||
+ | |- | ||
+ | | 0x3C || 0x1 || [[#FastBatteryCharging|FastBatteryCharging]] | ||
+ | |- | ||
+ | | 0x3D || 0x1 || [[#ControllerPowerSupply|ControllerPowerSupply]] | ||
+ | |- | ||
+ | | 0x3E || 0x1 || [[#OtgRequest|OtgRequest]] | ||
+ | |- | ||
+ | | 0x3F || 0x1 || Reserved | ||
+ | |- | ||
+ | | 0x40 || 0x14 || [17.0.0+] | ||
+ | |} | ||
+ | |||
+ | == ChargerType == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || ChargeDisable | ||
+ | |- | ||
+ | | 1 || ChargeBattery | ||
+ | |- | ||
+ | | 2 || Otg | ||
+ | |} | ||
+ | |||
+ | == HiZMode == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Disable | ||
+ | |- | ||
+ | | 1 || Enable | ||
+ | |} | ||
+ | |||
+ | == BatteryCharging == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Disable | ||
+ | |- | ||
+ | | 1 || Enable | ||
+ | |} | ||
+ | |||
+ | == FastBatteryCharging == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Disable | ||
+ | |- | ||
+ | | 1 || Enable | ||
+ | |} | ||
+ | |||
+ | == ControllerPowerSupply == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Disable | ||
+ | |- | ||
+ | | 1 || Enable | ||
+ | |} | ||
+ | |||
+ | == OtgRequest == | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Disable | ||
+ | |- | ||
+ | | 1 || Enable | ||
+ | |} | ||
+ | |||
+ | = Location = | ||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Name || DeviceCode | ||
+ | |- | ||
+ | | 0 || Internal || 0x41000001 | ||
+ | |- | ||
+ | | 1 || External || 0x41000002 | ||
+ | |} | ||
+ | |||
+ | = CpuBoostMode = | ||
+ | This is "nn::apm::CpuBoostMode". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Description | ||
+ | |- | ||
+ | | 0 || Disabled. | ||
+ | |- | ||
+ | | 1 || Boost CPU. Additionally, throttle GPU to minimum. | ||
+ | Use [[#PerformanceConfiguration|performance configurations]] 0x92220009 and 0x9222000A, or 0x9222000B and 0x9222000C. | ||
+ | |- | ||
+ | | 2 || Conserve power. Only throttle GPU to minimum. | ||
+ | Use [[#PerformanceConfiguration|performance configurations]] 0x9222000B and 0x9222000C. | ||
+ | |} | ||
+ | |||
+ | = PerformanceMode = | ||
+ | This is "nn::apm::PerformanceMode". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Description | ||
+ | |- | ||
+ | | -1 || Invalid | ||
+ | |- | ||
+ | | 0 || Normal | ||
+ | |- | ||
+ | | 1 || Boost | ||
+ | |} | ||
+ | |||
+ | = PerformanceConfiguration = | ||
+ | This is "nn::apm::PerformanceConfiguration". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Description || CPU clock (MHz) || GPU clock (MHz) || Memory clock (MHz) | ||
+ | |- | ||
+ | | 0x00000000 || Invalid || 0 || 0 || 0 | ||
+ | |- | ||
+ | | 0x00010000 || Cpu1020MhzGpu384Mhz || 1020.0 || 384.0 || 1600.0 | ||
+ | |- | ||
+ | | 0x00010001 || Cpu1020MhzGpu768Mhz || 1020.0 || 768.0 || 1600.0 | ||
+ | |- | ||
+ | | 0x00010002 || Cpu1224MhzGpu691Mhz || 1224.0 || 691.2 || 1600.0 | ||
+ | |- | ||
+ | | 0x00020000 || Cpu1020MhzGpu230Mhz|| 1020.0 || 230.4 || 1600.0 | ||
+ | |- | ||
+ | | 0x00020001 || Cpu1020MhzGpu307Mhz || 1020.0 || 307.2 || 1600.0 | ||
+ | |- | ||
+ | | 0x00020002 || Cpu1224MhzGpu230Mhz || 1224.0 || 230.4 || 1600.0 | ||
+ | |- | ||
+ | | 0x00020003 || Cpu1020MhzGpu307MhzEmc1331Mhz || 1020.0 || 307.2 || 1331.2 | ||
+ | |- | ||
+ | | 0x00020004 || Cpu1020MhzGpu384MhzEmc1331Mhz || 1020.0 || 384.0 || 1331.2 | ||
+ | |- | ||
+ | | 0x00020005 || Cpu1020MhzGpu307MhzEmc1065Mhz || 1020.0 || 307.2 || 1065.6 | ||
+ | |- | ||
+ | | 0x00020006 || Cpu1020MhzGpu384MhzEmc1065Mhz || 1020.0 || 384.0 || 1065.6 | ||
+ | |- | ||
+ | | 0x92220007 || Cpu1020MhzGpu460MhzEmc1600Mhz || 1020.0 || 460.8 || 1600.0 | ||
+ | |- | ||
+ | | 0x92220008 || Cpu1020MhzGpu460MhzEmc1331Mhz || 1020.0 || 460.8 || 1331.2 | ||
+ | |- | ||
+ | | [7.0.0+] 0x92220009 || Cpu1785MhzGpu76MhzEmc1600Mhz || 1785.0 || 76.8 || 1600.0 | ||
+ | |- | ||
+ | | [7.0.0+] 0x9222000A || Cpu1785MhzGpu76MhzEmc1331Mhz || 1785.0 || 76.8 || 1331.2 | ||
+ | |- | ||
+ | | [7.0.0+] 0x9222000B || Cpu1020MhzGpu76MhzEmc1600Mhz || 1020.0 || 76.8 || 1600.0 | ||
+ | |- | ||
+ | | [7.0.0+] 0x9222000C || Cpu1020MhzGpu76MhzEmc1331Mhz || 1020.0 || 76.8 || 1331.2 | ||
+ | |} | ||
+ | |||
+ | Configurations 0x10001 and 0x20000 are only available while docked. Configurations 0x10002 and 0x20002 are only available for SDEV units. | ||
+ | |||
+ | = EventTarget = | ||
+ | This is "nn::apm::EventTarget". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Value || Description | ||
+ | |- | ||
+ | | 0 || PerformanceModeChanged | ||
+ | |- | ||
+ | | 1 || SleepRequiredByLowVoltage | ||
+ | |- | ||
+ | | 2 || [7.0.0+] PerformanceConfigurationChanged | ||
+ | |} | ||
+ | |||
+ | = ThrottlingState = | ||
+ | This is "nn::apm::ThrottlingState". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x8 || DurationNanoSeconds | ||
+ | |- | ||
+ | | 0x8 || 0x4 || ThrottlingRateCpuDividend | ||
+ | |- | ||
+ | | 0xC || 0x4 || ThrottlingRateCpuDivisor | ||
+ | |- | ||
+ | | 0x10 || 0x4 || ThrottlingRateGpuDividend | ||
+ | |- | ||
+ | | 0x14 || 0x4 || ThrottlingRateGpuDivisor | ||
+ | |- | ||
+ | | 0x18 || 0x4 || ThrottleStatus | ||
+ | |- | ||
+ | | 0x1C || 0x4 || CpuPSkipStatus | ||
+ | |- | ||
+ | | 0x20 || 0x4 || GpuPSkipStatus | ||
+ | |- | ||
+ | | 0x24 || 0x1 || Enabled | ||
+ | |- | ||
+ | | 0x25 || 0x1 || Invoked | ||
+ | |- | ||
+ | | 0x26 || 0x2 || Reserved | ||
+ | |} | ||
+ | |||
+ | = Module = | ||
+ | This is "nn::fgm::Module". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Name || Block | ||
+ | |- | ||
+ | | 0 || Cpu | ||
+ | |- | ||
+ | | 1 || Gpu | ||
+ | |- | ||
+ | | 2 || Emc | ||
+ | |- | ||
+ | | 3 || SysBus | ||
+ | |- | ||
+ | | 4 || Mselect | ||
+ | |- | ||
+ | | 5 || Nvdec | ||
+ | |- | ||
+ | | 6 || Nvenc | ||
+ | |- | ||
+ | | 7 || Nvjpg | ||
+ | |- | ||
+ | | 8 || Test | ||
+ | |} | ||
+ | |||
+ | = EventId = | ||
+ | This is "nn::fgm::EventId". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Name || Block | ||
+ | |- | ||
+ | | 0 || Set | ||
+ | |- | ||
+ | | 1 || Unset | ||
+ | |- | ||
+ | | 2 || Completion | ||
+ | |} | ||
+ | |||
+ | = DebugEntry = | ||
+ | This is "nn::fgm::DebugEntry". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x4 || [[#EventId|EventId]] | ||
+ | |- | ||
+ | | 0x4 || 0x4 || [[#Module|ModuleId]] | ||
+ | |- | ||
+ | | 0x8 || 0x8 || Timestamp | ||
+ | |- | ||
+ | | 0x10 || 0x40 || [[#RequestEntry|RequestEntry]] (EventId = Set), empty (EventId = Unset) or [[#CompletionEntry|CompletionEntry]] (EventId = Completion) | ||
+ | |} | ||
+ | |||
+ | = RequestEntry = | ||
+ | This is "nn::fgm::RequestEntry". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x8 || ProcessId | ||
+ | |- | ||
+ | | 0x8 || 0x4 || Priority | ||
+ | |- | ||
+ | | 0xC || 0x4 || ClockRateMin | ||
+ | |- | ||
+ | | 0x10 || 0x4 || ClockRateMax | ||
+ | |- | ||
+ | | 0x14 || 0x2C || Reserved | ||
+ | |} | ||
+ | |||
+ | = CompletionEntry = | ||
+ | This is "nn::fgm::CompletionEntry". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Offset || Size || Description | ||
+ | |- | ||
+ | | 0x0 || 0x4 || ClockRateMin | ||
+ | |- | ||
+ | | 0x4 || 0x4 || ClockRateMax | ||
+ | |- | ||
+ | | 0x8 || 0x4 || ClockRateActual | ||
+ | |- | ||
+ | | 0xC || 0x34 || Reserved | ||
+ | |} | ||
+ | |||
+ | = AccessMode = | ||
+ | This is "nn::ddsf::AccessMode". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Name || Block | ||
+ | |- | ||
+ | | 0 || None | ||
+ | |- | ||
+ | | 1 || Read | ||
+ | |- | ||
+ | | 2 || Write | ||
+ | |- | ||
+ | | 3 || ReadWrite | ||
+ | |- | ||
+ | | 4 || Shared | ||
+ | |- | ||
+ | | 5 || WriteShared | ||
+ | |- | ||
+ | | 6 || ReadWriteShared | ||
|} | |} | ||
[[Category:Services]] | [[Category:Services]] |
Latest revision as of 16:35, 21 October 2024
fan
This is "nn::fan::detail::IManager".
Cmd | Name |
---|---|
0 | #OpenController |
1 | [16.0.0+] GetRpm |
OpenController
Takes an input #FanName. Returns an output #IController.
[7.0.0+] Now takes an input DeviceCode instead of an input #FanName.
IController
This is "nn::fan::detail::IController".
Cmd | Name |
---|---|
0 | #SetRotationSpeedLevel |
1 | [7.0.0+] #GetRotationSpeedLevel ([1.0.0-6.2.0] #SetRotationSpeedLevelByDiff) |
2 | [7.0.0+] #GetActualRotationSpeedLevel ([1.0.0-6.2.0] #GetRotationSpeedLevel) |
3 | [7.0.0+] #EnableFan ([1.0.0-6.2.0] #SetRotationRate) |
4 | [7.0.0+] #DisableFan ([1.0.0-6.2.0] #GetRotationRate) |
5 | [1.0.0-6.2.0] #EnableFan |
6 | [1.0.0-6.2.0] #DisableFan |
7 | [1.0.0-6.2.0] #GetActualRotationSpeedLevel |
SetRotationSpeedLevel
Takes an input float. No output.
SetRotationSpeedLevelByDiff
Takes an input float. Returns an output float.
GetRotationSpeedLevel
No input. Returns an output float.
SetRotationRate
Takes an input float. No output.
GetRotationRate
No input. Returns an output float.
EnableFan
No input/output.
DisableFan
No input/output.
GetActualRotationSpeedLevel
No input. Returns an output float.
psm
This is "nn::psm::IPsmServer".
Cmd | Name |
---|---|
0 | GetBatteryChargePercentage |
1 | GetChargerType |
2 | EnableBatteryCharging |
3 | DisableBatteryCharging |
4 | IsBatteryChargingEnabled |
5 | AcquireControllerPowerSupply |
6 | ReleaseControllerPowerSupply |
7 | OpenSession |
8 | EnableEnoughPowerChargeEmulation |
9 | DisableEnoughPowerChargeEmulation |
10 | EnableFastBatteryCharging |
11 | DisableFastBatteryCharging |
12 | GetBatteryVoltageState |
13 | GetRawBatteryChargePercentage |
14 | IsEnoughPowerSupplied |
15 | GetBatteryAgePercentage |
16 | GetBatteryChargeInfoEvent |
17 | GetBatteryChargeInfoFields |
18 | [3.0.0+] GetBatteryChargeCalibratedEvent |
19 | [18.0.0+] |
20 | [18.0.0+] |
21 | [19.0.0+] |
22 | [19.0.0+] |
23 | [19.0.0+] |
GetBatteryChargePercentage
No input. Returns an output u32.
GetChargerType
No input. Returns an output ChargerType.
EnableBatteryCharging
No input/output.
DisableBatteryCharging
No input/output.
IsBatteryChargingEnabled
No input. Returns an output bool.
AcquireControllerPowerSupply
No input/output.
ReleaseControllerPowerSupply
No input/output.
OpenSession
No input. Returns an output #IPsmSession.
EnableEnoughPowerChargeEmulation
No input/output.
DisableEnoughPowerChargeEmulation
No input/output.
EnableFastBatteryCharging
No input/output.
DisableFastBatteryCharging
No input/output.
GetBatteryVoltageState
No input. Returns an output BatteryVoltageState.
GetRawBatteryChargePercentage
No input. Returns an output double.
IsEnoughPowerSupplied
No input. Returns an output bool.
GetBatteryAgePercentage
No input. Returns an output double.
GetBatteryChargeInfoEvent
No input. Returns an output Event handle.
GetBatteryChargeInfoFields
No input. Returns an output BatteryChargeInfoFields.
GetBatteryChargeCalibratedEvent
No input. Returns an output Event handle.
IPsmSession
This is "nn::psm::IPsmSession".
Cmd | Name |
---|---|
0 | BindStateChangeEvent |
1 | UnbindStateChangeEvent |
2 | SetChargerTypeChangeEventEnabled |
3 | SetPowerSupplyChangeEventEnabled |
4 | SetBatteryVoltageStateChangeEventEnabled |
BindStateChangeEvent
No input. Returns an output Event handle with EventClearMode=0.
UnbindStateChangeEvent
No input/output.
SetChargerTypeChangeEventEnabled
Takes an input bool. No output.
SetPowerSupplyChangeEventEnabled
Takes an input bool. No output.
SetBatteryVoltageStateChangeEventEnabled
Takes an input bool. No output.
psm:manu
This is "nn::psm::IPsmManufactureServer".
This service is not present in retail units.
Cmd | Name |
---|---|
0 | EnableVdd50StateControl |
1 | DisableVdd50StateControl |
2 | SetVdd50State |
EnableVdd50StateControl
Unofficial name.
No input/output.
DisableVdd50StateControl
Unofficial name.
No input/output.
SetVdd50State
Unofficial name.
Takes an input #Vdd50State. No output.
powctl
This is "nn::powctl::IPowctlManager".
This service is not present in retail units.
Cmd | Name |
---|---|
0 | OpenSession |
OpenSession
Takes a DeviceCode and an input #AccessMode. Returns an #IPowctlSession.
IPowctlSession
This is "nn::powctl::IPowctlSession".
Cmd | Name |
---|---|
0 | GetAlertEvent |
1 | SetAlertEnabled |
2 | GetAlertStatus |
3 | ClearAlertStatus |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | GetChargeType |
12 | SetChargeType |
13 | SetChargeCurrentLimitInMilliAmpere |
14 | GetChargeVoltageLimitInMilliVolt |
15 | SetChargeVoltageLimitInMilliVolt |
16 | SetChargeConfig |
17 | GetHiZ |
18 | SetHiZ |
19 | GetAverageChargeCurrentInMilliAmpere |
20 | GetChargeCurrentInMilliAmpere |
21 | |
22 | |
23 | |
24 | |
25 | GetParameter |
26 | SetParameter |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | GetAverageBatteryVoltageInMilliVolt |
41 | SetBatteryVoltageAlertMinInMilliVolt |
42 | SetBatteryVoltageAlertMaxInMilliVolt |
43 | GetWatchdogTimerEnabled |
44 | SetWatchdogTimerEnabled |
45 | SetWatchdogTimerPeriod |
46 | ResetWatchdogTimer |
47 | |
48 | |
49 | GetBatteryVoltageInMilliVolt |
50 | GetAverageVoltageTimeConstant |
51 | GetChargeCurrentLimitInMilliAmpere |
52 | |
53 | |
54 | GetVfOcvInMilliVolt |
55 | |
56 |
tc
This is "nn::tc::IManager".
Cmd | Name |
---|---|
0 | SetOperationMode |
1 | [1.0.0-10.2.0] GetThermalEvent |
2 | IsActionAllowed |
3 | EnableVirtualTemperature |
4 | DisableVirtualTemperature |
5 | SetVirtualTemperature |
6 | EnableFanControl |
7 | DisableFanControl |
8 | IsFanControlEnabled |
9 | [5.0.0+] GetSkinTemperatureMilliC |
10 | [11.0.0+] LoadAndApplySettings |
ts
This is "nn::ts::server::IMeasurementServer".
[18.0.0+] This is "nn::ts::server::ITsManager".
Cmd | Name |
---|---|
0 | [1.0.0-16.1.0] GetTemperatureRange |
1 | [1.0.0-16.1.0] GetTemperature |
2 | [1.0.0-13.2.1] SetMeasurementMode |
3 | [1.0.0-13.2.1] GetTemperatureMilliC |
4 | [8.0.0+] OpenSession |
GetTemperatureRange
Takes an input u8 #Location. Returns two s32s MinimumTemperature and MaximumTemperature.
The returned temperature values are in Celsius.
GetTemperature
Takes an input u8 #Location. Returns an output s32.
The output is the temperature in Celsius.
SetMeasurementMode
Takes two input u8s #Location and MeasurementMode. No output.
GetTemperatureMilliC
Takes an input u8 #Location. Returns an output s32.
The output is the temperature in MilliC.
OpenSession
Takes an input DeviceCode. Returns an #ISession.
ISession
This is "nn::ts::server::ISession".
This was added with [8.0.0+].
Cmd | Name |
---|---|
0 | GetTemperatureRange |
1 | [8.0.0-13.2.1] |
2 | SetMeasurementMode |
3 | [8.0.0-13.2.1] |
4 | [10.0.0+] GetTemperature |
5 | [17.0.0+] SetAlertThreshold |
6 | [17.0.0+] SetThermThreshold |
7 | [17.0.0+] GetTemperatureWithError |
pcm
This is "nn::pcm::IManager".
[4.0.0+] This service was moved to nvdbgsvc and is only available to SDEV units.
Cmd | Name |
---|---|
0 | IsSupported |
1 | ReadCurrentPower |
2 | [4.0.0+] IsServiceEnabled |
3 | [4.0.0+] ReadCurrentVoltage |
apm:am
This is "nn::apm::IManager".
This was added with [8.0.0+] and replaces the old apm service.
Cmd | Name |
---|---|
0 | OpenSession |
1 | #GetPerformanceMode |
6 | [7.0.0+] #IsCpuOverclockEnabled |
OpenSession
No input. Returns an output #ISession.
GetPerformanceMode
No input. Returns an output #PerformanceMode.
IsCpuOverclockEnabled
No input. Returns an output bool.
apm:sys
This is "nn::apm::ISystemManager".
Cmd | Name |
---|---|
0 | #RequestPerformanceMode |
1 | #GetPerformanceEvent |
2 | #GetThrottlingState |
3 | #GetLastThrottlingState |
4 | #ClearLastThrottlingState |
5 | [5.0.0+] #LoadAndApplySettings |
6 | [7.0.0+] #SetCpuBoostMode |
7 | [7.0.0+] #GetCurrentPerformanceConfiguration |
8 | [17.0.0+] GetCurrentPerformanceMode |
RequestPerformanceMode
Takes an input #PerformanceMode. No output.
GetPerformanceEvent
Takes an input #EventTarget. Returns an Event handle with EventClearMode 0.
GetThrottlingState
No input. Returns an output #ThrottlingState.
GetLastThrottlingState
No input. Returns an output #ThrottlingState.
ClearLastThrottlingState
No input/output.
LoadAndApplySettings
No input/output.
SetCpuBoostMode
Takes an input #CpuBoostMode. No output.
GetCurrentPerformanceConfiguration
No input. Returns an output #PerformanceConfiguration (default value is 0x00020003).
ISession
This is "nn::apm::ISession".
Cmd | Name |
---|---|
0 | #SetPerformanceConfiguration |
1 | #GetPerformanceConfiguration |
2 | [8.0.0+] #SetCpuOverclockEnabled |
SetPerformanceConfiguration
Takes an input #PerformanceMode and an input #PerformanceConfiguration. No output.
GetPerformanceConfiguration
Takes an input #PerformanceMode. Returns an output #PerformanceConfiguration.
SetCpuOverclockEnabled
Takes an input bool. No output.
fgm, fgm:0, fgm:1, fgm:2, fgm:3, fgm:4, fgm:5, fgm:6, fgm:7, fgm:9
These are "nn::fgm::sf::ISession".
[19.0.0+] These are "nn::fgm::ISession".
Each service represents a different priority from 0 (Highest/Thermal) to 9 (Lowest). The "fgm" service represents priority 8 (Default).
[2.0.0+] Only "fgm", "fgm:0" and "fgm:9" are now valid.
Cmd | Name |
---|---|
0 | #Initialize |
Initialize
No input. Returns an output #IRequest.
IRequest
This is "nn::fgm::sf::IRequest".
[19.0.0+] This is "nn::fgm::IRequest".
Cmd | Name |
---|---|
0 | Initialize |
1 | Set |
2 | Get |
3 | Cancel |
Initialize
Takes a PID-descriptor, a ModuleId and a reserved input u64. Returns an Event handle with EventClearMode 0.
Set
Takes 2 u32s ClockRateMin and ClockRateMax. No output.
Get
No input. Returns an u32 ClockRateActual.
Cancel
No input/output.
fgm:dbg
This is "nn::fgm::sf::IDebugger".
This was removed with [17.0.0].
Cmd | Name |
---|---|
0 | Initialize |
1 | Read |
2 | Cancel |
Initialize
Takes the current process handle (0xFFFF8001) and an input u64 MemorySize. Returns an Event handle with EventClearMode 0.
Read
Takes a type-0x6 output buffer of DebugEntry. Returns three output s32s NumberReadOut, NumberLostOut and NumberRemainingOut.
Cancel
No input/output.
lbl
This is "nn::lbl::detail::ILblController".
[10.0.0+] This was moved from lbl.
[11.0.0+] this was moved into vi.
Cmd | Name |
---|---|
0 | SaveCurrentSetting |
1 | LoadCurrentSetting |
2 | SetCurrentBrightnessSetting |
3 | GetCurrentBrightnessSetting |
4 | ApplyCurrentBrightnessSettingToBacklight |
5 | GetBrightnessSettingAppliedToBacklight |
6 | SwitchBacklightOn |
7 | SwitchBacklightOff |
8 | GetBacklightSwitchStatus |
9 | EnableDimming |
10 | DisableDimming |
11 | IsDimmingEnabled |
12 | EnableAutoBrightnessControl |
13 | DisableAutoBrightnessControl |
14 | IsAutoBrightnessControlEnabled |
15 | SetAmbientLightSensorValue |
16 | GetAmbientLightSensorValue |
17 | SetBrightnessReflectionDelayLevel |
18 | GetBrightnessReflectionDelayLevel |
19 | SetCurrentBrightnessMapping |
20 | GetCurrentBrightnessMapping |
21 | SetCurrentAmbientLightSensorMapping |
22 | GetCurrentAmbientLightSensorMapping |
23 | [3.0.0+] IsAmbientLightSensorAvailable |
24 | [3.0.0+] SetCurrentBrightnessSettingForVrMode |
25 | [3.0.0+] GetCurrentBrightnessSettingForVrMode |
26 | [3.0.0+] EnableVrMode |
27 | [3.0.0+] DisableVrMode |
28 | [3.0.0+] IsVrModeEnabled |
29 | [7.0.0+] IsAutoBrightnessControlSupported |
FanName
This is "nn::fan::FanName".
Value | Name |
---|---|
0 | Unknown |
1 | Cpu |
ChargerType
This is "nn::psm::ChargerType".
Value | Name |
---|---|
0 | Unconnected |
1 | EnoughPower |
2 | LowPower |
3 | NotSupported |
Vdd50State
This is "nn::psm::Vdd50State".
Value | Name |
---|---|
0 | Unknown |
1 | Vdd50AOffVdd50BOff |
2 | Vdd50AOnVdd50BOff |
3 | Vdd50AOffVdd50BOn |
BatteryVoltageState
This is "nn::psm::BatteryVoltageState".
Value | Name |
---|---|
0 | ShutdownRequired |
1 | SleepRequired |
2 | BoostPerformanceModeProhibited |
3 | Good |
BatteryChargeInfoFields
This is "nn::psm::BatteryChargeInfoFields". This is a 0x40-byte struct.
[17.0.0+] This is a 0x54-byte struct.
Offset | Size | Description |
---|---|---|
0x00 | 0x4 | InputCurrentLimit (input/sink current limit in mA) |
0x04 | 0x4 | BoostModeCurrentLimit (output/source/vbus/OTG current limit in mA) |
0x08 | 0x4 | FastChargeCurrentLimit (battery charging current limit in mA) |
0x0C | 0x4 | ChargeVoltageLimit (battery charging voltage limit in mV) |
0x10 | 0x4 | ChargerType |
0x14 | 0x1 | HiZMode |
0x15 | 0x1 | BatteryCharging |
0x16 | 0x2 | Reserved |
0x18 | 0x4 | Vdd50State |
0x1C | 0x4 | TemperatureCelsius (battery temperature in milli C) |
0x20 | 0x4 | BatteryChargePercentage (capacity now per cent-mille, i.e. 100% = 100000 pcm) |
0x24 | 0x4 | BatteryChargeMilliVoltage (voltage avg in mV) |
0x28 | 0x4 | BatteryAgePercentage (battery age capacity full/capacity design per cent-mille, i.e. 100% = 100000 pcm) |
0x2C | 0x4 | UsbPowerRole |
0x30 | 0x4 | UsbChargerType |
0x34 | 0x4 | ChargerInputVoltageLimit (charger voltage limit in mV) |
0x38 | 0x4 | ChargerInputCurrentLimit (charger current limit in mA) |
0x3C | 0x1 | FastBatteryCharging |
0x3D | 0x1 | ControllerPowerSupply |
0x3E | 0x1 | OtgRequest |
0x3F | 0x1 | Reserved |
0x40 | 0x14 | [17.0.0+] |
ChargerType
Value | Name |
---|---|
0 | ChargeDisable |
1 | ChargeBattery |
2 | Otg |
HiZMode
Value | Name |
---|---|
0 | Disable |
1 | Enable |
BatteryCharging
Value | Name |
---|---|
0 | Disable |
1 | Enable |
FastBatteryCharging
Value | Name |
---|---|
0 | Disable |
1 | Enable |
ControllerPowerSupply
Value | Name |
---|---|
0 | Disable |
1 | Enable |
OtgRequest
Value | Name |
---|---|
0 | Disable |
1 | Enable |
Location
Value | Name | DeviceCode |
---|---|---|
0 | Internal | 0x41000001 |
1 | External | 0x41000002 |
CpuBoostMode
This is "nn::apm::CpuBoostMode".
Value | Description |
---|---|
0 | Disabled. |
1 | Boost CPU. Additionally, throttle GPU to minimum.
Use performance configurations 0x92220009 and 0x9222000A, or 0x9222000B and 0x9222000C. |
2 | Conserve power. Only throttle GPU to minimum.
Use performance configurations 0x9222000B and 0x9222000C. |
PerformanceMode
This is "nn::apm::PerformanceMode".
Value | Description |
---|---|
-1 | Invalid |
0 | Normal |
1 | Boost |
PerformanceConfiguration
This is "nn::apm::PerformanceConfiguration".
Value | Description | CPU clock (MHz) | GPU clock (MHz) | Memory clock (MHz) |
---|---|---|---|---|
0x00000000 | Invalid | 0 | 0 | 0 |
0x00010000 | Cpu1020MhzGpu384Mhz | 1020.0 | 384.0 | 1600.0 |
0x00010001 | Cpu1020MhzGpu768Mhz | 1020.0 | 768.0 | 1600.0 |
0x00010002 | Cpu1224MhzGpu691Mhz | 1224.0 | 691.2 | 1600.0 |
0x00020000 | Cpu1020MhzGpu230Mhz | 1020.0 | 230.4 | 1600.0 |
0x00020001 | Cpu1020MhzGpu307Mhz | 1020.0 | 307.2 | 1600.0 |
0x00020002 | Cpu1224MhzGpu230Mhz | 1224.0 | 230.4 | 1600.0 |
0x00020003 | Cpu1020MhzGpu307MhzEmc1331Mhz | 1020.0 | 307.2 | 1331.2 |
0x00020004 | Cpu1020MhzGpu384MhzEmc1331Mhz | 1020.0 | 384.0 | 1331.2 |
0x00020005 | Cpu1020MhzGpu307MhzEmc1065Mhz | 1020.0 | 307.2 | 1065.6 |
0x00020006 | Cpu1020MhzGpu384MhzEmc1065Mhz | 1020.0 | 384.0 | 1065.6 |
0x92220007 | Cpu1020MhzGpu460MhzEmc1600Mhz | 1020.0 | 460.8 | 1600.0 |
0x92220008 | Cpu1020MhzGpu460MhzEmc1331Mhz | 1020.0 | 460.8 | 1331.2 |
[7.0.0+] 0x92220009 | Cpu1785MhzGpu76MhzEmc1600Mhz | 1785.0 | 76.8 | 1600.0 |
[7.0.0+] 0x9222000A | Cpu1785MhzGpu76MhzEmc1331Mhz | 1785.0 | 76.8 | 1331.2 |
[7.0.0+] 0x9222000B | Cpu1020MhzGpu76MhzEmc1600Mhz | 1020.0 | 76.8 | 1600.0 |
[7.0.0+] 0x9222000C | Cpu1020MhzGpu76MhzEmc1331Mhz | 1020.0 | 76.8 | 1331.2 |
Configurations 0x10001 and 0x20000 are only available while docked. Configurations 0x10002 and 0x20002 are only available for SDEV units.
EventTarget
This is "nn::apm::EventTarget".
Value | Description |
---|---|
0 | PerformanceModeChanged |
1 | SleepRequiredByLowVoltage |
2 | [7.0.0+] PerformanceConfigurationChanged |
ThrottlingState
This is "nn::apm::ThrottlingState".
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | DurationNanoSeconds |
0x8 | 0x4 | ThrottlingRateCpuDividend |
0xC | 0x4 | ThrottlingRateCpuDivisor |
0x10 | 0x4 | ThrottlingRateGpuDividend |
0x14 | 0x4 | ThrottlingRateGpuDivisor |
0x18 | 0x4 | ThrottleStatus |
0x1C | 0x4 | CpuPSkipStatus |
0x20 | 0x4 | GpuPSkipStatus |
0x24 | 0x1 | Enabled |
0x25 | 0x1 | Invoked |
0x26 | 0x2 | Reserved |
Module
This is "nn::fgm::Module".
Name | Block |
---|---|
0 | Cpu |
1 | Gpu |
2 | Emc |
3 | SysBus |
4 | Mselect |
5 | Nvdec |
6 | Nvenc |
7 | Nvjpg |
8 | Test |
EventId
This is "nn::fgm::EventId".
Name | Block |
---|---|
0 | Set |
1 | Unset |
2 | Completion |
DebugEntry
This is "nn::fgm::DebugEntry".
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | EventId |
0x4 | 0x4 | ModuleId |
0x8 | 0x8 | Timestamp |
0x10 | 0x40 | RequestEntry (EventId = Set), empty (EventId = Unset) or CompletionEntry (EventId = Completion) |
RequestEntry
This is "nn::fgm::RequestEntry".
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | ProcessId |
0x8 | 0x4 | Priority |
0xC | 0x4 | ClockRateMin |
0x10 | 0x4 | ClockRateMax |
0x14 | 0x2C | Reserved |
CompletionEntry
This is "nn::fgm::CompletionEntry".
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | ClockRateMin |
0x4 | 0x4 | ClockRateMax |
0x8 | 0x4 | ClockRateActual |
0xC | 0x34 | Reserved |
AccessMode
This is "nn::ddsf::AccessMode".
Name | Block |
---|---|
0 | None |
1 | Read |
2 | Write |
3 | ReadWrite |
4 | Shared |
5 | WriteShared |
6 | ReadWriteShared |