summaryrefslogtreecommitdiffstats
path: root/src/H5D.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r13253] Updated all C and C++ style source code files with the THG ↵Albert Cheng2007-02-071-2/+3
| | | | | | | | | copyright notice. Tested platform: Kagiso only since it is only a comment block change. If it works in one machine, it should work in all, I hope. Still need to check the parallel build on copper.
* [svn-r13240] Description:Quincey Koziol2007-02-051-9/+9
| | | | | | | | | | More cleanups on the object header message handling code, to make it easier to work with and move forward on the creation order coding. Various other minor cleanups & warning fixes. Tested on: FreeBSD/32 6.2 (duty)
* [svn-r13223] Description:Quincey Koziol2007-01-301-4/+5
| | | | | | | | | | | | Move datatype messages into new shared message method interface Clean up various formatting & compiler warnings Minor optimizations Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r13217] Description:Quincey Koziol2007-01-291-7/+9
| | | | | | | | | | | Move fill value messages into new shared message method calling scheme. Only update an opened dataset's fill value property if it's different from the default fill value settings. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r13167] Description:Quincey Koziol2007-01-221-662/+497
| | | | | | | | | | | Get rid of two different types of fill value struct (merge H5O_fill_t and H5O_fill_new_t) and clean up & simplify dataset initialization code. (In preparation for shared object header message method call refactoring). Tested on: FreeBSD/32 6.2 (duty) Mac OS X/32 10.4.8 (amazon)
* [svn-r13155] Description:Quincey Koziol2007-01-191-2/+14
| | | | | | | | | | | | | | Add "set_crt_index" and "get_crt_index" methods for the object header message class. Unify fractal heap definitions for shared messages and attributes, under "object header" fractal heap definitions. Initial code for adding creation order index to object header messages. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r13129] More refactoring. Moved index versions to the index header, so ↵James Laird2007-01-091-14/+2
| | | | | | | | that an index can be read all at once. This changes the file format! Tested on Windows, kagiso, and smirom.
* [svn-r13068] Ran bin/reconfigure. Some of the scripts have been changed or ↵James Laird2006-12-181-17/+17
| | | | | | | | | haven't been run in a while, so many of the source files were updated with tracing macros, etc. No code changes by me. Tested on kagiso and smirom.
* [svn-r13015] Description:Quincey Koziol2006-12-041-23/+23
| | | | | | | | | | | Migrate more object header routines to use the H5O_msg_ prefix and put them into the src/H5Omessage.c code module. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) AIX/32 5.? (copper)
* [svn-r13012] Description:Quincey Koziol2006-12-031-19/+19
| | | | | | | | | | | | | | Refactor object header code to separate process of creating an object header message from the process of writing to an existing one. Start renaming operations that deal with object header messages to have "H5O_msg_" prefix... Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) AIX/32 5.? (copper)
* [svn-r12997] Description:Quincey Koziol2006-11-291-7/+7
| | | | | | | | | | Rename too generic "H5O_FLAG_<foo>" flags that are used as flags for header messages to "H5O_MSG_FLAG_<foo>", in order to make their use clearer. Tested on: FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) Linux/64 2.4 (mir)
* [svn-r12994] Description:Quincey Koziol2006-11-291-17/+24
| | | | | | | | | | | | | | | Propagate object creation properties up into group, dataset and named datatype property lists, when those property lists are retrieved for existing objects in a file. Also, add H5Tget_create_plist() API routine, to allow named datatype property lists to be retrieved for named datatypes. Tested on: FreeBSD/32 4.11 (sleipnir) Linux/32 2.4 (heping) Linux/64 2.4 (mir) AIX/32 5.? (copper)
* [svn-r12963] Description:Quincey Koziol2006-11-211-2/+8
| | | | | | | | | | Refactor internal code that retrieves the object's type to use the new H5O_type_t (which only definitions for object types, instead of links as well) instead of the older H5G_obj_t (which included links, etc.) Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12902] Checkin of Shared Object Header Message work.James Laird2006-11-131-2/+14
| | | | | | | | | | | | This feature is still in progress; Shared Object Header Messages are not complete as a feature and are not thoroughly tested. There are still "TODO" comments in the code (comments with the word "JAMES" in them, so as not to be confused with other TODO comments). Hopefully this checkin will reduce the liklihood of conflicts as I finish implementing this feature. All current tests pass on juniper, copper (parallel), heping, kagiso, and mir.
* [svn-r12842] Description:Quincey Koziol2006-11-021-870/+18
| | | | | | | | | | | | | | | | Refactor generic property list initialization code to put property list specific routines in property list modules, instead of scattered to the four winds. Also, introduce property list class initialization objects, to make adding new property list classes in the library easier. Fix daily test failure by using H5Pget_elink_prefix() API routine instead of looking at the "raw" generic property list information. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/C++ & FORTRAN Linux/64 2.4 (mir) w/build-all & 1.6 compat
* [svn-r12769] Description:Quincey Koziol2006-10-161-53/+50
| | | | | | | | | | | Move object header creation past several internal possibilities for errors, making the routine more resistant to errors encountered. Also, various formatting/compiler warning cleanups. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12756] Description:Quincey Koziol2006-10-121-1/+1
| | | | | | | | | | | | | | Clean up some object header code in advance of more major changes in the near future. Fix small initialization error in attribute message name buffer copy. Tweak down the default # of messages for new object headers. Tested on: FreeBSD/32 4.11 (sleipnir) w/threadsafe Linux/32 2.4 (heping) w/FORTRAN & C++ Mac OS/32 10.4.8 (amazon)
* [svn-r12740] Description:Quincey Koziol2006-10-101-1/+6
| | | | | | | | | | | Update datasets and the layout, attributes and fill-value object header messages to use the latest version of the file format flag. Tested on: FreeBSD 4.11 (sleipnir) Linux/64 2.4 (mir) Linux/32 2.4 (heping)
* [svn-r12706] Description:Quincey Koziol2006-10-021-6/+6
| | | | | | | | | Clean up some of the warnings on 64-bit Linux... Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2) Too minor to require h5committest
* [svn-r12604] Description:Quincey Koziol2006-08-211-1/+1
| | | | | | | | | Change call from H5O_loc_free() to H5G_name_free() when certain dataset open failures are generated. Tested on: Linux/32 2.6 (chicago) Too minor to require h5committest
* [svn-r12596] Refactored how external files are opened and closed.James Laird2006-08-181-17/+34
| | | | | | | | Object header locations (H5O_loc_t's) can now "hold open" a file and decrement its open object count when they close. This means that locations (H5O_loc_t's and H5G_loc_t's) should always be freed. Added more thorough tests to ensure that external files are closed.
* [svn-r12553] This check-in includes the following part of parallel ↵MuQun Yang2006-08-091-1/+7
| | | | | | | | | | | | | | | optimization codes: 1. Provide another option for users to do independent IO with MPI file setview(collectively) 2. With the request of collective IO from users, using Independent IO with MPI file setview if we find collective IO is not good for the applications for IO per chunk(multi-chunk IO) case. Previously we used pure independent IO and that actually performed small IO(IO each row) for this case. The recent performance study suggested the independent IO with file setview can acheieve significantly better performance than collective IO when not many processes participate in the IO. 3. For applications that explicitly choose to do collective IO per chunk case, the library won't do any optimization(gather/broadcast) operations. The library simply passes the collective IO request to MPI-IO. Tested at copper, kagiso, heping, mir and tungsten(cmpi and mpich) Kagiso is using LAM, t_mpi test was broken even. The cchunk10 test failed at heping and mir. I suspected it was an MPICH problem. Will investigate later. Everything passed at copper. at tungsten: the old cmpi bug(failed at esetw) is still there. Other tests passed. Some sequential fheap tests failed at kagiso.
* [svn-r12528] Added User-Defined links to the library.James Laird2006-08-021-6/+113
| | | | | | | | | | | | | | Users can create external links using H5L_create_external(). These links point to an object in another HDF5 file. Users can alter the behavior of external links or create new kinds of links by registering callbacks using the H5L interface. Added tests, tools support, etc. Also a number of other, minor changes have been made (some restructuring of the H5L interface, for instance). Additional documentation and examples are forthcoming.
* [svn-r12461] Cleaned up the names of some internal API functions, cleaned up ↵starfire2006-07-101-1/+1
| | | | | | | | | comments, fixed a few tests that used incorrect names for H5L APIs (formerly hidden behind H5_GROUP_REVISION ifdefs Mostly cosmetic changes, tested on mir.
* [svn-r12452] Purpose:James Laird2006-07-051-21/+112
| | | | | | | | | | | | | | | | | | | | | | Feature Description: Revised Link APIs. Solution: New link APIs use H5L* H5*create_expand do not create links to the objects created; this must be done manually with H5Llink. Added APIs to link an object given its ID (H5Llink), to copy links (H5Lcopy), and changed creation APIs (H5Lcreate_hard and H5Lcreate_soft) and query API (H5Lget_linkinfo instead of H5Gget_objinfo). All old APIs are still supported in H5Gdeprec.c . Platforms tested: sol, mir, copper Misc. update: Forgot to update MANIFEST and release docs. Will do after checkin.
* [svn-r12445] Purpose:Albert Cheng2006-06-291-7/+5
| | | | | | | | | | | | Bug #281 Description: The previous fix for bug #281 was not safe. Files got corrupted in some cases. Needs a more comprehensive fix for it. Undo the unsafe fix for now. Platforms tested: h5committested.
* [svn-r12440] Purpose:Quincey Koziol2006-06-271-1/+1
| | | | | | | | | | | Code cleanup Description: Trim trailing whitespace in Makefile.am and C/C++ source files to make diffing changes easier. Platforms tested: None necessary, whitespace only change
* [svn-r12349] Purpose:Quincey Koziol2006-05-151-1/+1
| | | | | | | | | | | | | | | Code checkpoint Description: Checkpoint fractal heap improvements, as well as move the free space manager code that it's using into a separate package. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4/64 (mir) w/C++ & FORTRAN Linux 2.4/32 (heping) Solaris 2.9 (shanti) AIX 5.? (copper) w/FORTRAN & parallel
* [svn-r12292] Purpose:Quincey Koziol2006-04-201-1/+1
| | | | | | | | | | | | | Code maintenance Description: Remove flexible parallel code Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (heping) Solaris 2.9 (shanti) Linux 2.4/64 (mir)
* [svn-r12090] Purpose:MuQun Yang2006-03-141-1/+10
| | | | | | | | | | | | | | | | | | | New APIs to add for collective chunk IO Description: Three new APIs H5Pset_dxpl_mpio_chunk_opt_ratio H5Pset_dxpl_mpio_chunk_opt_num H5Pset_dxpl_mpio_chunk_opt for optional optimization choices from users. Solution: Haven't added tests yet, won't affect other parts of the library. Will add tests after urgent investigations of memory leaking problems from NASA Aura team. Platforms tested: heping: both parallel and sequential shanti Misc. update:
* [svn-r11838] Purpose:Quincey Koziol2005-12-261-2/+4
| | | | | | | | | | | | | | | | Bug fix Description: Retrieving an object's name could fail (in various ways) under certain circumstances (mostly having to do with mounted files). Solution: Re-write & simplify "get object name" code to fix error in a better way than adding yet another hack to the previous pile of hacks... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11758] Purpose:Quincey Koziol2005-12-041-61/+98
| | | | | | | | | | | | | New feature Description: Add in a combination of Peter's & my code to support copying variable-length data from one file to another, although currently only supported with contiguous data storage. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-265/+289
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New feature Description: Check in baseline for compact group revisions, which radically revises the source code for managing groups and object headers. WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! This initiates the "unstable" phase of the 1.7.x branch, leading up to the 1.8.0 release. Please test this code, but do _NOT_ keep files created with it - the format will change again before the release and you will not be able to read your old files!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! WARNING!!!! Solution: There's too many changes to really describe them all, but some of them include: - Stop abusing the H5G_entry_t structure and split it into two separate structures for non-symbol table node use within the library: H5O_loc_t for object locations in a file and H5G_name_t to store the path to an opened object. H5G_entry_t is now only used for storing symbol table entries on disk. - Retire H5G_namei() in favor of a more general mechanism for traversing group paths and issuing callbacks on objects located. This gets us out of the business of hacking H5G_namei() for new features, generally. - Revised H5O* routines to take a H5O_loc_t instead of H5G_entry_t - Lots more... Platforms tested: h5committested and maybe another dozen configurations.... :-)
* [svn-r11686] Purpose:Quincey Koziol2005-11-071-0/+4
| | | | | | | | | | | | | | | | | | | New feature Description: Add in baseline "object copy" code from Peter [in the form of a new API routine: H5Gcopy()]. There's still some work to do (like handling variable- length datatypes and possibly support for references) and it hasn't been tested on mounted files yet, but the core functionality is there and working correctly. I've also got a set of patches to update the 1.6 branch with tweaks to keep the branches mostly in sync, but Elena will kill me if I import them before the 1.6.5 release is out... :-) Platforms tested: FreeBSD 4.11 (sleipnir) h5committested
* [svn-r11680] Purpose:Quincey Koziol2005-11-041-9/+9
| | | | | | | | | | | Code cleanup Description: Clean up H5Dcreate a little, to prepare for coding standards discussion today. Platforms tested: Just eyeballed, too trivial to require testing.
* [svn-r11593] Purpose:Quincey Koziol2005-10-211-243/+42
| | | | | | | | | | | | Code cleanup Description: Clean up & standardize a bit in preparation for coding standards discussion. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11490] Purpose:Quincey Koziol2005-10-031-4/+32
| | | | | | | | | | | | | | | Bug fix Description: Fix "double root open" bug and apply same fix to datasets & named datatypes. Also fix bug in symbol table entry lookup code that would "transfer" an object from one file handle to another file handle when the two file handles were opened on the same actual file. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11470] Purpose:John Mainzer2005-09-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Repair synchronization bug in the metadata cache in PHDF5 Also repair numerous other bugs that surfaced in testing the bug fix. Description: While operations modifying metadata must be collective, we allow independant reads. This allows metadata caches on different processes to adjust to different sizes, and to place the entries on their dirty lists in different orders. Since only process 0 actually writes metadata to disk (all other processes thought they did, but the writes were discarded on the theory that they had to be collective), this made it possible for another process to modify metadata, flush it, and then read it back in in its original form (pre-modification) form. The possibilities for file corruption should be obvious. Solution: Make the policy that only process 0 can write to file explicit, and visible to the metadata caches. Thus only process 0 may flush dirty entries -- all other caches must retain dirty entries until they are informed by process 0 that the entries are clean. Synchronization is handled by counting the bytes of dirty cache entries created, and then synching up between the caches whenever the sum exceeds an (eventually user specified) limit. Dirty metadata creation is consistent across all processes because all operations modifying metadata must be collective. This change uncovered may bugs which are repaired in this checkin. It also required modification of H5HL and H5O to allocate file space on insertion rather than on flush from cache. Platforms tested: H5committest, heping(parallel & serial) Misc. update:
* [svn-r11386] Purpose:Quincey Koziol2005-09-121-1/+1
| | | | | | | | | | | | | | Code cleanup/reorganization Description: Merge back some more changes extracted from the "compact group" set. This bunch cleans up and prepares the H5G_* routines for eventual import of new features. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Mac OS X.4
* [svn-r11384] Purpose:Quincey Koziol2005-09-121-4/+3
| | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Merge back changes from "compact group" work that improve the infrastructure of the library and may impact others. In this round of merging, that includes: - Move datatype allocation into single internal routine, instead of duplicated code that was spread out in a dozen or so places. - Clean up guts of object header routines (H5O_*) to allow for some of the fancieroperations that need to be performed on groups, along with some general improvements. - Added a new error code - Some minor cleanups in other code.... Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Mac OS X
* [svn-r11314] Purpose:Albert Cheng2005-08-301-15/+26
| | | | | | | | | | | | | | | | | | Bug #281 Description: A dataset created in serial mode with H5D_ALLOC_TIME_INCR allocation setting was not extendible, either explicitly by H5Dextend or implicitly by writing to unallocated chunks. This was because parallel mode expects the allocation mode be H5D_ALLOC_TIME_INCR only. Solution: Modified library to allocate more space when needed or directed if the file is opened by parallel mode, independent of what the dataset allocation mode is. Platforms tested: Heping pp.
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-131/+131
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Trim trailing whitespace, which is making 'diff'ing the two branches difficult. Solution: Ran this script in each directory: foreach f (*.[ch] *.cpp) sed 's/[[:blank:]]*$//' $f > sed.out && mv sed.out $f end Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11093] Purpose:Quincey Koziol2005-07-211-10/+7
| | | | | | | | | | | | Bug fix Description: Rewrite code for mounting files to clean up layers of kludges and implement a much cleaner and more maintainable design. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4
* [svn-r11078] Purpose:Quincey Koziol2005-07-171-4/+12
| | | | | | | | | | | | | | | Bug fix Description: Correct memory leak when a dataset is attempted to be opened, but turns out to be a group or named datatype. Also, clean up code that was leading to the leak and zero out empty group entries to help prevent similar errors in the future. Platforms tested: FreebSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11057] Purpose:Quincey Koziol2005-07-091-3/+20
| | | | | | | | | | | | | | | Bug fix Description: Correct error where the dataset sieve buffer was inadvertantly disabled, resulting in poor raw data I/O performance for certain I/O patterns. Solution: Hook dataset sieve buffer size setting back up. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r11014] Purpose:Quincey Koziol2005-07-021-10/+10
| | | | | | | | | | | | Code cleanup Description: Refactor metadata cache to merge "dirtied" flag in with other flags for H5AC_unprotect and H5C_unprotect. Platforms tested: FreeBSD 4.11 (sleipnir) h5committest
* [svn-r10978] Purpose:John Mainzer2005-06-241-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | Interim checkin of code changes moving management of the is_dirty flag into the cache code. Description: Prior to this checkin, management of the is_dirty flag was handled above the level of the metadata cache. This can no longer be allowed, as it introduces a race condition in the proposed fix for a cache coherency bug in PHDF5. Solution: Move management fo the is_dirty flag to the cache code proper. Entries are now marked as dirty via a flag on the unprotect call. Platforms tested: h5committested Misc. update:
* [svn-r10958] Purpose:Quincey Koziol2005-06-201-3/+7
| | | | | | | | | | | | | New feature Description: Add group creation & access property lists, dataset access property lists and named datatype creation & access property lists. Currently have <foo>_extend() API names, which will need to be changed for the final release. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (heping)
* [svn-r10620] Purpose:Quincey Koziol2005-04-161-1/+9
| | | | | | | | | | | | | | | | | Bug fix Description: Opening a dataset (or named datatype) with "." for the name and using a group ID for the location ID was not returning an error value. Solution: Check the type of the object before attempting to open it (internally, using a group ID and "." for the name maps to the group object). Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti) Too minor to require h5committest
* [svn-r10238] Purpose:Quincey Koziol2005-03-201-1/+1
| | | | | | | | | | | | | | | | Optimization Description: Speed up I/O on enumerated datatypes (including those nested in compound datatypes, arrays, etc.) if the destination datatype is a proper superset of the source datatype. Solution: Detect the situation and treat as no-op datatype conversion. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest