sunos man page for ldi_add_event_handler

Query: ldi_add_event_handler

OS: sunos

Section: 9f

Links: sunos man pages   all man pages

Forums: unix linux community   forum categories

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

ldi_add_event_handler(9F)				   Kernel Functions for Drivers 				 ldi_add_event_handler(9F)

NAME
ldi_add_event_handler - Add an NDI event service callback handler
SYNOPSIS
#include <sys/sunldi.h> 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);
INTERFACE LEVEL
Solaris DDI Specific (Solaris DDI).
PARAMETERS
ldi_handle_t lh Layered handle representing event notification device. ddi_eventcookie_t ec Cookie returned from call to ldi_get_eventcookie(9F). void (*handler)(ldi_handle_t, ddi_eventcookie_t, void *, void *) Callback handler for NDI event service notification. void *arg Pointer to opaque data supplied by caller. Typically, this is a pointer to the layered driver's softstate structure. ldi_callback_id_t *id Pointer to registration id, where a unique registration id is returned. Registration id must be saved and used when calling ldi_remove_event_handler(9F) to unregister a callback handler.
DESCRIPTION
The ldi_add_event_handler() function adds a callback handler to be invoked at the occurance 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 ldi_remove_event_handler(9F). 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: ldi_handle_t lh Layered handle representing the device for which the event notification is requested. ddi_eventcookie_t ec Structure describing event that occurred. void *arg Opaque data pointer provided by the driver during callback registration. void *impl_data Pointer to event specific data defined by the framework that invokes the callback function.
RETURN VALUES
DDI_SUCCESS Callback handler registered successfully. DDI_FAILURE Failed to register callback handler. Possible reasons include lack of resources or a bad cookie.
CONTEXT
The ldi_add_event_handler() function can be called from user and kernel contexts only.
SEE ALSO
ldi_get_eventcookie(9F), ldi_remove_event_handler(9F) Writing Device Drivers
NOTES
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. SunOS 5.10 9 Feb 2004 ldi_add_event_handler(9F)
Related Man Pages
eventhandler(9) - debian
ddi_add_event_handler(9f) - sunos
ddi_get_eventcookie(9f) - sunos
ptree_register_handler(3picltre) - opensolaris
ldi_ev_register_callbacks(9f) - opensolaris
Similar Topics in the Unix Linux Community
Delete lines with a word and their above lines
Is UNIX an open source OS ?
How to convert number to english?
How do I remove or hide SunOS version/release from remote login prompt?
Best performance UNIX just for HOST Virtualization?