Line 8: |
Line 8: |
| | 0 || [[#OpenController]] | | | 0 || [[#OpenController]] |
| |- | | |- |
− | | 1 || [16.0.0+] | + | | 1 || [16.0.0+] GetRpm |
| |} | | |} |
| | | |
| == OpenController == | | == OpenController == |
− | Takes an input u32. Returns an output [[#IController]]. | + | 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 == | | == IController == |
Line 21: |
Line 23: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || SetRotationSpeedLevel | + | | 0 || [[#SetRotationSpeedLevel]] |
| |- | | |- |
− | | 1 || SetRotationSpeedLevelByDiff | + | | 1 || [7.0.0+] [[#GetRotationSpeedLevel]] ([1.0.0-6.2.0] [[#SetRotationSpeedLevelByDiff]]) |
| |- | | |- |
− | | 2 || GetRotationSpeedLevel | + | | 2 || [7.0.0+] [[#GetActualRotationSpeedLevel]] ([1.0.0-6.2.0] [[#GetRotationSpeedLevel]]) |
| |- | | |- |
− | | 3 || SetRotationRate | + | | 3 || [7.0.0+] [[#EnableFan]] ([1.0.0-6.2.0] [[#SetRotationRate]]) |
| |- | | |- |
− | | 4 || GetRotationRate | + | | 4 || [7.0.0+] [[#DisableFan]] ([1.0.0-6.2.0] [[#GetRotationRate]]) |
| |- | | |- |
− | | 5 || [1.0.0-6.2.0] EnableFan | + | | 5 || [1.0.0-6.2.0] [[#EnableFan]] |
| |- | | |- |
− | | 6 || [1.0.0-6.2.0] DisableFan | + | | 6 || [1.0.0-6.2.0] [[#DisableFan]] |
| |- | | |- |
− | | 7 || [1.0.0-6.2.0] GetActualRotationSpeedLevel | + | | 7 || [1.0.0-6.2.0] [[#GetActualRotationSpeedLevel]] |
| |} | | |} |
| | | |
− | [7.0.0+] SetRotationSpeedLevelByDiff/SetRotationRate no longer takes any input. GetRotationRate no longer returns output. These were presumably replaced with new cmds?
| + | === 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 61: |
Line 85: |
| | 6 || [[#ReleaseControllerPowerSupply|ReleaseControllerPowerSupply]] | | | 6 || [[#ReleaseControllerPowerSupply|ReleaseControllerPowerSupply]] |
| |- | | |- |
− | | 7 || [[#OpenSession_1|OpenSession]] | + | | 7 || [[#OpenSession|OpenSession]] |
| |- | | |- |
| | 8 || [[#EnableEnoughPowerChargeEmulation|EnableEnoughPowerChargeEmulation]] | | | 8 || [[#EnableEnoughPowerChargeEmulation|EnableEnoughPowerChargeEmulation]] |
Line 84: |
Line 108: |
| |- | | |- |
| | 18 || [3.0.0+] [[#GetBatteryChargeCalibratedEvent|GetBatteryChargeCalibratedEvent]] | | | 18 || [3.0.0+] [[#GetBatteryChargeCalibratedEvent|GetBatteryChargeCalibratedEvent]] |
| + | |- |
| + | | 19 || [18.0.0+] |
| + | |- |
| + | | 20 || [18.0.0+] |
| |} | | |} |
| | | |
Line 132: |
Line 160: |
| | | |
| == GetBatteryAgePercentage == | | == GetBatteryAgePercentage == |
− | No input. returns an output double. | + | No input. Returns an output double. |
| | | |
| == GetBatteryChargeInfoEvent == | | == GetBatteryChargeInfoEvent == |
− | No input. returns an output Event handle. | + | No input. Returns an output Event handle. |
| | | |
| == GetBatteryChargeInfoFields == | | == GetBatteryChargeInfoFields == |
Line 141: |
Line 169: |
| | | |
| == GetBatteryChargeCalibratedEvent == | | == GetBatteryChargeCalibratedEvent == |
− | No input. returns an output Event handle. | + | No input. Returns an output Event handle. |
| | | |
| == IPsmSession == | | == IPsmSession == |
Line 206: |
Line 234: |
| | | |
| Takes an input [[#Vdd50State]]. No output. | | 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 || |
| + | |- |
| + | | 1 || |
| + | |- |
| + | | 2 || |
| + | |- |
| + | | 3 || |
| + | |- |
| + | | 4 || |
| + | |- |
| + | | 5 || |
| + | |- |
| + | | 6 || |
| + | |- |
| + | | 7 || |
| + | |- |
| + | | 8 || |
| + | |- |
| + | | 9 || |
| + | |- |
| + | | 10 || |
| + | |- |
| + | | 11 || |
| + | |- |
| + | | 12 || |
| + | |- |
| + | | 13 || |
| + | |- |
| + | | 14 || |
| + | |- |
| + | | 15 || |
| + | |- |
| + | | 16 || |
| + | |- |
| + | | 17 || GetHiZ |
| + | |- |
| + | | 18 || SetHiZ |
| + | |- |
| + | | 19 || GetAverageChargeCurrentInMilliAmpere |
| + | |- |
| + | | 20 || |
| + | |- |
| + | | 21 || |
| + | |- |
| + | | 22 || |
| + | |- |
| + | | 23 || |
| + | |- |
| + | | 24 || |
| + | |- |
| + | | 25 || |
| + | |- |
| + | | 26 || |
| + | |- |
| + | | 27 || |
| + | |- |
| + | | 28 || |
| + | |- |
| + | | 29 || |
| + | |- |
| + | | 30 || |
| + | |- |
| + | | 31 || |
| + | |- |
| + | | 32 || |
| + | |- |
| + | | 33 || |
| + | |- |
| + | | 34 || |
| + | |- |
| + | | 35 || |
| + | |- |
| + | | 36 || |
| + | |- |
| + | | 37 || |
| + | |- |
| + | | 38 || |
| + | |- |
| + | | 39 || |
| + | |- |
| + | | 40 || GetAverageBatteryVoltageInMilliVolt |
| + | |- |
| + | | 41 || |
| + | |- |
| + | | 42 || |
| + | |- |
| + | | 43 || |
| + | |- |
| + | | 44 || |
| + | |- |
| + | | 45 || |
| + | |- |
| + | | 46 || |
| + | |- |
| + | | 47 || |
| + | |- |
| + | | 48 || |
| + | |- |
| + | | 49 || |
| + | |- |
| + | | 50 || |
| + | |- |
| + | | 51 || |
| + | |- |
| + | | 52 || |
| + | |- |
| + | | 53 || |
| + | |- |
| + | | 54 || |
| + | |- |
| + | | 55 || |
| + | |- |
| + | | 56 || |
| + | |} |
| | | |
| = tc = | | = tc = |
Line 214: |
Line 379: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || SetOperatingMode | + | | 0 || SetOperationMode |
| |- | | |- |
| | 1 || [1.0.0-10.2.0] GetThermalEvent | | | 1 || [1.0.0-10.2.0] GetThermalEvent |
Line 244: |
Line 409: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#GetTemperatureRange|GetTemperatureRange]] | + | | 0 || [1.0.0-16.1.0] [[#GetTemperatureRange|GetTemperatureRange]] |
| |- | | |- |
− | | 1 || [[#GetTemperature|GetTemperature]] | + | | 1 || [1.0.0-16.1.0] [[#GetTemperature|GetTemperature]] |
| |- | | |- |
| | 2 || [1.0.0-13.2.1] [[#SetMeasurementMode|SetMeasurementMode]] | | | 2 || [1.0.0-13.2.1] [[#SetMeasurementMode|SetMeasurementMode]] |
Line 256: |
Line 421: |
| | | |
| == GetTemperatureRange == | | == GetTemperatureRange == |
− | Takes an u8 [[#Location]] and returns an s32 minimum temperature + s32 maximum temperature. | + | Takes an input u8 [[#Location]]. Returns two s32s '''MinimumTemperature''' and '''MaximumTemperature'''. |
| | | |
| The returned temperature values are in Celsius. | | The returned temperature values are in Celsius. |
| | | |
| == GetTemperature == | | == GetTemperature == |
− | Takes an u8 [[#Location]] and returns an output s32. | + | Takes an input u8 [[#Location]]. Returns an output s32. |
| | | |
| The output is the temperature in Celsius. | | The output is the temperature in Celsius. |
| | | |
| == SetMeasurementMode == | | == SetMeasurementMode == |
− | Takes an u8 [[#Location]] and an u8 MeasurementMode, no output. | + | Takes two input u8s [[#Location]] and '''MeasurementMode'''. No output. |
| | | |
| == GetTemperatureMilliC == | | == GetTemperatureMilliC == |
− | Takes an u8 [[#Location]] and returns an output s32. | + | Takes an input u8 [[#Location]]. Returns an output s32. |
| | | |
| The output is the temperature in MilliC. | | The output is the temperature in MilliC. |
| | | |
| == OpenSession == | | == OpenSession == |
− | Takes a total of 4-bytes of input. Returns an [[#ISession]]. | + | Takes an input [[#Location|DeviceCode]]. Returns an [[#ISession]]. |
| | | |
| == ISession == | | == ISession == |
Line 285: |
Line 450: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || | + | | 0 || GetTemperatureRange |
| |- | | |- |
| | 1 || [8.0.0-13.2.1] | | | 1 || [8.0.0-13.2.1] |
| |- | | |- |
− | | 2 || | + | | 2 || SetMeasurementMode |
| |- | | |- |
| | 3 || [8.0.0-13.2.1] | | | 3 || [8.0.0-13.2.1] |
| |- | | |- |
− | | 4 || [10.0.0+] | + | | 4 || [10.0.0+] GetTemperature |
| + | |- |
| + | | 5 || [17.0.0+] SetAlertThreshold |
| + | |- |
| + | | 6 || [17.0.0+] SetThermThreshold |
| + | |- |
| + | | 7 || [17.0.0+] GetTemperatureWithError |
| |} | | |} |
| | | |
Line 323: |
Line 494: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#OpenSession]] | + | | 0 || [[#OpenSession_4|OpenSession]] |
| |- | | |- |
| | 1 || [[#GetPerformanceMode]] | | | 1 || [[#GetPerformanceMode]] |
Line 361: |
Line 532: |
| |- | | |- |
| | 7 || [7.0.0+] [[#GetCurrentPerformanceConfiguration]] | | | 7 || [7.0.0+] [[#GetCurrentPerformanceConfiguration]] |
| + | |- |
| + | | 8 || [17.0.0+] GetCurrentPerformanceMode |
| |} | | |} |
| | | |
Line 457: |
Line 630: |
| = fgm:dbg = | | = fgm:dbg = |
| This is "nn::fgm::sf::IDebugger". | | This is "nn::fgm::sf::IDebugger". |
| + | |
| + | This was removed with [17.0.0]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 548: |
Line 723: |
| |- | | |- |
| | 29 || [7.0.0+] IsAutoBrightnessControlSupported | | | 29 || [7.0.0+] IsAutoBrightnessControlSupported |
| + | |} |
| + | |
| + | = FanName= |
| + | This is "nn::fan::FanName". |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Value || Name |
| + | |- |
| + | | 0 || Unknown |
| + | |- |
| + | | 1 || Cpu |
| |} | | |} |
| | | |
Line 599: |
Line 786: |
| | | |
| = BatteryChargeInfoFields = | | = BatteryChargeInfoFields = |
− | This is a 0x40-byte struct. | + | This is "nn::psm::BatteryChargeInfoFields". This is a 0x40-byte struct. |
| + | |
| + | [17.0.0+] This is a 0x54-byte struct. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 636: |
Line 825: |
| |- | | |- |
| | 0x3C || 0x4 || Bit field (bit0: potentially no hub, bit8: Joy-con charging, bit12: OTG) | | | 0x3C || 0x4 || Bit field (bit0: potentially no hub, bit8: Joy-con charging, bit12: OTG) |
| + | |- |
| + | | 0x40 || 0x14 || |
| |} | | |} |
| | | |
Line 667: |
Line 858: |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Value || Name | + | ! Value || Name || DeviceCode |
| |- | | |- |
− | | 0 || Internal | + | | 0 || Internal || 0x41000001 |
| |- | | |- |
− | | 1 || External | + | | 1 || External || 0x41000002 |
| |} | | |} |
| | | |
Line 758: |
Line 949: |
| |- | | |- |
| | 1 || SleepRequiredByLowVoltage | | | 1 || SleepRequiredByLowVoltage |
| + | |- |
| + | | 2 || [7.0.0+] PerformanceConfigurationChanged |
| |} | | |} |
| | | |
Line 880: |
Line 1,073: |
| |} | | |} |
| | | |
− | = Settings = | + | = AccessMode = |
| + | This is "nn::ddsf::AccessMode". |
| + | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
| |- | | |- |
− | ! Key || Size || Notes | + | ! Name || Block |
− | |-
| |
− | | background_download_stress_testing_storage || strlen || "sdcard", "builtin", "system".
| |
− | |-
| |
− | | battery_draining_enabled || 1 || ?
| |
− | |-
| |
− | | fs_access_log_mode || strlen || "log", "sdcard", "log+sdcard", "off".
| |
− | |-
| |
− | | fs_speed_emulation_mode || strlen || "faster", "slower", "random", "off".
| |
− | |-
| |
− | | host_romfs_redirection_target || strlen || "builtin", "off".
| |
− | |-
| |
− | | idle_time_detect_mode || strlen || "on", "off".
| |
− | |-
| |
− | | initial_tick_value || strlen || "7days", "14days", "30days", "90days", "hex": ?.
| |
− | |-
| |
− | | memory_mode || strlen || "auto", "4GB", "6GB".
| |
− | |-
| |
− | | needs_update_vulnerability_policy || strlen || "default": ?, "force_true": ?, "force_false": ?.
| |
− | |-
| |
− | | operation_mode_policy || strlen || "auto": ?, "handheld", "console".
| |
− | |-
| |
− | | performance_mode_policy || strlen || "auto": use boost mode when docked. "normal": never use boost mode. "boost": always use boost mode (SDEV only).
| |
| |- | | |- |
− | | screenshot_target || strlen || "screenshot": ?, "physical": ?. | + | | 0 || None |
| |- | | |- |
− | | sdev_cpu_overclock_enabled || 1 || SDEV only. Used to allow access to 1224MHz CPU mode.
| + | | 1 || Read |
| |- | | |- |
− | | sdev_throttling_additional_delay_us || 4 || SDEV only. | + | | 2 || Write |
| |- | | |- |
− | | sdev_throttling_additional_delay_enabled || 1 || SDEV only. | + | | 3 || ReadWrite |
| |- | | |- |
− | | sleep_mode || strlen || "default": ?, "pseudo": ?. | + | | 4 || Shared |
| |- | | |- |
− | | throttling_for_smpd_enabled || 1 || Not used as of 3.0. | + | | 5 || WriteShared |
| |- | | |- |
− | | throttling_for_undock_enabled || 1 || Not used as of 3.0. | + | | 6 || ReadWriteShared |
| |} | | |} |
| | | |
| [[Category:Services]] | | [[Category:Services]] |