#include <stdlib.h>
#include "FreeRTOS.h"
#include "queue.h"
#include "mem_pool.h"
#include "zero_copy_queue.h"
Go to the source code of this file.
◆ PvtZeroCopyQueue_t
◆ ZcqAllocateItem()
Allocate an item to use or queue.
Note that this can block, and cannnot be used from ISR context.
- Parameters
-
zcq | A 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
-
itemSize | Maximum size of the item. |
itemCount | What's the maximum number of items allowed? |
Alignment | Power 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()
◆ ZcqEnqueueItem()
int ZcqEnqueueItem |
( |
ZeroCopyQueue_t |
zcq, |
|
|
void * |
item, |
|
|
TickType_t |
Timeout |
|
) |
| |
◆ ZcqFreeItem()
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
-
Definition at line 100 of file zero_copy_queue.c.