ldi_add_event_handler - add NDI event service callback handler
int ldi_add_event_handler(ldi_handle_t lh, ddi_eventcookie_t ec,
void (*handler)(ldi_handle_t, ddi_eventcookie_t,
void *, void *) void *arg, ldi_callback_id_t *id);
Layered handle representing event notification
void (*handler)(ldi_handle_t, ddi_eventcookie_t, void *,
Callback handler for NDI event service
Pointer to opaque data supplied by caller. Typically,
this is a pointer to the layered driver's softstate structure.
This function is obsolete and is only maintained for compatibility. Use of this
function is strongly discouraged. For equivalent functionality provided by new
interfaces, see ldi_ev_get_cookie(9F) and
Pointer to registration id, where a unique registration
id is returned. Registration id must be saved and used when calling
to unregister a callback handler.
The ldi_add_event_handler() function adds a callback
handler to be invoked at the occurrence of the event specified by the
cookie. Adding a callback handler is also known as subscribing to an event.
Upon successful subscription, the handler is invoked when the event occurs.
You can unregister the handler by using
An instance of a layered driver can register multiple handlers for
an event or a single handler for multiple events. Callback order is not
defined and should be assumed to be random.
The routine handler is invoked with the following arguments:
Layered handle representing the device for which the
event notification is requested.
Structure describing event that occurred.
Opaque data pointer provided by the driver during
Pointer to event specific data defined by the framework
that invokes the callback function.
Callback handler registered successfully.
Failed to register callback handler. Possible reasons
include lack of resources or a bad cookie.
The ldi_add_event_handler() function can be called from user and kernel
Layered drivers must remove all registered callback handlers for a device
instance, represented by the layered handle, by calling
ldi_remove_event_handler(9F) before the layered driver's
detach(9E) routine completes.