Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
INITSEND(3PVM)			PVM Version 3.4			INITSEND(3PVM)

NAME
       pvm_initsend - Clear default send buffer	and specify message encoding.

SYNOPSIS
       C    int	bufid =	pvm_initsend( int encoding )

       Fortran	 call pvmfinitsend( encoding, bufid )

PARAMETERS
       encoding
	       Integer specifying the next message's encoding scheme.
	       Options in C are:
		    Encoding value	     MEANING
		    PvmDataDefault	0    XDR
		    PvmDataRaw		1    no	encoding
		    PvmDataInPlace	2    data left in place

	       Option names are	in Fortran are:
		    Encoding value	     MEANING
		    PVMDEFAULT		0    XDR
		    PVMRAW		1    no	encoding
		    PVMINPLACE		2    data left in place

       bufid   Integer	returned  containing  the  message  buffer identifier.
	       Values less than	zero indicate an error.

DESCRIPTION
       The routine pvm_initsend	clears the send	buffer	and  prepares  it  for
       packing a new message.  The encoding scheme used	for the	packing	is set
       by encoding.  XDR encoding is used by default because PVM can not  know
       if the user is going to add a heterogeneous machine before this message
       is sent.	 If the	user knows that	the next message will only be sent  to
       a  machine  that	 understands  the  native format, then he can use Pvm-
       DataRaw encoding	and save on encoding costs.

       PvmDataInPlace encoding specifies that data be  left  in	 place	during
       packing.	  The  message	buffer only contains the sizes and pointers to
       the items to be sent. When pvm_send is called the items are copied  di-
       rectly  out  of	the user's memory. This	option decreases the number of
       times a message is copied at the	expense	of requiring the user  to  not
       modify the items	between	the time they are packed and the time they are
       sent.

       If pvm_initsend is successful, then bufid will contain the message buf-
       fer identifier.	If some	error occurs then bufid	will be	< 0.

RESTRICTIONS
       PvmDataInPlace  allows only dense (stride = 1) data in version 3.3.  It
       cannot be used on shared	memory (*MP) architectures; a PvmNotImpl error
       will occur at send time.

EXAMPLES
       C:
	    bufid = pvm_initsend( PvmDataDefault );
	    info = pvm_pkint( array, 10, 1 );
	    msgtag = 3 ;
	    info = pvm_send( tid, msgtag );

       Fortran:
	    CALL PVMFINITSEND(PVMRAW, BUFID)
	    CALL PVMFPACK( REAL4, DATA,	100, 1,	INFO )
	    CALL PVMFSEND( TID,	3, INFO	)

ERRORS
       These error conditions can be returned by pvm_initsend

       PvmBadParam
	      giving an	invalid	encoding value

       PvmNoMem
	      Malloc has failed. There is not enough memory to create the buf-
	      fer

SEE ALSO
       pvm_mkbuf(3PVM)

				30 August, 1993			INITSEND(3PVM)

NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | RESTRICTIONS | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pvm_initsend&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help