e3d877f811
Add support for userspace with RTIO by making rtio and rtio_iodev k_objects. As well as adding three syscalls for copying in submissions, copying out completions, and starting tasks with submit. For the small devices Zephyr typically runs on one of the most important attributes tends to be low memory usage. To maintain the low footprint of RTIO and its current executor implementations the rings are not shared with userspace. Sharing the rings it turns out would require copying submissions before working with them to avoid TOCTOU issues. The API could still support shared rings in the future so that a kernel thread could directly poll, copy, verify, and start the submitted work. This would require a third executor implementation that maintains its own copy of submissions similiar to how io_uring in Linux works. Signed-off-by: Tom Burdick <thomas.burdick@intel.com> |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
Kconfig | ||
rtio_executor_concurrent.c | ||
rtio_executor_simple.c | ||
rtio_handlers.c |