/* $Id: pvmfrag.h,v 1.7 1999/07/08 19:00:24 kohl 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.
*/
/*
* pvmfrag.h
*
* Frag buffer util.
*
* $Log: pvmfrag.h,v $
* Revision 1.7 1999/07/08 19:00:24 kohl
* Fixed "Log" keyword placement.
* - indent with " * " for new CVS.
*
* Revision 1.6 1997/06/25 22:09:38 pvmsrc
* Markus adds his frigging name to the author list of
* every file he ever looked at...
*
* Revision 1.5 1997/04/30 21:26:28 pvmsrc
* SGI Compiler Warning Cleanup.
*
* Revision 1.4 1997/04/24 20:57:55 pvmsrc
* added filed fr_rip to frag structure for frags received inplace
*
* Revision 1.3 1997/03/06 21:12:13 pvmsrc
* added fr_seq and fr_src members to frag structure.
* used by mppchunk.c for ordering. future for attached
* sequence numbers on every fragment.
*
* Revision 1.2 1997/01/28 19:28:21 pvmsrc
* New Copyright Notice & Authors.
*
* Revision 1.1 1996/09/23 23:43:29 pvmsrc
* Initial revision
*
* Revision 1.3 1995/05/17 16:43:54 manchek
* added support for CSPP shared memory
*
* Revision 1.2 1994/06/03 20:38:25 manchek
* version 3.3.0
*
* Revision 1.1 1993/08/30 23:26:51 manchek
* Initial revision
*
*/
struct frag {
struct frag *fr_link; /* chain or 0 */
struct frag *fr_rlink;
char *fr_buf; /* buffer or zero if master frag */
char *fr_dat; /* data */
int fr_max; /* size of buffer */
int fr_len; /* length of data */
struct {
unsigned int ref : 16; /* refcount (of chain if master, */
/* else frag) */
unsigned int dab : 1; /* buffer is a databuf */
unsigned int spr : 1; /* sparse data (csz, lnc valid) */
} fr_u;
int fr_csz; /* chunk size */
int fr_lnc; /* lead to next chunk */
int fr_seq; /* sequence number. Used for mpp machines */
int fr_src; /* message src. Used for mpp machines */
int fr_rip; /* received inplace, don't put on recvq */
#ifdef IMA_CSPP
int fr_num_unpacked; /* so we know how much to flush */
#endif
};
struct frag *fr_new __ProtoGlarp__(( int n ));
struct frag *fr_snew __ProtoGlarp__(( char *cp, int n ));
void fr_unref __ProtoGlarp__(( struct frag *f ));
syntax highlighted by Code2HTML, v. 0.9.1