zephyr/include
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
..
app_memory kernel: fix k_mem_partition data types 2019-12-12 14:48:42 -08:00
arch kernel: add Z_STACK_PTR_ALIGN ARCH_STACK_PTR_ALIGN 2020-04-21 18:45:45 -04:00
audio doc: reference: Add pages for audio 2020-03-18 11:47:24 +01:00
bluetooth Bluetooth: host: Add support for multiple advertising set 2020-04-21 12:46:05 +03:00
canbus doc: doxygen: add missing groups and categorise 2020-03-14 13:01:03 -04:00
cmsis_rtos_v1
cmsis_rtos_v2 global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
console
crypto docs: crypto: crypto API documentation 2020-03-14 13:01:03 -04:00
data treewide: avoid address-of-compound-literal idiom in headers 2019-12-18 21:53:17 +01:00
debug include: debug: remove old stack functions 2020-03-14 13:10:19 -04:00
devicetree devicetree.h: clocks: Rename clock node name 2020-04-21 15:39:36 -05:00
dfu DFU: add init function with area id as parameter 2020-03-10 15:07:27 +02:00
disk doc: reference: Add disk access API 2020-03-18 11:47:24 +01:00
display
drivers Bluetooth: HCI: Add helpers to create events 2020-04-20 21:59:47 +03:00
dt-bindings include: bindings: dma define the bindings for stm32 soc series 2020-04-17 03:13:02 -05:00
fs fs: littlefs: force alignment for buffers 2020-04-11 15:33:35 -04:00
linker shell: Add dedicated section for shell instances 2020-04-17 11:34:01 +02:00
logging logging: Fix LOG_LEVEL_SET macro 2020-03-26 08:04:02 -04:00
mgmt mgmt: smp: add UDP transport for SMP 2020-04-17 10:16:25 +03:00
net net: http_client: Fix payload issue on HTTP upload 2020-04-21 00:05:04 +03:00
posix lib: posix: clock: Turn clock_gettime into system call 2020-04-17 08:08:37 -04:00
power power: add system power management direct force mode. 2020-01-24 21:37:40 -05:00
random doc: doxygen: add missing groups and categorise 2020-03-14 13:01:03 -04:00
settings doc: doxygen: add missing groups and categorise 2020-03-14 13:01:03 -04:00
shell shell: Add shell_set_root_cmd function 2020-04-17 11:34:01 +02:00
stats
storage
sys sys: onoff: redesign to meet changed needs 2020-04-22 16:52:47 +02:00
toolchain toolchain: Fix warning about too few arguments on BUILD_ASSERT() 2020-04-11 11:09:20 -04:00
tracing tracing: move headers under include/tracing 2020-02-07 15:58:05 -05:00
usb usb: make usb descriptor power options configurable 2019-12-20 19:46:16 -05:00
zephyr include: Remove compat include headers 2019-12-10 08:39:37 -05:00
cache.h
device.h device: Provide a dummy macro for device_pm_control_nop on disabled PM 2020-03-27 14:48:30 +02:00
devicetree.h devicetree: add DT_PARENT() 2020-04-15 08:27:18 -05:00
exc_handle.h
fatal.h
generated_dts_board.h dts: Add include/generated_dts_board.h for backwards compatibility 2020-01-17 17:57:59 +01:00
init.h kernel: add sys init level for SMP 2020-03-25 19:07:28 -04:00
irq_nextlevel.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
irq_offload.h
irq.h irq: Remove return value from IRQ_CONNECT and IRQ_DIRECT_CONNECT 2020-04-17 13:19:07 -05:00
kernel_includes.h kernel: move thread stack macros to new header 2020-04-21 18:45:45 -04:00
kernel_structs.h kernel: Add k_heap synchronized memory allocator 2020-04-14 10:05:55 -07:00
kernel_version.h
kernel.h kernel: move thread stack macros to new header 2020-04-21 18:45:45 -04:00
mempool_heap.h kernel: Add k_mem_pool compatibility layer on top of k_heap 2020-04-14 10:05:55 -07:00
mempool_sys.h kernel: Refactor k_mem_pool APIs into a base and derived level 2020-04-14 10:05:55 -07:00
ptp_clock.h scripts: Replace hard-coded subsystem list with __subsystem annotations. 2020-03-11 17:13:39 +02:00
sched_priq.h
shared_irq.h include: respect line limit in api pointer initialization 2019-12-16 21:14:08 -05:00
spinlock.h kernel: Add k_heap synchronized memory allocator 2020-04-14 10:05:55 -07:00
sw_isr_table.h sw_isr_table.h: fix __COUNTER__ usage 2020-04-17 18:28:37 +02:00
sys_clock.h include: Move waitq and timeout structs to kernel_structs.h 2020-04-14 10:05:55 -07:00
syscall_handler.h kernel: rename struct _k_object 2020-03-17 20:11:27 +02:00
syscall.h global: Remove leading/trailing blank lines in files 2019-12-11 19:17:27 +01:00
timeout_q.h kernel/timeout: Add timeout remaining/expires APIs 2020-03-31 19:40:47 -04:00
toolchain.h
wait_q.h
zephyr.h