dlpi_recv man page on SmartOS

Man page or keyword search:  
man Server   16655 pages
apropos Keyword Search (all sections)
Output format
SmartOS logo
[printable version]


       dlpi_recv - receive a data message using DLPI

       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);

       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  con‐
       tains  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
       interested 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
       received.  If  the  destination address is unicast, dri_destaddrtype is
       set to  DLPI_ADDRTYPE_UNICAST.  Otherwise,  it  is  set	to  DLPI_ADDR‐

       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

       If the handle is in raw mode, as described in dlpi_open(3DLPI),	msgbuf
       starts  with the link-layer header. See dlpi(7P). 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.

       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.

			   Bad DLPI message

			   Invalid DLPI handle

			   Invalid argument

			   DLPI operation timed out

			   Unavailable DLPI SAP

			   DLPI operation failed

       See attributes(5) for description of the following attributes:

       │Interface Stability │ Committed	      │
       │MT-Level	    │ Safe	      │

       dlpi_bind(3DLPI),   dlpi_open(3DLPI),   libdlpi(3LIB),	attributes(5),

				 Aug 22, 2007		      DLPI_RECV(3DLPI)

List of man pages available for SmartOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net