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

Go to the source code of this file.

Macros

#define IFGEN_LE_APPCTRL_PROTOCOL_ID   "4d849724ee91cb561bc0059af7eead96"
 
#define IFGEN_LE_APPCTRL_MSG_SIZE   533
 

Typedefs

typedef struct le_appCtrl_App * le_appCtrl_AppRef_t
 
typedef struct le_appCtrl_TraceAttachHandler * le_appCtrl_TraceAttachHandlerRef_t
 
typedef void(* le_appCtrl_TraceAttachHandlerFunc_t) (le_appCtrl_AppRef_t appRef, int32_t pid, const char *LE_NONNULL procName, void *contextPtr)
 

Functions

LE_SHARED bool ifgen_le_appCtrl_HasLocalBinding (void)
 
LE_SHARED void ifgen_le_appCtrl_InitCommonData (void)
 
LE_SHARED void ifgen_le_appCtrl_CleanupCommonData (le_msg_SessionRef_t _ifgen_sessionRef)
 
LE_SHARED le_result_t ifgen_le_appCtrl_OpenSession (le_msg_SessionRef_t _ifgen_sessionRef, bool isBlocking)
 
LE_SHARED le_appCtrl_AppRef_t ifgen_le_appCtrl_GetRef (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL appName)
 
LE_SHARED void ifgen_le_appCtrl_ReleaseRef (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef)
 
LE_SHARED void ifgen_le_appCtrl_SetRun (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, const char *LE_NONNULL procName, bool run)
 
LE_SHARED void ifgen_le_appCtrl_SetDebug (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, const char *LE_NONNULL procName, bool debug)
 
LE_SHARED le_result_t ifgen_le_appCtrl_Import (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, const char *LE_NONNULL path)
 
LE_SHARED le_result_t ifgen_le_appCtrl_SetDevicePerm (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, const char *LE_NONNULL path, const char *LE_NONNULL permissions)
 
LE_SHARED le_appCtrl_TraceAttachHandlerRef_t ifgen_le_appCtrl_AddTraceAttachHandler (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, le_appCtrl_TraceAttachHandlerFunc_t attachToPidPtr, void *contextPtr)
 
LE_SHARED void ifgen_le_appCtrl_RemoveTraceAttachHandler (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_TraceAttachHandlerRef_t handlerRef)
 
LE_SHARED void ifgen_le_appCtrl_TraceUnblock (le_msg_SessionRef_t _ifgen_sessionRef, le_appCtrl_AppRef_t appRef, int32_t pid)
 
LE_SHARED le_result_t ifgen_le_appCtrl_Start (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL appName)
 
LE_SHARED le_result_t ifgen_le_appCtrl_Stop (le_msg_SessionRef_t _ifgen_sessionRef, const char *LE_NONNULL appName)
 

Macro Definition Documentation

◆ IFGEN_LE_APPCTRL_PROTOCOL_ID

#define IFGEN_LE_APPCTRL_PROTOCOL_ID   "4d849724ee91cb561bc0059af7eead96"

◆ IFGEN_LE_APPCTRL_MSG_SIZE

#define IFGEN_LE_APPCTRL_MSG_SIZE   533

Typedef Documentation

◆ le_appCtrl_AppRef_t

typedef struct le_appCtrl_App* le_appCtrl_AppRef_t

◆ le_appCtrl_TraceAttachHandlerRef_t

typedef struct le_appCtrl_TraceAttachHandler* le_appCtrl_TraceAttachHandlerRef_t

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

◆ le_appCtrl_TraceAttachHandlerFunc_t

typedef void(* le_appCtrl_TraceAttachHandlerFunc_t) (le_appCtrl_AppRef_t appRef, int32_t pid, const char *LE_NONNULL procName, void *contextPtr)

Handler for attaching to a process that is to be traced. The process is blocked allowing the tracer to attach to it. The tracer must call TraceUnblock() to unblock the traced process.

Function Documentation

◆ ifgen_le_appCtrl_HasLocalBinding()

LE_SHARED bool ifgen_le_appCtrl_HasLocalBinding ( void  )

Get if this client bound locally.

◆ ifgen_le_appCtrl_InitCommonData()

LE_SHARED void ifgen_le_appCtrl_InitCommonData ( void  )

Init data that is common across all threads

◆ ifgen_le_appCtrl_CleanupCommonData()

LE_SHARED void ifgen_le_appCtrl_CleanupCommonData ( le_msg_SessionRef_t  _ifgen_sessionRef)

Cleanup the data of a session

◆ ifgen_le_appCtrl_OpenSession()

LE_SHARED le_result_t ifgen_le_appCtrl_OpenSession ( le_msg_SessionRef_t  _ifgen_sessionRef,
bool  isBlocking 
)

Perform common initialization and open a session

◆ ifgen_le_appCtrl_GetRef()

LE_SHARED le_appCtrl_AppRef_t ifgen_le_appCtrl_GetRef ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  appName 
)

Gets a reference to an app.

Returns
Reference to the named app. NULL on error (check logs for errors).
Parameters
[in]appNameName of the app to get the ref for.

◆ ifgen_le_appCtrl_ReleaseRef()

LE_SHARED void ifgen_le_appCtrl_ReleaseRef ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef 
)

Release the reference to an app, resetting all overrides set for this app using other functions, like SetRun(), SetDevicePerm(), etc.

Parameters
[in]appRefRef to the app.

◆ ifgen_le_appCtrl_SetRun()

LE_SHARED void ifgen_le_appCtrl_SetRun ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
const char *LE_NONNULL  procName,
bool  run 
)

Sets the run flag for a process in an app.

If there is an error this function will kill the calling client.

Parameters
[in]appRefRef to the app.
[in]procNameProcess name to set the run flag for.
[in]runFlag to run the process or not.

◆ ifgen_le_appCtrl_SetDebug()

LE_SHARED void ifgen_le_appCtrl_SetDebug ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
const char *LE_NONNULL  procName,
bool  debug 
)

Sets the debug flag for a process in an app.

If there is an error this function will kill the calling client.

Parameters
[in]appRefRef to the app.
[in]procNameProcess name to set the run flag for.
[in]debugFlag to debug the process or not.

◆ ifgen_le_appCtrl_Import()

LE_SHARED le_result_t ifgen_le_appCtrl_Import ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
const char *LE_NONNULL  path 
)

Imports a file into the app's working directory.

Returns
LE_OK if successfully imported the file. LE_DUPLICATE if the path conflicts with items already in the app's working directory. LE_NOT_FOUND if the path does not point to a valid file. LE_BAD_PARAMETER if the path is formatted incorrectly. LE_FAULT if there was some other error.
Note
If the caller is passing an invalid reference to the app, it is a fatal error, the function will not return.
Parameters
[in]appRefRef to the app.
[in]pathAbsolute path to the file to import.

◆ ifgen_le_appCtrl_SetDevicePerm()

LE_SHARED le_result_t ifgen_le_appCtrl_SetDevicePerm ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
const char *LE_NONNULL  path,
const char *LE_NONNULL  permissions 
)

Sets a device file's permissions.

Returns
LE_OK if successfully set the device's permissions. LE_NOT_FOUND if the path does not point to a valid device. LE_BAD_PARAMETER if the path is formatted incorrectly. LE_FAULT if there was some other error.
Note
If the caller is passing an invalid reference to the app, it is a fatal error, the function will not return.
Parameters
[in]appRefRef to the app.
[in]pathAbsolute path to the device.
[in]permissionsPermission string, "r", "w", "rw".

◆ ifgen_le_appCtrl_AddTraceAttachHandler()

LE_SHARED le_appCtrl_TraceAttachHandlerRef_t ifgen_le_appCtrl_AddTraceAttachHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
le_appCtrl_TraceAttachHandlerFunc_t  attachToPidPtr,
void *  contextPtr 
)

Add handler function for EVENT 'le_appCtrl_TraceAttach'

Event that indicates the process is blocked and can be attached to.

Parameters
[in]appRefRef to the app.
[in]attachToPidPtrAttach handler to register.
[in]contextPtr

◆ ifgen_le_appCtrl_RemoveTraceAttachHandler()

LE_SHARED void ifgen_le_appCtrl_RemoveTraceAttachHandler ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_TraceAttachHandlerRef_t  handlerRef 
)

Remove handler function for EVENT 'le_appCtrl_TraceAttach'

Parameters
[in]handlerRef

◆ ifgen_le_appCtrl_TraceUnblock()

LE_SHARED void ifgen_le_appCtrl_TraceUnblock ( le_msg_SessionRef_t  _ifgen_sessionRef,
le_appCtrl_AppRef_t  appRef,
int32_t  pid 
)

Unblocks the traced process. This should normally be done once the tracer has successfully attached to the process.

Note
If the caller is passing an invalid reference to the app, it is a fatal error, the function will not return.
Parameters
[in]appRefRef to the app.
[in]pidPID of the process to unblock.

◆ ifgen_le_appCtrl_Start()

LE_SHARED le_result_t ifgen_le_appCtrl_Start ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  appName 
)

Starts an app.

Returns
LE_OK if the app is successfully started. LE_DUPLICATE if the app is already running. LE_NOT_FOUND if the app isn't installed. LE_FAULT if there was an error and the app could not be launched.
Parameters
[in]appNameName of the app to start.

◆ ifgen_le_appCtrl_Stop()

LE_SHARED le_result_t ifgen_le_appCtrl_Stop ( le_msg_SessionRef_t  _ifgen_sessionRef,
const char *LE_NONNULL  appName 
)

Stops an app.

Returns
LE_OK if successful. LE_NOT_FOUND if the app could not be found.
Parameters
[in]appNameName of the app to stop.