The latest development version of this page may be more current than this released 4.0.0 version.

Asynchronous Notifications

Zephyr APIs often include async functions where an operation is initiated and the application needs to be informed when it completes, and whether it succeeded. Using is often a good method, but some application architectures may be more suited to a callback notification, and operations like enabling clocks and power rails may need to be invoked before kernel functions are available so a busy-wait for completion may be needed.

This API is intended to be embedded within specific subsystems such as On-Off Manager and other APIs that support async transactions. The subsystem wrappers are responsible for extracting operation-specific data from requests that include a notification element, and for invoking callbacks with the parameters required by the API.

A limitation is that this API is not suitable for System Calls because:

  • is not a kernel object;

  • copying the notification content from userspace will break use of in the implementing function;

  • neither the spin-wait nor callback notification methods can be accepted from userspace callers.

Where a notification is required for an asynchronous operation invoked from a user mode thread the subsystem or driver should provide a syscall API that uses for notification.

API Reference

Asynchronous Notification APIs