NVIDIA DRIVE OS Linux SDK API Reference

5.2.3 Release
For Test and Development only
GPLIB::User Interface

Detailed Description

Manages interactions with Trusted applications (TA) running under secure world.

Modules

 GPLIB::Constants
 Constants for the GP Client Library.
 
 GPLIB::Datatypes
 Datatypes for the GP Client Library.
 

Macros

#define TEEC_PARAM_TYPES(t0, t1, t2, t3)   (((uint32_t)t0) | (((uint32_t)t1) << 4) | (((uint32_t)t2) << 8) | (((uint32_t)t3) << 12))
 Helper macro to construct param type. More...
 
#define TEEC_PARAM_TYPE_GET(t, i)   (((t) >> (i*4)) & 0xF)
 Helper macro to get GP param based on index. More...
 

Functions

TEEC_Result TEEC_InitializeContext (const char *name, TEEC_Context *context)
 Initilize TEEC context. More...
 
void TEEC_FinalizeContext (TEEC_Context *context)
 Finalize TEEC context. More...
 
TEEC_Result TEEC_OpenSession (TEEC_Context *context, TEEC_Session *session, const TEEC_UUID *destination, uint32_t connectionMethod, const void *connectionData, TEEC_Operation *operation, uint32_t *returnOrigin)
 This function opens a new Session between the Client Application and the specified Trusted Application. More...
 
void TEEC_CloseSession (TEEC_Session *session)
 closes a Session which has been opened with a Trusted Application More...
 
TEEC_Result TEEC_InvokeCommand (TEEC_Session *session, uint32_t commandID, TEEC_Operation *operation, uint32_t *returnOrigin)
 invokes a Command within the specified Session More...
 

Macro Definition Documentation

◆ TEEC_PARAM_TYPE_GET

#define TEEC_PARAM_TYPE_GET (   t,
 
)    (((t) >> (i*4)) & 0xF)

Helper macro to get GP param based on index.

Definition at line 199 of file tee_client_functions.h.

◆ TEEC_PARAM_TYPES

#define TEEC_PARAM_TYPES (   t0,
  t1,
  t2,
  t3 
)    (((uint32_t)t0) | (((uint32_t)t1) << 4) | (((uint32_t)t2) << 8) | (((uint32_t)t3) << 12))

Helper macro to construct param type.

Definition at line 193 of file tee_client_functions.h.

Function Documentation

◆ TEEC_CloseSession()

void TEEC_CloseSession ( TEEC_Session session)

closes a Session which has been opened with a Trusted Application

Parameters
[in]sessiona pointer to a Session structure to close
Returns
void
Precondition
Invocation of TEEC_OpenSession() must be successfull
Note
  • Allowed context for the API call
    • Interrupt : No
    • Signal handler: Yes
    • Thread : Yes
  • Is thread safe : Yes
  • Required Privileges(QNX): None
  • API Group
    • Initialization : No
    • Run time : No
    • De-initialization: Yes

swud: QNXBSP-GPLIB-05

◆ TEEC_FinalizeContext()

void TEEC_FinalizeContext ( TEEC_Context context)

Finalize TEEC context.

Parameters
[in]contextan initialized TEEC_Context structure which is to be finalized
Returns
void
Precondition
NA
Note
  • Allowed context for the API call
    • Interrupt : Yes
    • Signal handler: Yes
    • Thread : Yes
  • Is thread safe : Yes
  • Required Privileges(QNX): None
  • API Group
    • Initialization : No
    • Run time : No
    • De-initialization: Yes

swud: QNXBSP-GPLIB-03

◆ TEEC_InitializeContext()

TEEC_Result TEEC_InitializeContext ( const char *  name,
TEEC_Context context 
)

Initilize TEEC context.

Parameters
[in]namea zero-terminated string that describes the TEE to connect to
[in]contexta TEEC_Context pointer to be initialized
Return values
TEEC_SUCCESSOn successful initialization
Precondition
NA
Note
  • Allowed context for the API call
    • Interrupt : Yes
    • Signal handler: Yes
    • Thread : Yes
  • Is thread safe : Yes
  • Required Privileges(QNX): None
  • API Group
    • Initialization : Yes
    • Run time : No
    • De-initialization: No

swud: QNXBSP-GPLIB-02

◆ TEEC_InvokeCommand()

TEEC_Result TEEC_InvokeCommand ( TEEC_Session session,
uint32_t  commandID,
TEEC_Operation operation,
uint32_t *  returnOrigin 
)

invokes a Command within the specified Session

Parameters
[in]sessionthe open Session in which the command will be invoked
[in]commandIDthe identifier of the Command within the Trusted Application to invoke
[in]operationa pointer to a Client Application initialized TEEC_Operation structure, or NULL if there is no payload to send
[in]returnOrigina pointer to a variable which will contain the return origin of return code
Return values
TEEC_SUCCESSOn successful initialization
TEEC_ERROR_GENERICUnable to process command (local or remote failure)
TEEC_ERROR_BAD_PARAMETERSIn case of invalid parameters
Precondition
Invocation of TEEC_OpenSession() must be successfull
Note
  • Allowed context for the API call
    • Interrupt : No
    • Signal handler: Yes
    • Thread : Yes
  • Is thread safe : Yes
  • Required Privileges(QNX): None
  • API Group
    • Initialization : No
    • Run time : Yes
    • De-initialization: No

swud: QNXBSP-GPLIB-06

◆ TEEC_OpenSession()

TEEC_Result TEEC_OpenSession ( TEEC_Context context,
TEEC_Session session,
const TEEC_UUID destination,
uint32_t  connectionMethod,
const void *  connectionData,
TEEC_Operation operation,
uint32_t *  returnOrigin 
)

This function opens a new Session between the Client Application and the specified Trusted Application.

The target Trusted Application is identified by a UUID passed in the parameter destination

Parameters
[in]contexta pointer to an initialized TEE Context
[in]sessiona pointer to a Session structure to open
[in]destinationa pointer to a structure containing the UUID of the destination Trusted Application
[in]connectionMethodthe method of connection to use
[in]connectionDataany necessary data required to support the connection method chosen
[in]operationa pointer to an Operation containing a set of Parameters to exchange with the Trusted Application, or NULL if no Parameters are to be exchanged
[in]returnOrigina pointer to a variable which will contain the origin of return code
Return values
TEEC_SUCCESSOn successful initialization
TEEC_ERROR_GENERICUnable to open session (local or remote failure)
TEEC_ERROR_BAD_PARAMETERSIn case of failure
Precondition
NA
Note
  • Allowed context for the API call
    • Interrupt : No
    • Signal handler: Yes
    • Thread : Yes
  • Is thread safe : Yes
  • Required Privileges(QNX): None
  • API Group
    • Initialization : Yes
    • Run time : No
    • De-initialization: No

swud: QNXBSP-GPLIB-04