NAME¶
pvm_archcode - Returns the data representation code for a PVM architecture name.
SYNOPSIS¶
C int cod = pvm_archcode( char *arch )
Fortran call pvmfarchcode( arch, cod )
PARAMETERS¶
- arch
- Character string containing the architecture name.
- cod
- Integer returning architecture code.
DESCRIPTION¶
The routine
pvm_archcode returns an integer given an architecture name.
The code returned identifies machines with compatible binary data formats. For
example, SUN4 and RS6K have the same code, while ALPHA has a different one
(because a few datatypes have different sizes). This lets you know when you
can get away with using
PvmDataRaw instead of
PvmDataDefault
encoding to pass messages between tasks on two machines.
Naturally, you shouldn't assume the values returned by pvm_archcode are etched
in stone; the numbers have no intrinsic meaning except that if two different
arch names map to the same value then they're compatible.
This routine is actually obsolete in the sense that the architecture codes
returned are already available in the
hi_dsig field of the pvmhostinfo
structure returned by pvm_config(), as shown in the below example. The routine
is maintained for backwards compatibility only.
EXAMPLES¶
C:
struct pvmhostinfo *hip;
int i;
pvm_config((int *)0, (int *)0, &hip);
i = pvm_archcode(hip[0].hi_arch);
/* or you could just do: i = hip[0].hi_dsig; */
Fortran:
CALL PVMFARCHCODE( 'RS6K', k )
ERRORS¶
On success,
pvm_archcode returns a positive integer data signature.
The following error conditions can be returned as well:
- PvmBadParam
- giving an invalid architecture name.
- PvmNotFound
- there is no host with the given architecture name in the current virtual
machine configuration.
- PvmSysErr
- pvmd not responding.
SEE ALSO¶
pvm_config(3PVM), pvm_initsend(3PVM), pvm_notify(3PVM), pvm_tasks(3PVM),
pvm_tidtohost(3PVM)