zephyr/doc
Tom Burdick 3d2ead38cb rtio: Real-Time Input/Output Stream
A DMA friendly Stream API for zephyr. Based on ideas from io_uring
and iio, a queue based API for I/O operations.

Provides a pair of fixed length ringbuffer backed queues for submitting
I/O requests and recieving I/O completions. The requests may be chained
together to ensure the next operation does not start until the current
one is complete.

Requests target an abstract rtio_iodev which is expected to wrap all
the hardware particulars of how to perform the operation. For example
with a SPI bus device, a description of what a read, and write mean
can be decided by the iodev wrapping a particular device
hanging off of a SPI controller.

The queue pair are submitted to an executor which may be a simple
inplace looping executor done in the callers execution context
(thread/stack) but other executors are expected. A threadpool executor
might for example allow for concurrent request chains to execute in
parallel. A DMA executor, in conjunction with DMA aware iodevs
would allow for hardware offloading of operations going so far as to
schedule with priority using hardware arbitration.

Both the iodev and executor are definable by a particular
SoC, meaning they can work in conjuction to perform IO operations
using a particular DMA controller or methodology if desired.

The application decides entirely how large the queues are, where
the buffers to read/write come from (some executors
may have particular demands!), and which executor to submit
requests to.

Signed-off-by: Tom Burdick <thomas.burdick@intel.com>
2022-06-28 13:53:13 -04:00
..
_doxygen doc: Update HTML documentation Zephyr logo 2022-06-06 00:02:55 +09:00
_extensions/zephyr doc: extensions: kconfig: handle promptless choices showing as parents 2022-05-06 20:18:24 +02:00
_scripts boards: intel_s1000_crb: remove board/soc 2022-06-13 16:19:51 -04:00
_static doc: Update PDF documentation Zephyr logo 2022-06-06 00:02:55 +09:00
_templates doc: add a toctree with reference material 2021-11-02 13:24:40 +01:00
build doc: dts: bindings: formalize case and separator 2022-06-10 12:26:33 -07:00
connectivity doc: Bluetooth: Upstream existing LE Audio shell rsts 2022-06-28 14:50:11 +02:00
contribute doc: contribute: guidelines: replace uncrustify with clang-format 2022-06-15 09:37:30 -04:00
develop ztest: Test selection documentation. 2022-06-15 18:06:54 -04:00
hardware doc: board_porting: remove pinmux example 2022-06-06 15:39:50 -07:00
images doc: remove unused images 2021-07-19 20:06:00 -04:00
introduction doc: mention MIPS architecture support 2022-01-24 17:11:42 -05:00
kernel doc: change key properties from italic to bold 2022-06-28 16:17:32 +02:00
project doc: Reword and reformat a sentence on review time 2022-06-28 15:55:21 +02:00
releases doc: release-3.2: note on removal of deprecated work queue API 2022-06-27 12:46:21 +02:00
security vulnerabilities: Add CVE information 2022-06-06 17:59:28 +02:00
services rtio: Real-Time Input/Output Stream 2022-06-28 13:53:13 -04:00
templates
404.rst doc: Suggest filing GitHub issue for broken links 2022-04-28 10:26:03 +02:00
CMakeLists.txt doc: fix building documentation when PYTHONPATH is set 2022-05-25 17:16:55 -07:00
conf.py release: Zephyr 3.1.0 2022-06-05 13:19:10 +02:00
copyright.rst doc: add missing doc top labels 2019-04-16 18:11:30 -04:00
glossary.rst doc: use :kconfig:option: domain role 2022-03-02 09:28:37 +01:00
index-tex.rst doc: get rid of reference section 2022-04-07 16:35:19 +02:00
index.rst doc: get rid of reference section 2022-04-07 16:35:19 +02:00
kconfig.rst doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
known-warnings.txt doc: Bluetooth: Document the services APIs 2022-05-24 17:49:17 +02:00
LICENSING.rst docs: Change a number of 'master' branch refers to 'main' 2021-05-28 10:45:17 -05:00
Makefile doc: use new kconfig extension 2022-03-02 09:28:37 +01:00
substitutions.txt doc: New developer getting started guide 2019-11-13 14:05:47 -06:00
zephyr.doxyfile.in doc: net: Document POSIX wrappers for socket operations 2022-06-24 20:29:37 +02:00