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) 149 typedef struct _tivx_obj_desc_cmd
210 typedef struct _tivx_obj_desc_kernel_name
228 typedef struct _tivx_obj_desc_queue_blocked_nodes {
234 volatile uint16_t rsv[7];
246 typedef struct _tivx_obj_desc_queue
261 volatile uint16_t rsv[5];
276 typedef struct _tivx_obj_desc_data_ref_q
324 volatile uint16_t rsv[1];
333 typedef struct _tivx_obj_desc_graph
365 typedef struct _tivx_obj_desc_super_node_edge
367 uint16_t src_node_obj_desc_id;
368 uint16_t src_node_prm_idx;
369 uint16_t dst_node_obj_desc_id;
370 uint16_t dst_node_prm_idx;
380 typedef struct _tivx_obj_desc_super_node
Image object descriptor as placed in shared memory.
volatile uint16_t cur_rd
Current read index.
vx_bool ownObjDescIsValidType(const tivx_obj_desc_t *obj_desc, tivx_obj_desc_type_e type)
Checks if object desc pointer is valid and it is of required type.
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.
tivx_obj_desc_t * ownObjDescAlloc(vx_enum type, vx_reference ref)
Allocate a Object descriptor.
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...
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
#define TIVX_KERNEL_MAX_PARAMS
Max parameters in a kernel.
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