Commit Graph

9125 Commits

Author SHA1 Message Date
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
326981f421 [svn-r24] ./src/H5B.c
./src/H5Bprivate.h
./src/H5G.c
	H5B_new() only takes two arguments.

./src/H5C.c
	Fixed initializer for default_file_create to be the same order
	as it's definition.

./src/H5D.c
	Changed commented-out code to #if 0/#endif.  #if'd out a
	variable that was unused because of #if'd out code.

./src/H5Dproto.c
	Added a prototype for H5Dwrite().

./src/H5F.c
	Changed parentheses to fix precedence problems from:

		flags & (~H5AC_OVERWRITE) != 0
	to
		(flags & ~H5AC_OVERWRITE) != 0

./src/H5H.c
	Heap reallocation doubles the heap size instead of tripling it.

./src/H5O.c
	Got rid of a statement with no effect.

./src/hdf5port.h
	Indented a few #defines.  Added a defn for MAX3().
1997-08-11 17:49:59 -05:00
Quincey Koziol
eec23941ab [svn-r23] A user's view of a basic HDF5 file. 1997-08-11 12:03:49 -05:00
Quincey Koziol
5d32282b5e [svn-r22] Reasonable, high-level BNF-like description of the structure of an HDF5 file. 1997-08-11 12:03:23 -05:00
Quincey Koziol
8b630f536a [svn-r21] [Very] Basic flowchart of allowable excecution flow through the HDF5 library. 1997-08-11 12:02:36 -05:00
Quincey Koziol
097972b7da [svn-r20] Upgraded function comment header for H5Fcreate to be the the template for
future functions...
1997-08-11 11:10:38 -05:00
Quincey Koziol
9b80b8ff79 [svn-r19] Added new minor error code - H5E_BADVALUE, for arguments with only a single
incorrect value.
1997-08-11 11:09:29 -05:00
Robb Matzke
bae16b355d [svn-r18] ./src/hdf5plat.h
Added defn for int64 and uint64 on irix.  It seems to be
	wrong, but at least things compile and run.  This file will go
	away with autoconf anyway.

./test/testhdf5.c
./test/Makefile
	Added tstab.c

./test/testhdf5.h
	Added tstab.c

	Fixed bugs with CHECK_I() and CHECK_PTR().
1997-08-09 11:47:25 -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
0d050fcd57 [svn-r16] ./src/test/Makefile
Added new files

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

./test/theap.c
	Turned off some output.
1997-08-07 14:23:41 -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
Quincey Koziol
dd0fbd5b00 [svn-r14] Preliminary checkin of dataset code, to allow the interface & code to be shared.
Everything except the H5Dwrite should be working (or have sections of code
commented about features to implement).
1997-08-06 11:00:56 -05:00
Robb Matzke
e251f45b87 [svn-r13] ./src/H5.c
Added an `_g' to the end of library_initialize,
	thread_initialize, and interface_initialize to abide by the
	naming convention.  Removed setting of these variables from
	the various initialization functions since it happens in the
	FUNC_ENTER() macro now.

	Defined PABLO_MASK.

	Removed `CONSTR(FUNC,"function_name")' everywhere since it's
	handled by the various FUNC_ENTER macros.

	Fixed calls to FUNC_ENTER(), FUNC_LEAVE(), and HRETURN_ERROR()
	so they don't need so many arguments.

	Changed PABLO_TRACE_ON() to FUNC_ENTER() since there is no
	longer any danger of infinite recursion.

	H5_term_library() now returns SUCCEED/FAIL and uses
	FUNC_ENTER/FUNC_EXIT macros.

./src/H5A.c
	Changes similar to H5.c.

	Most (all?) of the functions called PABLO_TRACE_ON() and the
	package doesn't have an interface initializer that I can see,
	so the second argument to FUNC_ENTER() is always NULL.

	H5A_release_atom_node() returns SUCCEED/FAIL.

./src/H5AC.c
	Added error handling.

	Arguments for internal functions are checked with assert().

./src/H5C.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5C_get_default_atom() since it was
	initialized to the wrong name.

./src/H5D.c
	Changes similar to H5.c

./src/H5E.c
	Changes similar to H5.c

	Changed the pablo mask from H5_mask to H5E_mask in
	H5E_init_interface().

	H5Eclear(), H5E_store(), and H5Epush() return SUCCEED/FAIL.
	Changed PABLO_TRACE_OFF() calls to FUNC_LEAVE() calls in the
	same functions.

./src/H5Eprivate.h
./src/H5Eproto.h
	Added additional error symbols for the H5AC package.

	Changed prototypes for H5Eclear() and H5Epush().

	Changes to HRETURN_ERROR() and HGOTO_ERROR() to reduce the
	number of arguments.

./src/H5F.c
	Changes similr to H5.c

	Changed the pablo mask from H5_mask to H5F_mask for the
	FUNC_LEAVE() call of H5F_init_interface().

	Added FUNC_ENTER() and FUNC_LEAVE() calls to some functions
	that didn't have them.

./src/H5M.c
	Changes similar to H5.c

	Fixed the FUNC variable in H5M_init_interface() since it was
	initialized to the wrong name.

./src/H5P.c
	Changes similar to H5.c

./src/H5T.c
	Changes similar to H5.c

./src/hdf5gen.c
	Changes to FUNC_ENTER() and FUNC_EXIT() to reduce the number
	of arguments.  FUNC_ENTER() is now safe from infinite
	recursion since it updates the library_initialize_g,
	thread_initialize_g, or interface_initialize_g variables
	before calling the appropriate initialize function.
1997-08-04 21:07:08 -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
Quincey Koziol
5cc4d0dcde [svn-r11] Moved haddr_t from H5Fprivate.h to H5Fproto.h (so I can store the address of
the object header in the dataset structure).  Also deleted the support for a
"per file" error stack, since we've decided to go with a "per thread" model
(currently).
1997-08-01 17:48:01 -05:00
Quincey Koziol
f474322ca5 [svn-r10] Added various constants, etc. for hooking new dimensionality and dataset
interfaces into the "meta-object" interface.
1997-08-01 16:25:07 -05:00
Quincey Koziol
ace2983e76 [svn-r9] Added framework code for creating datasets and hooked them into the
"meta-object" interface
1997-08-01 16:24:03 -05:00
Quincey Koziol
12ebf40c4e [svn-r8] Hooked the dimensionality objects into the "meta-object" interface. 1997-08-01 16:23:21 -05:00
Quincey Koziol
332b6fd676 [svn-r7] Changed some text for the file errors to make them more generic. Also, updated
the HRETURN_ERROR macro to take Pablo tracing parameters and call the Pablo
tracing function before calling 'return()'.
1997-08-01 15:52:20 -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
Quincey Koziol
d93c5653fd [svn-r5] ifdef'ed out the "H5Eset_push" function, which should only be used by
developers doing debugging.
1997-08-01 15:08:44 -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
3ecc8c71b5 [svn-r3] Interim checkin of code to allow correct compilation after yesterday's CVS
mistake.
1997-07-31 15:41:28 -05:00
Quincey Koziol
03997b1f36 [svn-r2] Oops... 1997-07-30 16:17:56 -05:00
cvs2svn
ad9255a57f [svn-r1] New repository initialized by cvs2svn. 1997-07-30 16:17:56 -05:00