diff options
author | Robb Matzke <matzke@llnl.gov> | 1998-04-03 03:29:38 (GMT) |
---|---|---|
committer | Robb Matzke <matzke@llnl.gov> | 1998-04-03 03:29:38 (GMT) |
commit | a780cdd178f849afbc8cbb24e416eef733cbc9f2 (patch) | |
tree | c9e0162ab42567a4872a5c37444be0e08d4c1914 /src/H5HGprivate.h | |
parent | 2a77c19b2216f04a6f8c50995ca0bf09f69e63d0 (diff) | |
download | hdf5-a780cdd178f849afbc8cbb24e416eef733cbc9f2.zip hdf5-a780cdd178f849afbc8cbb24e416eef733cbc9f2.tar.gz hdf5-a780cdd178f849afbc8cbb24e416eef733cbc9f2.tar.bz2 |
[svn-r335] Changes since 19980330
----------------------
./MANIFEST
./src/Makefile.in
./test/Makefile.in
Added new files.
./config/linux
./src/H5HL.c
./src/H5HLprivate.h
./src/H5MF.c
./src/H5MFprivate.h
Added `-DH5HL_DEBUG -DH5MF_DEBUG' to the debug list.
./html/H5.format.html
Updated shared object message information.
./src/H5D.c
Datasets can now share data types.
./src/H5F.c
Updated a comment that referred to H5ACC_WRITE.
./src/H5HG.c
./src/H5HGprivate.h
Moved a few things around. Made debugging better so you can
now give a collection address to ./src/debug and it shows some
useful stuff.
./src/H5O.c
./src/H5Ocont.c
./src/H5Odtype.c
./src/H5Oefl.c
./src/H5Olayout.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Oprivate.h
./src/H5Osdspace.c
./src/H5Oshared.c [NEW]
./src/H5Ostab.c
Supports shared messages.
./src/H5T.c
./src/H5Tpkg.h
./src/H5Tprivate.h
./src/H5Tpublic.h
The H5Tshare() function allows the user to give the library
hints about how a data type will be used.
./test/shtype.c
Tests the H5Tshare() function.
./test/gheap.c
Tests the global heap.
./configure.in
./config/BlankForm [NEW]
./config/alpha-dec
./config/freebsd2.2.1
./config/hpux10.20
./config/irix6.2
./config/irix64
./config/linux
./config/powerpc-ibm-aix4.2.1.0
./config/rs6000-ibm-aix4.1.4.0
./config/solaris2.5
Cleaned up lots of configuration stuff and made the site
configuration files lots easier and more uniform. To make a
new file grab the BlankForm and modify it.
By default, debugging is turned on for most packages. Within
a package one can use `#ifdef H5AC_DEBUG' to wrap debugging
code. Other options are:
--enable-debug
--enable-debug=yes
The default, most but not all packages.
--disable-debug
--enable-debug=no
--enable-debug=none
The symbol NDEBUG is defined and none of the package
debug symbols.
--enable-debug=all
Debugging is turned on for all packages. This might
produce lots of output.
--enable-debug=g,d
Debugging is turned on for H5G and H5D.
A compile mode is also now supported
--enable-production
--enable-production=yes
The library is compiled with optimizations turned on.
The compiler flags are augmented by adding PROD_CFLAGS
and PROD_CPPFLAGS which are defined in the site config
file.
--disable-production
--enable-production=no
The default. The library is compiled for development
by including DEBUG_CFLAGS and DEBUG_CPPFLAGS defined in
the site config file. This is usually just `-g'.
--enable-production=profile
--enable-production=pg
Builds a library for profiling by including the flags
from PROFILE_CFLAGS and PROFILE_CPPFLAGS defined in the
site config file. This is usullay just `-pg' but it
could include optimization flags as well depending on
the type of profile one wants.
In summary, configure by saying `./configure' and you'll get a
development version of the library. Configure by saying
`./configure --enable-production --disable-debug' and you'll
get a production version with no debugging code.
Diffstat (limited to 'src/H5HGprivate.h')
-rw-r--r-- | src/H5HGprivate.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/H5HGprivate.h b/src/H5HGprivate.h index aebb3f8..c6ec1cd 100644 --- a/src/H5HGprivate.h +++ b/src/H5HGprivate.h @@ -10,6 +10,8 @@ #include <H5HGpublic.h> +#include <H5Fprivate.h> + /* * Each collection has a magic number for some redundancy. */ @@ -59,14 +61,27 @@ * The initial guess for the number of messages in a collection. We assume * that all objects in that collection are zero length, giving the maximum * possible number of objects in the collection. The collection itself has - * some overhead and each message has some overhead. + * some overhead and each message has some overhead. The `+2' accounts for + * rounding and for the free space object. */ #define H5HG_NOBJS(f,z) (int)((((z)-H5HG_SIZEOF_HDR(f))/ \ - H5HG_SIZEOF_OBJHDR(f)+1)) + H5HG_SIZEOF_OBJHDR(f)+2)) + +/* + * Makes a global heap object pointer undefined, or checks whether one is + * defined. + */ +#define H5HG_undef(HGP) ((HGP)->idx=0) +#define H5HG_defined(HGP) ((HGP)->idx!=0) + +typedef struct H5HG_t { + haddr_t addr; /*address of collection */ + intn idx; /*object ID within collection */ +} H5HG_t; -typedef struct H5HG_t H5HG_t; +typedef struct H5HG_heap_t H5HG_heap_t; -herr_t H5HG_create (H5F_t *f, size_t size); +H5HG_heap_t *H5HG_create (H5F_t *f, size_t size); herr_t H5HG_insert (H5F_t *f, size_t size, void *obj, H5HG_t *hobj/*out*/); void *H5HG_peek (H5F_t *f, H5HG_t *hobj); void *H5HG_read (H5F_t *f, H5HG_t *hobj, void *object); |