DLPI_SEND(3DLPI) Data Link Provider Interface Library Functions
NAME
dlpi_send - send a data message using DLPI
SYNOPSIS
cc [
flag... ]
file...
-ldlpi [
library... ]
#include <libdlpi.h>
int dlpi_send(
dlpi_handle_t dh,
const void *daddrp,
size_t daddrlen,
const void *msgbuf,
size_t msglen,
const dlpi_sendinfo_t *sendp);
DESCRIPTION
The
dlpi_send() function attempts to send the contents of
msgbuf over
the
DLPI link instance associated with the
DLPI handle
dh to the
destination address specified by
daddrp. The size of
msgbuf and
daddrp are provided by the
msglen and
daddrlen arguments,
respectively. The attempt will fail if
dh is not in the
DL_IDLE DLPI state, the address named by
daddrp is invalid,
daddrlen is larger
than
DLPI_PHYSADDR_MAX, or
msglen is outside the range reported by
dlpi_info(3DLPI).
If the
sendp argument is
NULL, data is sent using the bound SAP
associated with
dh (see
dlpi_bind(3DLPI)) and with default priority.
Otherwise,
sendp must point to a
dlpi_sendinfo_t structure defined in
<libdlpi.h> as follows:
typedef struct {
uint_t dsi_sap;
dl_priority_t dsi_prio;
} dlpi_sendinfo_t;
The
dsi_sap value indicates the SAP to use for the message and the
dsi_prio argument indicates the priority. The priority range spans
from 0 to 100, with 0 being the highest priority. If one wishes to
only alter the SAP or priority (but not both), the current SAP can be
retrieved using
dlpi_info(3DLPI), and the default priority can be
specified by using the
DL_QOS_DONT_CARE constant.
If the handle is in raw mode (see
DLPI_RAW in
dlpi_open(3DLPI)),
msgbuf must start with the link-layer header (see
dlpi(4P)). In raw
mode, the contents of
daddrp and
sendp are ignored, as they are
already specified by the link-layer header in
msgbuf.
If
msgbuf is accepted for delivery, no error is returned. However,
because only unacknowledged connectionless service (
DL_CLDLS) is
currently supported, a successful return does not guarantee that the
data will be successfully delivered to
daddrp.
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 Invalid
DLPI handle
DLPI_EINVAL Invalid argument
ATTRIBUTES
See
attributes(7) for description of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+
|MT-Level | Safe |
+--------------------+-----------------+
SEE ALSO
dlpi_bind(3DLPI),
dlpi_info(3DLPI),
dlpi_open(3DLPI),
libdlpi(3LIB),
dlpi(4P),
attributes(7) July 15, 2008 DLPI_SEND(3DLPI)