Zephyr Project API  3.3.0
A Scalable Open Source RTOS
RTIO concurrent Executor

RTIO Concurrent Executor. More...

Data Structures

struct  rtio_concurrent_executor
 Concurrent Executor. More...
 

Macros

#define RTIO_EXECUTOR_CONCURRENT_DEFINE(name, concurrency)
 Statically define and initialie a concurrent executor. More...
 

Functions

int rtio_concurrent_submit (struct rtio *r)
 Submit to the concurrent executor. More...
 
void rtio_concurrent_ok (struct rtio *r, const struct rtio_sqe *sqe, int result)
 Report a SQE has completed successfully. More...
 
void rtio_concurrent_err (struct rtio *r, const struct rtio_sqe *sqe, int result)
 Report a SQE has completed with error. More...
 

Detailed Description

RTIO Concurrent Executor.

Provides a concurrent executor with a pointer overhead per task and a 2 word overhead over the simple executor to know the order of tasks (fifo).

Macro Definition Documentation

◆ RTIO_EXECUTOR_CONCURRENT_DEFINE

#define RTIO_EXECUTOR_CONCURRENT_DEFINE (   name,
  concurrency 
)

#include <include/zephyr/rtio/rtio_executor_concurrent.h>

Value:
static struct rtio_sqe *_task_cur_##name[(concurrency)]; \
uint8_t _task_status_##name[(concurrency)]; \
static struct rtio_concurrent_executor name = { \
.ctx = { .api = &z_rtio_concurrent_api }, \
.task_in = 0, \
.task_out = 0, \
.task_mask = (concurrency)-1, \
.pending_sqe = NULL, \
.last_sqe = NULL, \
.task_status = _task_status_##name, \
.task_cur = _task_cur_##name, \
};
Concurrent Executor.
Definition: rtio_executor_concurrent.h:61
struct rtio_sqe * last_sqe
Definition: rtio_executor_concurrent.h:74
struct rtio_sqe * pending_sqe
Definition: rtio_executor_concurrent.h:71
struct rtio_executor ctx
Definition: rtio_executor_concurrent.h:62
uint8_t * task_status
Definition: rtio_executor_concurrent.h:77
struct rtio_sqe ** task_cur
Definition: rtio_executor_concurrent.h:80
const struct rtio_executor_api * api
Definition: rtio.h:211
A submission queue event.
Definition: rtio.h:109

Statically define and initialie a concurrent executor.

INTERNAL_HIDDEN

Parameters
nameSymbol name, must be unique in the context in which its used
concurrencyAllowed concurrency (number of concurrent tasks).

Function Documentation

◆ rtio_concurrent_err()

void rtio_concurrent_err ( struct rtio r,
const struct rtio_sqe sqe,
int  result 
)

#include <include/zephyr/rtio/rtio_executor_concurrent.h>

Report a SQE has completed with error.

Parameters
rRTIO context to use
sqeRTIO SQE to report success
resultResult of the SQE

◆ rtio_concurrent_ok()

void rtio_concurrent_ok ( struct rtio r,
const struct rtio_sqe sqe,
int  result 
)

#include <include/zephyr/rtio/rtio_executor_concurrent.h>

Report a SQE has completed successfully.

Parameters
rRTIO context to use
sqeRTIO SQE to report success
resultResult of the SQE

◆ rtio_concurrent_submit()

int rtio_concurrent_submit ( struct rtio r)

#include <include/zephyr/rtio/rtio_executor_concurrent.h>

Submit to the concurrent executor.

Parameters
rRTIO context to submit
Return values
0always succeeds