summaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r53] Added datatype and dimensionality messages to dataset header, ↵Quincey Koziol1997-08-299-54/+286
| | | | | | cleaned up more code, etc.
* [svn-r52] ./src/H5O.cRobb Matzke1997-08-292-24/+46
| | | | | | | | | | | | If the symbol table entry doesn't change then the ent_modified argument to H5O_modify() doesn't change. This allows us to set ent_modified to false and then call H5O_modify() a whole bunch of times and easily determine if any of the calls modified the symbol table entry. ./src/H5D.c Fixed caching of things in the symbol table entry using the scheme we came up with a couple months ago.
* [svn-r50] ./src/H5G.cRobb Matzke1997-08-292-10/+15
| | | | | | | | Commented out H5G_basename(). Fixed a bug in H5G_namei() and H5G_insert(). ./src/H5O.c Fixed a bug in H5O_modify()
* [svn-r49] ./src/H5D.cRobb Matzke1997-08-281-57/+72
| | | | | | | | | | | Changed H5D_flush() to work with the new symbol table functions. I just remembered that caching data in the symbol table entries still needs some work, so there's a line in there that invalidates the symbol table entry cache. Also, there are some comments in there with the word `Quincey' for you to read about inserting the messages in the dataset object header.
* [svn-r47] Finished flashing out the H5M* functions calls. Cleaned up ↵Quincey Koziol1997-08-2810-179/+664
| | | | | | non-compiling source. Finished adding in remainder of H5Osdtyp.c functions.
* [svn-r44] ./src/H5D.cRobb Matzke1997-08-2813-271/+299
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r42] Minor tweaks to correct parameters for H5O_newQuincey Koziol1997-08-263-53/+61
|
* [svn-r41] Interim checkpoint of dataset code for Robb to look at.Quincey Koziol1997-08-267-11/+896
|
* [svn-r40] Changed comments about length and offset parameters from uintn to ↵Quincey Koziol1997-08-221-4/+4
| | | | uint8
* [svn-r39] Fixed incorrect comment about 'buf' parameter in H5CsetparmQuincey Koziol1997-08-221-1/+1
|
* [svn-r38] Code review changes to H5Csetparm & H5Cgetparm:Quincey Koziol1997-08-221-24/+46
| | | | | error checking on atom group of template in both funcs range checking of parameters in H5Csetparm
* [svn-r35] ./src/H5ACproto.hRobb Matzke1997-08-1568-2932/+1687
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r31] Added code for H5Mget_file & H5Mflush and re-targeted some of the ↵Quincey Koziol1997-08-153-3/+95
| | | | | | H5D calls to use them.
* [svn-r30] Intermediate checkin of (non-working) dataset code to allow for ↵Quincey Koziol1997-08-156-13/+170
| | | | | | source code rearrangement.
* [svn-r29] Added 'debug' executable to clean targetQuincey Koziol1997-08-151-1/+1
|
* [svn-r27] ./src/H5B.cRobb Matzke1997-08-1313-94/+187
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r25] ./src/H5AC.cRobb Matzke1997-08-1217-115/+1080
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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()
* [svn-r24] ./src/H5B.cRobb Matzke1997-08-1110-12/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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().
* [svn-r20] Upgraded function comment header for H5Fcreate to be the the ↵Quincey Koziol1997-08-113-18/+35
| | | | | | template for future functions...
* [svn-r19] Added new minor error code - H5E_BADVALUE, for arguments with only ↵Quincey Koziol1997-08-112-0/+2
| | | | | | a single incorrect value.
* [svn-r17] ./src/H5AC.cRobb Matzke1997-08-0918-115/+217
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* [svn-r15] ./src/H5AC.cRobb Matzke1997-08-0734-436/+3155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ./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.
* [svn-r14] Preliminary checkin of dataset code, to allow the interface & code ↵Quincey Koziol1997-08-065-11/+143
| | | | | | | to be shared. Everything except the H5Dwrite should be working (or have sections of code commented about features to implement).
* [svn-r13] ./src/H5.cRobb Matzke1997-08-0514-413/+434
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r12] ./src/H5AC.cRobb Matzke1997-08-0413-51/+609
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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'.
* [svn-r11] Moved haddr_t from H5Fprivate.h to H5Fproto.h (so I can store the ↵Quincey Koziol1997-08-013-18/+10
| | | | | | | | 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).
* [svn-r10] Added various constants, etc. for hooking new dimensionality and ↵Quincey Koziol1997-08-014-24/+45
| | | | | | dataset interfaces into the "meta-object" interface.
* [svn-r9] Added framework code for creating datasets and hooked them into theQuincey Koziol1997-08-013-0/+231
| | | | "meta-object" interface
* [svn-r8] Hooked the dimensionality objects into the "meta-object" interface.Quincey Koziol1997-08-013-38/+35
|
* [svn-r7] Changed some text for the file errors to make them more generic. ↵Quincey Koziol1997-08-013-13/+13
| | | | | | | Also, updated the HRETURN_ERROR macro to take Pablo tracing parameters and call the Pablo tracing function before calling 'return()'.
* [svn-r6] Added the next layer of symbol table functions. Given a symbol tableRobb Matzke1997-08-014-39/+341
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* [svn-r5] ifdef'ed out the "H5Eset_push" function, which should only be used byQuincey Koziol1997-08-012-0/+4
| | | | developers doing debugging.
* [svn-r4] Changed SIZEOF_OFFSET and SIZEOF_SIZE to H5F_SIZEOF_OFFSET andRobb Matzke1997-08-0115-259/+300
| | | | | | | | | 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.
* [svn-r3] Interim checkin of code to allow correct compilation after ↵Quincey Koziol1997-07-311-65/+13
| | | | | | yesterday's CVS mistake.
* [svn-r2] Oops...Quincey Koziol1997-07-3055-0/+11040