dlpi_set_timeout(3DLPI) Data Link Provider Interface Library Functions dlpi_set_timeout(3DLPI)NAME
dlpi_set_timeout - set DLPI handle timeout interval
SYNOPSIS
cc [ flag ... ] file ... -ldlpi [ library ... ]
#include <libdlpi.h>
int dlpi_set_timeout(dlpi_handle_t dh, int sec);
DESCRIPTION
The dlpi_set_timeout() function sets the timeout interval to sec seconds on DLPI handle dh. This timeout is used by libdlpi(3LIB) functions
that require explicit acknowledgment from the associated DLPI link, and bounds the number of seconds that a function will wait for an
acknowledgment before returning DLPI_ETIMEDOUT. Except for dlpi_recv(3DLPI), which has a timeout argument, any function that is documented
to return DLPI_ETIMEDOUT can take up to the timeout interval to complete.
Callers that do not require an upper bound on timeouts are strongly encouraged to never call dlpi_set_timeout(), and allow libdlpi to use
its default timeout value. The default timeout value is intended to ensure that DLPI_ETIMEDOUT will only be returned if the DLPI link has
truly become unresponsive. The default timeout value is intended to ensure that DLPI_ETIMEDOUT will be returned only if the DLPI link has
truly become unresponsive.
Callers that do require an explicit upper bound can specify that value at any time by calling dlpi_set_timeout(). However, note that val-
ues less than 5 seconds may trigger spurious failures on certain DLPI links and systems under high load, and thus are discouraged. Attempts
to set the timeout value to less than 1 second will fail.
If sec is set to DLPI_DEF_TIMEOUT, the default timeout value is restored.
RETURN VALUES
Upon success, DLPI_SUCCESS is returned. Otherwise, a DLPI error value is returned.
ERRORS
DLPI_EINHANDLE Invalid DLPI handle
ATTRIBUTES
See attributes(5) for description of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Committed |
+-----------------------------+-----------------------------+
|MT-Level |Safe |
+-----------------------------+-----------------------------+
SEE ALSO libdlpi(3LIB), attributes(5)SunOS 5.11 21 Aug 2007 dlpi_set_timeout(3DLPI)
Check Out this Related Man Page
dlpi_enabnotify(3DLPI) Data Link Provider Interface Library Functions dlpi_enabnotify(3DLPI)NAME
dlpi_enabnotify - enable DLPI notification
SYNOPSIS
cc [ flag... ] file... -ldlpi [ library... ]
#include <libdlpi.h>
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 callback for the set of events specified in notes, which must be one or more (by a
logical OR operation) of the DLPI notifications 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 function on the DLPI handle dh. Similarly, the same event type can be registered mul-
tiple 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. The dlpi_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 no expected 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, originally passed to dlpi_disabno-
tify(3DLPI), and infop, whose members are described below.
uint_t dni_note Notification event type.
uint_t dni_speed Current speed, in kilobits per second, of the DLPI link. Valid only for DL_NOTE_SPEED.
uint_t dni_size Current maximum message size, in bytes, that the DLPI link is able to accept for transmission. Valid only for
DL_NOTE_SDU_SIZE.
uchar_t dni_physaddrlen Link-layer physical address length, in bytes. Valid only for DL_NOTE_PHYS_ADDR.
uchar_t dni_physaddr[] Link-layer physical address of DLPI link. Valid only for DL_NOTE_PHYS_ADDR.
The libdlpi library will allocate and free the dlpi_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 calling 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 in <sys/dlpi.h> or an error value listed in the following section is returned.
ERRORS
DLPI_EINHANDLE A DLPI handle is invalid.
DLPI_EINVAL An argument is invalid.
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 attributes:
+-----------------------------+-----------------------------+
| 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 10 Mar 2009 dlpi_enabnotify(3DLPI)