zephyr/include/sys
Peter Bigot 14e2ca4f16 sys: onoff: redesign to meet changed needs
The previous architecture proved unable to support user expectations,
so the API has been rebuilt from first principles.  Backward
compatibility cannot be maintained for this change.

Key changes include:

* Formerly the service-provided transition functions were allowed to
  sleep, and the manager took care to not invoke them from ISR
  context, instead returning an error if unable to initiate a
  transition.  In the new architecture transition functions are
  required to work regardless of calling context: it is the service's
  responsibility to guarantee the transition will proceed even if it
  needs to be transferred to a thread.  This eliminates state machine
  complexities related to calling context.
* Constants identifying the visible state of the manager are exposed
  to clients through both notification callbacks and a new monitor API
  that allows clients to be notified of all state changes.
* Formerly the release operation was async, and would be delayed for the
  last release to ensure a client would exist to be notified of any
  failures.  It is now synchronous.
* Formerly the cancel operation would fail on the last client associated
  with a transition.  The cancel operation is now synchronous.
* A helper function is provided to safely synchronously release a
  request regardless of whether it has completed or is in progress,
  satisfying the use case underlying #22974.
* The user-data parameter to asynchronous notification callbacks has
  been removed as user data can be retrieved from the CONTAINER_OF
  the client data.

Signed-off-by: Peter Bigot <peter.bigot@nordicsemi.no>
2020-04-22 16:52:47 +02:00
..
__assert.h assert: Completely remove file info and condition expression 2020-01-13 13:59:55 +01:00
arch_interface.h kernel: add Z_STACK_PTR_ALIGN ARCH_STACK_PTR_ALIGN 2020-04-21 18:45:45 -04:00
atomic.h kernel: add APIs for atomic os on pointers 2020-03-10 10:18:16 -04:00
base64.h
byteorder.h sys: byteorder: Add 48 bit variants 2019-12-10 09:55:30 +02:00
check.h base: add error checking macros 2020-01-20 17:19:54 -05:00
crc.h crc: Add crc8 implementation and tests 2020-03-10 12:53:53 +02:00
dlist.h sys: dlist: remove deprecated sys_dlist_insert_{before,after} 2019-09-11 11:18:20 -05:00
errno_private.h
fdtable.h net: sockets: Extend ioctl poll protocol with offloading feature 2020-01-31 11:36:02 -05:00
libc-hooks.h
list_gen.h
math_extras_impl.h math: extras: Add overflow functions to u16 2020-04-20 09:12:33 +03:00
math_extras.h math: extras: Add overflow functions to u16 2020-04-20 09:12:33 +03:00
mempool_base.h
mempool.h SYS_MEM_POOL_DEFINE(): move BUILD_ASSERT() at the end 2019-10-01 10:22:18 -07:00
mutex.h kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
notify.h sys: add generic asynchronous notification infrastructure 2020-04-06 16:41:41 +02:00
onoff.h sys: onoff: redesign to meet changed needs 2020-04-22 16:52:47 +02:00
printk.h lib: os: make snprintk fns generally available 2020-01-03 10:13:30 +01:00
rb.h
ring_buffer.h sys: ring_buffer: remove deprecated sys_ring_buf_* 2019-09-11 11:18:04 -05:00
sem.h kernel/timeout: Make timeout arguments an opaque type 2020-03-31 19:40:47 -04:00
sflist.h
slist.h
speculation.h
sys_heap.h kernel: Add k_heap synchronized memory allocator 2020-04-14 10:05:55 -07:00
sys_io.h
thread_stack.h kernel: add Z_STACK_PTR_ALIGN ARCH_STACK_PTR_ALIGN 2020-04-21 18:45:45 -04:00
time_units.h kernel: mark time conversion functions as constexpr in C++14. 2020-04-09 13:10:41 -07:00
timeutil.h lib/timeutil: add missing header required for s64_t 2020-02-27 11:35:43 +02:00
util.h include: util.h: add extern "C" 2020-04-20 15:46:00 +02:00