TIOVX User Guide

Detailed Description

Internal APIs for object descriptor operations.

Data Structures

struct  tivx_obj_desc_cmd_t
 Command object descriptor. More...
 
struct  tivx_obj_desc_kernel_name_t
 Command object descriptor. More...
 
struct  tivx_obj_desc_queue_blocked_nodes_t
 Data structure to get information about node blocked on this object descriptor to be ready. More...
 
struct  tivx_obj_desc_queue_t
 Object descriptor queue. More...
 
struct  tivx_obj_desc_data_ref_q_t
 Data reference queue. More...
 
struct  tivx_obj_desc_graph_t
 Graph object descriptor as placed in shared memory. More...
 
struct  tivx_obj_desc_super_node_edge_t
 Super Node edge object descriptor. More...
 
struct  tivx_obj_desc_super_node_t
 Super Node object descriptor. More...
 
union  tivx_obj_desc_shm_entry_t
 Object Descriptor Shared memory entry which can hold any of the supported object descriptor types. More...
 
struct  tivx_obj_desc_table_info_t
 Data structure to hold info about object descriptor table. More...
 

Defines

#define TIVX_CMD_FLAG_SEND_ACK   (0x00000001u)
 Flag to indicate if command receiver needs to ACK this command.
 
#define TIVX_CMD_FLAG_IS_ACK   (0x00000002u)
 Flag to indicate if this is a command or ACK for a command.
 
#define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_ENABLE_REF_CONSUMED_EVENT   (0x00000001u)
 Data Ref Q flag to determine if ref consumed event should be sent.
 
#define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_REF_ACQUIRED   (0x00000002u)
 Data Ref Q flag to determine if ref is acquired for this data ref q.
 
#define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_IN_DELAY   (0x00000004u)
 Data Ref Q flag to determine if this obj desc is part of some delay.
 
#define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_DELAY_SLOT_AUTO_AGE   (0x00000008u)
 Data Ref Q flag to determine if delay slot to which this obj desc belongs should be auto aged. More...
 
#define TIVX_OBJ_DESC_ID_SHIFT   (12u)
 Shift for storing Object Descriptor id in 32bit variable.
 
#define TIVX_OBJ_DESC_ID_MASK   (0x0000FFFFu)
 Mask for storing Object Descriptor id in 32bit variable.
 
#define TIVX_OBJ_DESC_BIDIR_FLAG   (0x10000U)
 Mask for storing Object Descriptor id in 32bit variable.
 

Functions

tivx_obj_desc_townObjDescAlloc (vx_enum ref_type, vx_reference ref)
 Allocate a Object descriptor. More...
 
vx_status ownObjDescFree (tivx_obj_desc_t **obj_desc)
 Free a previously allocated object descriptor. More...
 
vx_status ownObjDescSend (uint32_t dst_target_id, uint16_t obj_desc_id)
 Sends a object descriptor to specified target. More...
 
tivx_obj_desc_townObjDescGet (uint16_t obj_desc_id)
 Get obj descriptor corresponding to the object descriptor ID. More...
 
vx_bool ownObjDescIsValidType (const tivx_obj_desc_t *obj_desc, tivx_obj_desc_type_e obj_type)
 Checks if object desc pointer is valid and it is of required type.
 
void ownObjDescInit (void)
 Init object descriptor module.
 
uint16_t ownReferenceGetObjDescId (vx_reference ref)
 Function to get the descriptor object from the given reference.
 

Macro Definition Documentation

◆ TIVX_OBJ_DESC_DATA_REF_Q_FLAG_DELAY_SLOT_AUTO_AGE

#define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_DELAY_SLOT_AUTO_AGE   (0x00000008u)

Data Ref Q flag to determine if delay slot to which this obj desc belongs should be auto aged.

Valid only when TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_IN_DELAY is set

Definition at line 129 of file tivx_obj_desc_priv.h.

Function Documentation

◆ ownObjDescAlloc()

tivx_obj_desc_t* ownObjDescAlloc ( vx_enum  ref_type,
vx_reference  ref 
)

Allocate a Object descriptor.

Parameters
ref_type[in] Type of object descriptor to allocate, see tivx_obj_desc_type_e
ref[in] vx_reference that is associated with this object descriptor. If not applicable set to NULL
Returns
Pointer tivx_obj_desc_t on success
NULL, if object descriptor could not be allocated

◆ ownObjDescFree()

vx_status ownObjDescFree ( tivx_obj_desc_t **  obj_desc)

Free a previously allocated object descriptor.

Parameters
[in]obj_descObject descriptor to free

◆ ownObjDescSend()

vx_status ownObjDescSend ( uint32_t  dst_target_id,
uint16_t  obj_desc_id 
)

Sends a object descriptor to specified target.

The API does not wait for ACK. ACK handling if any is done by user The API may result in a IPC is target is on another CPU

Source target ID is not required since ACK is not handled by this API

Parameters
[in]dst_target_idDestination target ID
[in]obj_desc_idObject descriptor ID

◆ ownObjDescGet()

tivx_obj_desc_t* ownObjDescGet ( uint16_t  obj_desc_id)

Get obj descriptor corresponding to the object descriptor ID.

If obj_desc_id is invalid or out of bounds NULL is returned.

Parameters
[in]obj_desc_idObject descriptor ID