zephyr/lib/os
Krzysztof Chruscinski 3a765f4384 lib: os: Add mpsc (multiple producer, single consumer) packet buffer
Added module for storing variable length packets in a ring buffer.
Implementation assumes multiple producing contexts and single consumer.

API provides zero copy functionality with alloc, commit, claim, free
scheme.

Additionally, there are functions optimized for storing single word
packets and packets consisting of a word and a pointer. Buffer can work
in two modes: saturation or overwriting the oldest packets when buffer
has no space to allocate for a new buffer.

Signed-off-by: Krzysztof Chruscinski <krzysztof.chruscinski@nordicsemi.no>
2021-04-19 10:59:23 -04:00
..
assert.c userspace: rename _is_user_context -> k_is_user_context 2021-04-01 05:34:17 -04:00
base64.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
cbprintf.c lib: cbprintf: add libc f/printf substitutes 2021-01-27 13:34:06 -05:00
cbprintf_complete.c kernel: rename reserved 'exp' symbol 2021-03-25 07:28:37 -04:00
cbprintf_nano.c lib/os/cbprintf_nano.c: several improvements 2021-02-23 19:39:59 +01:00
cbprintf_packaged.c arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
CMakeLists.txt lib: os: Add mpsc (multiple producer, single consumer) packet buffer 2021-04-19 10:59:23 -04:00
crc7_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc8_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc16_sw.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
crc32_sw.c lib: crc32_sw: 4 bit at a time implementation 2021-01-24 14:24:48 -05:00
crc32c_sw.c lib: os: Introduce support for CRC32C algorithm 2021-03-02 14:08:30 +01:00
dec.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
fdtable.c net: socket: Add locking to prevent concurrent access 2021-04-15 07:16:51 -05:00
heap-validate.c lib: os: fix heap_print_info missing final else in construct 2021-04-14 09:20:20 -04:00
heap.c kernel: heap: rename resereved 'rewind' 2021-03-25 07:28:37 -04:00
heap.h lib/os/heap: straighten up our type usage 2021-03-18 19:33:39 -04:00
hex.c lib: hex: Remove constant expression 2020-09-02 13:45:50 -04:00
json.c misc: Replace assert include and calls by sys/__assert.h equivalent 2020-10-02 11:42:40 +02:00
Kconfig lib: os: Add mpsc (multiple producer, single consumer) packet buffer 2021-04-19 10:59:23 -04:00
Kconfig.cbprintf lib: os: cbprintf: Add static packaging 2021-03-11 09:54:39 +01:00
mpsc_pbuf.c lib: os: Add mpsc (multiple producer, single consumer) packet buffer 2021-04-19 10:59:23 -04:00
mutex.c lib: os: Simplify z_impl_z_sys_mutex_kernel_unlock 2021-03-10 05:42:06 -05:00
notify.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
onoff.c code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
p4wq.c lib/p4wq: Fix race with completed work items 2021-02-14 18:17:28 -05:00
printk.c userspace: rename _is_user_context -> k_is_user_context 2021-04-01 05:34:17 -04:00
rb.c lib/rbtree: Remove dead case in rb_remove() 2021-03-13 06:49:08 -05:00
ring_buffer.c sys: ring_buffer: allow NULL data buffers 2021-04-09 13:19:30 +02:00
sem.c code-guideline: Fixing code violation 10.4 Rule 2020-10-01 17:13:29 -04:00
thread_entry.c lib: os: remove dead code 2019-06-18 09:08:01 -04:00
timeutil.c lib/timeutil: add utilities to manage local/reference clock alignment 2021-01-20 16:38:56 -05:00
user_work.c kernel: provide functional equivalent to old userspace work queue API 2021-03-03 20:06:00 -05:00
work_q.c os: work_q: Use NULL instead of 0 2020-09-02 13:45:50 -04:00