zephyr/lib/os
Peter A. Bigot 13f96d439e sys: onoff: support clients using synchronous transitions
The on-off manager infrastructure is designed to robust asynchronous
transition between binary states where multiple clients may be
initiating a transition from any context.  The actual transition is
performed using a manager that tracks the current state and pending
operations.  Requests are initiated by passing a reference to an
onoff_client object that holds client state including the notification
mechanism.

This API may be used in subsystems where the transitions for a
particular driver are always synchronous and isr-ok, e.g. setting a
SoC-controlled GPIO.  In this situation the full on-off manager
infrastructure is wasteful.  All we need is a record of the service
state: off, active count, or error.

Add a data structure and an API that can be used to replace the onoff
manager functionality in a situation where all transitions are isr-ok
and synchronous while retaining compatible behavior from the client
perspective.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-08-14 17:53:39 +02:00
..
assert.c assert: Completely remove file info and condition expression 2020-01-13 13:59:55 +01:00
base64.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
CMakeLists.txt cmake: remove _if_kconfig() functions 2020-08-01 12:35:20 +02: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 zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
dec.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
fdtable.c lib: os: Add refcounting to fdtable entries 2020-08-10 14:56:08 -07:00
heap-validate.c lib/os/heap: make "solo free headers" into first-class citizens 2020-07-14 19:35:52 -04:00
heap.c lib: os/heap: timeout: avoid identifier collisions 2020-07-25 21:26:15 -04:00
heap.h lib/os/heap: remove big_heap restriction for aligned allocations 2020-07-14 19:35:52 -04:00
hex.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
json.c json: Add top-level array encoding support 2020-06-19 18:21:27 +02:00
Kconfig lib/os/heap: remove big_heap restriction for aligned allocations 2020-07-14 19:35:52 -04:00
mempool.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
mutex.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
notify.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
onoff.c sys: onoff: support clients using synchronous transitions 2020-08-14 17:53:39 +02:00
printk.c kernel/printk: Make it synchronous 2020-06-27 08:14:58 -04:00
rb.c cleanup: include/: move misc/rb.h to sys/rb.h 2019-06-27 22:55:49 -04:00
ring_buffer.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
sem.c kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
thread_entry.c lib: os: remove dead code 2019-06-18 09:08:01 -04:00
timeutil.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
work_q.c lib/os/work_q: sanity check work_q handler prior to calling it 2020-07-24 12:07:17 +02:00