Files
src_old/src/H5PartTypes.h
T

101 lines
2.0 KiB
C

/*
System dependend definitions
*/
#ifndef _H5PARTTYPES_H_
#define _H5PARTTYPES_H_
#ifdef WIN32
typedef __int64 int64_t;
#endif /* WIN32 */
typedef int64_t h5part_int64_t;
typedef int h5part_int32_t;
typedef double h5part_float64_t;
typedef float h5part_float32_t;
typedef h5part_int64_t (*h5part_error_handler)( const char*, const h5part_int64_t, const char*,...)
#ifdef __GNUC__
__attribute__ ((format (printf, 3, 4)))
#endif
;
#ifndef MPI_INCLUDED
typedef unsigned long MPI_Comm;
#endif
struct H5BlockFile;
/**
\struct H5PartFile
This is an essentially opaque datastructure that
acts as the filehandle for all practical purposes.
It is created by H5PartOpenFile<xx>() and destroyed by
H5PartCloseFile().
*/
struct H5PartFile {
hid_t file;
char *groupname_step;
int stepno_width;
int empty;
h5part_int64_t timestep;
hsize_t nparticles;
hid_t timegroup;
hid_t shape;
unsigned mode;
hid_t xfer_prop;
hid_t create_prop;
hid_t access_prop;
hid_t diskshape;
hid_t memshape; /* for parallel I/O (this is on-disk) H5S_ALL
if serial I/O */
h5part_int64_t viewstart; /* -1 if no view is available: A "view" looks */
h5part_int64_t viewend; /* at a subset of the data. */
/**
the number of particles in each processor.
With respect to the "VIEW", these numbers
can be regarded as non-overlapping subsections
of the particle array stored in the file.
So they can be used to compute the offset of
the view for each processor
*/
h5part_int64_t *pnparticles;
/**
Number of processors
*/
int nprocs;
/**
The index of the processor this process is running on.
*/
int myproc;
/**
MPI comnunicator
*/
MPI_Comm comm;
char flags;
int throttle;
struct H5BlockStruct *block;
h5part_int64_t (*close_block)(struct H5PartFile *f);
#ifdef PARALLEL_IO
struct H5MultiBlockStruct *multiblock;
h5part_int64_t (*close_multiblock)(struct H5PartFile *f);
#endif
};
typedef struct H5PartFile H5PartFile;
#ifdef IPL_XT3
# define SEEK_END 2
#endif
#endif