66 #ifndef TIVX_OBJ_DESC_PRIV_H_ 67 #define TIVX_OBJ_DESC_PRIV_H_ 70 #include <TI/tivx_config.h> 84 #define TIVX_OBJ_DESC_QUEUE_MAX_BLOCKED_NODES (8u) 89 #define TIVX_OBJ_DESC_QUEUE_MAX_DEPTH (32u) 94 #define TIVX_CMD_MAX_OBJ_DESCS (16u) 99 #define TIVX_CMD_FLAG_SEND_ACK (0x00000001u) 104 #define TIVX_CMD_FLAG_IS_ACK (0x00000002u) 110 #define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_ENABLE_REF_CONSUMED_EVENT (0x00000001u) 115 #define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_REF_ACQUIRED (0x00000002u) 120 #define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_IS_IN_DELAY (0x00000004u) 129 #define TIVX_OBJ_DESC_DATA_REF_Q_FLAG_DELAY_SLOT_AUTO_AGE (0x00000008u) 134 #define TIVX_OBJ_DESC_ID_SHIFT (12u) 139 #define TIVX_OBJ_DESC_ID_MASK (0x0000FFFFu) 145 #define TIVX_OBJ_DESC_BIDIR_FLAG (0x10000U) 153 typedef struct _tivx_obj_desc_cmd
167 volatile uint16_t cmd_params_desc_id[TIVX_KERNEL_MAX_PARAMS];
214 typedef struct _tivx_obj_desc_kernel_name
232 typedef struct _tivx_obj_desc_queue_blocked_nodes {
238 volatile uint16_t rsv[7];
250 typedef struct _tivx_obj_desc_queue
265 volatile uint16_t rsv[5];
280 typedef struct _tivx_obj_desc_data_ref_q
328 volatile uint16_t rsv[1];
337 typedef struct _tivx_obj_desc_graph
369 typedef struct _tivx_obj_desc_super_node_edge
371 uint16_t src_node_obj_desc_id;
372 uint16_t src_node_prm_idx;
373 uint16_t dst_node_obj_desc_id;
374 uint16_t dst_node_prm_idx;
384 typedef struct _tivx_obj_desc_super_node
Image object descriptor as placed in shared memory.
volatile uint16_t cur_rd
Current read index.
tivx_obj_desc_t * ownObjDescAlloc(vx_enum ref_type, vx_reference ref)
Allocate a Object descriptor.
tivx_obj_desc_t base
base object descriptor
#define TIVX_CMD_MAX_OBJ_DESCS
Max object descriptors than be parameters in a command object.
#define TIVX_SUPER_NODE_MAX_NODES
Max number of nodes per super node.
volatile uint32_t exe_time_end_h
graph execution time
uint16_t num_nodes
number of nodes in super node
volatile uint16_t cur_wr
Current write index.
volatile uint16_t num_nodes
volatile uint16_t ref_consumed_cmd_obj_desc_id
command to send when ref is consumed
user data object descriptor as placed in shared memory
volatile uint16_t delay_slot_index
slot in delay for this obj desc.
Graph object descriptor as placed in shared memory.
lut object descriptor as placed in shared memory
volatile uint32_t exe_time_end_l
graph execution time
object array object descriptor as placed in shared memory
#define TIVX_OBJ_DESC_MAX_SHM_ENTRY_SIZE
Macro to check max shared mem entry size.
volatile uint32_t timestamp_h
time at which this command is sent
tivx_obj_desc_t base
base object descriptor
tivx_obj_desc_t base
base object descriptor
volatile uint32_t exe_time_beg_l
graph execution time
volatile uint32_t node_cmd_id
Node command to execute.
distribution object descriptor as placed in shared memory
array object descriptor as placed in shared memory
vx_status ownObjDescFree(tivx_obj_desc_t **obj_desc)
Free a previously allocated object descriptor.
#define TIVX_SUPER_NODE_MAX_EDGES
Max number of edges per super node.
volatile uint16_t next_obj_desc_id_in_delay
Next obj desc in a delay.
#define TIVX_OBJ_DESC_QUEUE_MAX_DEPTH
Max elements in a object descriptor queue.
uint16_t ownReferenceGetObjDescId(vx_reference ref)
Function to get the descriptor object from the given reference.
volatile uint16_t ref_obj_desc_id
acquired ref obj desc ID
volatile uint32_t flags
flags associated with this command, see TIVX_CMD_FLAG_xxx
convolution object descriptor as placed in shared memory
volatile uint16_t delay_slots
Number of slots in delay.
Interface to object descriptor.
struct _vx_reference * vx_reference
volatile uint32_t state
Graph instance state, running or completed or abandoned.
volatile uint32_t dst_target_id
volatile uint32_t flags
object specific flags
volatile uint32_t num_cmd_params
valid values in cmd_params_data_id
Data structure to hold info about object descriptor table.
Tensor object descriptor as placed in shared memory.
Object Descriptor Shared memory entry which can hold any of the supported object descriptor types...
tivx_obj_desc_t base
base object descriptor
Remap object descriptor as placed in shared memory.
uint16_t num_edges
number of edges in super node sub graph
volatile uint32_t cmd_id
command to execute
void ownObjDescInit(void)
Init object descriptor module.
volatile uint32_t pipeline_id
pipeline ID of this graph instance
tivx_obj_desc_t base
base object descriptor
volatile uint32_t complete_leaf_nodes
number of leaf nodes that have completed so far, before a graph begins this value is 0 ...
tivx_obj_desc_type_e
Enum that list all possible object descriptor type's.
Command object descriptor.
Command object descriptor.
volatile uint64_t ack_event_handle
Handle of ACK event that is posted when ACK is received MUST be valid if flags TIVX_CMD_FLAG_SEND_ACK...
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.
uint32_t num_entries
Object descriptor table, number of entries.
volatile uint16_t count
Count of elements in queue.
threshold object descriptor as placed in shared memory
#define TIVX_OBJ_DESC_QUEUE_MAX_BLOCKED_NODES
Max nodes that can be blocked on object descriptor queue not empty.
raw image descriptor as placed in shared memory
volatile uint32_t exe_time_beg_h
graph execution time
Data structure to get information about node blocked on this object descriptor to be ready...
uint32_t last_alloc_index
Index of last allocated entry, this can be used to optimize free entry search start index during obje...
tivx_obj_desc_t base
base object descriptor
volatile uint32_t src_target_id
tivx_obj_desc_t * ownObjDescGet(uint16_t obj_desc_id)
Get obj descriptor corresponding to the object descriptor ID.
#define VX_MAX_KERNEL_NAME
volatile uint16_t num_in_nodes
number of nodes take this data ref as input
vx_status ownObjDescSend(uint32_t dst_target_id, uint16_t obj_desc_id)
Sends a object descriptor to specified target.
volatile int32_t replicated_node_idx
Id of the node, to which node_cmd_id to be sent, If set to TIVX_CONTROL_CMD_SEND_TO_ALL_REPLICATED_NO...
volatile uint32_t num_pipeup_bufs
number of pipeup bufs needed
pyramid object descriptor as placed in shared memory
volatile uint32_t timestamp_l
time at which this command is sent
matrix object descriptor as placed in shared memory
Scalar object descriptor as placed in shared memory.
volatile uint32_t num_obj_desc
Number of object descriptor parameters with this command.
volatile uint16_t acquire_q_obj_desc_id
queue to use for data ref acquire
Super Node edge object descriptor.
tivx_obj_desc_shm_entry_t * table_base
Object descriptor table base address.
volatile uint32_t cmd_status
command execution status
volatile uint16_t in_node_done_cnt
number of input nodes that have consumed 'ref_obj_desc_id'
Super Node object descriptor.
volatile uint16_t release_q_obj_desc_id
queue to use for data ref release
tivx_obj_desc_queue_blocked_nodes_t blocked_nodes
node blocked on this object descriptor queue