Snapdragon® Telematics Application Framework (TelAF) Interface Specification
taf_pm_common.h File Reference
#include "legato.h"

Go to the source code of this file.

Macros

#define IFGEN_TAF_PM_PROTOCOL_ID   "11fc3c7788db78006a1a65f8c66f03ba"
 
#define IFGEN_TAF_PM_MSG_SIZE   48
 
#define TAF_PM_TAG_LEN   31
 
#define TAF_PM_TAG_LEN_BYTES   32
 
#define TAF_PM_MACHINE_NAME_LEN   32
 
#define TAF_PM_REF_COUNT   1
 

Typedefs

typedef struct taf_pm_PowerState * taf_pm_PowerStateRef_t
 
typedef struct taf_pm_StateChangeHandler * taf_pm_StateChangeHandlerRef_t
 
typedef struct taf_pm_StateChangeExHandler * taf_pm_StateChangeExHandlerRef_t
 
typedef struct taf_pm_WakeupSource * taf_pm_WakeupSourceRef_t
 
typedef struct taf_pm_VMList * taf_pm_VMListRef_t
 
typedef void(* taf_pm_StateChangeHandlerFunc_t) (taf_pm_State_t state, void *contextPtr)
 
typedef void(* taf_pm_StateChangeExHandlerFunc_t) (taf_pm_PowerStateRef_t powerStateRef, taf_pm_NadVm_t vm, taf_pm_State_t state, void *contextPtr)
 

Enumerations

enum  taf_pm_State_t {
  TAF_PM_STATE_UNKNOWN = 0, TAF_PM_STATE_RESUME = 1, TAF_PM_STATE_SUSPEND = 2, TAF_PM_STATE_SHUTDOWN = 3,
  TAF_PM_STATE_ALL_ACKED = 4, TAF_PM_STATE_ALL_WAKELOCKS_RELEASED = 5
}
 
enum  taf_pm_Status_t { TAF_PM_SUCCESS = 0, TAF_PM_FAILED = 1, TAF_PM_EXPIRED = 2 }
 
enum  taf_pm_NadVm_t { TAF_PM_PVM = 0 }
 
enum  taf_pm_ClientAck_t { TAF_PM_READY = 0, TAF_PM_NOT_READY = 1 }
 

Functions

LE_SHARED bool ifgen_taf_pm_HasLocalBinding (void)
 
LE_SHARED void ifgen_taf_pm_InitCommonData (void)
 
LE_SHARED void ifgen_taf_pm_CleanupCommonData (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_pm_OpenSession (le_msg_SessionRef_t _ifgen_sessionRef, bool isBlocking)
 
LE_SHARED taf_pm_StateChangeHandlerRef_t ifgen_taf_pm_AddStateChangeHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_StateChangeHandlerFunc_t handlerPtr, void *contextPtr)
 
LE_SHARED void ifgen_taf_pm_RemoveStateChangeHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_StateChangeHandlerRef_t handlerRef)
 
LE_SHARED taf_pm_StateChangeExHandlerRef_t ifgen_taf_pm_AddStateChangeExHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_StateChangeExHandlerFunc_t handlerPtr, void *contextPtr)
 
LE_SHARED void ifgen_taf_pm_RemoveStateChangeExHandler (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_StateChangeExHandlerRef_t handlerRef)
 
LE_SHARED taf_pm_WakeupSourceRef_t ifgen_taf_pm_NewWakeupSource (le_msg_SessionRef_t _ifgen_sessionRef, uint32_t createOpts, const char *LE_NONNULL wsTag)
 
LE_SHARED le_result_t ifgen_taf_pm_StayAwake (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_WakeupSourceRef_t wsRef)
 
LE_SHARED le_result_t ifgen_taf_pm_Relax (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_WakeupSourceRef_t wsRef)
 
LE_SHARED taf_pm_State_t ifgen_taf_pm_GetPowerState (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_pm_SetAllVMPowerState (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_State_t state)
 
LE_SHARED le_result_t ifgen_taf_pm_SetVMPowerState (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_State_t state, const char *LE_NONNULL machineName)
 
LE_SHARED taf_pm_VMListRef_t ifgen_taf_pm_GetMachineList (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_taf_pm_GetFirstMachineName (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_VMListRef_t vmListRef, char *name, size_t nameSize)
 
LE_SHARED le_result_t ifgen_taf_pm_GetNextMachineName (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_VMListRef_t vmListRef, char *name, size_t nameSize)
 
LE_SHARED le_result_t ifgen_taf_pm_DeleteMachineList (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_VMListRef_t vmLsitRef)
 
LE_SHARED void ifgen_taf_pm_SendStateChangeAck (le_msg_SessionRef_t _ifgen_sessionRef, taf_pm_PowerStateRef_t powerStateRef, taf_pm_State_t state, taf_pm_NadVm_t vm, taf_pm_ClientAck_t ack)
 

Macro Definition Documentation

◆ IFGEN_TAF_PM_PROTOCOL_ID

#define IFGEN_TAF_PM_PROTOCOL_ID   "11fc3c7788db78006a1a65f8c66f03ba"

◆ IFGEN_TAF_PM_MSG_SIZE

#define IFGEN_TAF_PM_MSG_SIZE   48

◆ TAF_PM_TAG_LEN

#define TAF_PM_TAG_LEN   31

Maximum string length for a wake-up source tag (not including the null-terminator).

◆ TAF_PM_TAG_LEN_BYTES

#define TAF_PM_TAG_LEN_BYTES   32

Maximum string length for a wake-up source tag (including the null-terminator).

◆ TAF_PM_MACHINE_NAME_LEN

#define TAF_PM_MACHINE_NAME_LEN   32

Maximum string length for the Virtual Machine name.

◆ TAF_PM_REF_COUNT

#define TAF_PM_REF_COUNT   1

Option TAF_PM_REF_COUNT to manage a reference counted wakeup source.

Typedef Documentation

◆ taf_pm_PowerStateRef_t

typedef struct taf_pm_PowerState* taf_pm_PowerStateRef_t

Reference to the PowerState.

◆ taf_pm_StateChangeHandlerRef_t

typedef struct taf_pm_StateChangeHandler* taf_pm_StateChangeHandlerRef_t

Reference type used by Add/Remove functions for EVENT 'taf_pm_StateChange'

◆ taf_pm_StateChangeExHandlerRef_t

typedef struct taf_pm_StateChangeExHandler* taf_pm_StateChangeExHandlerRef_t

Reference type used by Add/Remove functions for EVENT 'taf_pm_StateChangeEx'

◆ taf_pm_WakeupSourceRef_t

typedef struct taf_pm_WakeupSource* taf_pm_WakeupSourceRef_t

Reference to wakeup source used by StayAwake and Relax functions.

◆ taf_pm_VMListRef_t

typedef struct taf_pm_VMList* taf_pm_VMListRef_t

Reference to the list of Virtual Machines.

◆ taf_pm_StateChangeHandlerFunc_t

typedef void(* taf_pm_StateChangeHandlerFunc_t) (taf_pm_State_t state, void *contextPtr)

State change handler.

◆ taf_pm_StateChangeExHandlerFunc_t

typedef void(* taf_pm_StateChangeExHandlerFunc_t) (taf_pm_PowerStateRef_t powerStateRef, taf_pm_NadVm_t vm, taf_pm_State_t state, void *contextPtr)

StateChangeEx change handler.

Note
This is supported only on SA525M.

Enumeration Type Documentation

◆ taf_pm_State_t

System power states.

Enumerator
TAF_PM_STATE_UNKNOWN 

System state is unknown.

TAF_PM_STATE_RESUME 

System state is resume.

TAF_PM_STATE_SUSPEND 

System state is suspend.

TAF_PM_STATE_SHUTDOWN 

System state is shutdown.

TAF_PM_STATE_ALL_ACKED 

State all clients ACKed.

TAF_PM_STATE_ALL_WAKELOCKS_RELEASED 

State all wakelocks released.

◆ taf_pm_Status_t

API processing status codes.

Enumerator
TAF_PM_SUCCESS 

API processing succeeded.

TAF_PM_FAILED 

API processing failed.

TAF_PM_EXPIRED 

Expired.

◆ taf_pm_NadVm_t

Virtual Machine ID .

Enumerator
TAF_PM_PVM 

Client acknowledged.

◆ taf_pm_ClientAck_t

State change registered clients acknowledgement.

Enumerator
TAF_PM_READY 

Client acknowledged.

TAF_PM_NOT_READY 

Client not acknowledged.

Function Documentation

◆ ifgen_taf_pm_HasLocalBinding()

LE_SHARED bool ifgen_taf_pm_HasLocalBinding ( void  )

Get if this client bound locally.

◆ ifgen_taf_pm_InitCommonData()

LE_SHARED void ifgen_taf_pm_InitCommonData ( void  )

Init data that is common across all threads

◆ ifgen_taf_pm_CleanupCommonData()

LE_SHARED void ifgen_taf_pm_CleanupCommonData ( le_msg_SessionRef_t  _ifgen_sessionRef)

Cleanup the data of a session

◆ ifgen_taf_pm_OpenSession()

LE_SHARED le_result_t ifgen_taf_pm_OpenSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
bool  isBlocking 
)

Perform common initialization and open a session

◆ ifgen_taf_pm_AddStateChangeHandler()

LE_SHARED taf_pm_StateChangeHandlerRef_t ifgen_taf_pm_AddStateChangeHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_StateChangeHandlerFunc_t  handlerPtr,
void *  contextPtr 
)

Add handler function for EVENT 'taf_pm_StateChange'

TCU state change event of the local process.

Parameters
[in]handlerPtrThe state change handler.
[in]contextPtr

◆ ifgen_taf_pm_RemoveStateChangeHandler()

LE_SHARED void ifgen_taf_pm_RemoveStateChangeHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_StateChangeHandlerRef_t  handlerRef 
)

Remove handler function for EVENT 'taf_pm_StateChange'

Parameters
[in]handlerRef

◆ ifgen_taf_pm_AddStateChangeExHandler()

LE_SHARED taf_pm_StateChangeExHandlerRef_t ifgen_taf_pm_AddStateChangeExHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_StateChangeExHandlerFunc_t  handlerPtr,
void *  contextPtr 
)

Add handler function for EVENT 'taf_pm_StateChangeEx'

TCU state change event of the local process.

Note
This is supported only on SA525M.
Parameters
[in]handlerPtrThe PmMasterWake source change handler.
[in]contextPtr

◆ ifgen_taf_pm_RemoveStateChangeExHandler()

LE_SHARED void ifgen_taf_pm_RemoveStateChangeExHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_StateChangeExHandlerRef_t  handlerRef 
)

Remove handler function for EVENT 'taf_pm_StateChangeEx'

Parameters
[in]handlerRef

◆ ifgen_taf_pm_NewWakeupSource()

LE_SHARED taf_pm_WakeupSourceRef_t ifgen_taf_pm_NewWakeupSource ( le_msg_SessionRef_t  _ifgen_sessionRef,
uint32_t  createOpts,
const char *LE_NONNULL  wsTag 
)

Creates a new wakeup source.

Returns
  • Reference to wakeup source (to be used later for acquiring/releasing).
  • Null when attempt failed.
Parameters
[in]createOptsWakeup source options.
[in]wsTagContext-specific wakeup source tag.

◆ ifgen_taf_pm_StayAwake()

LE_SHARED le_result_t ifgen_taf_pm_StayAwake ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_WakeupSourceRef_t  wsRef 
)

Acquires a passed wakeup source reference.

Returns
  • LE_OK Wakeup source successfully acquired.
  • LE_BAD_PARAMETER Invalid wakeup source reference.
  • LE_FAULT Failed.
Parameters
[in]wsRefReference to the wakeup source to be acquired.

◆ ifgen_taf_pm_Relax()

LE_SHARED le_result_t ifgen_taf_pm_Relax ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_WakeupSourceRef_t  wsRef 
)

Releases a previously acquired wakeup source.

Returns
  • LE_OK Wakeup source successfully released.
  • LE_BAD_PARAMETER Invalid wakeup source reference.
  • LE_FAULT Failed.
Parameters
[in]wsRefReference to the wakeup source to be released.

◆ ifgen_taf_pm_GetPowerState()

LE_SHARED taf_pm_State_t ifgen_taf_pm_GetPowerState ( le_msg_SessionRef_t  _ifgen_sessionRef)

Gets the current system state of the local process.

Returns
State of the system.

◆ ifgen_taf_pm_SetAllVMPowerState()

LE_SHARED le_result_t ifgen_taf_pm_SetAllVMPowerState ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_State_t  state 
)

Sets the power state to all the Virtual Machines.

Returns
  • LE_OK Successfully changed the state of device.
  • LE_FAULT Failed.
Note
This is supported only on SA525M.
Parameters
[in]stateState to be set.

◆ ifgen_taf_pm_SetVMPowerState()

LE_SHARED le_result_t ifgen_taf_pm_SetVMPowerState ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_State_t  state,
const char *LE_NONNULL  machineName 
)

Sets the power state to the respective Virtual Machine.

Returns
  • LE_OK Successfully changed the state of Virtual Machine.
  • LE_FAULT Failed.
Note
This is supported only on SA525M.
Parameters
[in]stateState to be set.
[in]machineNameVirtual Machine name of the state to be changed.

◆ ifgen_taf_pm_GetMachineList()

LE_SHARED taf_pm_VMListRef_t ifgen_taf_pm_GetMachineList ( le_msg_SessionRef_t  _ifgen_sessionRef)

Gets the list of available Virtual Machines.

Returns
  • non-null pointer – The Virtual Machines List reference.
  • null pointer – Internal error.
Note
This is supported only on SA525M.

◆ ifgen_taf_pm_GetFirstMachineName()

LE_SHARED le_result_t ifgen_taf_pm_GetFirstMachineName ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_VMListRef_t  vmListRef,
char *  name,
size_t  nameSize 
)

Gets the first Virtual Machine name.

Returns
  • LE_OK – Succeeded.
  • LE_BAD_PARAMETER – Bad parameters.
  • LE_NOT_FOUND – Empty list.
Note
This is supported only on SA525M.
Parameters
[in]vmListRefVirtual Machine list reference.
[out]nameThe name of the Virtual Machine.
[in]nameSize

◆ ifgen_taf_pm_GetNextMachineName()

LE_SHARED le_result_t ifgen_taf_pm_GetNextMachineName ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_VMListRef_t  vmListRef,
char *  name,
size_t  nameSize 
)

Gets the next Virtual Machine name based on the current position in the list.

Returns
  • LE_OK – Succeeded.
  • LE_BAD_PARAMETER – Bad parameters.
  • LE_NOT_FOUND – The end of the list.
Note
This is supported only on SA525M.
Parameters
[in]vmListRefVirtual Machine list reference.
[out]nameThe name of the Virtual Machine.
[in]nameSize

◆ ifgen_taf_pm_DeleteMachineList()

LE_SHARED le_result_t ifgen_taf_pm_DeleteMachineList ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_VMListRef_t  vmLsitRef 
)

Deletes the Vitual Machine list.

Returns
  • LE_BAD_PARAMETER – Bad parameters.
  • LE_OK – Succeeded.
Note
This is supported only on SA525M.
Parameters
[in]vmLsitRefVirtual Machine list reference.

◆ ifgen_taf_pm_SendStateChangeAck()

LE_SHARED void ifgen_taf_pm_SendStateChangeAck ( le_msg_SessionRef_t  _ifgen_sessionRef,
taf_pm_PowerStateRef_t  powerStateRef,
taf_pm_State_t  state,
taf_pm_NadVm_t  vm,
taf_pm_ClientAck_t  ack 
)

Receives the acknowledgement from clients for state change.

Note
This is supported only on SA525M.
Parameters
[in]powerStateRefPower state reference for statechangehandler.
[in]stateThe system state.
[in]vmThe VM ID of the machine.
[in]ackThe acknowledgement type.