zephyr/doc/reference
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
..
audio doc: reference: Add pages for audio 2020-03-18 11:47:24 +01:00
bluetooth Bluetooth: hci: Add documentation for Read/Set USB Transport Mode 2020-04-20 21:59:47 +03:00
crypto doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
devicetree include: devicetree.h: API for /chosen zephyr,foo 2020-04-13 09:14:21 -05:00
display doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
drivers doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
file_system doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
kernel sys: add generic asynchronous notification infrastructure 2020-04-06 16:41:41 +02:00
logging doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
misc sys: add generic asynchronous notification infrastructure 2020-04-06 16:41:41 +02:00
networking doc: net: Add information about GSM 07.10 muxing support 2020-04-17 10:15:54 +03:00
peripherals drivers: dac: Add API for DAC peripherals 2020-04-20 17:41:48 +02:00
power_management doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
random doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
resource_management sys: onoff: redesign to meet changed needs 2020-04-22 16:52:47 +02:00
settings doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
shell doc: reference: Clean up and restructure a bit 2020-03-18 11:47:24 +01:00
storage doc: dts: revisit documentation 2020-03-24 10:11:20 -05:00
usb USB: Add driver and PID for Bluetooth H4 2020-04-20 21:59:47 +03:00
usermode doc: syscalls: expand docs on data copying 2020-04-01 23:34:02 -04:00
index.rst sys: add generic asynchronous notification infrastructure 2020-04-06 16:41:41 +02:00
overview.rst drivers: dac: Add API for DAC peripherals 2020-04-20 17:41:48 +02:00
terminology.rst doc: reference: Move terminology to its own page 2020-03-18 11:47:24 +01:00