TIOVX User Guide

Detailed Description

APIs for queue operations on the host.

Data Structures

struct  tivx_queue
 Typedef for a queue. More...
 

Defines

#define TIVX_QUEUE_FLAG_BLOCK_ON_PUT   (0x00000001u)
 Flag to indicate queue should block 'put' operation until free space is available for 'put' to succeed.
 
#define TIVX_QUEUE_FLAG_BLOCK_ON_GET   (0x00000002u)
 Flag to indicate queue should block 'get' operation until new element is available in queue to extract.
 

Functions

vx_status tivxQueueCreate (tivx_queue *queue, uint32_t max_elements, uintptr_t *queue_memory, uint32_t flags)
 Create a queue. More...
 
vx_status tivxQueueDelete (tivx_queue *queue)
 Delete a queue. More...
 
vx_status tivxQueuePut (tivx_queue *queue, uintptr_t data, uint32_t timeout)
 Add a element into the queue. More...
 
vx_status tivxQueueGet (tivx_queue *queue, uintptr_t *data, uint32_t timeout)
 Extract a element from the queue. More...
 
vx_status tivxQueuePeek (const tivx_queue *queue, uintptr_t *data)
 Peek an element from the queue but dont extract it. More...
 
vx_bool tivxQueueIsEmpty (const tivx_queue *queue)
 Check if queue is empty. More...
 

Function Documentation

◆ tivxQueueCreate()

vx_status tivxQueueCreate ( tivx_queue queue,
uint32_t  max_elements,
uintptr_t *  queue_memory,
uint32_t  flags 
)

Create a queue.

Parameters
queue[out] Pointer to queue object
max_elements[in] Max elements in a queue
queue_memory[in] Pointer to queue memory, queue can only contain elements of size 32bits
flags[in] Flags to use during queue creation, see TIVX_QUEUE_FLAG_xxx
Returns
VX_SUCCESS on success

◆ tivxQueueDelete()

vx_status tivxQueueDelete ( tivx_queue queue)

Delete a queue.

Parameters
queue[in] Pointer to queue object
Returns
VX_SUCCESS on success

◆ tivxQueuePut()

vx_status tivxQueuePut ( tivx_queue queue,
uintptr_t  data,
uint32_t  timeout 
)

Add a element into the queue.

Parameters
queue[in] Pointer to queue object
data[in] element to add
timeout[in] Amount of time to wait, TIVX_QUEUE_FLAG_BLOCK_ON_PUT must be set during create, else function does not wait and returns error if queue is full
Returns
VX_SUCCESS on success

◆ tivxQueueGet()

vx_status tivxQueueGet ( tivx_queue queue,
uintptr_t *  data,
uint32_t  timeout 
)

Extract a element from the queue.

Parameters
queue[in] Pointer to queue object
data[out] element that is extracted
timeout[in] Amount of time to wait, TIVX_QUEUE_FLAG_BLOCK_ON_GET must be set during create, else function does not wait and returns error if queue is empty
Returns
VX_SUCCESS on success

◆ tivxQueuePeek()

vx_status tivxQueuePeek ( const tivx_queue queue,
uintptr_t *  data 
)

Peek an element from the queue but dont extract it.

Parameters
queue[in] Pointer to queue object
data[out] element that is 'peeked'
Returns
VX_SUCCESS on success

◆ tivxQueueIsEmpty()

vx_bool tivxQueueIsEmpty ( const tivx_queue queue)

Check if queue is empty.

Parameters
queue[in] Pointer to queue object
Returns
vx_true_e if queue is empty, else vx_false_e