Commit Graph

228 Commits

Author SHA1 Message Date
Quincey Koziol
55ac27633b [svn-r188] Changed hbool_t from an enum to 'int' and removed BTRUE/BFALSE/BFAIL from code.
Changed interface to the H5P..hyperslab functions to 'int' instead of 'size_t'.
Cleaned up lots of warnings on IRIX 6.2 platform.  Minor other tweaks to get
to a mostly clean build on the SGI.  It still whines about 'long long' being
non-standard and some "pointless comparison of unsigned with 0" but those
aren't big problems.
1998-01-28 15:24:49 -05:00
Robb Matzke
3e601905e3 [svn-r186] Changes since 19980128
----------------------

./config/conclude.in
	The maintainer-clean target removes Emacs backup files,
	mirroring backup and contrib files, core files, and profile
	output files in addition to what it used to remove.

./src/H5D.c
	Fixed a buffer allocation bug in the output pipeline.

./src/H5Gnode.c
	Fixed a comparison against size_t

./test/Makefile.in
	Added the other temporary h5 files to the `MOSTLYCLEAN' var.

./test/cmpd_dset.c
	Added four tests for partial I/O. Don't you just love it when
	something works on the first try!
1998-01-28 13:52:53 -05:00
Robb Matzke
c0cfc4421a [svn-r185] Changes since 19980128
----------------------

./src/H5D.c
./src/H5Dpublic.c
	Added H5Dget_space().

./src/H5Gstab.c
./src/H5H.c
	Fixed a comparison with size_t against <0.

./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
	Changed `intn' to `int' for public function args and
	returns. H5Pget_hyperslab() returns the dimensionality.

./test/testhdf5.h
	Clears error stack more frequently.

./src/H5Psimp.c
./test/cmpd_dset.c
	Impelementing data space conversion.
1998-01-28 11:50:09 -05:00
Robb Matzke
7aa4f57811 [svn-r178] Changes since 19980127
----------------------

./Makefile.in
./config/commence.in
	With GNU make you can now use `-j' and `-l' options and things
	get built correctly.  I can do a `make -j -l6 test' from a
	clean hdf5 source tree (after configure) in 45 seconds (8 to
	build dependencies, 26 to compile everything, and 11 to run
	the tests).

./src/H5Gnode.c
	Removed a comment that no longer applies.

./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
	Changed H5Pselect_hyperslab() to H5Pset_hyperslab() and added
	H5Pget_hyperslab() and H5P_get_hyperslab().

	Replaced a couple short memset() calls with a for loop.

	Removed `if (foo!=NULL)' from around H5MM_xfree() calls.

	Clear hslab_def when the hyperslab disappears.

./src/H5Tpublic.h
	Removed trailing enum comma.
1998-01-28 00:47:19 -05:00
Quincey Koziol
c2c94c3187 [svn-r157] Reformatted code with indent... 1998-01-16 17:23:43 -05:00
Robb Matzke
1d17defdfc [svn-r150] Changes since 19971219
----------------------

./src/H5private.h
        Changed HDF5_MAJOR_VERSION to 5

./src/H5Aprivate.h
./src/H5Apublic.h
        Added group atoms.

./src/H5D.c
./src/H5P.c
./test/istore.c
./test/tohdr.c
./test/tstab.c
        Updated for symbol table interface changes.

./src/H5F.c
./src/H5Fprivate.h
        Simpler handling of special case files: empty files and files
        with a single object.

./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c         (DELETED)
./src/H5Gstab.c
./src/Makefile.in
        Removed shadows, simplifying code.  Symbol table entries are
        allowed to cache only constant meta data.  Fixed naming.

./src/H5O.c
./src/H5Oprivate.h
        Access to object headers is always done through a symbol table
        entry instead of a file address.  Added stubs for opening and
        closing object headers to be used when deletion is implemented.
1998-01-05 22:07:15 -05:00
Robb Matzke
faca6fbaa8 [svn-r145] ./src/H5Osdtyp.c -> H5Odtype.c
./src/H5Osdim.c		-> H5Osdspace.c
./src/Makefile.in
	Changed the names of these files to better reflect what they
	actually do.

./src/H5.c
./src/H5AC.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5Eprivate.h
./src/H5Epublic.h
./src/H5F.c
./src/H5Fcore.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fsec2.c
./src/H5Fsplit.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5O.c
./src/H5Osdtyp.c (./src/H5Odtype.c)
./src/H5P.c
./src/H5T.c
./src/H5detect.c
./src/H5private.h
	Added an argument to the HRETURN_ERROR(), HGOTO_ERROR(), and
	HERROR() macros which is a string error message.  This allows
	us to give extra information which can't be represented by the
	major and minor error numbers.  This information was
	previously in comments just before or after the macro call.
	The string isn't currently used, but I'm planning to change
	the test files so they print an error trace when something
	fails.  This should make debugging a little faster since it's
	often obvious what's wrong if we could just see the error
	stack without even having to start a debugger.
1997-12-11 16:35:46 -05:00
Robb Matzke
082dd8cda9 [svn-r139] ./src/*.[ch]
Removed the interface initialization argument from
	FUNC_ENTER() and made it a locally-defined preprocessor
	symbol, INTERFACE_INIT.

	Changed `offset' to `address' and `length' to `size' in
	documentation so it's more consistent.  `Offset' still appears
	occassionally when it refers to a byte offset within some
	other data structure.

	Moved interface termination function prototypes from public
	header files to .c files and made them static.

./src/H5.c
./src/H5public.h
	Added H5init() because it's possible that the predefined data
	types are not initialized.  This happens only if the first
	call to the hdf5 library passes a predefined data type symbol
	as an argument.  There should be some way to fix this...

./src/H5A.c
./src/H5Aprivate.h
./src/H5Apublic.h
	The free_func returns SUCCEED or FAIL, although the return
	value is ignored by H5A.  This is so we can use the various
	H5*_close() functions to free things.

	H5Ainc_ref() and H5Adec_ref() are no longer public.  Many of
	the other atom functions should also be made private, but I'll
	save that for later...

	Added additional template groups called H5_TEMPLATE_0 through
	H5_TEMPLATE_7 that are used by the various template
	subclasses.

	Increased the number of bits used for atom groups to prevent
	negative atoms.

./src/H5AC.c
./src/H5ACprivate.h
	Changed H5AC_new() to H5AC_create() to make names more consistent.

./src/H5B.c
./src/H5Bprivate.h
	Changed H5B_new() to H5B_create() to make names more consistent.

./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
	Now supports multiple subclasses of templates, although it's
	done with big switch statements.  The default values for
	templates are defined in the source file to which that
	template belongs.  This got rid of lots of needless
	preprocessor constants.

	Added H5Ccreate() to create a new template.  Changed
	H5C_release() to H5Cclose() to make the naming more
	consistent.

./src/H5D.c
./src/H5Dprivate.h
./src/H5Dpublic.h
	Enhanced to use the new dataset interface, and uses the enhanced
	data type and data space interfaces, which haven't been
	completely implemented.  The dataset interface doesn't handle
	non-contiguous storage, compression, or data type and space
	conversions yet.

./src/H5F.c
./src/H5Fprivate.h
./src/H5Fpublic.h
	Removed H5Fflush() since just calls H5F_flush(), which doesn't
	do what the user would probably think it does, namely, flush
	everything.  It only flushes those things sitting in the H5AC
	cache and the boot block.

	Changed the `file_create_parms' field of H5F_low_t to just
	`create_parms' since the `file' part is obvious.

./src/H5Fistore.c
	Added some support for external files.  Mostly just in the
	file format and not supported much by the library yet. I need
	to finish some dataset functions first.

	Changed H5F_istore_new() to H5F_istore_create() to make names
	more uniform across packages.

./src/H5Flow.c
	Flushing a file causes the file to be physically extended to
	the logical eof.  This prevents H5F_open() from thinking a
	file has been truncated.  Most of the time the file will
	already be that large, and when it isn't Unix will often just
	allocate the final block anyway.

./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gstab.c
	Removed H5G_basename()

	Removed (temporarily) data type information from symbol table
	entries and renamed H5G_CACHED_SDATA to H5G_CACHED_SDSPACE to
	reflect that it's a simple data space and has nothing to do
	with raw data.

	Changed H5G_node_new() to H5G_node_create() and H5G_stab_new()
	to H5G_stab_create() to make names more uniform across
	packages.

	Fixed an undefined address bug that happens when H5G_node_debug()
	program doesn't pass enough info to H5G_node_load().

./src/H5H.c
./src/H5Hprivate.h
	Changed H5H_new() to H5H_create() to make the names more
	uniform across packages.

./src/H5M.c
./src/H5Mprivate.h
./src/H5Mpublic.h
	Nulled all the create functions.  Most of the other callbacks
	are to public functions.  Removed H5Mcreate().

	Changed hobjtype_t to group_t since it has to be the same
	thing anyway.

./src/H5O.c
./src/H5Oprivate.h
./src/H5Osdim.c
./src/H5Osdtyp.c
	Changed H5O_SIM_DIM to H5O_SDSPACE (simple data space) since
	`simple data space' is its official name, not `simple
	dimensions'.  Will eventually add H5O_CDSPACE for comples data
	spaces. Changed _sim_dim_ to _dspace_.

	Replaced H5O_SIM_DTYPE and the compound data type messages
	with a single H5O_DTYPE message. Changed _sim_dtype_ to _dtype_.

	Changed H5O_STD_STORE to H5O_CSTORE (contiguous storage) since
	contiguous storage is not necessarily standard.  Changed
	_std_store_ to _cstore_ in H5Ocstore.c

	Added the H5O_EFL (external file list) message.

	Changed H5O_new() to H5O_create() to make names more uniform
	across packages.

./src/H5Oefl.c		NEW
	External file list message for specifying which non-hdf5 files
	contain raw data for a dataset.

./src/H5P.c
./src/H5Pprivate.h
./src/H5Ppublic.h
	Renamed and moved data structures to make the names conform to
	our naming scheme.

./src/H5T.c
./src/H5Tprivate.h
./src/H5Tpublic.h
./src/H5Tpkg.h		NEW
	Data structures redesigned to be more flexible.  The interface
	was redesigned to make it more regular and to make some names
	more uniform across packages.

./src/H5detect.c
	Output was changed to produce a file that conforms to the hdf5
	coding standard.

./src/Makefile.in
	Generates H5Tinit.c by running H5detect.

./src/debug.c
	Moved command argument processing.
1997-12-10 17:41:07 -05:00
Robb Matzke
cdeeb5553a [svn-r136] ./MANIFEST
./src/Makefile.in
	Added H5Ffamily.c and H5Fsplit.c

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Added `const' to sublass arguments.

./src/H5F.c
./src/H5Flow.c
./src/H5Fsec2.c
	Make sure file buffers get flushed during a call to
	H5Fflush().  Check for overflow in address encoding and decoding.

./src/H5Ffam.c
./src/H5Fprivate.c
./test/istore.c
	Implementation of file families so 32-bit machines can access
	64-bit files.

./src/H5Oprivate.h
	Removed H5O_NO_ADDR constant.

./config/freebsd2.2.1
./config/linux
	Added -DH5G_DEBUG and -DH5F_DEBUG to the list of debugging flags.

./html/H5.format.html
	Changed some <offset>-sized things to <length>-sized things.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5C.c
./src/H5D.c
./src/H5F.c
./src/H5Fcore.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5G.c
./src/H5Gent.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gshad.c
./src/H5Gstab.c
./src/H5H.c
./src/H5Hprivate.h
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
./src/H5Ocont.c
./src/H5Oistore.c
./src/H5Oprivate.h
./src/H5Ostab.c
./src/H5Ostdst.c
./src/H5pivate.h
./src/debug.c
./test/istore.c
./test/theap.c
./test/tohdr.c
./test/tstab.c
	Lots of changes caused by generalizing addresses.  The haddr_t
	is now a struct, so you can no longer perform arithmetic on
	it. But since it's small, simple, and often used, storage is
	allocated like with an integer.  But we always pass them
	around by reference.  That is, when using an address in
	another struct, allocate space:

		struct my_struct {
		   char *name;
		   haddr_t address;
                } x;

	But when passing it to a function, pass by reference:

		H5F_addr_print (stderr, &(x.address));

	Addresses should be initialized with

		H5F_addr_undef (&(x.address));

	Functions for operating on addresses are in H5Flow.c and begin
	with H5F_addr_...  Functions never return haddr_t or haddr_t*;
	they always pass them through arguments instead. A function
	that returns an address through an argument does so with its
	last argument and it is marked with `/*out*/'.  Calls to such
	functions also mark output-only arguments with `/*out*/'

./src/H5Fsplit.c       (new)
	A two-member family where all meta data goes in the first
	member and all raw data goes in the second member.

./src/H5B.c
./src/H5D.c
./src/H5F.c
./src/H5Ffamily.c
./src/H5Fistore.c
./src/H5Flow.c
./src/H5Fprivate.h
./src/H5Fsec2.c
./src/H5Fstdio.c
./src/H5Gnode.c
./src/H5H.c
./src/H5MF.c
./src/H5MFprivate.h
./src/H5O.c
	Differentiate between meta data storage and raw data
	storage. Provide a mechanism so that the file driver can
	extend the file to allocate more memory.

./src/H5E.c
./src/H5Epublic.c
	Added the error H5E_TRUNCATED to be reported when the file is
	shorter than the length recorded in the boot block.

./src/H5F.c
	Added H5F_locate_signature() so we only do it in one place
	now.

./INSTALL
./INSTALL_MAINT
	Just a couple clarifications.

./html/ExternalFiles.html
./html/storage.html
	Documents how external files work.

./test/hyperslab.c
./test/istore.c
	Fixed printf's on 64-bit machines.

./test/istore.c
	Added ifdef's to test the split file driver.
1997-11-14 09:42:14 -05:00
Robb Matzke
7389762766 [svn-r135] ./config/linux
./config/freebsd2.2.1
        Rewritten to be more flexible.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5F.c
./src/H5H.c
./src/H5Gpkg.h
./src/H5Gshad.c
./src/H5O.c
./test/istore.c
./test/tstab.c
        Accumulates cache statistics and displays the results on
        stderr when the file is closed if it was opened with
        H5F_ACC_DEBUG passed into H5F_open()

./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5Gnode.c
        Added more debugging which is turned on if H5B_DEBUG is
        defined on the compile command (see config/linux).

        Fixed a couple of bugs with left insertions which are used by
        the indexed storage stuff.

./src/H5Flow.c
        Fixed a memory leak.

./src/H5Fprivate.h
        Fixed warnings about shifting more than size of object.

./src/H5Fstdio.c
        Fixed seek optimizations back to the way Quincey originally
        had them.

./src/H5V.c
        Removed unused variables.
1997-11-07 00:16:53 -05:00
Robb Matzke
56ad55117a [svn-r129] Changes since 19970916
----------------------

./config/depend.in
	Fixed backslashes in sed script because the H5Gnode.c
	dependency info was disappearing.  You'll have to rerun
	config.status to rebuild the Makefiles unless you use gnu
	make.

./config/conclude.in
	Also removes emacs backup files, TAGS, and svf backup files.

./config/linux
	Grouped gcc flags and added provisions for debugging vs. production.

./html/H5.format.html
	Updated messages 0x0008, 0x0009, and 0x000A.

./html/storage.html
	Documentation describing storage schemes.

./src/Makefile.in
./test/Makefile.in
	New source files.

./src/H5A.c
./src/H5Apublic.h
./src/H5C.c
	Changed VOIDP to void* in a couple places.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5H.c
./src/H5O.c
	Removed `const' from some variables because H5G_node_found() wanted
	to modify it's udata argument. Removing const there caused it
	to cascade to these other locations.

./src/H5AC.c
./src/H5ACprivate.h
./src/H5B.c
./src/H5Gnode.c
./src/H5Gstab.c
./src/H5H.c
./src/H5O.c
	Added an extra argument to H5AC_find_f() and H5AC_protect(). This
	arg gets passed to the load() method.  Also added an extra
	argument to the H5AC_find() macro.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Extra argument passed to the sizeof_rkey() method.

./src/H5Fprivate.c
./src/H5Fistore.c (new)
	Added indexed I/O operations.

./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
	Beginning to add H5G_open/close and related bug fixes.

./src/H5Oprivate.h
./src/H5Oistore.c (new)
	Added the H5O_ISTORE messsage (0x0008) for indexed storage of
	objects.

./src/H5private.h
	Added extra braces around both sides of the FUNC_ENTER() and
	FUNC_LEAVE() macros so FUNC_ENTER() can appear before
	declarations or after executable statements the second case is
	used by H5G_namei() to initialize output arguments to sane
	values before FUNC_ENTER() might return failure.

		int f ()
		{
		   int decl1;
		   printf ("This happens before FUNC_ENTER()\n");
		   FUNC_ENTER (...);
		   int another_declaration;

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
	Extra arguments for key encoding and decoding.

./src/H5E.c
./src/H5Epublic.h
./src/H5Fistore.c
./src/H5Oistore.c
./src/H5Oprivate.h
	Indexed, chunked, sparse storage (not ready for general consumption
	yet).

./src/H5V.c		(new)
./src/H5Vprivate.h	(new)
./test/hyperslab.c	(new)
	Vector, array, and hyperslab functions.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Fistore.c
./src/H5Gnode.c
./src/H5V.c
./src/H5Vprivate.h
./test/hyperslab.c
	Added functionality for indexed storage.

./src/H5F.c
	Fixed problems with seek optimizing.  Recommend we disable it
	until we can implement it in the file/address class since all
	of HDF5 must be aware of it.

./src/H5O.c
	Fixed comeent speling erorr :-)

./MANIFEST
	Added new files.

./config/conclude.in
	Added the word `Testing' to the test cases.  So if a test
	program is called hyperslab then the make output will contain
	the line `Testing hyperslab'.

./config/linux
	The default file I/O library is Posix section 2 on my linux
	machine so I can do some I/O performance testing.

./src/H5C.c
./src/H5Cprivate.h
./src/H5Cpublic.h
	Added ability to set size of indexed-storage B-tree.

./src/H5D.c
./src/H5E.c
./src/H5Epublic.h
./src/H5F.c
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gpkg.h
./src/H5Gprivate.h
./src/H5Gpublic.h
./src/H5Gshad.c
./src/H5Gstab.c
./test/stab.c
	Changed `directory' to `group' in numerous places.

./src/H5private.h
	The FILELIB constant can be set on the compile command-line.

./src/istore.c		     NEW
	Tests for indexed storage.
1997-10-20 18:14:35 -05:00
Robb Matzke
0f7fcaad25 [svn-r111] Changed hdf5_file_t to H5F_t, split data struct ito two halves, fixed
problems when opening the same file more than once.
1997-09-24 11:30:22 -05:00
Robb Matzke
8c8ae76bf5 [svn-r106] Fixed some symbol table bugs. Fixed a free memory read in H5Osdim.c. 1997-09-21 21:08:54 -05:00
Robb Matzke
c956e7e73a [svn-r101] Fixed uninitialized memory read. 1997-09-19 13:11:56 -05:00
Robb Matzke
25d866e9b4 [svn-r100] Interim checkin for purify. Also contains H5G shadow stuff, changes
to int64 encode/decode to fix purify on 32-bit systems, changes to
H5O_modify, changes to H5D.c to use H5F_open/close(), etc.
Documentation will be mailed shortly...
1997-09-19 11:36:59 -05:00
Robb Matzke
7ead4a900b [svn-r71] Lost my changelog, but basically some new caching functions. 1997-09-10 14:57:56 -05:00
Robb Matzke
cbf1f8dbb5 [svn-r55] ./src/H5F.c
Added H5Fflush() and H5F_flush() which flush (and optionally
	invalidate the cache) and flush the file boot block.

	H5Fcreate() calls H5F_flush() to output the boot block.

	H5Fclose() calls H5F_flush() to update the boot block.

	H5F_debug() prints the root symbol table entry.

./src/H5Fpublic.h
	Added H5Fflush() prototype.

./src/H5G.c
	The name message is removed when an object moves from the root
	object position into a directory.

	Added H5G_debug() to print a symbol table entry.  Most of the
	code was just moved from H5G_node_debug().

./src/H5Gnode.c
	Moved some debugging code into H5G_debug().

./src/H5Gprivate.c
	Added H5G_debug() prototype.

./src/H5O.c
	Implemented H5O_remove().

	Added identifiers for H5O_SIM_DIM and H5O_SIM_DTYPE so they
	can be read from files.

	H5O_load() combines adjacent null messages for better memory
	management.

./src/H5Oprivate.h
	Changed minimum header data block size from 16 to 32 bytes.

	Changed prototype for H5O_remove()
1997-08-29 17:23:04 -05:00
Quincey Koziol
a39e0ef324 [svn-r47] Finished flashing out the H5M* functions calls. Cleaned up non-compiling
source.  Finished adding in remainder of H5Osdtyp.c functions.
1997-08-28 12:14:35 -05:00
Robb Matzke
2707808297 [svn-r44] ./src/H5D.c
I commented out a bunch of code in H5D_flush() so I could
	compile and link the test cases.  If you commit your changes
	to that file, whatever they may be, I'll change H5D_flush() to
	use the new directory functions described below...

./src/H5G.c
	H5G_namei()
	-----------
	Understands files without directories. The root object
	(directory or not) can be found by asking for `/' (or any
	equivalent absolute or relative name like `/.//.///' or
	`.//.///' (if the cwd is the root)) or by name like `/foo' (or
	any other equivalent absolute or relative name) if the object
	has a name message with the value `foo'.  This function is
	used by most of the other H5G functions so they now understand
	directory-less files too.

	H5G_new()
	---------
	Creates the root directory implicitly if it doesn't already
	exist, moving any previous non-directory root object into the
	new root directory before creating the requested directory
	within the root.  The creation of the root directory happens
	first, regardless of whether the requested directory creation
	succeeds.  Once the root directory is created it never
	disappears even if the file later has only one object.  This
	"feature" can be used to force a file to have a root directory
	by saying something like:

	  H5G_new (..., "/", ...);
	  H5ECLEAR; /*we don't care about the H5E_EXISTS failure*/

	The H5G_new() in the previous example fails because the root
	directory is created implicitly before we attempt to create
	the requested "/" directory.

	H5G_find()
	----------
	Understands files without directories.  If there is no root
	object then this function is guaranteed to fail even if the
	request is for `/'.  As mentioned for H5G_namei(), the root
	object can be retrieved with `/' or `/foo' (or equivalent
	absolute or relative names).

	H5G_insert()
	------------
	Understands files without directories and attempts to create
	such files when there is only one object.  The root symbol
	table is created implicitly when necessary.

	A root object can be given a name message by the caller and
	then inserted with the name `/' or it can be inserted with
	the name `/foo' in which case H5G_insert() will set the name
	message to `foo'.

	H5G_modify()
	------------
	Understands files without directories.

./src/H5Fprivate.h
	Removed the root_type field from hdf5_file_t.

./src/H5Fprivate.h
./src/H5F.c
	Removed H5F_root_type()

./src/H5Fpublic.h
	Removed H5F_root_symtype_t.

./src/H5Oprivate.h
./src/H5O.c
	Added H5O_remove() which is currently a no-op.
1997-08-28 11:37:58 -05:00
Robb Matzke
bc2b9d9dea [svn-r35] ./src/H5ACproto.h
./src/H5Aproto.h
./src/H5Bproto.h
./src/H5Cproto.h
./src/H5Dproto.h
./src/H5Eproto.h
./src/H5Fproto.h
./src/H5Gproto.h
./src/H5Hproto.h
./src/H5MFproto.h
./src/H5MMproto.h
./src/H5Mproto.h
./src/H5Oproto.h
./src/H5Pproto.h
./src/H5Tproto.h
./src/H5proto.h
	These files were removed from the library and renamed by
	changing `proto' to `public'.

./src/H5ACpublic.h	NEW
./src/H5Apublic.h	NEW
./src/H5Bpublic.h	NEW
./src/H5Cpublic.h	NEW
./src/H5Dpublic.h	NEW
./src/H5Epublic.h	NEW
./src/H5Fpublic.h	NEW
./src/H5Gpublic.h	NEW
./src/H5Hpublic.h	NEW
./src/H5MFpublic.h	NEW
./src/H5MMpublic.h	NEW
./src/H5Mpublic.h	NEW
./src/H5Opublic.h	NEW
./src/H5Ppublic.h	NEW
./src/H5Tpublic.h	NEW
./src/H5public.h	NEW
	These files came from the old H5*proto.h files.

./src/Makefile
./src/Makefile.in	NEW
	Removed.  Now generated automatically from Makefile.in by
	running configure.

./src/h5oplat.h
./src/hdf5fort.h
./src/hdf5gen.h
./src/hdf5glob.h
./src/hdf5lims.h
./src/hdf5meta.h
./src/hdf5pabl.h
./src/hdf5plat.h
./src/hdf5port.h
./src/hdf5type.h
	Removed.  The contents of these files has moved to other
	header files or source files depending on it's nature.

./src/H5.c
./src/H5A.c
./src/H5B.c
./src/H5C.c
./src/H5D.c
./src/H5E.c
./src/H5F.c
./src/H5G.c
./src/H5H.c
./src/H5M.c
./src/H5MF.c
./src/H5MM.c
./src/H5O.c
./src/H5Ocont.c
./src/H5Oname.c
./src/H5Onull.c
./src/H5Ostab.c
./src/H5P.c
./src/H5T.c
	Fixed include files.  Moved some things from old headers into
	these files.

./src/H5ACprivate.h
./src/H5Aprivate.h
./src/H5Bprivate.h
./src/H5Cprivate.h
./src/H5Dprivate.h
./src/H5Eprivate.h
./src/H5Fprivate.h
./src/H5Gprivate.h
./src/H5Hprivate.h
./src/H5MFprivate.h
./src/H5MMprivate.h
./src/H5Mprivate.h
./src/H5Oprivate.h
./src/H5Pprivate.h
./src/H5Tprivate.h
./src/H5private.h
./src/debug.c
	Fixed include files.

./src/hdf5.h
	This is now the top-level *PUBLIC* include file.  It should
	never appear in the library *.c files.
1997-08-15 11:51:34 -05:00
Robb Matzke
5cae951549 [svn-r27] ./src/H5B.c
./src/H5Bprivate.h
	The B-tree K value comes from a combination of the B-tree
	subclass and the file.

./src/H5C.c
./src/H5F.c
./src/hdf5lims.h
./src/hdf5type.h
	Removed the B-tree size parameter and added an array of B-tree
	K values.  Also added symbol table node K value.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added H5E_LINK for errors involving link counts.

./src/H5G.c
	Inserting something into a directory with H5G_insert()
	increments the link count in the object header.  The root
	object should always have a link count of at least 1.

./src/H5Gnode.c
./src/H5Gprivate.h
	The symbol table node K value comes from the file instead of
	being a constant.

./src/H5Olink.c
	Added an assert(), fixed a hard-link bug.
1997-08-13 10:36:47 -05:00
Robb Matzke
fb947c34b1 [svn-r25] ./src/H5AC.c
We sort the cache before a complete flush because it might be
	more efficient to write things back to disk in order of
	increasing address.  If you want the old way then undef the
	SORT_BY_ADDR constant at the top of H5AC.c  I haven't
	determined which systems and I/O libraries this helps or
	hurts. (This is currently off because of a bug I need to track
	down that causes qsort() to run for a really long time).

./src/H5B.c
	Fixed a couple more bugs.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added major H5E_DIRECTORY and minor H5E_EXISTS, H5E_COMPLEN.

./src/H5G.c
	Added directory-aware functions.

	The heap and B-tree are created when a directory is created
	instead of when the first symbol is added.  This simplifies
	symbol table entry caching for the directory since the cached
	value never changes now.

./src/H5Gnode.c
./src/H5Gprivate.h
	Fine tuned the B-tree K values for symbol tables assuming an
	average number of symbols is about 100 per directory.  The
	tuning minimizes storage space.

	Fixed a return value in H5G_node_cmp().

./src/H5H.c
./src/H5Hprivate.h
	Moved some macros the the header file.

./src/H5O.c
./src/H5Ocont.c
./src/H5Onull.c
./src/H5Ostab.c
	Changed the arguments for the decode method for messages.  The
	second argument is the raw message size.

	Added a class variable for native message size.

	Added H5O_reset() to free memory used internally by a message.

./src/H5Oname.c			NEW
./src/H5Oprivate.h
./src/Makefile
	The object name message.

./src/hdf5port.h
	Added defn for HDstrdup()
1997-08-12 17:44:46 -05:00
Robb Matzke
a260c7849c [svn-r17] ./src/H5AC.c
Renamed H5AC_find() to H5AC_find_f() which is invoked from the
	H5AC_find() macro.

	Changed HASH() to H5AC_HASH().

./src/H5ACprivate.h
	Increased the number of cache slots from 1033 to 10330 to see
	how it affects performance.  This should probably be
	changeable on a per-file basis.

./src/H5B.c
	Fixed some bugs now that symbol tables are actually using the
	stuff.

	Improved debugging a little.

	Fixed uninitialized memory appearing in the file.

./src/H5D.c
	Changed a FUNC_ENTER() argument from H5Dset_info to H5Dwrite.

./src/H5F.c
	Plugged a memory leak in H5F_dest().

./src/H5G.c
./src/H5Gprivate.h
	Many of these functions take a symbol table entry which
	describes the symbol table rather than just the symbol table
	address.

	Moved some functions to make room for the ones that understand
	directory names:
		  H5G_new()	-> H5G_stab_new()
		  H5G_find()	-> H5G_stab_find()
		  H5G_modify()	-> H5G_stab_modify()
		  H5G_insert()	-> H5G_stab_insert()
		  H5G_list()	-> H5G_stab_list()

./src/H5Gnode.c
	Added more assertions.

	Zero new memory so junk doesn't appear in the data file.  This
	is a problem when one tries to declassify a classified data
	file.

	H5G_node_debug() can take an extra argument which is the
	address of the heap for the symbol table.  If supplied, the
	symbol names are printed along with the heap offsets.

./src/H5H.c
./src/H5Hprivate.h
	Fixed a bug with the free blocks by forcing things to align on
	even boundaries.  It's still possible to lose heap memory if
	the hole is smaller than the free list header.  The
	alternative is to align heap objects on 12 or 20 byte
	boundaries, but this tends to waste to much space.

	Zero new memory like with H5Gnode.c.

	Fixed a "mispeling" of NDEBUG.

./src/H5Ocont.c
./src/H5Onull.c
	Added the pablo mask defn.

./src/H5Ostab.c
	Added the pablo mask defn.

	Fixed a read from uninitialized memory.

./src/H5Oprivate.h
	Tuned some parameters to see how they affect performance.

./src/debug.c
	An optional third argument can be supplied which is the
	address of a heap to use to display names in a symbol table.

./src/hdf5pabl.h
	Changed `int' to `intn'.
1997-08-09 11:45:59 -05:00
Robb Matzke
a905a3a1e3 [svn-r15] ./src/H5AC.c
./src/H5ACprivate.h
./src/H5ACproto.h
./src/H5Bproto.h
./src/H5Gproto.h
./src/H5Hproto.h
./src/H5MFprivate.h
./src/H5MFproto.h
./src/H5MM.c
./src/H5MMprivate.h
./src/H5MMproto.h
	Changed my e-mail address.

./src/H5O.c		  NEW
./src/H5Onull.c		  NEW
./src/H5Ocont.		  NEW
./src/H5Ostab.c		  NEW
	New functions for dealing with object headers.  The H5O.c is
	the generic stuff, and each particular message has a source
	file for the specific stuff.

	Use ./src/H5Ostab.c as a model for implementing other messages.

./src/Makefile
./src/test/Makefile
	Added new files

./src/debug.c
	Added debugging calls for object headers.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Gnode.c
./src/H5MF.c
	Changed my e-mail address.

	Improved error handling.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added more error symbols

./src/H5F.c
	Changed my e-mail address.

	Used macros for sizeof offsets and lengths.

	Added the interface initialization function to
	H5F_block_read() and H5F_block_write().

	Updated H5F_debug()

./src/H5Fprivate.h
	Got rid of H5F_symbol_table_size().  Use H5G_SIZEOF_ENTRY()
	instead.

	Reformatted H5F_decode_offset() for readability.

./src/H5G.c
	Changed my e-mail address.

	Improved error handling.

	Replaced not_implemented_yet__*() with real functions from
	H5O.

./src/H5Gprivate.h
	Changed `symtab' to `stab' to be consistent with other stuff.

./src/H5H.c
./src/H5Hprivate.h
	Changed my e-mail address.

	Improved error handling.

	Added an extra argument to H5H_new() to indicate whether you
	want a global heap or a local heap.

./src/hdf5gen.h
	Added NELMTS()

	Fixed FUNC_ENTER()

	Rewrote FUNC_LEAVE() in terms of HRETURN().

./src/hdf5meta.h
	Added `const' to the decode macros.

./src/hdf5pabl.h
	Added PABLO_SAVE()

./test/testhdf5.c
./test/testhdf5.h
	Added calls for object header testing.

./test/theap.c
	Turned off some output.
1997-08-07 14:23:00 -05:00
Robb Matzke
6a3cb617d3 [svn-r12] ./src/H5AC.c
Fails sooner if the type of object requested doesn't match
	the type of object cached.

./src/H5B.c
./src/H5Bprivate.h
./src/H5Fprivate.h
./src/H5G.c
./src/H5Gnode.c
./src/H5Gprivate.h
./src/H5H.c
./src/H5Hprivate.h
	Changed lots of `H5*_HDR_SIZE' macros to `H5*_SIZEOF_HDR' to make
	things more consistent.

	Added H5*_SIZEOF_MAGIC macros.

	Added debugging functions to some of the packages.

./src/H5F.c
	Fixed a bug with reading past the end of a buffer.

./src/H5Tproto.h
	Added prototypes for H5Tadd_field() and H5Tget_fields().

./src/debug.c
	Low-level file debugging program.

./src/Makefile
	Builds `debug' as one of the main targets.  The target is
	called `debug_hdf5' so it doesn't conflict with the `debug'
	target that was already there.  But the executable is called
	`debug'.
1997-08-04 11:19:57 -05:00
Robb Matzke
412e5606a8 [svn-r6] Added the next layer of symbol table functions. Given a symbol table
name, they operate to query or modify the corresponding symbol table entry.
They don't understand directory hierarchies (that's the next layer up).

Since the object header stuff isn't done yet, they call four stub functions
that all return failure:

	not_implemented_yet__create_object_header()
	not_implemented_yet__insert_symtab_message()
	not_implemented_yet__get_symtab_message()
	not_implemented_yet__update_symtab_message()

The interface is:

haddr_t H5G_new (file, initial_heap_size)
	Creates a new symbol table.

haddr_t H5G_find (file, symtab_addr, symbol_name, *entry)
	Returns a symbol table entry given the name.

herr_t  H5G_modify (file, symtab_addr, symbol_name, *entry)
	Modifies the symbol table entry for the specified name.

herr_t  H5G_insert (file, symtab_addr, symbol_name, *entry)
	Inserts a new name and symbol table entry pair.

intn H5G_list (file, symtab_addr, maxentries, names[], entries[])
	Returns a list of all names and symbol table entries.
1997-08-01 15:20:33 -05:00
Robb Matzke
fc4bcbc21f [svn-r4] Changed SIZEOF_OFFSET and SIZEOF_SIZE to H5F_SIZEOF_OFFSET and
H5F_SIZEOF_SIZE.  Modified files to use these instead of
	accessing the hdf5_file_t struct directly.

	Changed address return values from H5B to -1 for error.

	Changed off_t to haddr_t for anything that's a file address.
1997-08-01 11:51:29 -05:00
Quincey Koziol
03997b1f36 [svn-r2] Oops... 1997-07-30 16:17:56 -05:00