summaryrefslogtreecommitdiffstats
path: root/src/H5Dio.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r9414] Purpose:Quincey Koziol2004-10-121-2/+2
| | | | | | | | | | | Code cleanup Description: Fix a couple of return values from NULL -> FAIL. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r9359] Purpose:Quincey Koziol2004-10-041-1/+1
| | | | | | | | | | | | | | | Bug fix Description: Relax restrictions on parallel I/O to allow compressed, chunked datasets to be read in parallel (collective access will be degraded to independent access, but will retrieve the information still). Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) IRIX64 6.5 (modi4) h5committest
* [svn-r9356] Purpose:Quincey Koziol2004-10-011-137/+334
| | | | | | | | | | | | | | | | 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-r9343] Purpose:Quincey Koziol2004-09-301-177/+49
| | | | | | | | | | | | | | | | Bug fix/code cleanup Description: Clean up raw data I/O code to bundle the I/O parameters (dataset, DXPL ID, etc) into a single struct to pass around through the dataset I/O routines, since they are always passed together, until very near the bottom of the I/O stack. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Solaris 2.7 (arabica) IRIX64 6.5 (modi4) h5committest
* [svn-r9334] James Laird2004-09-281-70/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: Feature Description: (Same change to release branch) Datatypes and groups now use H5FO "file object" code that was previously only used by datasets. These objects will hold a file open if the file is closed but they have not yet been closed. If these objects are unlinked then relinked, they will not be destroyed. If they are opened twice (even by two different names), both IDs will "see" changes made to the object using the other ID. When an object is opened using two different names (e.g., if a dataset was opened under one name, then mounted and opened under its new name), calling H5Iget_name() on a given hid_t will return the name used to open that hid_t, not the current name of the object (this is a feature, and a change from the previous behavior of datasets). Solution: Used H5FO code that was already in place for datasets. Broke H5D_t's, H5T_t's, and H5G_t's into a "shared" struct and a private struct. The shared structs (H5D_shared_t, etc.) hold the object's information and are used by all IDs that point to a given object in the file. The private structs are pointed to by the hid_t and contain the object's group entry information (including its name) and a pointer to the shared struct for that object. This changed the naming of structs throughout the library (e.g., datatype->size is now datatype->shared->size). I added an updated H5Tinit.c to windows.zip. Platforms tested: Visual Studio 7, sleipnir, arabica, verbena Misc. update:
* [svn-r9313] Purpose:Quincey Koziol2004-09-231-3/+4
| | | | | | | | | | Bug fix. Description: Allow I/O to occur on 0 element selections. Platforms tested: h5committest
* [svn-r8989] Purpose:Quincey Koziol2004-08-021-4/+53
| | | | | | | | | | | | | | Backport feature Description: Backport Kent's collective chunk I/O work to date into the release branch. Also, minor code cleanups, etc. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel IRIX64 6.5 (modi4) h5committested
* [svn-r8954] James Laird2004-07-271-1/+17
| | | | | | | | | | | | | | | | Purpose: Bug fix Description: When a simple dataspace is created, its extent should be set before using it, or it will silently function as a NULL dataspace. Solution: Added checks on user-supplied dataspaces. Now dataspaces without extents set will throw errors; users must explicitly set a dataspace to be NULL. Platforms tested: sleipnir, windows
* [svn-r8942] Purpose:Quincey Koziol2004-07-261-2/+6
| | | | | | | | | | | | | | Code optimization Description: Changed calloc() calls to malloc() calls allocating background buffers during dataset writes, since the background buffer information will be read from disk anyway, overwriting any existing values. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8902] Purpose:Quincey Koziol2004-07-201-6/+3
| | | | | | | | | | | | Bug fix Description: Allow buffer parameter to H5Dread & H5Dwrite to be NULL if there are no elements to transfer. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8802] Purpose:Quincey Koziol2004-07-031-61/+23
| | | | | | | | | | | | | | | Code optimization Description: Set up datatype ID for dataset's datatype on disk. This allows us to avoid repeatedly copying the datatype when an ID is needed. Also, clean up a few warnings in various other places. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8783] Purpose:Quincey Koziol2004-07-011-8/+8
| | | | | | | | | | | Code cleanup Description: Clean up almost all warnings from Windows builds. Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8753] Nat Furrer2004-06-281-0/+24
| | | | | | | | | | | | | | | | | | | Purpose: Handled SZIP without the encoder present. Description: It is now an error for a user to try to create, extend, or write to a dataset without the encoder present in their SZIP library. Added H5Zget_filter_info to provide users with a way to query HDF5 about the presence (or lack thereof) of the SZIP encoder. Platforms tested: Windows Verbena Arabica Copper Misc. update:
* [svn-r8695] Purpose:Quincey Koziol2004-06-151-1/+2
| | | | | | | | | | | | Code optimization Description: Avoid memcpy() when setting up new chunk coordinates Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8687] Purpose:Quincey Koziol2004-06-141-15/+20
| | | | | | | | | | | | | Code optimization Description: Eliminate memcpy() when using default DXPL by pointing at existing default object, instead of copying it. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8684] Purpose:Quincey Koziol2004-06-141-17/+13
| | | | | | | | | | | | | Code optimization Description: Use 'size_t' instead of 'hsize_t' to track the number of elements in memory buffers, especially for type conversion. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8674] Purpose:Quincey Koziol2004-06-131-2/+2
| | | | | | | | | | | | | | | | | | Code optimization Description: Revised dataspace selections to use a more "object oriented" mechanism to set the function pointers for each selection and selection iterator. This reduces the amount and number of times that dataspace selection info has to be copied. Additionally, change hyperslab selection information to be dynamically allocated instead of an inline struct. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8652] Purpose:Quincey Koziol2004-06-101-3/+3
| | | | | | | | | | | Code optimization Description: Eliminate redundant memset() when creating chunk map structure. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel
* [svn-r8637] Purpose:Quincey Koziol2004-06-091-37/+64
| | | | | | | | | | | | Code optimization Description: Don't allocate conversion buffer larger than the user's buffer. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.10 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8614] Purpose:Quincey Koziol2004-06-051-30/+44
| | | | | | | | | | | | | | | 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
* [svn-r8601] Purpose:Quincey Koziol2004-05-311-205/+202
| | | | | | | | | | | | | | | | Code optimization & cleanup 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. Also, back-port some of the various cleanups to the source code from the development branch, to make diffing the code easier. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8592] Purpose:Quincey Koziol2004-05-271-53/+63
| | | | | | | | | | | | | | | | | | | | | Code optimization & bug fix Description: When dimension information is being stored in the storage layout message on disk, it is stored as 32-bit quantities, possibly truncating the dimension information, if a dimension is greater than 32-bits in size. Solution: Fix the storage layout message problem by revising file format to not store dimension information, since it is already available in the dataspace. Also revise the storage layout data structures to be more compartmentalized for the information for contiguous, chunked and compact storage. Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel Solaris 2.7 (arabica) h5committest
* [svn-r8543] Purpose:Quincey Koziol2004-05-201-43/+43
| | | | | | | | | | | | | | Code optimization Description: Expand the use of macros to inline trivial function pointer lookup and calls to reduce the overall number of functions invoked during normal operation of the library. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r8512] Purpose:Quincey Koziol2004-05-131-2/+2
| | | | | | | | | | | | Code optimization Description: Defer creating the span trees for hyperslab selections until they are actually needed (which may be never, in certain circumstances). Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8497] Purpose:Quincey Koziol2004-05-081-9/+9
| | | | | | | | | | | | | Code optimization Description: Further reduce the number of copies we make of a hyperslab selection for chunked I/O, especially when we are only going to throw the old selection away for a new one. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel
* [svn-r8461] Purpose:Quincey Koziol2004-05-011-72/+51
| | | | | | | | | | | | | Code optimization Description: Reduce the number of times the number of elements in a selection is computed. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8459] Purpose:Quincey Koziol2004-05-011-22/+22
| | | | | | | | | | | | | | | Code optimization Description: Move the element size for the selection into the selection iterator instead of always passing it as a parameter. Also, eleminate another 64-bit multiply for "all" selections. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8445] Purpose:Quincey Koziol2004-05-011-49/+9
| | | | | | | | | | | | | Code optimization Description: Avoid dividing the chunk coordinates at the top levels of the chunk I/O routines, only to multiply them at the bottom of the routines. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8384] Purpose:Quincey Koziol2004-04-181-4/+4
| | | | | | | | | | | | | Code cleanup Description: Clean up lots of warnings based on those reported from the SGI compilers as well as gcc. Platforms tested: SGI O3900, IRIX64 6.5 (Cheryl's SGI machine) FreeBSD 4.9 (sleipnir) w/ & w/o parallel h5committest
* [svn-r8363] Purpose:Quincey Koziol2004-04-171-4/+8
| | | | | | | | | | | | Code optimization Description: Remove redundant function call by re-using value we already know. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8341] Purpose:Quincey Koziol2004-04-101-5/+20
| | | | | | | | | | | | Code optimization Description: Remove another dataspace copy, in certain circumstances. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r8338] Purpose:Quincey Koziol2004-04-101-18/+15
| | | | | | | | | | | | Code optimization Description: Avoid another extraneous dataspace copy. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8336] Purpose:Quincey Koziol2004-04-101-19/+7
| | | | | | | | | | | | | | | Code optimization Description: Change algorithm to directly use coordinates describing a chunk's position in a dataspace instead of creating a dataspace with the chunk's position selected. This reduces the number of copies of dataspaces we need to keep around. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8329] Purpose:Quincey Koziol2004-04-081-80/+96
| | | | | | | | | | | | | Code optimization Description: Check for only performing I/O on a single chunk and re-use memory dataspace, instead of re-creating the same dataspace & selection the hard way. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8327] Purpose:Quincey Koziol2004-04-081-28/+15
| | | | | | | | | | | | Code optimization Description: Eliminate more dataspace copying, etc. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel too minor to require h5committest
* [svn-r8322] Purpose:Quincey Koziol2004-04-081-17/+19
| | | | | | | | | | | | Code optimization Description: Reduce the number of dataspace copies made when performing I/O on chunked datasets. Platforms tested: Solaris 2.7 (arabica) too minor to require h5committest
* [svn-r8317] Purpose:Quincey Koziol2004-04-071-233/+434
| | | | | | | | | | | | Code optimization Description: Query the dataset creation and transfer properties less often. Platforms tested: Solaris 2.7 (arabica) FreeBSD 4.9 (sleipnir) w/parallel h5committested
* [svn-r8054] Purpose:Quincey Koziol2004-01-131-13/+18
| | | | | | | | | | | | | | | | | | | | Bug fix Description: Correct two problems with variable-length datatypes in datasets: - When overwriting an entire dataset, writing the fill value to the file would be skipped, causing problems for VL datatypes when objects in the file had been unlinked (and thus the space in the file was not all zeros) - When an application has set a fill-value for a dataset and the dataset's datatype contained a VL datatype, the library was filling space on disk with the memory form of the VL information, instead of the disk form. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7944] Purpose:Quincey Koziol2003-12-131-2/+10
| | | | | | | | | | | | | | | Bug fix. Description: Using a selection offset with hyperslab selections in chunked datasets was getting into an infinite loop and hanging the application. Solution: Apply the selection offset to the hyperslab selection properly. Platforms tested: FreeBSD 4.9 (sleipnir) w & w/o parallel h5committest
* [svn-r7918] Purpose:Quincey Koziol2003-12-061-16/+16
| | | | | | | | | | | | | | | | | | | 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-r7844] Purpose:Quincey Koziol2003-11-131-16/+18
| | | | | | | | | | | | | | | | | | | Bug fix Description: Variable length strings and sequences with NULL pointers were not handled by library, causing problems access the data. This also affected fill values for variable-length datatypes. Solution: Address the issues in the library by detecting NULL sequences/strings and avoid trying to convert them. Patched up dumper to display NULL sequences/strings. Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7760] Purpose:Quincey Koziol2003-10-281-2/+2
| | | | | | | | | | | | | | Fix serial build Description: I accidentally put the "use_par_opt_io" variable in an #ifdef PARALLEL section. Solution: Hoist it out of parallel section Platforms tested: Eyeballed it - very trivial
* [svn-r7755] Purpose:Quincey Koziol2003-10-271-4/+10
| | | | | | | | | | | | | Code cleanup Description: Straighten out more goofiness in the MPI code dealing with collective I/O transfers - mostly make certain that a view is set if-and-only-if collective I/O is occurring on raw data (and vice versa for views and independent I/O) Platforms tested: FreeBSD 4.9 (sleipnir) w/parallel too minor to repquire h5committest
* [svn-r7745] Purpose:Quincey Koziol2003-10-271-108/+54
| | | | | | | | | | | | | | Code cleanup Description: More refactoring on setup of MPI-IO parameters: hoisted the code to change the transfer mode from collective to independent up into the H5D_read and H5D_write routines, instead of duplicating it inside each of the chunk/contig read/write routines. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r7743] Purpose:Quincey Koziol2003-10-271-87/+44
| | | | | | | | | | | | Code cleanup Description: Clean up setup code for collective I/O transfers to make the logic more obvious. Platforms tested: FreeBSD 4.9 (sleipnir) too minor for h5committest
* [svn-r7552] Purpose:Quincey Koziol2003-10-061-8/+0
| | | | | | | | | | | | | | Bug/feature fix. Description: Relax restriction on parallel writing to compact datasets to allow partial I/O. Updated reference manual mentioning the issues involved. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r7479] Purpose:Quincey Koziol2003-09-161-1/+4
| | | | | | | | | | | | | | | Bug fix Description: H5Dwrite was only checking the "top level" of the datatype to stop parallel I/O on variable-length datatypes. Solution: Make checks "deeper". Platforms tested: FreeBSD 4.9 (sleipnir) h5committest
* [svn-r7382] Purpose:Quincey Koziol2003-08-191-8/+30
| | | | | | | | | | | | | | | | Bug fix Description: I/O on chunked datasets with a scalar dataspace for the memory dataspace was not working correctly. Solution: Translate the scalar dataspace into a n-dimensional (where n is the number of dimensions of the file's dataspace) dataspace of dimensions 1x1x1... Platforms tested: FreeBSD 4.8 (sleipnir) h5committest (modulo modi4 which is not working correctly)
* [svn-r7258] Purpose:Quincey Koziol2003-07-231-365/+347
| | | | | | | | | | | | | | | Bug fix Description: I/O on chunked datasets with point selections was not working correctly. Solution: Re-wrote some parts of raw data I/O routines that build the selections for each chunk to correctly handle point selections. Platforms tested: FreeBSD 4.8 (sleipnir) h5committest
* [svn-r7218] Purpose:Quincey Koziol2003-07-141-16/+16
| | | | | | | | | | | | | | Bug fix Description: H5T_BKG_TEMP was accidentally removed from library code, but is used by application's datatype conversion routines. Solution: Revert removal of H5T_BKG_TEMP. Platforms tested: h5committest