summaryrefslogtreecommitdiffstats
path: root/src/H5Fprivate.h
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r13477] Description:Quincey Koziol2007-03-081-0/+3
| | | | | | | | | | | | | | | | | | | | The main purpose of this checkin was to eliminate the space used for tracking creation time indices when there is no way they can be used (i.e. attributes can't be shared in the file and the user hasn't turned on attribute creation tracking), however there were some other minor changes which crept in: - Fix a cache locking deadlock when a shared attribute and one of its components end up in the same fractal heap direct block. (This is fixed the "slow" way for right now, until John has time to add support for readers/writer locking to the cache. - Optimize attribute copying when a copy will be kept during a v2 B-tree search. - When freeing a block on disk, attempt to merge it with the metadata and "small data" aggregators. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 6.2 (duty)
* [svn-r13465] Description:Quincey Koziol2007-03-061-1/+7
| | | | | | | | | | | | Fix bug in external links when "strong" file close degree is used. Make external link callbacks use standard error reporting mechanisms. Other minor code cleanups... Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 6.2 (duty)
* [svn-r13427] Description:Quincey Koziol2007-02-271-14/+11
| | | | | | | Eliminate some unnecessary properties for unused aspects of superblock. Tested on: Mac OS X/32 10.4.8 (amazon)
* [svn-r13413] Description:Quincey Koziol2007-02-271-0/+20
| | | | | | | | | | | | | Further cleanups to superblock code: - Move most of the ISOHM-specific code into the H5SM module - Make only one checksum, for combined superblock & driver info block Minor other cleanups, etc. Tested on: Mac OS X/32 10.4.8 (amazon) FreeBSD/32 6.2 (duty)
* [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-r13015] Description:Quincey Koziol2006-12-041-0/+2
| | | | | | | | | | | 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-r12935] Added list-to-btree conversion, changed SOHM apis, and pushed ↵James Laird2006-11-171-4/+5
| | | | | | | | | | | SOHM table version and size information into the superblock to eliminate a read when loading it. This is a file format change, and hopefully the last one (knock on wood). Tested on kagiso and Windows (mostly just a SOHM change).
* [svn-r12902] Checkin of Shared Object Header Message work.James Laird2006-11-131-0/+6
| | | | | | | | | | | | 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-r12866] Description:Quincey Koziol2006-11-061-6/+2
| | | | | | | Clean up initialization of H5F & H5L APIs. Tested on: Linux/64 2.6 (chicago2)
* [svn-r12842] Description:Quincey Koziol2006-11-021-142/+39
| | | | | | | | | | | | | | | | 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-r12739] Added Direct I/O driver to VFD. It's only supported by SGI ↵Raymond Lu2006-10-101-1/+1
| | | | | | | | | | Altix (cobalt). There's a configure option --enable-direct-vfd/--disable-direct-vfd to enable/disable Direct I/O support. The default is enabled. There's a small test in test/vfd.c. Another way to test it is to set environment variable HDF5_DRIVER to "direct" and run "make check" in the test/ directory. There'll be some further improvement in the following checkin including allowing user to provide memory boundary value, file block size, and copying buffer size.
* [svn-r12708] Description:Quincey Koziol2006-10-031-0/+7
| | | | | | | | | | | | | | | | | | | Add the "use the latest version of the format" support to datatype messages. And a regression test to check that it's working. Also, found that we have been over-allocating space for compound datatype messages (when they have array datatypes or can use the latest version of the format) and trimmed the size back. Clean up datatype & dataspace encode/decode routines by having them allocate & release "fake" file structures, which gets them out of needing to "know" about the internals of file structures. Other minor whitespace/formatting cleanups, etc. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12656] Description:Quincey Koziol2006-09-111-0/+5
| | | | | | | | | | | | | | | Add "use the latest version of the file format" flag to the file access property list and internal file data structures. Fix bug where metadata block size was retrieved instead of the small data block size. Categorize property list routine prototypes in the public header file. Tested on: Mac OS/PPC 10.4 (amazon) Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12362] Purpose:Quincey Koziol2006-05-221-0/+4
| | | | | | | | | | | | | | | | | | | | | Code checkpoint Description: Update fractal heap code to allow objects to be deleted Fix bugs in fractal heap object insertion Improve free space manager code to allow sections to be merged and shrink the container Another try at making the Windows compilers happy... Platforms tested: FreeBSD 4.11 (sleipnir) Mac OS X.4/PPC (amazon) Linux 2.4 (chicago & heping) Solaris 2.9 (shanti) AIX 5.? (copper) w/parallel
* [svn-r12292] Purpose:Quincey Koziol2006-04-201-1/+0
| | | | | | | | | | | | | 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-r12080] Purpose:Quincey Koziol2006-03-111-0/+30
| | | | | | | | | | | | New feature Description: Add "variable-length" 32-bit encode/decode macros, matching the other 64-bit ones, for later use in the fractal heap code. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor for full h5committest
* [svn-r12004] Purpose:Quincey Koziol2006-03-041-42/+45
| | | | | | | | | | | | | | | | | New feature & code cleanup Description: Update fractal heap to be able to insert objects into a direct block hanging off the header. Extract "octal dump" code into separate routine so that both the local heaps & fractal heaps can use it. Other code cleanups & support to get this far. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4
* [svn-r11850] Purpose:James Laird2006-01-021-0/+4
| | | | | | | | | | | | | | Feature Description: Added character encoding and attribute creation property lists. Solution: Attributes' character encoding is set via the ACPL. The default is ASCII, with UTF-8 being the other option currently. Platforms tested: heping, mir, sleipnir, copper
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-2/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r11470] Purpose:John Mainzer2005-09-271-0/+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-r11307] Purpose:Quincey Koziol2005-08-291-4/+4
| | | | | | | | | | | | Code cleanup Description: Clean up internals of group creation & iteration code. Platforms tested: FreeBSD 4.11 (sleipnir) Mac OS X (nile) Too minor to require h5committest
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-11/+11
| | | | | | | | | | | | | | | | | | | | 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-r11219] Purpose:Quincey Koziol2005-08-081-0/+3
| | | | | | | | | | | | Code cleanup Description: Bring some of the cleanups from the external link coding (which isn't checked in yet) back into CVS as an intermediate checkin. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11215] Purpose:Quincey Koziol2005-08-081-0/+3
| | | | | | | | | | | | | Bug fix & code cleanup Description: Fix another bug in the file mounting code and refactor the unmount code that it is simpler. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Too minor to require h5committest
* [svn-r11093] Purpose:Quincey Koziol2005-07-211-2/+2
| | | | | | | | | | | | 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-r11057] Purpose:Quincey Koziol2005-07-091-0/+4
| | | | | | | | | | | | | | | 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-r10971] Purpose: Bug fixRaymond Lu2005-06-221-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: See details from Bug #213. Family member file size wasn't saved anywhere in file. When family file is opened, the first member size determine the member size. Solution: Hopefully, this is the last step of checkin for this stage. This step mainly enables h5repart tool to be able to convert file driver from family to sec2. Because the library saves family information in file, in trying to convert to sec2 driver, the library simply change the address of driver information to undefined so that the driver information block can be ignored. This step also updates the reference manual of H5Pset_fapl_family() and h5repart. In the fifth step of checkin, backward compatibility with v1.6 is tested. A family file created was created with the v1.6 library and opened with this version of the library. In the fourth step of checkin, a test suit is added for h5repart, including a program to generate the test files, a script file to run h5repart, and a program to verify repartitioned files can be opened by the library. There's a change from the first step of checkin. Family name template is no longer saved in the superblock because different pathname can make the name different. In the third step of checkin, h5repart has been modified. If h5repart is used to change the size of family member file, the new size(actual member size) is saved in the superblock. In the second step of checkin, multi driver is checked against the driver name saved in superblock. Wrong driver will result in a failure with an error message indicating multi driver should be used. This change includes split driver because it's a special case for multi driver. In the first step of checkin. Family member size and name template(unused at this stage) are saved in file superblock. When file is reopened,the size passed in thrin superblock. A different size will trigger a failure with an error message indicating the right size. Wrong driver to open family file will cause a failure, too. Platforms tested: h5committest and fuss. Misc. update: doc/html/RM_H5P.html and doc/html/Tools.html
* [svn-r10847] Purpose: Bug fixRaymond Lu2005-06-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Description: See details from Bug #213. Family member file size wasn't saved anywhere in file. When family file is opened, the first member size determine the member size. Solution: This is the fourth step of checkin. A test suit is added for h5repart, including a program to generate the test files, a script file to run h5repart, and a program to verify repartitioned files can be opened by the library. There's a change from the first step of checkin. Family name template is no longer saved in the superblock because different pathname can make the name different. In the third step of checkin, h5repart has been modified. If h5repart is used to change the size of family member file, the new size(actual member size) is saved in the superblock. In the second step of checkin, multi driver is checked against the driver name saved in superblock. Wrong driver will result in a failure with an error message indicating multi driver should be used. This change includes split driver because it's a special case for multi driver. In the first step of checkin. Family member size and name template(unused at this stage) are saved in file superblock. When file is reopened,the size passed in thrin superblock. A different size will trigger a failure with an error message indicating the right size. Wrong driver to open family file will cause a failure, too. Platforms tested: h5committest and fuss. Misc. update: MANIFEST
* [svn-r10841] Purpose:Quincey Koziol2005-06-021-0/+9
| | | | | | | | | | | Code cleanup Description: Merge in some mostly cosmetic improvements to the H5F routines. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r10688] Purpose:John Mainzer2005-04-281-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Add API calls allowing user control of the metadata cache. Description: Prior to this update, the metadata cache was not configurable from outside the library. Solution: Add API calls allowing the user to configure the metadata cache either at file open time, or for any open file. Also added calls permitting the user to monitor cache size and hit rate. These latter facilities are needed for "manual" cache size control Platforms tested: h5committested Misc. update:
* [svn-r9354] Purpose:Quincey Koziol2004-10-011-0/+17
| | | | | | | | | | | | | | | | Bug fix & code cleanup Description: More dataset cleanups to get to a point where we can fix the chunked I/O bug. Also fix a couple of errors in the recent file object resurrection changes which should hopefully address the recent daily test failres (H5T.c) Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r8981] Purpose:Quincey Koziol2004-08-021-1/+0
| | | | | | | | | | | | | Code cleanup Description: Various minor tweaks to clean code up and bring it into closer syncronization with the release branch. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel h5committested IRIX64 6.5 (modi4)
* [svn-r8932] Purpose:Quincey Koziol2004-07-221-1/+1
| | | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up collective chunking code a bit. Also, add '--enable-instrument' configure flag to have a mechanism for determining that optimized operations happened correctly in the library (instead of just the "normal" way) by allowing 'flag' properties to be set outside the library and set when the "right" thing happens. This is mainly for debugging and regression checks, so we make certain we don't break optimized I/O by accident. It's enabled by default when --enable-debug is on (which is on by default in the development branch and off by default in the release branch), but can also be independently controlled with its own configure flag. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IBM p690 (copper) w/parallel
* [svn-r8892] Purpose:Quincey Koziol2004-07-161-0/+3
| | | | | | | | | | | | | | Code cleanup Description: Clean up a bunch of warnings and bring new code better inline with current library coding practice. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest Misc. update:
* [svn-r8853] Purpose:Quincey Koziol2004-07-101-3/+3
| | | | | | | | | | | | | | | | | | | | Code optimization Description: Refactor B-tree code to extract all common information for a B-tree into a shared structure that is pointed to by all the nodes in tree (instead of being included in each node). Also re-order B-tree node comparison checks for chunked datasets to check for >= the upper node first, since the comparison is a bit "heavy" and this check is more likely to succeed when you are adding records to the dataset. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest (also, recent h5dump commits have broken testing...)
* [svn-r8844] Purpose:Quincey Koziol2004-07-091-3/+4
| | | | | | | | | | | | | | | | | | Bug fix Description: The "shared" raw B-tree node can get freed before all the B-tree nodes had been flushed out to disk and released by the cache. Solution: Implement a simple reference counting wrapper for objects in the library and use it to hold the shared raw B-tree nodes so they aren't freed before all references to them in memory are released. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modei4)
* [svn-r8823] Purpose:Quincey Koziol2004-07-071-0/+4
| | | | | | | | | | | | | | | Code optimization Description: Since the raw B-tree nodes are the same size and only used when reading in or writing out a B-tree node, move raw B-tree node buffer from being per node to a single node that is shared among all B-tree nodes of a particular tree, freeing up a lot of space and eliminating lots of memory copies, etc. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8613] Purpose:Quincey Koziol2004-06-051-61/+20
| | | | | | | | | | | | | | | | | Refactor code Description: Move chunk and contiguous cached raw data from file information to dataset information. This simplifies a number of internal interfaces, aligns the code with it's purpose better and should allow more optimizations to the chunked data I/O performance. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) h5committest Misc. update:
* [svn-r8600] Purpose:Quincey Koziol2004-05-311-1/+3
| | | | | | | | | | | | | Code optimization Description: Don't recompute the internal index value for looking up the chunk in the hash table, just use the value already computed from iterating through the chunks. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8158] Purpose:Quincey Koziol2004-02-061-16/+20
| | | | | | | | | | | | | | | | | Code cleanup/optimization Description: Query property list values once, at the beginning of the I/O routines, instead of querying the property list values multiple (lots!) of times in lower level routines. Solution: Create "property list caches" for internal library queries of the property list values. Platforms tested: IBM p690 (copper) w/parallel & fphdf5 h5committest
* [svn-r7917] Purpose:Quincey Koziol2003-12-061-2/+1
| | | | | | | | | | | | | | | | | | | Code cleanup Description: Clean up compiler warnings, especially the 'FUNC' variable not used which comes out in production mode. Solution: Had to add a new FUNC_ENTER_NOAPI_NOINIT_NOFUNC macro for those non-API functions which don't need the 'FUNC' variable defined. (This will be _so_ much easier when C99 is standard on all our supposed platforms, since it has a __FUNC__ macro... ) Platforms tested: FreeBSD 4.9 (sleipnir) too minor for h5committest (although there were lots of files changed, the change was minor in each one)
* [svn-r7784] *** empty log message ***Raymond Lu2003-10-291-0/+1
|
* [svn-r7471] Purpose:Bill Wendling2003-09-121-3/+2
| | | | | | | | | | | | | | | | | | | | | Update Description: The F_open and F_flush functions had a lot of cruft in them. The F_flush was being used as a way to allocate the superblock. The F_open had a bunch of code in there to read and serialize the superblock. Solution: Moved these out into their own functions. Platforms tested: Modi4 (parallel, Fortran) Copper (parallel, Fortran) Verbena (Fortran, C++) Sol (Fortran) Misc. update:
* [svn-r7381] Purpose:Quincey Koziol2003-08-181-10/+10
| | | | | | | | | | | Code cleanup Description: Various cleanups resulting from running lint tool over H5F.c source module Platforms tested: FreeBSD 4.8 (sleipnir) too minor to require h5committest
* [svn-r7316] Purpose:Quincey Koziol2003-08-081-2/+0
| | | | | | | | | | Code cleanup Description: Removed prototype for H5F_addr_pack() routine. Platforms tested: h5committested
* [svn-r7232] Purpose:Quincey Koziol2003-07-161-6/+6
| | | | | | | | | | | | | | | | | | | | Bug fix Description: When a non-default indexed storage B-tree internal 'K' value is set by the user, the chunked datasets created in that file (until it is closed) use the user's 'K' value and the data can be accessed correctly, but the 'K' value is not stored in the file. However, once the file is closed and re-opened, the non-default 'K' value is lost and the data in the chunked datasets will not be able to be accessed correctly. Solution: Store the indexed storage B-tree internal 'K' value in the superblock. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7201] Purpose:Quincey Koziol2003-07-101-2/+2
| | | | | | | | | | | | | Code cleanup Description: Finish converting the B-tree 'K' values to use unsigned integers, rather than signed ones, since negative amounts of entries in a B-tree node aren't meaningful. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7189] Purpose:Quincey Koziol2003-07-091-0/+3
| | | | | | | | | | | Code cleanup Description: Break some of the "debugging" routines into their own module, so they aren't pulled into every executable, which certainly isn't going to use them. Platforms tested: h5committested
* [svn-r7184] Purpose:Quincey Koziol2003-07-081-2/+2
| | | | | | | | | | | Code cleanup Description: Clean up various warnings from lint Platforms tested: FreeBSD 4.8 (sleipnir) no major changes requiring h5committest
* [svn-r7122] Purpose:Quincey Koziol2003-06-301-0/+5
| | | | | | | | | | | | | Code cleanup/Feature removal Description: Remove "round robin" writing of metadata in MPI VFDs (and a couple of other places). This never really worked the way I hoped it would and it causes problems on certain machines. Platforms tested: FreeBSD 4.8 (sleipnir) w/parallel Too small for triple check.