TIOVX User Guide
tivx_target.h File Reference

Implementation of Target Object APIs. More...

#include <TI/tivx_config.h>

Go to the source code of this file.

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...
 

Macros

#define TIVX_TARGET_INST_MASK   (0xFFu)
 Target ID bit mask. More...
 
#define TIVX_TARGET_INST_SHIFT   (0x0u)
 Target ID bit mask. More...
 
#define TIVX_CPU_ID_MASK   (0xFu)
 CPU ID bit mask. More...
 
#define TIVX_CPU_ID_SHIFT   (0x8)
 CPU ID bit shift. More...
 
#define TIVX_TARGET_ID_MASK
 Target ID bit mask.
 
#define TIVX_TARGET_ID_SHIFT   (TIVX_TARGET_INST_SHIFT)
 Target ID bit shift.
 
#define TIVX_MAKE_TARGET_ID(cpu, target_inst)   (((((uint32_t)(((uint32_t)cpu) & (uint32_t)TIVX_CPU_ID_MASK)) << (uint32_t)TIVX_CPU_ID_SHIFT) |(((uint32_t)(((uint32_t)target_inst)&(uint32_t)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.
 
#define TIVX_TARGET_MAX_TASK_NAME   (12u)
 Max size of target name string.
 
#define TIVX_TARGET_MAX_JOB_QUEUE_DEPTH   (96u)
 Max depth of queue associated with target. More...
 

Typedefs

typedef struct _tivx_target * tivx_target
 Target Object.
 
typedef void(* own_execute_user_kernel_f) (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[])
 The pointer to the user kernel wrapper within the tiovx framework. This is only executable on the host, therefore putting a function pointer that gets initialized to non-NULL only when ownRegisterFunctionsForHost is called from hostInit. More...
 
typedef void(* own_target_cmd_desc_handler_f) (const tivx_obj_desc_cmd_t *cmd_obj_desc)
 The pointer to the handler of a subset of cases that the target command handler needs to service on the same core that the host runs on. This is only executable on the host, therefore putting a function pointer that gets initialized to non-NULL only when ownRegisterFunctionsForHost is called from hostInit. 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

void ownRegisterFunctionsForHost (void)
 Register Various functions within target files to be linked for host usage. More...
 
vx_enum ownTargetGetCpuId (vx_enum target_id)
 Get CPU ID associated with given target ID. More...
 
vx_status ownTargetQueueObjDesc (vx_enum target_id, uint16_t obj_desc_id)
 Queue object descriptor to a given target. More...
 
void ownTargetTriggerNode (uint16_t node_obj_desc_id)
 Trigger execution of a node obj desc.
 
void ownTargetNodeDescAcquireAllParameters (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 ownTargetNodeDescAcquireAllParametersForPipeup (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[])
 Acquire parameters for node execution during pipeup phase.
 
void ownTargetNodeDescReleaseAllParameters (tivx_obj_desc_node_t *node_obj_desc, uint16_t prm_obj_desc_id[])
 Release parameters that were previously acquired.
 
void ownTargetSetDefaultCreateParams (tivx_target_create_params_t *params)
 Used to set default target create parameters in parameter structure. More...
 
vx_status ownTargetCreate (vx_enum target_id, const tivx_target_create_params_t *params)
 Create a target object and associate with given target ID. More...
 
vx_status ownTargetDelete (vx_enum target_id)
 Delete a target object. More...
 
void ownTargetInit (void)
 Init global state of target module. More...
 
void ownTargetDeInit (void)
 De-Init global state of target module. More...
 
void ownTargetSetTimestamp (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.
 

Detailed Description

Implementation of Target Object APIs.

Definition in file tivx_target.h.