mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-09-03 07:11:56 +00:00
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> |
||
---|---|---|
.. | ||
app_memory | ||
arch | ||
audio | ||
bluetooth | ||
canbus | ||
cmsis_rtos_v1 | ||
cmsis_rtos_v2 | ||
console | ||
crypto | ||
data | ||
debug | ||
devicetree | ||
dfu | ||
disk | ||
display | ||
drivers | ||
dt-bindings | ||
fs | ||
linker | ||
logging | ||
mgmt | ||
net | ||
posix | ||
power | ||
random | ||
settings | ||
shell | ||
stats | ||
storage | ||
sys | ||
toolchain | ||
tracing | ||
usb | ||
zephyr | ||
cache.h | ||
device.h | ||
devicetree.h | ||
exc_handle.h | ||
fatal.h | ||
generated_dts_board.h | ||
init.h | ||
irq_nextlevel.h | ||
irq_offload.h | ||
irq.h | ||
kernel_includes.h | ||
kernel_structs.h | ||
kernel_version.h | ||
kernel.h | ||
mempool_heap.h | ||
mempool_sys.h | ||
ptp_clock.h | ||
sched_priq.h | ||
shared_irq.h | ||
spinlock.h | ||
sw_isr_table.h | ||
sys_clock.h | ||
syscall_handler.h | ||
syscall.h | ||
timeout_q.h | ||
toolchain.h | ||
wait_q.h | ||
zephyr.h |