|
Zephyr Project API 4.4.99
A Scalable Open Source RTOS
|
Queue element for pipeline-level threading. More...
#include <zephyr/kernel.h>#include <zephyr/sys/atomic.h>#include <zephyr/mpipe/mpipe_element.h>#include <zephyr/mpipe/mpipe_thread.h>#include <zephyr/mpipe/mpipe_transform.h>Go to the source code of this file.
Data Structures | |
| struct | mpipe_queue |
| Queue Element Structure. More... | |
Enumerations | |
| enum | { MPIPE_PROP_BASE_QUEUE_SIZE = MPIPE_PROP_TRANSFORM_LAST , MPIPE_PROP_BASE_QUEUE_THREAD_PRIORITY , MPIPE_PROP_BASE_QUEUE_LEAK } |
| Queue Property Identifiers. More... | |
| enum | mpipe_base_queue_leak { MPIPE_BASE_QUEUE_LEAK_NONE = 0 , MPIPE_BASE_QUEUE_LEAK_OLDEST , MPIPE_BASE_QUEUE_LEAK_NEWEST } |
| What a full queue does with a new buffer. More... | |
Functions | |
| int | mpipe_queue_init (struct mpipe_queue *queue, uint8_t id) |
| Initialize a queue element. | |
Queue element for pipeline-level threading.
The queue element decouples a pipeline into two segments running on two different threads. Upstream deposits buffers into the queue's internal buffer queue; then a dedicated downstream thread pulls buffers from that queue and push to the rest of the pipeline.