summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
diff options
context:
space:
mode:
authorRobb Matzke <matzke@llnl.gov>1998-03-04 16:20:23 (GMT)
committerRobb Matzke <matzke@llnl.gov>1998-03-04 16:20:23 (GMT)
commit7bdea74ca98dbdc90877790d4bc9c1f71f6697b7 (patch)
tree90c2b29eb5397154f1cd586b962854bb5985c31d /src/H5private.h
parent808a5e6be1b7f1025c6b1182e160cefbce0f8e68 (diff)
downloadhdf5-7bdea74ca98dbdc90877790d4bc9c1f71f6697b7.zip
hdf5-7bdea74ca98dbdc90877790d4bc9c1f71f6697b7.tar.gz
hdf5-7bdea74ca98dbdc90877790d4bc9c1f71f6697b7.tar.bz2
[svn-r303] Changes since 19980228
---------------------- ./html/Dataspaces.html ./html/Errors.html ./html/Files.html ./html/H5.api.html ./html/review1.html ./src/H5private.h ./src/H5public.h ./test/dsets.c ./test/dtypes.c Removed all the types like `int32' and `intn' into private headers since they violate the naming scheme and pollute application name space. Besides, our test files only use them in a handful of places and it's probably useless to export them to the app. The app is always written in terms of standard numeric types or its own numeric types and probably never in terms of HDF5 numeric types. If it were, then the user would have to copy from their type to hdf5 type for almost every hdf5 API function call! Same goes for return values. I also removed SUCCEED/FAIL from the API since apps should be checking against zero anyway. if (FAIL==(space=H5Screate_simple(...))) /*wrong*/ if ((space=H5Fcreate_simple(...)<0)) /*right*/ ./src/H5.c Changed arguments of H5version() from `uintn' to `unsigned'. ./src/H5Tpublic.h ./src/H5T.c Changed return type of H5Tget_nmembers() from `intn' to `int' ./src/H5A.c ./src/H5Aprivate.h ./src/H5Apublic.h Changed `H5Asearch_func_t' to `H5A_search_func_t' and moved its definition from the public to the private header file. ./html/H5.format.html Documented changes made to the external file list (H5O_EFL) message. ./src/H5D.c ./src/H5Dprivate.h ./src/H5E.c ./src/H5Epublic.h ./src/H5O.c ./src/H5Oefl.c ./src/H5Oprivate.h ./src/H5P.c ./src/H5Ppublic.h Added partial support for external raw data files. HDF5 can now describe external raw data files by listing the file names, offsets, and size for a dataset. However, we will restrict a dataset to be stored "contiguously" when the external file list is viewed as a single address space. The current implementation is unable to read/write to external files--that will come later this week as will documentation. For now, take a look at ./test/external.c, particularly the calls to H5Pset_external(). ./test/Makefile.in ./test/external.c [NEW] ./MANIFEST Added tests for external storage. Note: the read test is supposed to fail at this point since reading external datasets is not implemented yet. There is no write test. ./src/H5S.c ./src/H5Sprivate.h ./src/H5Ssimp.c Added H5S_get_npoints_max() to return the maximum possible number of data points in a data space. Added an extra argument to H5S_get_dims() which returns the maximum dims. ./src/H5F.c ./src/H5Fprivate.h ./src/H5Fpublic.h ./src/H5M.c [DEPRICATED] ./src/H5Mpublic.h [DEPRICATED] Changed `template' to `property list' in lots of places. ./src/H5Osdspace.c Removed an extra `\n' from a print statement. ./src/H5S_public.h Changed H5S_UNLIMITED to the maximum size_t value. ./test/extend.c "Extendable" is spelled "extendible". ./src/H5Farray.c ./src/H5V.c ./src/H5Vprivate.h ./test/hyperslab.c Strides are now type ssize_t instead of int. These have nothing to do with the sample granularity arguments for hyperslabs, which are also called "strides" in the code. ./test/tstab.c Changed assumptions about default address and length sizes.
Diffstat (limited to 'src/H5private.h')
-rw-r--r--src/H5private.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/H5private.h b/src/H5private.h
index 49437cc..10f5161 100644
--- a/src/H5private.h
+++ b/src/H5private.h
@@ -107,12 +107,87 @@
#endif
/*
+ * Numeric data types
+ */
+typedef char char8;
+typedef signed char int8;
+typedef unsigned char uchar8, uint8;
+
+#if SIZEOF_SHORT==2
+typedef short int16;
+typedef unsigned short uint16;
+#else
+typedef int int16; /*not really */
+typedef unsigned uint16; /*not really */
+#endif
+
+#if SIZEOF_INT==4
+typedef int int32;
+typedef unsigned int uint32;
+#elif SIZEOF_LONG==4
+typedef long int32;
+typedef unsigned long uint32;
+#else
+typedef int int32; /*not really */
+typedef unsigned uint32; /*not really */
+#endif
+
+#if SIZEOF_INT==8
+typedef int int64;
+typedef unsigned uint64;
+#elif SIZEOF_LONG==8
+typedef long int64;
+typedef unsigned long uint64;
+#elif SIZEOF_LONG_LONG==8
+typedef long long int64;
+typedef unsigned long long uint64;
+#else
+# error "no 64-bit integer type"
+#endif
+
+#if SIZEOF_FLOAT==4
+typedef float float32;
+#else
+typedef float float32; /*not really */
+#endif
+
+#if SIZEOF_FLOAT==8
+typedef float float64;
+#elif SIZEOF_DOUBLE==8
+typedef double float64;
+#else
+# error "no 64-bit floating point type"
+#endif
+
+/*
+ * Define a type for generic integers. Use this instead of `int' to
+ * show that some thought went into the algorithm.
+ */
+typedef int intn;
+typedef unsigned uintn;
+
+/*
+ * Status return values for the `herr_t' type.
+ * Since some unix/c routines use 0 and -1 (or more precisely, non-negative
+ * vs. negative) as their return code, and some assumption had been made in
+ * the code about that, it is important to keep these constants the same
+ * values. When checking the success or failure of an integer-valued
+ * function, remember to compare against zero and not one of these two
+ * values.
+ */
+#define SUCCEED 0
+#define FAIL (-1)
+#define UFAIL (unsigned)(-1)
+
+/*
* File addresses.
*/
typedef struct {
uint64 offset; /*offset within an HDF5 file */
} haddr_t;
+#define H5F_ADDR_UNDEF {((uint64)(-1L))}
+
/*
* Some compilers have problems declaring auto variables that point
* to string constants. Use the CONSTR() macro so it's easy to fix