The dprecv man page







NAME
     dprecv - receive synchronous DP messages

SYNOPSIS
     #include 

     int dprecv(src, data, limit, flags)
     DPID *src;
     char *data;
     int limit;
     int flags;

DESCRIPTION
     To receive a synchronously sent message from  any  other  DP
     process, dprecv() is used. Up to limit bytes of data will be
     retrieved from the first message  on  the  incoming  message
     queue  and  placed  in data. The sender's dpid (described in
     the man pages for dpgetpid(3DP)) is placed in src.

     DP supports two types of messages: synchronous and asynchro-
     nous.   The former are also called non-interrupting messages
     and are queued upon their arrival  at  the  destination  and
     must be retrieved explicitly using dprecv().

     Asynchronous messages, also  termed  interrupting  messages,
     will  interrupt  their  target  process upon arrival and are
     returned to the application process via the dpgetmsg() call.

     The parameter flags tells  DP  whether  the  process  should
     block  if  no  messages are available at the queue. If it is
     DPBLOCK, the process will wait on a message. If it is set to
     DPNOBLOCK,  dprecv() will return with an error code indicat-
     ing there is nothing to retrieve.

     Care should be taken when transmitting data between machines
     that  have different byte-ordering schemes (i.e., big-endian
     or little-endian).  DP does not perform  any  conversion  on
     the  user data it sends and receives, so the user is respon-
     sible for making any  necessary  conversions.   Examples  of
     big-endian systems are most UNIX workstations (including Sun
     SPARCs and IBM RS/6000s), Motorola 68k series, and  the  KSR
     supercomputer.   Examples of little-endian systems are Intel
     80x86s and DEC workstations.

RETURN VALUES
     Upon success,  dprecv()  returns  0.  Otherwise  a  negative
     integer is returned indicating one of the following errors:

          DPFAIL         General DP failure

          DPNOMESSAGE    The message queue is empty






REMARK
     This is a DP function call.

AUTHOR
     David Arnow

FILES
     /usr/include/dp/dp.h - DP header file
     /usr/lib/libdp.a     - DP library file

SEE ALSO
     dpgetmsg(3DP), dpsend(3DP), dpwrite(3DP), dpgetpid(3DP)





Essential DP MAN Pages:

General/Essential:


Non-Interrupting Messages:


Interrupting Messages:
  • dpblock
  • dpcatchmsg
  • dpgetmsg
  • dppause
  • dpunblock

    Other:
    Return to DP For Students Return to The DP Project Return to David Arnow's Home Page