SYSEVENT_BIND_HANDLE(3SYSEVENT) System Event Library Functions

NAME


sysevent_bind_handle, sysevent_unbind_handle - bind or unbind
subscriber handle

SYNOPSIS


cc [flag...] file ... -lsysevent [library ...]
#include <libsysevent.h>

sysevent_handle_t *sysevent_bind_handle(void (*event_handler)
(sysevent_t *ev));


void sysevent_unbind_handle(sysevent_handle_t *sysevent_hdl);


PARAMETERS


ev
pointer to sysevent buffer handle


event_handler
pointer to an event handling function


sysevent_hdl
pointer to a sysevent subscriber handle


DESCRIPTION


The sysevent_bind_handle() function allocates memory associated with
a subscription handle and binds it to the caller's event_handler.
The event_handler is invoked during subsequent system event
notifications once a subscription has been made with
sysevent_subscribe_event(3SYSEVENT).


The system event is represented by the argument ev and is passed as
an argument to the invoked event delivery function, event_handler.


Additional threads are created to service communication between
syseventd(8) and the calling process and to run the event handler
routine, event_handler.


The sysevent_unbind_handle() function deallocates memory and other
resources associated with a subscription handle and deactivates all
system event notifications for the calling process. All event
notifications are guaranteed to stop upon return from
sysevent_unbind_handle().

RETURN VALUES


The sysevent_bind_handle() function returns a valid sysevent
subscriber handle if the handle is successfully allocated.
Otherwise, NULL is returned and errno is set to indicate the error.


The sysevent_unbind_handle() function returns no value.

ERRORS


The sysevent_bind_handle() function will fail if:

EACCES
The calling process has an ID other than the privileged
user.


EBUSY
There are no resources available.


EINVAL
The pointer to the function event_handler is NULL.


EMFILE
The process has too many open descriptors.


ENOMEM
There are insufficient resources to allocate the handle.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


sysevent_subscribe_event(3SYSEVENT), attributes(7), syseventd(8)

NOTES


Event notifications are revoked by syseventd when the bound process
dies. Event notification is suspended if a signal is caught and
handled by the event_handler thread. Event notification is also
suspended when the calling process attempts to use fork(2) or
fork1(2). Event notifications might be lost during suspension
periods.


The libsysevent interfaces do not work at all in non-global zones.

July 24, 2009
SYSEVENT_BIND_HANDLE(3SYSEVENT)

tribblix@gmail.com :: GitHub :: Privacy