|
Zephyr Project API 4.5.0-rc2
A Scalable Open Source RTOS
|
IO device submission queue entry. More...
#include <sqe.h>
Data Fields | |
| struct rtio_sqe | sqe |
| The submission queue entry this wraps. | |
| struct mpsc_node | q |
| Node used to link the entry into the pool free list and iodev queues. | |
| struct rtio_iodev_sqe * | next |
| Next entry in a chained or transactional sequence, NULL if none. | |
| struct rtio * | r |
| RTIO context that owns this entry. | |
| atomic_t | status |
| Identity + lifetime word (generation | ALLOCD), see RTIO_SQE_* bits above. | |
| union { | |
| struct { | |
| uint8_t * buf | |
| Buffer allocated for the read. More... | |
| uint32_t buf_len | |
| Length of the allocated buffer. More... | |
| } rx_bind | |
| OP_RX buffer bound at runtime (see RTIO_SQE_MEMPOOL_BUFFER). More... | |
| struct { | |
| atomic_t ok | |
| Set once the awaited signal arrives. More... | |
| rtio_signaled_t callback | |
| Invoked when the entry is signaled. More... | |
| void * userdata | |
| Opaque pointer passed to the callback. More... | |
| } await | |
| OP_AWAIT signaling state. More... | |
| } | rt |
| Runtime scratch state that the subsystem/driver mutates while it owns the submission. | |
IO device submission queue entry.
May be cast safely to and from a rtio_sqe as they occupy the same memory provided by the pool
| struct { ... } rtio_iodev_sqe::await |
OP_AWAIT signaling state.
| uint8_t* rtio_iodev_sqe::buf |
Buffer allocated for the read.
| uint32_t rtio_iodev_sqe::buf_len |
Length of the allocated buffer.
| rtio_signaled_t rtio_iodev_sqe::callback |
Invoked when the entry is signaled.
| struct rtio_iodev_sqe* rtio_iodev_sqe::next |
Next entry in a chained or transactional sequence, NULL if none.
| atomic_t rtio_iodev_sqe::ok |
Set once the awaited signal arrives.
| struct mpsc_node rtio_iodev_sqe::q |
Node used to link the entry into the pool free list and iodev queues.
| struct rtio* rtio_iodev_sqe::r |
RTIO context that owns this entry.
| union { ... } rtio_iodev_sqe::rt |
Runtime scratch state that the subsystem/driver mutates while it owns the submission.
Kept out of rtio_sqe so the submission description stays immutable to drivers after submit. The members are mutually exclusive per op and are zeroed when the entry is allocated from the pool.
| struct { ... } rtio_iodev_sqe::rx_bind |
OP_RX buffer bound at runtime (see RTIO_SQE_MEMPOOL_BUFFER).
| struct rtio_sqe rtio_iodev_sqe::sqe |
The submission queue entry this wraps.
| atomic_t rtio_iodev_sqe::status |
Identity + lifetime word (generation | ALLOCD), see RTIO_SQE_* bits above.
| void* rtio_iodev_sqe::userdata |
Opaque pointer passed to the callback.