| Introduction |
| ============= |
| |
| The service notifier driver facilitates a mechanism for a client |
| to register for state notifications regarding a particular remote service. |
| A remote service here refers to a process providing certain services like audio, |
| the identifier for which is provided by the service locator. The process |
| domain will typically run on a remote processor within the same SoC. |
| |
| Software Description |
| ===================== |
| |
| The driver provides the following two APIs: |
| * service_notif_register_notifier() - Register a notifier for a service |
| On success, it returns back a handle. It takes the following arguments: |
| service_path: Individual service identifier path for which a client |
| registers for notifications. |
| instance_id: Instance id specific to a subsystem. |
| current_state: Current state of service returned by the registration |
| process. |
| notifier block: notifier callback for service events. |
| |
| * service_notif_unregister_notifier() - Unregister a notifier for a service. |
| This takes the handle returned during registration and the notifier block |
| previously registered as the arguments. |
| |
| Types of notifications: |
| ======================= |
| |
| A client can get either a SERVICE_DOWN notification or a SERVICE_UP |
| notification. A SERVICE_UP notification will be sent out when the SERVICE comes |
| up and is functional while a SERVICE_DOWN notification is sent after a |
| service ceases to exist. At the point a SERVICE_DOWN notification is sent out, |
| all the clients should assume that the service is already dead. |
| |
| Interaction with SSR |
| ===================== |
| In general, it is recommended that clients register for either service |
| notifications using the service notifier or SSR notifications, but not both. |
| In case it is necessary to register for both, the client can expect to get |
| the SERVICE_DOWN notification before the SUBSYS_AFTER_SHUTDOWN notification. |
| However, the client may receive the SUBSYS_BEFORE_SHUTDOWN notification |
| either before or after the SERVICE_DOWN notification. |