TIOVX User Guide

Detailed Description

Internal APIs for target operations.

Data Structures

struct  tivx_target_t
 Target object internal state. More...
 
struct  tivx_target_create_params_t
 Parameters that can be set during target creation. More...
 

Defines

#define TIVX_TARGET_INST_MASK   (0x3Fu)
 Target ID bit mask.
 
#define TIVX_TARGET_INST_SHIFT   (0x0u)
 Target ID bit mask.
 
#define TIVX_CPU_ID_MASK   (0x3Fu)
 CPU ID bit mask.
 
#define TIVX_CPU_ID_SHIFT   (0x6)
 CPU ID bit shift.
 
#define TIVX_TARGET_ID_MASK   (0xFFFu)
 Target ID bit mask.
 
#define TIVX_TARGET_ID_SHIFT   (0x0u)
 Target ID bit shift.
 
#define TIVX_MAKE_TARGET_ID(cpu, target_inst)   ((((((uint32_t)cpu) & (uint32_t)TIVX_CPU_ID_MASK) << (uint32_t)TIVX_CPU_ID_SHIFT) |((((uint32_t)target_inst)&TIVX_TARGET_INST_MASK) << (uint32_t)TIVX_TARGET_INST_SHIFT)))
 Make target based on CPU ID. More...
 
#define TIVX_GET_CPU_ID(target)   ((((uint32_t)(target) >> (uint32_t)TIVX_CPU_ID_SHIFT) & (uint32_t)TIVX_CPU_ID_MASK))
 Get CPU Id from given target. More...
 
#define TIVX_GET_TARGET_INST(target)   ((uint16_t)(((uint16_t)(target) >> TIVX_TARGET_INST_SHIFT)) & TIVX_TARGET_INST_MASK)
 Get the target instances from target. More...
 
#define TIVX_TARGET_ID_INVALID   (0xFFFFFFFFU)
 Const to denote invalid ID's.
 
#define TIVX_CPU_ID_INVALID   (0xFFFFFFFFu)
 Const to denote invalid ID's.
 

Typedefs

typedef void(VX_CALLBACKtivx_task_main_f) (void *app_var)
 Entry point of task. More...
 

Enumerations

enum  tivx_target_cmd_e {
  TIVX_CMD_NODE_CREATE = 0x00000001u,
  TIVX_CMD_NODE_DELETE = 0x00000002u,
  TIVX_CMD_NODE_CONTROL = 0x00000003u,
  TIVX_CMD_NODE_USER_CALLBACK = 0x00000004u,
  TIVX_CMD_DATA_REF_CONSUMED = 0x00000005u
}
 Command ID for commands that can be send to a target. More...
 

Functions

vx_enum tivxTargetGetCpuId (vx_enum target_id)
 Get CPU ID associated with given target ID. More...
 
vx_status tivxTargetQueueObjDesc (vx_enum target_id, uint16_t obj_desc_id)
 Queue object descriptor to a given target. More...
 
void tivxTargetTriggerNode (uint16_t node_obj_desc_id)
 Trigger execution of a node obj desc.
 
void tivxTargetNodeDescAcquireAllParameters (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[], vx_bool *is_node_blocked)
 Acquire parameters for node execution.
 
void tivxTargetNodeDescAcquireAllParametersForPipeup (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[])
 Acquire parameters for node execution during pipeup phase.
 
void tivxTargetNodeDescReleaseAllParameters (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[])
 Release parameters that were previously acquired.
 
void tivxTargetSetDefaultCreateParams (tivx_target_create_params_t *params)
 Used to set default target create parameters in parameter structure. More...
 
vx_status tivxTargetCreate (vx_enum target_id, const tivx_target_create_params_t *params)
 Create a target object and associate with given target ID. More...
 
vx_status tivxTargetDelete (vx_enum target_id)
 Delete a target object. More...
 
void tivxTargetInit (void)
 Init global state of target module. More...
 
void tivxTargetDeInit (void)
 De-Init global state of target module. More...
 
void tivxTargetSetTimestamp (const tivx_obj_desc_node_t *node_obj_desc, tivx_obj_desc_t *obj_desc[])
 Propagates time stamp of input parameters of a kernel to output parameters.
 

Macro Definition Documentation

◆ TIVX_MAKE_TARGET_ID

#define TIVX_MAKE_TARGET_ID (   cpu,
  target_inst 
)    ((((((uint32_t)cpu) & (uint32_t)TIVX_CPU_ID_MASK) << (uint32_t)TIVX_CPU_ID_SHIFT) |((((uint32_t)target_inst)&TIVX_TARGET_INST_MASK) << (uint32_t)TIVX_TARGET_INST_SHIFT)))

Make target based on CPU ID.

   Currently it assumes there are max 16 CPUs in system
   and max 16 targets on a given CPU in system

Definition at line 132 of file tivx_target.h.

◆ TIVX_GET_CPU_ID

#define TIVX_GET_CPU_ID (   target)    ((((uint32_t)(target) >> (uint32_t)TIVX_CPU_ID_SHIFT) & (uint32_t)TIVX_CPU_ID_MASK))

Get CPU Id from given target.

   CPU Id is stored in upper nibble of the lower 8bits of the target

Definition at line 140 of file tivx_target.h.

◆ TIVX_GET_TARGET_INST

#define TIVX_GET_TARGET_INST (   target)    ((uint16_t)(((uint16_t)(target) >> TIVX_TARGET_INST_SHIFT)) & TIVX_TARGET_INST_MASK)

Get the target instances from target.

   Target Id is stored in lower nibble of 8bit target

Definition at line 148 of file tivx_target.h.

Typedef Documentation

◆ tivx_task_main_f

typedef void(VX_CALLBACK * tivx_task_main_f) (void *app_var)

Entry point of task.

Parameters
target[in] target handle

Definition at line 111 of file tivx_task.h.

Enumeration Type Documentation

◆ tivx_target_cmd_e

Command ID for commands that can be send to a target.

Enumerator
TIVX_CMD_NODE_CREATE 

Command to create a node on target.

TIVX_CMD_NODE_DELETE 

Command to delete a node on target.

TIVX_CMD_NODE_CONTROL 

Command to control a node on target.

TIVX_CMD_NODE_USER_CALLBACK 

Command to call a user callback, on node execution complete.

TIVX_CMD_DATA_REF_CONSUMED 

Command to inform host that a ref is consumed and is available for user dequeue.

Definition at line 168 of file tivx_target.h.

Function Documentation

◆ tivxTargetGetCpuId()

vx_enum tivxTargetGetCpuId ( vx_enum  target_id)

Get CPU ID associated with given target ID.

Parameters
target_id[in] Target ID
Returns
CPU ID if target found on some CPU
TIVX_CPU_ID_INVALID if target not found any CPU

◆ tivxTargetQueueObjDesc()

vx_status tivxTargetQueueObjDesc ( vx_enum  target_id,
uint16_t  obj_desc_id 
)

Queue object descriptor to a given target.

Parameters
target_id[in] Target ID
obj_desc_id[in] object descriptor ID
Returns
VX_SUCCESS on success
VX_ERROR_NO_RESOURCES if queue is full
VX_FAILURE on other errors

◆ tivxTargetSetDefaultCreateParams()

void tivxTargetSetDefaultCreateParams ( tivx_target_create_params_t params)

Used to set default target create parameters in parameter structure.

Parameters
params[out] Params to use for target creation

◆ tivxTargetCreate()

vx_status tivxTargetCreate ( vx_enum  target_id,
const tivx_target_create_params_t params 
)

Create a target object and associate with given target ID.

   During system init, this API needs to be called for all targets local to this CPU
   Make sure two different CPUs do not associate against the same target ID
Parameters
target_id[in] Target ID
params[in] Params to use for target creation

◆ tivxTargetDelete()

vx_status tivxTargetDelete ( vx_enum  target_id)

Delete a target object.

   During system deinit, this API needs to be called for all targets local to this CPU
Parameters
target_id[in] Target ID

◆ tivxTargetInit()

void tivxTargetInit ( void  )

Init global state of target module.

   Also inits target kernel, target kernel instance

◆ tivxTargetDeInit()

void tivxTargetDeInit ( void  )

De-Init global state of target module.

   Also de-inits target kernel, target kernel instance