fan

This is "nn::fan::detail::IManager".

Cmd Name
0 OpenController

IController

This is "nn::fan::detail::IController".

Cmd Name
0 SetRotationSpeedLevel
1 SetRotationSpeedLevelByDiff
2 GetRotationSpeedLevel
3 SetRotationRate
4 GetRotationRate
[1.0.0-6.2.0] 5 EnableFan
[1.0.0-6.2.0] 6 DisableFan
[1.0.0-6.2.0] 7 GetActualRotationSpeedLevel

[7.0.0+] SetRotationSpeedLevelByDiff/SetRotationRate no longer takes any input. GetRotationRate no longer returns output. These were presumably replaced with new cmds?

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+]

GetBatteryChargePercentage

No input, returns an output u32.

GetChargerType

No input, returns an output u32.

EnableBatteryCharging

No input/output.

DisableBatteryCharging

No input/output.

IsBatteryChargingEnabled

No input, returns an output u8.

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 u32.

GetRawBatteryChargePercentage

No input, returns an output u64.

IsEnoughPowerSupplied

No input, returns an output u8.

GetBatteryAgePercentage

No input, returns an output u64.

GetBatteryChargeInfoEvent

No input, returns an output event.

GetBatteryChargeInfoFields

No input, returns an output 0x40-byte struct.

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 with autoclear disabled.

UnbindStateChangeEvent

No input/output.

SetChargerTypeChangeEventEnabled

Takes an input u8 bool, no output.

SetPowerSupplyChangeEventEnabled

Takes an input u8 bool, no output.

SetBatteryVoltageStateChangeEventEnabled

Takes an input u8 bool, no output.

tc

This is "nn::tc::IManager".

Cmd Name
0 SetOperatingMode
1 GetThermalEvent
2
3
4
5
6
7
8

ts

This is "nn::ts::server::IMeasurementServer".

Cmd Name
0
1
2
3
4 [8.0.0+] ? (Takes a total of 4-bytes of input, returns an #IUnknown0)

IUnknown0

Added with [8.0.0+].

Cmd Name
0
1
2
3

pcm

This is "nn::pcm::IManager".

Cmd Name
0 IsSupported
1 ReadCurrentPower