1 /* 2 System dependend definitions 3 */ 4 5 #ifndef _H5PART_TYPES_H_ 6 #define _H5PART_TYPES_H_ 7 8 #ifdef WIN32 9 typedef __int64 int64_t; 10 #endif /* WIN32 */ 11 12 typedef int64_t h5part_int64_t; 13 typedef int h5part_int32_t; 14 typedef double h5part_float64_t; 15 typedef float h5part_float32_t; 16 typedef h5part_int64_t (*h5part_error_handler)( const char*, const h5part_int64_t, const char*,...) 17 #ifdef __GNUC__ 18 __attribute__ ((format (printf, 3, 4))) 19 #endif 20 ; 21 22 #if defined(PARALLEL_IO) || defined(H5_HAVE_PARALLEL) 23 typedef MPI_Comm H5_Comm; 24 #else 25 typedef unsigned long H5_Comm; 26 #endif 27 28 #define H5PART_STEPNAME_LEN 64 29 #define H5PART_DATANAME_LEN 64 30 31 struct H5BlockFile; 32 33 /** 34 \struct H5PartFile 35 36 This is an essentially opaque datastructure that 37 acts as the filehandle for all practical purposes. 38 It is created by H5PartOpenFile<xx>() and destroyed by 39 H5PartCloseFile(). 40 */ 41 VTKH5PART_EXPORT 42 struct H5PartFile { 43 hid_t file; 44 char groupname_step[H5PART_STEPNAME_LEN]; 45 int stepno_width; 46 int empty; 47 48 char flags; 49 50 h5part_int64_t timestep; 51 hsize_t nparticles; 52 53 hid_t timegroup; 54 hid_t shape; 55 hid_t xfer_prop; 56 hid_t access_prop; 57 hid_t dcreate_prop; 58 hid_t fcreate_prop; 59 60 /* the dataspace on disk for the current view */ 61 hid_t diskshape; 62 /* the dataspace in memory for the current view */ 63 hid_t memshape; 64 65 h5part_int64_t viewstart; /* -1 if no view is available: A "view" looks */ 66 h5part_int64_t viewend; /* at a subset of the data. */ 67 char viewindexed; /* flag for an indexed view */ 68 69 /** 70 the number of particles in each processor. 71 With respect to the "VIEW", these numbers 72 can be regarded as non-overlapping subsections 73 of the particle array stored in the file. 74 So they can be used to compute the offset of 75 the view for each processor 76 */ 77 h5part_int64_t *pnparticles; 78 79 /** 80 Number of processors 81 */ 82 int nprocs; 83 84 /** 85 The index of the processor this process is running on. 86 */ 87 int myproc; 88 89 /** 90 MPI communicator 91 */ 92 H5_Comm comm; 93 94 int throttle; 95 96 struct H5BlockStruct *block; 97 h5part_int64_t (*close_block)(struct H5PartFile *f); 98 99 #ifdef PARALLEL_IO 100 struct H5MultiBlockStruct *multiblock; 101 h5part_int64_t (*close_multiblock)(struct H5PartFile *f); 102 #endif 103 }; 104 105 typedef struct H5PartFile H5PartFile; 106 107 #ifdef IPL_XT3 108 # define SEEK_END 2 109 #endif 110 111 #endif 112