Zephyr Project API 4.5.0-rc2
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
rtio_iodev_sqe Struct Reference

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.

Detailed Description

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

Field Documentation

◆ [struct]

struct { ... } rtio_iodev_sqe::await

OP_AWAIT signaling state.

◆ buf

uint8_t* rtio_iodev_sqe::buf

Buffer allocated for the read.

◆ buf_len

uint32_t rtio_iodev_sqe::buf_len

Length of the allocated buffer.

◆ callback

rtio_signaled_t rtio_iodev_sqe::callback

Invoked when the entry is signaled.

◆ next

struct rtio_iodev_sqe* rtio_iodev_sqe::next

Next entry in a chained or transactional sequence, NULL if none.

◆ ok

atomic_t rtio_iodev_sqe::ok

Set once the awaited signal arrives.

◆ q

struct mpsc_node rtio_iodev_sqe::q

Node used to link the entry into the pool free list and iodev queues.

◆ r

struct rtio* rtio_iodev_sqe::r

RTIO context that owns this entry.

◆ [union]

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]

struct { ... } rtio_iodev_sqe::rx_bind

OP_RX buffer bound at runtime (see RTIO_SQE_MEMPOOL_BUFFER).

◆ sqe

struct rtio_sqe rtio_iodev_sqe::sqe

The submission queue entry this wraps.

◆ status

atomic_t rtio_iodev_sqe::status

Identity + lifetime word (generation | ALLOCD), see RTIO_SQE_* bits above.

◆ userdata

void* rtio_iodev_sqe::userdata

Opaque pointer passed to the callback.


The documentation for this struct was generated from the following file:
  • include/zephyr/rtio/sqe.h