zephyr/subsys
Tom Burdick e3d877f811 rtio: Userspace support
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>
2022-11-08 10:44:03 +01:00
..
bluetooth Bluetooth: Audio: Add support for multiple subgroups for BAP broadcast sink 2022-11-08 09:43:11 +00:00
canbus drivers: can: use flags fields for can_frame and can_filter structs 2022-10-25 16:32:10 +02:00
console
cpp kernel: Add C++ main() support 2022-11-05 16:41:45 +09:00
debug debug: thread_info: store arch mode_exc_return offset 2022-10-28 11:51:15 +02:00
demand_paging
dfu dfu/boot/mcuboot: treat pristine image as confirmed 2022-11-07 09:50:35 +01:00
disk
emul
fb
fs include: add missing kernel.h include 2022-10-11 18:05:17 +02:00
ipc ipc: Add deregister API support for icmsg backend 2022-10-17 14:49:42 +02:00
jwt
logging logging: log_backend_fs: added LOG_BACKEND_FS_AUTOSTART configuration 2022-10-26 12:00:29 +02:00
lorawan include: add missing kernel.h for lorawan subsys 2022-10-17 18:10:10 +09:00
mgmt mgmt: mcumgr: Fix using wrong value for response packet size 2022-11-03 15:39:17 +01:00
modbus
net net: ipv4: Add fragmented packet support 2022-11-05 19:58:26 +01:00
pm pm: Rework usage of CONFIG_MP_NUM_CPUS to CONFIG_MP_MAX_NUM_CPUS 2022-10-27 13:51:55 -04:00
portability subsys/cmsis_v*: Fix racy mutex testing, decouple from k_mutex 2022-10-17 10:13:56 +02:00
random
rtio rtio: Userspace support 2022-11-08 10:44:03 +01:00
sd sd: enable 4 bit bus width for high speed cards 2022-10-03 14:22:33 +02:00
settings Settings: NVS: Add cache for nvs name lookup 2022-11-05 19:58:34 +01:00
shell smp: Move for loops to use arch_num_cpus instead of CONFIG_MP_NUM_CPUS 2022-10-21 13:14:58 +02:00
stats stats: shell: enable the stats shell if both stats and shell are enabled 2022-10-12 06:46:34 +02:00
storage include: add missing errno.h include 2022-10-11 18:05:17 +02:00
task_wdt
testsuite ztest: Fix building when CONFIG_MP_NUM_CPUS=1 2022-11-07 21:12:54 -05:00
timing
tracing subsys/tracing: Use z_current_get in switch_{in,out} 2022-10-26 12:00:04 +02:00
usb usb: device: msc: synchronize cache after writes 2022-11-02 10:31:58 +01:00
CMakeLists.txt
Kconfig usb-c: Add USB-C Subsystem with Sink PD Support 2022-10-22 18:38:35 -04:00