dlpi_recv(3dlpi) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

dlpi_recv(3dlpi)

dl...ecv(3DLPI) Data Link Provider Interface Library Functions dl...ecv(3DLPI)

NAME
       dlpi_recv - receive a data message using DLPI

SYNOPSIS
       cc [ flag ... ] file ... -ldlpi [ library ... ]
       #include <libdlpi.h>

       int dlpi_recv(dlpi_handle_t dh, void *saddrp,
            size_t * saddrlenp, void *msgbuf, size_t *msglenp,
            int msec, dlpi_recvinfo_t *recvp);

DESCRIPTION
       The  dlpi_recv()  function  attempts  to receive data messages over the
       DLPI link instance associated with the DLPI handle dh. If dh is not  in
       the DL_IDLE  DLPI state, the attempt fails. The caller must ensure that
       msgbuf is at least msglenp bytes in size. Upon success, msgbuf contains
       the  data message received, msglenp contains the number of bytes placed
       in msgbuf.


       The caller must ensure that saddrp is at least DLPI_PHYSADDR_MAX  bytes
       in  size and saddrlenp must contain the length of saddrp. Upon success,
       saddrp contains the address of the source sending the data message  and
       saddrlenp  contains the source address length. If the caller is not in‐
       terested in the source address, both saddrp and saddrlenp can  be  left
       as  NULL.  If the source address is not available, saddrp is not filled
       in and saddrlenp is set to zero.


       The dlpi_recvinfo_t is a structure defined in <libdlpi.h> as follows:

         typedef struct {
                 uchar_t         dri_destaddr[DLPI_PHYSADDR_MAX];
                 uchar_t         dri_destaddrlen;
                 dlpi_addrtype_t dri_destaddrtype;
                 size_t          dri_totmsglen;
         } dlpi_recvinfo_t;



       Upon success, if recvp is not set to NULL,  dri_destaddr  contains  the
       destination  address,  dri_destaddrlen contains the destination address
       length, and dri_totmsglen contains the total length of the message  re‐
       ceived.  If the destination address is unicast, dri_destaddrtype is set
       to DLPI_ADDRTYPE_UNICAST. Otherwise, it is set to DLPI_ADDRTYPE_GROUP.


       The values of msglenp and  dri_totmsglen  might  vary  when  a  message
       larger  than  the  size of msgbuf is received. In that case, the caller
       can use dri_totmsglen to determine the original  total  length  of  the
       message.


       If  the handle is in raw mode, as described in dlpi_open(3DLPI), msgbuf
       starts with the link-layer header. See dlpi(4P). The values of  saddrp,
       saddrlenp,  and all the members of dlpi_recvinfo_t except dri_totmsglen
       are invalid because the address information is already included in  the
       link-layer header returned by msgbuf.


       If no message is received within msec milliseconds, dlpi_recv() returns
       DLPI_ETIMEDOUT.  If  msec  is 0, dlpi_recv() does not block. If msec is
       -1, dlpi_recv() does block until a data message is received.

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_EBADMSG        Bad DLPI message


       DLPI_EINHANDLE      Invalid DLPI handle


       DLPI_EINVAL         Invalid argument


       DLPI_ETIMEDOUT      DLPI operation timed out


       DLPI_EUNAVAILSAP    Unavailable DLPI  SAP


       DLPI_FAILURE        DLPI operation failed


ATTRIBUTES
       See attributes(7) for description of the following attributes:

       tab()  box; lw(2.75i) |lw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE TYPEAT‐
       TRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe


SEE ALSO
       dlpi_bind(3DLPI), dlpi_open(3DLPI),  libdlpi(3LIB),  dlpi(4P),  attrib‐
       utes(7)

Oracle Solaris 11.4               22 Aug 2007                  dl...ecv(3DLPI)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3