FreeRTOS C-Addons  1.1.0
C-Addon functionality to FreeRTOS
Typedefs | Functions
zero_copy_queue.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef void * ZeroCopyQueue_t
 

Functions

ZeroCopyQueue_t ZcqCreateQueue (int itemSize, int itemCount, int Alignment)
 
void * ZcqAllocateItem (ZeroCopyQueue_t zcq)
 
void ZcqFreeItem (ZeroCopyQueue_t zcq, void *item)
 
int ZcqEnqueueItem (ZeroCopyQueue_t zcq, void *item, TickType_t Timeout)
 
void * ZcqDequeueItem (ZeroCopyQueue_t zcq, TickType_t Timeout)
 

Typedef Documentation

◆ ZeroCopyQueue_t

typedef void* ZeroCopyQueue_t

Handle for ZeroCopyQueues.

These queues only copy a single pointer instead of the entire data structure, which is how FreeRTOS works by default.

Definition at line 50 of file zero_copy_queue.h.

Function Documentation

◆ ZcqAllocateItem()

void* ZcqAllocateItem ( ZeroCopyQueue_t  zcq)

Allocate an item to use or queue.

Note that this can block, and cannnot be used from ISR context.

Parameters
zcqA handle to a ZeroCopyQueue_t.
Returns
A pointer or NULL on failure.

Definition at line 85 of file zero_copy_queue.c.

◆ ZcqCreateQueue()

ZeroCopyQueue_t ZcqCreateQueue ( int  itemSize,
int  itemCount,
int  Alignment 
)

Create a Zero Copy Queue.

Parameters
itemSizeMaximum size of the item.
itemCountWhat's the maximum number of items allowed?
AlignmentPower of 2 value denoting on which address boundary the memory will be aligned to. Must be at least sizeof(unsigned char *).
Returns
A Handle to the ZeroCopyQueue, or NULL on failure.

Definition at line 55 of file zero_copy_queue.c.

◆ ZcqDequeueItem()

void* ZcqDequeueItem ( ZeroCopyQueue_t  zcq,
TickType_t  Timeout 
)

Dequeue an item from ZcqEnqueueItem().

Parameters
zcqA handle to a ZeroCopyQueue_t.
TimeoutTimeout in FreeRTOS ticks.
Returns
An item obtained from ZcqAllocateItem() on success. NULL on failure.

Definition at line 130 of file zero_copy_queue.c.

◆ ZcqEnqueueItem()

int ZcqEnqueueItem ( ZeroCopyQueue_t  zcq,
void *  item,
TickType_t  Timeout 
)

Queue an item obtained from ZcqAllocateItem().

Parameters
zcqA handle to a ZeroCopyQueue_t.
itemAn item obtained from ZcqAllocateItem().
TimeoutTimeout in FreeRTOS ticks.
Returns
1 on success, 0 on failure.

Definition at line 113 of file zero_copy_queue.c.

◆ ZcqFreeItem()

void ZcqFreeItem ( ZeroCopyQueue_t  zcq,
void *  item 
)

Free a previously allocated item back into the base pool.

Note
This can block, and cannnot be used from ISR context.
There is no check that the memory passed in is valid.
Parameters
zcqA handle to a ZeroCopyQueue_t.
itemAn item obtained from ZcqAllocateItem().

Definition at line 100 of file zero_copy_queue.c.