libnx v4.12.0
Loading...
Searching...
No Matches
Data Structures | Enumerations | Functions
psm.h File Reference

PSM service IPC wrapper. More...

#include "../types.h"
#include "../sf/service.h"
#include "../kernel/event.h"

Go to the source code of this file.

Data Structures

struct  PsmBatteryChargeInfoFieldsOld
 BatteryChargeInfoFieldsOld [1.0.0-16.1.0]. More...
 
struct  PsmBatteryChargeInfoFields
 BatteryChargeInfoFields [17.0.0+]. More...
 
struct  PsmSession
 IPsmSession. More...
 

Enumerations

enum  PsmChargerType {
  PsmChargerType_Unconnected = 0 ,
  PsmChargerType_EnoughPower = 1 ,
  PsmChargerType_LowPower = 2 ,
  PsmChargerType_NotSupported = 3
}
 ChargerType. More...
 
enum  PsmVdd50State {
  PsmVdd50State_Unknown = 0 ,
  PsmVdd50State_Vdd50AOffVdd50BOff = 1 ,
  PsmVdd50State_Vdd50AOnVdd50BOff = 2 ,
  PsmVdd50State_Vdd50AOffVdd50BOn = 3
}
 Vdd50State.
 
enum  PsmBatteryVoltageState {
  PsmBatteryVoltageState_NeedsShutdown = 0 ,
  PsmBatteryVoltageState_NeedsSleep = 1 ,
  PsmBatteryVoltageState_NoPerformanceBoost = 2 ,
  PsmBatteryVoltageState_Normal = 3
}
 BatteryVoltageState. More...
 

Functions

Result psmInitialize (void)
 Initialize psm.
 
void psmExit (void)
 Exit psm.
 
ServicepsmGetServiceSession (void)
 Gets the Service object for the actual psm service session.
 
Result psmGetBatteryChargePercentage (u32 *out)
 GetBatteryChargePercentage.
 
Result psmGetChargerType (PsmChargerType *out)
 GetChargerType.
 
Result psmEnableBatteryCharging (void)
 EnableBatteryCharging.
 
Result psmDisableBatteryCharging (void)
 DisableBatteryCharging.
 
Result psmIsBatteryChargingEnabled (bool *out)
 IsBatteryChargingEnabled.
 
Result psmAcquireControllerPowerSupply (void)
 AcquireControllerPowerSupply.
 
Result psmReleaseControllerPowerSupply (void)
 ReleaseControllerPowerSupply.
 
Result psmEnableEnoughPowerChargeEmulation (void)
 EnableEnoughPowerChargeEmulation.
 
Result psmDisableEnoughPowerChargeEmulation (void)
 DisableEnoughPowerChargeEmulation.
 
Result psmEnableFastBatteryCharging (void)
 EnableFastBatteryCharging.
 
Result psmDisableFastBatteryCharging (void)
 DisableFastBatteryCharging.
 
Result psmGetBatteryVoltageState (PsmBatteryVoltageState *out)
 GetBatteryVoltageState.
 
Result psmGetRawBatteryChargePercentage (double *out)
 GetRawBatteryChargePercentage.
 
Result psmIsEnoughPowerSupplied (bool *out)
 IsEnoughPowerSupplied.
 
Result psmGetBatteryAgePercentage (double *out)
 GetBatteryAgePercentage.
 
Result psmGetBatteryChargeInfoEvent (Event *out_event, bool autoclear)
 GetBatteryChargeInfoEvent.
 
Result psmGetBatteryChargeInfoFields (PsmBatteryChargeInfoFields *out_fields)
 GetBatteryChargeInfoFields.
 
Result psmGetBatteryChargeCalibratedEvent (Event *out_event, bool autoclear)
 GetBatteryChargeCalibratedEvent.
 
Result psmBindStateChangeEvent (PsmSession *s, bool ChargerType, bool PowerSupply, bool BatteryVoltage)
 Wrapper func which opens a PsmSession and handles event setup.
 
Result psmWaitStateChangeEvent (PsmSession *s, u64 timeout)
 Wait on the Event setup by psmBindStateChangeEvent.
 
Result psmUnbindStateChangeEvent (PsmSession *s)
 Cleanup version of psmBindStateChangeEvent. Must be called by the user once the PsmSession is done being used.
 

Detailed Description

PSM service IPC wrapper.

Author
XorTroll, endrift, and yellows8

Enumeration Type Documentation

◆ PsmBatteryVoltageState

BatteryVoltageState.

Enumerator
PsmBatteryVoltageState_NeedsShutdown 

Power state should transition to shutdown.

PsmBatteryVoltageState_NeedsSleep 

Power state should transition to sleep.

PsmBatteryVoltageState_NoPerformanceBoost 

Performance boost modes cannot be entered.

PsmBatteryVoltageState_Normal 

Everything is normal.

◆ PsmChargerType

ChargerType.

Enumerator
PsmChargerType_Unconnected 

No charger.

PsmChargerType_EnoughPower 

Full supported power.

PsmChargerType_LowPower 

Lower power supported USB-PD mode.

PsmChargerType_NotSupported 

No common supported USB-PD modes.

Function Documentation

◆ psmBindStateChangeEvent()

Result psmBindStateChangeEvent ( PsmSession s,
bool  ChargerType,
bool  PowerSupply,
bool  BatteryVoltage 
)

Wrapper func which opens a PsmSession and handles event setup.

Note
Uses the actual BindStateChangeEvent cmd internally.
The event is not signalled on BatteryChargePercentage changes.
Parameters
[out]sPsmSession object.
[in]ChargerTypePassed to SetChargerTypeChangeEventEnabled.
[in]PowerSupplyPassed to SetPowerSupplyChangeEventEnabled.
[in]BatteryVoltagePassed to SetBatteryVoltageStateChangeEventEnabled.

◆ psmGetBatteryAgePercentage()

Result psmGetBatteryAgePercentage ( double *  out)

GetBatteryAgePercentage.

Parameters
[out]outBattery age percentage.

◆ psmGetBatteryChargeCalibratedEvent()

Result psmGetBatteryChargeCalibratedEvent ( Event out_event,
bool  autoclear 
)

GetBatteryChargeCalibratedEvent.

Note
Only available on [3.0.0+].
Parameters
[out]out_eventEvent object.
[in]autoclearEvent autoclear.

◆ psmGetBatteryChargeInfoEvent()

Result psmGetBatteryChargeInfoEvent ( Event out_event,
bool  autoclear 
)

GetBatteryChargeInfoEvent.

Parameters
[out]out_eventEvent object.
[in]autoclearEvent autoclear.

◆ psmGetBatteryChargeInfoFields()

Result psmGetBatteryChargeInfoFields ( PsmBatteryChargeInfoFields out_fields)

GetBatteryChargeInfoFields.

Parameters
[out]out_fieldsPsmBatteryChargeInfoFields

◆ psmGetBatteryChargePercentage()

Result psmGetBatteryChargePercentage ( u32 out)

GetBatteryChargePercentage.

Parameters
[out]outBattery charge percentage.

◆ psmGetBatteryVoltageState()

Result psmGetBatteryVoltageState ( PsmBatteryVoltageState out)

GetBatteryVoltageState.

Parameters
[out]outPsmBatteryVoltageState

◆ psmGetChargerType()

Result psmGetChargerType ( PsmChargerType out)

GetChargerType.

Parameters
[out]outPsmChargerType

◆ psmGetRawBatteryChargePercentage()

Result psmGetRawBatteryChargePercentage ( double *  out)

GetRawBatteryChargePercentage.

Parameters
[out]outRaw battery charge percentage.

◆ psmIsBatteryChargingEnabled()

Result psmIsBatteryChargingEnabled ( bool *  out)

IsBatteryChargingEnabled.

Parameters
[out]outOutput flag.

◆ psmIsEnoughPowerSupplied()

Result psmIsEnoughPowerSupplied ( bool *  out)

IsEnoughPowerSupplied.

Parameters
[out]outOutput flag.