FreeBSD Manual Pages
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 encodingInteger 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 encod- ing. 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 PvmDataRaw encoding and save on encoding costs. PvmDataInPlace encoding specifies that data be left in place during pack- ing. The message buffer only contains the sizes and pointers to the items to be sent. When pvm_send is called the items are copied directly 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 buffer identifier. If some error occurs then bufid will be < 0. RESTRICTIONS PvmDataInPlace allows only dense (stride = 1) data in version 3.3. It can- not 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 buffer 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://man.freebsd.org/cgi/man.cgi?query=pvm_initsend&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>
