Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pvmfsetminfo(3pvm) [debian man page]

SETMINFO(3PVM)							  PVM Version 3.4						    SETMINFO(3PVM)

NAME
pvm_getminfo, pvm_setminfo - Get or set header information of a message. 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. SEE ALSO
pvm_bufinfo(3PVM) 13 March, 1996 SETMINFO(3PVM)

Check Out this Related Man Page

RECVF(3PVM)							  PVM Version 3.4						       RECVF(3PVM)

NAME
pvm_recvf - Redefines the comparison function used to accept messages. SYNOPSIS
C int (*old)() = pvm_recvf( int (*new)( int bufid, int tid, int tag )) Fortran NOT AVAILABLE DESCRIPTION
The routine pvm_recvf defines the comparison function to be used by the pvm_recv, pvm_nrecv, and pvm_probe functions. It is available as a means to customize PVM message passing. pvm_recvf sets a user supplied comparison function to evaluate messages for receiving. recvf returns the old value of the matching function, or 0 if the old function was the default matcher pvm_recvf is intended for sophisticated C programmers who understand the function of such routines (like signal) and who require a receive routine that can match on more complex message contexts than the default provides. MATCHING FUNCTION
The default comparison function evaluates the source and message tag associated with all incoming messages. PARAMETERS
tid Integer task identifier of sending process supplied by the user. tag Integer message tag supplied by the user. bufid Integer message buffer identifier. The matching function should return: Value Action taken < 0 Return immediately with this error code. 0 Do not pick this message. 1 Pick this message and do not scan the rest. > 1 Pick this highest ranked message after scanning them all. EXAMPLES
Implementing message probe with recvf, using our matching function to return information in a global variable. #include <pvm3.h> static int foundit = 0; static int foo_match(mid, tid, tag) int mid; int tid; int tag; { int t, c; struct pvmminfo header; pvm_getminfo(mid, &header); if ((tid == -1 || tid == header.src) && (tag == -1 || tag == header.tag)) foundit = 1; return 0; } int probe(src, tag) { int (*omatch)(); int cc; omatch = pvm_recvf(foo_match); foundit = 0; if ((cc = pvm_nrecv(src, tag)) < 0) return cc; pvm_recvf(omatch); return foundit; } ERRORS
No error conditions are returned by pvm_recvf SEE ALSO
pvm_bufinfo(3PVM), pvm_getminfo(3PVM), pvm_recv(3PVM), pvm_nrecv(3PVM), pvm_probe(3PVM), pvm_trecv(3PVM) 30 August, 1993 RECVF(3PVM)
Man Page