dlpi_send(3DLPI)Data Link Provider Interface Library Functionsdlpi_send(3DLPI)NAMEdlpi_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 desti‐
nation 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 associ‐
ated with dh (see dlpi_bind(3DLPI)) and with default priority. Other‐
wise, sendp must point to a dlpi_sendinfo_t structure defined in <lib‐
dlpi.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 spec‐
ified 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(7P)). 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 cur‐
rently 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(5) for description of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Committed │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOdlpi_bind(3DLPI), dlpi_info(3DLPI), dlpi_open(3DLPI), libdlpi(3LIB),
attributes(5), dlpi(7P)SunOS 5.10 15 Jul 2008 dlpi_send(3DLPI)