| /* |
| * Copyright (c) 2022 Intel Corporation. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| #ifndef ZEPHYR_INCLUDE_RTIO_RTIO_EXECUTOR_SIMPLE_H_ |
| #define ZEPHYR_INCLUDE_RTIO_RTIO_EXECUTOR_SIMPLE_H_ |
| |
| #include <zephyr/rtio/rtio.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /** |
| * @brief RTIO Simple Executor |
| * |
| * Provides the simplest possible executor without any concurrency |
| * or reinterpretation of requests. |
| * |
| * @defgroup rtio_executor_simple RTIO Simple Executor |
| * @ingroup rtio |
| * @{ |
| */ |
| |
| |
| /** |
| * @brief Submit to the simple executor |
| * |
| * @param r RTIO context to submit |
| * |
| * @retval 0 always succeeds |
| */ |
| int rtio_simple_submit(struct rtio *r); |
| |
| /** |
| * @brief Report a SQE has completed successfully |
| * |
| * @param r RTIO context to use |
| * @param sqe RTIO SQE to report success |
| * @param result Result of the SQE |
| */ |
| void rtio_simple_ok(struct rtio *r, const struct rtio_sqe *sqe, int result); |
| |
| /** |
| * @brief Report a SQE has completed with error |
| * |
| * @param r RTIO context to use |
| * @param sqe RTIO SQE to report success |
| * @param result Result of the SQE |
| */ |
| void rtio_simple_err(struct rtio *r, const struct rtio_sqe *sqe, int result); |
| |
| /** |
| * @brief Simple Executor |
| */ |
| struct rtio_simple_executor { |
| struct rtio_executor ctx; |
| }; |
| |
| /** |
| * @cond INTERNAL_HIDDEN |
| */ |
| static const struct rtio_executor_api z_rtio_simple_api = { |
| .submit = rtio_simple_submit, |
| .ok = rtio_simple_ok, |
| .err = rtio_simple_err |
| }; |
| |
| /** |
| * @endcond INTERNAL_HIDDEN |
| */ |
| |
| |
| /** |
| * @brief Define a simple executor with a given name |
| * |
| * @param name Symbol name, must be unique in the context in which its used |
| */ |
| #define RTIO_EXECUTOR_SIMPLE_DEFINE(name) \ |
| struct rtio_simple_executor name = { .ctx = { .api = &z_rtio_simple_api } }; |
| |
| /** |
| * @} |
| */ |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| |
| #endif /* ZEPHYR_INCLUDE_RTIO_RTIO_EXECUTOR_SIMPLE_H_ */ |