pvm_getminfo(3) Get or set header information of a message.

Other Alias

pvm_setminfo

SYNOPSIS


C int info = pvm_getminfo( int bufid, struct pvmminfo *mi )
int info = pvm_setminfo( int bufid, struct pvmminfo *mi )
Fortran call pvmfgetminfo( bufid, len, ctx, tag, wid, enc, crc,
src, dst, info )
call pvmfsetminfo( bufid, ctx, tag, wid, src, dst, info )

PARAMETERS

bufid
Message buffer identifier.
mi
Struct containing header information.
info
Result code.

For a description of the Fortran parameters, see below.

DESCRIPTION

These functions read and set information passed in message headers, which may be of interest to certain applications. Typically, they will be used when it is necessary to get the message context or wait id to use the same values in a reply message.

The fields affected are:

len
The length in bytes of the body of the message. This will be equal to the actual size of the data packed, if PvmDataRaw is used, otherwise it may include pad bytes.
ctx
The context sent with the message.
tag
The tag sent with the message.
wid
Wait Identifier, used to match a reply message to the corresponding request.
enc
Message Encoding, either the data signature of the sender, or 0x10000000 for XDR.
crc
The CRC checksum of the message body.
src
The tid of the sender.
dst
The tid of the destination.

All fields may be read, but only ctx, tag, wid, src and dst may be set.

pvm_getmwid and pvm_setmwid return PvmOk if successful, or else a negative error code.

EXAMPLES

        /* return a message to a caller with the same tag and wait id */
        struct pvmminfo mi1, mi2;
        pvm_recv(-1, -1);
        /* ... process, compose reply message */
        pvm_getminfo(pvm_getrbuf(), &mi1);
        pvm_getminfo(pvm_getsbuf(), &mi2);
        mi2.wid = mi1.wid;
        pvm_send(mi1.src, mi1.tag);

ERRORS

The following error conditions can be returned by pvm_getmwid or pvm_setmwid:
PvmBadParam
Invalid value for bufid or mi argument.
PvmNoSuchBuf
Message buffer bufid doesn't exist.