Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
RTIO SQE Flags. More...
Macros | |
#define | RTIO_SQE_CHAINED BIT(0) |
The next request in the queue should wait on this one. | |
#define | RTIO_SQE_TRANSACTION BIT(1) |
The next request in the queue is part of a transaction. | |
#define | RTIO_SQE_MEMPOOL_BUFFER BIT(2) |
The buffer should be allocated by the RTIO mempool. | |
#define | RTIO_SQE_CANCELED BIT(3) |
The SQE should not execute if possible. | |
#define | RTIO_SQE_MULTISHOT BIT(4) |
The SQE should continue producing CQEs until canceled. | |
#define | RTIO_SQE_NO_RESPONSE BIT(5) |
The SQE does not produce a CQE. | |
RTIO SQE Flags.
#define RTIO_SQE_CANCELED BIT(3) |
#include <include/zephyr/rtio/rtio.h>
The SQE should not execute if possible.
If possible (not yet executed), the SQE should be canceled by flagging it as failed and returning -ECANCELED as the result.
#define RTIO_SQE_CHAINED BIT(0) |
#include <include/zephyr/rtio/rtio.h>
The next request in the queue should wait on this one.
Chained SQEs are individual units of work describing patterns of ordering and failure cascading. A chained SQE must be started only after the one before it. They are given to the iodevs one after another.
#define RTIO_SQE_MEMPOOL_BUFFER BIT(2) |
#include <include/zephyr/rtio/rtio.h>
The buffer should be allocated by the RTIO mempool.
This flag can only exist if the CONFIG_RTIO_SYS_MEM_BLOCKS Kconfig was enabled and the RTIO context was created via the RTIO_DEFINE_WITH_MEMPOOL() macro. If set, the buffer associated with the entry was allocated by the internal memory pool and should be released as soon as it is no longer needed via a call to rtio_release_mempool().
#define RTIO_SQE_MULTISHOT BIT(4) |
#include <include/zephyr/rtio/rtio.h>
The SQE should continue producing CQEs until canceled.
This flag must exist along RTIO_SQE_MEMPOOL_BUFFER and signals that when a read is complete. It should be placed back in queue until canceled.
#define RTIO_SQE_NO_RESPONSE BIT(5) |
#include <include/zephyr/rtio/rtio.h>
The SQE does not produce a CQE.
#define RTIO_SQE_TRANSACTION BIT(1) |
#include <include/zephyr/rtio/rtio.h>
The next request in the queue is part of a transaction.
Transactional SQEs are sequential parts of a unit of work. Only the first transactional SQE is submitted to an iodev, the remaining SQEs are never individually submitted but instead considered to be part of the transaction to the single iodev. The first sqe in the sequence holds the iodev that will be used and the last holds the userdata that will be returned in a single completion on failure/success.