Data Link Provider Interface Library Functions
dlpi_enabnotify(3DLPI)
NAME
dlpi_enabnotify - enable DLPI notification
SYNOPSIS
cc [ flag... ] file... -ldlpi [ library... ]
#include
int dlpi_enabnotify(dlpi_handle_t dh, uint_t notes,
dlpi_notifyfunc_t *funcp, void *arg, dlpi_notifyid_t *id);
typedef void dlpi_notifyfunc_t(dlpi_handle_t,
dlpi_notifyinfo_t *, void *);
DESCRIPTION
The dlpi_enabnotify() function enables a notification call-
back for the set of events specified in notes, which must beone or more (by a logical OR operation) of the DLPI notifi-
cations documented in dlpi(7P). The callback function funcp is registered with the DLPI handle dh and is invoked when dh receives notification for any of the specified event types. Upon success, id contains the identifier associated with the registration.Multiple event types can be registered for a callback func-
tion on the DLPI handle dh. Similarly, the same event type can be registered multiple times on the same handle. Once a callback has been registered, libdlpi will check for notification events on the DLPI handle dh, when exchanging DLPI messages with the underlying DLPI link instance. Thedlpi_recv(3DLPI) function will always check for notification
events, but other libdlpi operations may also lead to an event callback being invoked. Although there may be noexpected data messages to be received, dlpi_recv() can be
called, as shown below, with a null buffer to force a check for pending events on the underlying DLPI link instance.dlpi_recv(dh, NULL, NULL, NULL, NULL, 0, NULL);
When a notification event of interest occurs, the callback function is invoked with the arguments arg, originallypassed to dlpi_disabnotify(3DLPI), and infop, whose members
are described below.SunOS 5.11 Last change: 10 Mar 2009 1
Data Link Provider Interface Library Functionsdlpi_enabnotify(3DLPI)
uint_t dni_note Notification event type.
uint_t dni_speed Current speed, in kilobits per
second, of the DLPI link. Validonly for DL_NOTE_SPEED.
uint_t dni_size Current maximum message size, in
bytes, that the DLPI link is able to accept for transmission. Validonly for DL_NOTE_SDU_SIZE.
uchar_t dni_physaddrlen Link-layer physical address
length, in bytes. Valid only forDL_NOTE_PHYS_ADDR.
uchar_t dni_physaddr[] Link-layer physical address of
DLPI link. Valid only forDL_NOTE_PHYS_ADDR.
The libdlpi library will allocate and free thedlpi_notifyinfo_t structure and the caller must not allocate
the structure or perform any operations that require its size to be known.The callback is not allowed to block. This precludes cal-
ling dlpi_enabnotify() from a callback, but non-blocking
libdlpi functions, including dlpi_disabnotify(), can be
called.RETURN VALUES
Upon success, DLPI_SUCCESS is returned. If DL_SYSERR is
returned, errno contains the specific UNIX system error value. Otherwise, a DLPI error value defined inor an error value listed in the following section is returned. ERRORS
DLPI_EINHANDLE A DLPI handle is invalid.
DLPI_EINVAL An argument is invalid.
SunOS 5.11 Last change: 10 Mar 2009 2
Data Link Provider Interface Library Functionsdlpi_enabnotify(3DLPI)
DLPI_ENOTEIDINVAL The DLPI notification ID is invalid.
DLPI_ENOTENOTSUP The DLPI notification is not supported
by the link.DLPI_ETIMEDOUT The DLPI operation timed out.
DLPI_FAILURE The DLPI operation failed.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Safe |
|_____________________________|_____________________________|
SEE ALSO
dlpi_disabnotify(3DLPI), dlpi_recv(3DLPI), libdlpi(3LIB),
attributes(5), dlpi(7P)SunOS 5.11 Last change: 10 Mar 2009 3
Data Link Provider Interface Library Functionsdlpi_enabnotify(3DLPI)
SunOS 5.11 Last change: 10 Mar 2009 4