/* $Id: host.h,v 1.6 2001/09/26 23:35:21 pvmsrc Exp $ */
/*
* PVM version 3.4: Parallel Virtual Machine System
* University of Tennessee, Knoxville TN.
* Oak Ridge National Laboratory, Oak Ridge TN.
* Emory University, Atlanta GA.
* Authors: J. J. Dongarra, G. E. Fagg, M. Fischer
* G. A. Geist, J. A. Kohl, R. J. Manchek, P. Mucci,
* P. M. Papadopoulos, S. L. Scott, and V. S. Sunderam
* (C) 1997 All Rights Reserved
*
* NOTICE
*
* Permission to use, copy, modify, and distribute this software and
* its documentation for any purpose and without fee is hereby granted
* provided that the above copyright notice appear in all copies and
* that both the copyright notice and this permission notice appear in
* supporting documentation.
*
* Neither the Institutions (Emory University, Oak Ridge National
* Laboratory, and University of Tennessee) nor the Authors make any
* representations about the suitability of this software for any
* purpose. This software is provided ``as is'' without express or
* implied warranty.
*
* PVM version 3 was funded in part by the U.S. Department of Energy,
* the National Science Foundation and the State of Tennessee.
*/
/*
* host.h
*
* Host table data structures.
*
* $Log: host.h,v $
* Revision 1.6 2001/09/26 23:35:21 pvmsrc
* Added new hd_vmid to hostd struct.
* - use to override local PVM_VMID settings with hostfile "id=" option
* (Spanker=kohl)
*
* Revision 1.5 1999/07/08 19:00:20 kohl
* Fixed "Log" keyword placement.
* - indent with " * " for new CVS.
*
* Revision 1.4 1997/06/25 22:08:45 pvmsrc
* Markus adds his frigging name to the author list of
* every file he ever looked at...
*
* Revision 1.3 1997/04/30 21:25:57 pvmsrc
* SGI Compiler Warning Cleanup.
*
* Revision 1.2 1997/01/28 19:27:56 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.1 1996/09/23 23:43:17 pvmsrc
* Initial revision
*
* Revision 1.4 1995/05/17 16:10:01 manchek
* added HF_OVERLOAD
*
* Revision 1.3 1994/06/21 18:30:47 manchek
* added HF_SPEED flag
*
* Revision 1.2 1994/06/03 20:38:14 manchek
* version 3.3.0
*
* Revision 1.1 1993/08/30 23:26:48 manchek
* Initial revision
*
*/
/* Host descriptor */
struct hostd {
int hd_ref; /* num refs to this struct */
int hd_hostpart; /* host tid base */
char *hd_name; /* name */
char *hd_arch; /* cpu arch class */
char *hd_login; /* loginname [used master only] */
char *hd_dpath; /* daemon executable */
char *hd_epath; /* task exec search path */
char *hd_bpath; /* debugger executable */
char *hd_wdir; /* pvmd working dir */
char *hd_sopts; /* hoster options */
int hd_flag;
int hd_dsig; /* data signature */
int hd_err; /* error code */
int hd_mtu; /* max snd/rcv length */
struct sockaddr_in hd_sad; /* UDP address/port */
int hd_rxseq; /* expected next seq num from host */
int hd_txseq; /* next tx seq num to host */
struct pkt *hd_txq; /* not-yet-sent packet queue to host */
struct pkt *hd_opq; /* outstanding packets to host */
int hd_nop; /* length of opq */
struct pkt *hd_rxq; /* packet reordering queue from host */
struct pmsg *hd_rxm; /* to-us msg reassembly from host */
struct timeval hd_rtt; /* estd round-trip time to host */
int hd_speed; /* cpu relative speed */
struct mca *hd_mcas; /* from-host mca cache */
char *hd_aname; /* name to use for network address */
char *hd_vmid; /* virtual machine id */
};
/* hd_flag values */
/* for advisory host table */
#define HF_NOSTART 0x100 /* don't start pvmd */
#define HF_SPEED 0x200 /* hd_speed is set */
#define HF_OVERLOAD 0x400 /* allow overloaded (>1 pvmd) host */
/* Host table */
struct htab {
int ht_serial; /* serial number */
int ht_last; /* highest entry */
int ht_cnt; /* number of entries (not incl [0]) */
int ht_master; /* master host */
int ht_cons; /* console host */
int ht_local; /* this host */
int ht_narch; /* count of different data reps */
struct hostd **ht_hosts; /* hosts */
};
struct hostd *hd_new __ProtoGlarp__(( int ));
void hd_free __ProtoGlarp__(( struct hostd * ));
void hd_unref __ProtoGlarp__(( struct hostd * ));
void hd_dump __ProtoGlarp__(( struct hostd * ));
struct hostd *nametohost __ProtoGlarp__(( struct htab *, char * ));
struct hostd *indtohost __ProtoGlarp__(( struct htab *, int ));
struct hostd *tidtohost __ProtoGlarp__(( struct htab *, int ));
struct htab *ht_new __ProtoGlarp__(( int ));
void ht_insert __ProtoGlarp__(( struct htab *, struct hostd * ));
void ht_delete __ProtoGlarp__(( struct htab *, struct hostd * ));
void ht_free __ProtoGlarp__(( struct htab * ));
struct htab *readhostfile __ProtoGlarp__(( char * ));
int ht_merge __ProtoGlarp__(( struct htab *, struct htab * ));
void ht_dump __ProtoGlarp__(( struct htab * ));
syntax highlighted by Code2HTML, v. 0.9.1