TIOVX User Guide
|
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 (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)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_CALLBACK * | tivx_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 | 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. | |
#define TIVX_TARGET_INST_MASK (0xFFu) |
#define TIVX_TARGET_INST_SHIFT (0x0u) |
Target ID bit mask.
Target ID is in lowest position, so shift of 0
Definition at line 91 of file tivx_target.h.
#define TIVX_CPU_ID_MASK (0xFu) |
CPU ID bit mask.
This is CPU from the perspective of different OS. For example if there are dual core MPU running 1 instance of HLOS, then this counts as 1 CPU. Set assuming max 16 CPUs
Definition at line 100 of file tivx_target.h.
#define TIVX_CPU_ID_SHIFT (0x8) |
CPU ID bit shift.
CPU ID is in higher position, so shift of 8 to get above TIVX_TARGET_INST_MASK
Definition at line 106 of file tivx_target.h.
#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 256 targets on a given CPU in system (PC emulation is worst case as all targets are on x86)
Definition at line 127 of file tivx_target.h.
#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 135 of file tivx_target.h.
#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 143 of file tivx_target.h.
typedef void(VX_CALLBACK * tivx_task_main_f) (void *app_var) |
Entry point of task.
target | [in] target handle |
Definition at line 111 of file tivx_task.h.
enum tivx_target_cmd_e |
Command ID for commands that can be send to a target.
Definition at line 171 of file tivx_target.h.
Get CPU ID associated with given target ID.
target_id | [in] Target ID |
Queue object descriptor to a given target.
target_id | [in] Target ID |
obj_desc_id | [in] object descriptor ID |
void ownTargetSetDefaultCreateParams | ( | tivx_target_create_params_t * | params | ) |
Used to set default target create parameters in parameter structure.
params | [out] Params to use for target creation |
vx_status ownTargetCreate | ( | 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
target_id | [in] Target ID |
params | [in] Params to use for target creation |
Delete a target object.
During system deinit, this API needs to be called for all targets local to this CPU
target_id | [in] Target ID |
void ownTargetInit | ( | void | ) |
Init global state of target module.
Also inits target kernel, target kernel instance
void ownTargetDeInit | ( | void | ) |
De-Init global state of target module.
Also de-inits target kernel, target kernel instance