summaryrefslogtreecommitdiffstats
path: root/src/H5F.c
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r5562] Purpose:Quincey Koziol2002-06-101-2/+2
| | | | | | | | | | | Code cleanup Description: Allow H5FD_free to return successfully (but ignore) freeing objects with size 0. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5551] Purpose:Quincey Koziol2002-06-071-2/+2
| | | | | | | | | | | | Bug fix. Description: Added extra check to locations where metadata and "small data" blocks were being returned to the file's list of free space to avoid freeing 0-sized blocks. This should fix the problems in last night's daily tests. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5542] Purpose:Quincey Koziol2002-06-061-0/+31
| | | | | | | | | | | | | | | | | Code cleanup/bug fix Description: Unused space in the file was being "dropped on the floor" when the metadata or "small data" block was moved to a new location in the file and there was unused space in the old block. Solution: Put the space left in the allocation block into the free list of space for the file. This allows it to be [potentially] reused and sometimes allows the file to be smaller. Platforms tested: Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
* [svn-r5538] Purpose:Quincey Koziol2002-06-051-41/+99
| | | | | | | | | | | | | | | Code improvement. Description: Added boot block and driver info block checksumming feature to the shared file information. This prevents these blocks from being written out multiple times when they haven't changed. This reduces the number of I/O operations which hit the disk for my test program from 15 to 14 (i.e. from 393 to 14, overall). Platforms tested: Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
* [svn-r5536] Purpose:Quincey Koziol2002-06-051-1/+8
| | | | | | | | | | | | | | | | | New feature. Description: Added a "small data" block allocation mechanism to the library, similar to the mechanism used for allocating metadata currently. See the RFC for more details: http://hdf.ncsa.uiuc.edu/RFC/SmallData/SmallData.html This reduces the number of I/O operations which hit the disk for my test program from 19 to 15 (i.e. from 393 to 15, overall). Platforms tested: Solaris 2.7 (arabica) w/FORTRAN and FreeBSD 4.5 (sleipnir) w/C++
* [svn-r5471] Purpose:Quincey Koziol2002-05-291-29/+33
| | | | | | | | | | | | | | | | Code cleanup Description: Broke the FUNC_ENTER macro into several macros, with more specialized uses (which followup mail will describe). This was designed to move most/all of the checks which could be done at compile time to that point, instead of needlessly performing them (over & over :-) at run-time. This reduces the library's size (and thus staticly linked binaries) and has a minor speedup effect also. Platforms tested: IRIX64 6.5 (modi4) with parallel & FORTRAN enabled, and additional testing on FreeBSD and Solaris immediately after the checkin.
* [svn-r5467] Purpose:Quincey Koziol2002-05-281-15/+30
| | | | | | | | | | | | | | | | | | | | | | | | Code cleanup. Description: Took Robb's recent ideas for improving the FUNC_ENTER/FUNC_LEAVE macros equivalents in the SAF library and adapted them to our library. I added an additional macro which is equivalent to FUNC_ENTER: FUNC_ENTER_NOINIT - Has the API tracing code, etc. from FUNC_ENTER but none of the library or interface initialization code. This is to be used _only_ for static functions and those which explicitly cannot have the library or interface initialization code enabled (like the API termination routines, etc.). This allowed many more of the functions in the library [but not all yet :-(] to be wrapped with FUNC_ENTER[_NOINIT]/FUNC_LEAVE pairs. It also reduced the size of the library and executables (by cutting out a bunch of code which was never executed), I'll e-mail the exact results when I've finished editing it. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5452] Pedro Vicente Nunes2002-05-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: eliminating the compiler warnings in Windows Solution: I am eliminating the compiler warnings in Windows. the last 2 were: 1) if((oid_list = H5MM_malloc(oid_count*sizeof(hid_t)))==NULL) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed"); D:\disk_w\hdf5\src\H5F.c(2590) : warning C4047: '=' : 'int ' differs in levels of indirection from 'void *' on the HGOTO_ERROR call , I replaced the NULL with FAIL 2) *((float*)d) = *((double*)s); D:\disk_w\hdf5\src\H5Tconv.c(6426) : warning C4244: '=' : conversion from 'double ' to 'float ', possible loss of data I added the type cast *((float*)d) = (float) *((double*)s); we have now 0 errors 0 warnings on Windows ! Platforms tested: w2000, linux
* [svn-r5440] Purpose:Quincey Koziol2002-05-201-15/+12
| | | | | | | | | | | New feature Description: Add 'closing' parameter to H5FDflush and VFL "flush" functions, per http://hdf.ncsa.uiuc.edu/RFC/VFLFlush/VFLFlush.html Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5414] Purpose:Quincey Koziol2002-05-141-0/+8
| | | | | | | | | | | | | | | Bug Fix Description: When H5Freopen is called, the file to reopen's 'intent' (read/write permissions, etc) is not being copied to the new file's 'intent' information. Solution: Copy it. :-) Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5408] Purpose:Quincey Koziol2002-05-131-0/+6
| | | | | | | | | | | | | | | Performance enhancement Description: Doing an MPI_File_sync() just before a file is closed causing a large performance loss. Solution: Add flag to MPI file driver to avoid performance the MPI_File_sync() when the flag is set before a call to H5F_flush(). Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5406] Purpose:Quincey Koziol2002-05-131-120/+121
| | | | | | | | | | Code cleanup Description: Restructure H5F_close code to use just one H5F_flush call. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5403] Purpose:Quincey Koziol2002-05-131-17/+11
| | | | | | | | | | Back out changes. Description: Back out changes to VFL 'flush' API function, pending review. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5393] Purpose:Quincey Koziol2002-05-101-11/+17
| | | | | | | | | | | | | | | | | | | | | | New Feature Description: The VFL flush function is called immediately before a file is closed. This can cause duplicate syncronization actions to occur, if the VFL close function also performs them. Solution: Added 'closing' parameter to VFL 'flush' operation. This allows the VFL flush function to bypass operations that will be duplicated within the VFL close function. Additionally, use the 'closing' parameter to bypass calls to MPI_File_sync() when set. Since MPI_File_close() also syncronizes the file, this avoids the terrible performance hit taken when calling MPI_File_sync() as the file is closing. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5390] Purpose:Quincey Koziol2002-05-101-8/+0
| | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: The parallel I/O file driver is optimized to only write metadata with one process (and broadcast the results to the other processes). This is currently enabled by a separate call to H5FD_mpio_tas_allsame() before each metadata write to the file. This can easily lead to problems where the prelude function call is omitted before the actual write code or, in a threaded environment, lead to race condititions where the value set is reset before being used. Solution: Since we only want to write metadata from one process, key off of the 'type' parameter (which has information about whether the data being written it metadata or raw data) to H5FD_mpio_write() as the method for determining whether to only write from one process or not. Platforms tested: IRIX64 6.5 (modi4)
* [svn-r5278] Purpose:Albert Cheng2002-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | | Migrate from configure macros of XYZ_ABC to H5_XYZ_ABC Description: configure generates many macros definitions on the fly and were stored in src/H5config.h which is included by H5public.h. But other software that uses hdf5 may also run their own configure. There can be a clash in macro name space. We decided awhile ago to prepend all generated macros with "H5_" to avoid conflicts. The process has started and this commit completes it (at least attempt to). Solution: Many macros symbols (e.g. SIZEOF_xxx and HAVE_xxx were changed to H5_SIZEOF_xxx and H5_HAVE_xxx). Then H5private.h no longer includes H5config.h. This cuts H5config.h away from HDF5 source code. Pending issues: The module of fortran and pablo are to be resolved in a different commit. Platforms tested: eirene (parallel), arabica (solaris 7 --enable-fortran, --enable-cxx)
* [svn-r5152] Purpose:Quincey Koziol2002-04-091-1/+1
| | | | | | | | | | | | | | | New Feature Description: Added new H5Dfill() routine to fill the elements in a selection for a memory buffer with a fill value. This is a user API wrapper around some internal routines which were needed for the fill-value modifications from Raymond as well as Pedro's code for reducing the size of a chunked dataset. Platforms tested: FreeBSD 4.5 (sleipnir) [and IRIX64 6.5 (modi4) in parallel, in a few minutes]
* [svn-r5096] Purpose:Quincey Koziol2002-03-271-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix Description: The H5Gget_objinfo() function was not setting the 'fileno' field in the H5G_stat_t struct passed in. Solution: Added a "file serial number" to each file currently open in the library and put that in the 'fileno' field. If a file is opened twice (with H5Fopen) and the VFL driver detects that it is the same file (i.e. the two file structures have the same "shared file info" in the library's memory structures), they will have the same serial number. This serial number has two drawbacks: - If a VFL driver doesn't/can't detect that two calls to H5Fopen with the same file actually _are_ the same file, each will get a different serial number - If the same file is closed and re-opened, the serial number will be different. It is be possible to fix the second drawback for many VFL drivers, but it would be a lot of effort and probably isn't worth it until we've got a good reason to do it. Dunno if we'll ever be able to fix the first drawback... Platforms tested: FreeBSD 4.5 (sleipnir) VS: ----------------------------------------------------------------------
* [svn-r4867] Purpose:Quincey Koziol2002-01-271-4/+11
| | | | | | | | Code cleanup Description: Added some more assertions to help debug in the future... Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r4757] Purpose:Albert Cheng2001-12-301-4/+0
| | | | | | | | | | | | | | | | | | Removing the DPSS (gridstorage) driver source code. Description: The DPSS (using Grid-Storage) driver is retired. Removed the configure option with-gridstorage from configure.in. Cvs remove the following files ./src/H5FDdpss.c ./src/H5FDdpss.h ./test/dpss_read.c ./test/dpss_write.c Regenerated Dependencies files (some had to be hand-edited since 'make depend' did not cover them.) Removed reference to DPSS Virtual file driver from H5F.c. Platforms tested: modi4 (Parallel; -with-gass=...), eirene, arabica (fortran, cxx).
* [svn-r4706] Purpose:Quincey Koziol2001-12-121-6/+10
| | | | | | | | | | | | Code cleanup Description: Tweaked internal error handling macros to reduce the size of the library's object code by about 10-20%. Also cleaned up some compiler warnings... Platforms tested: FreeBSD 4.4 (sleipnir)
* [svn-r4696] Raymond Lu2001-12-111-62/+443
| | | | | | | | | | | | | | | | | Purpose: Modify H5Fclose behavior Description: The HDF5 actual file close behaves in several ways in terms of if there are still objects(dataset, group, datatype) opened in file. Solution: Added a new file access property, file close degree. It has four values, H5F_CLOSE_DEFAULT H5F_CLOSE_WEAK H5F_CLOSE_SEMI H5F_CLOSE_STRONG The way a file is closed is decided by these values. Platforms tested: IRIX64 6.5, SunOS 5.6, FreeBSD 4.4
* [svn-r4643] Purpose:Quincey Koziol2001-11-271-1/+2
| | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Windows is generating hundreds of warnings from some of the practices in the library. Mostly, they are because size_t is 32-bit and hsize_t is 64-bit on Windows and we were carelessly casting the larger values down to the smaller ones without checking for overflow. Also, some other small code cleanups,etc. Solution: Re-worked some algorithms to eliminate the casts and also added more overflow checking for assignments and function parameters which needed casts. Kent did most of the work, I just went over his changes and fit them into the the library code a bit better. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4622] Purpose:Quincey Koziol2001-11-201-620/+471
| | | | | | | | | | | Code cleanup Description: Be more careful when starting up and shutting down APIs, only initialize variables which are actually shut down already. Get rid of IDs from internal function calls Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4590] Purpose:Quincey Koziol2001-11-041-3/+3
| | | | | | | | | Code cleanup Description: Fix a bunch of warnings and also make the linux compilers happy with some casts. Platforms tested: Linux 2.2 (eirene)
* [svn-r4589] Purpose:Quincey Koziol2001-11-031-3/+2
| | | | | | | | Code cleanup Description: Clean up various compiler warnings from generic property updates. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4584] Raymond Lu2001-11-021-8/+7
| | | | | | | | | Purpose: Switch from old property list to new generic property list. Description: Mainly changed H5Pcreat, H5Pclose, H5Pcopy. Platforms tested: IRIX64 6.5, FreeBSD, SunOS 5.7.
* [svn-r4573] Raymond Lu2001-10-251-19/+36
| | | | | | | Purpose: Switch mount property list to the new generic property list. Platforms tested: IRIX64 6.5, SunOS 5.7, FreeBSD.
* [svn-r4569] Raymond Lu2001-10-241-98/+381
| | | | | | | | | Purpose: Generic Property List Change Description: Changed file access list to the new generic list. Platforms tested: IRIX64, SunOS5.7, FreeBSD
* [svn-r4548] Purpose:Quincey Koziol2001-10-161-13/+17
| | | | | | | | | | | Code cleanup. Description: Fix a few compiler warnings from the file creation property list -> generic property list conversion. Also change a hard-wired value (8) for the number of B-tree key values to a value that uses the enum's generated by the compiler. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4543] Raymond Lu2001-10-151-126/+334
| | | | | | | Purpose: Changed the file creation property list to the new generic property list. Platform tested: IRIX64, SunOS5.7, FreeBSD
* [svn-r4473] Purpose:Quincey Koziol2001-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | Code cleanup for better compatibility with C++ compilers Description: C++ compilers are choking on our C code, for various reasons: we used our UNUSED macro incorrectly when referring to pointer types we used various C++ keywords as variables, etc. we incremented enum's with the ++ operator. Solution: Changed variables, etc.to avoid C++ keywords (new, class, typename, typeid, template) Fixed usage of UNUSED macro from this: char UNUSED *c to this: char * UNUSED c Switched the enums from x++ to x=x+1 Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4355] Purpose:Quincey Koziol2001-08-141-24/+24
| | | | | | | | | | | | | | | | | | | | | | Code cleanup (sorta) Description: When the first versions of the HDF5 library were designed, I remembered vividly the difficulties of porting code from a 32-bit platform to a 16-bit platform and asked that people use intn & uintn instead of int & unsigned int, respectively. However, in hindsight, this was overkill and unnecessary since we weren't going to be porting the HDF5 library to 16-bit architectures. Currently, the extra uintn & intn typedefs are causing problems for users who'd like to include both the HDF5 and HDF4 header files in one source module (like Kent's h4toh5 library). Solution: Changed the uintn & intn's to unsigned and int's respectively. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4324] Purpose:Quincey Koziol2001-08-101-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | New Features! Description: Start migrating the internal use of property lists in the library from the older implementation to the new generic property lists. Currently, only the dataset transfer property lists are migrated to the new architecture, all the rest of the property list types are still using the older architecture. Also, the backward compatibility features are not implemented yet, so applications which use dataset transfer properties may need to make the following changes: H5Pcreate(H5P_DATASET_XFER) -> H5Pcreate_list(H5P_DATASET_XFER_NEW) and H5Pclose(<a dataset transfer property list>) -> H5Pclose_list(id) This still may have some bugs in it, especially with Fortran, but I should be wrapping up those later today. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4181] Purpose:Quincey Koziol2001-07-101-8/+8
| | | | | | | | | Bug Fix, Code Cleanup, Code Optimization, etc. Description: Fold in the hyperslab speedups, clean up compile warnings and change a few things from using 'unsigned' or 'hsize_t' to use 'size_t' instead. Platforms tested: FreeBSD 4.3 (hawkwind), Solaris 2.7 (arabica), Irix64 6.5 (modi4)
* [svn-r4022] Purpose:Bill Wendling2001-06-191-1/+1
| | | | | | | | | Code Cleanup Description: Changed POSIX function calls to the HD* way of doing things. Checked with checkposix and tested on Linux. Platforms tested: Linux
* [svn-r3781] Purpose:Bill Wendling2001-04-051-24/+24
| | | | | | | | | | | | | | | | | | Update Description: Changed #include <hdf_file.h> construct to #include "hdf_file.h" so that the GNU compiler can more easily pick up the dependencies which it places in the .depend and Dependencies files. Also regenerated the Dependencies to go along with this. Platforms tested: Linux
* [svn-r3677] Purpose:Albert Cheng2001-03-201-4/+0
| | | | | | | | | | | | | Bug fix (sort of) Description: The RCSID string in H5public.h was causing the C++ code problem as it was included multiple times and C++ did not like multiple definitions of the same static variable. Solution: Since we don't really make use of the RCSID strings as we have not installed it in all source files, we decided to remove it. Platforms tested: eirene (linux), modi4 (IRIX64-64) both serial and parallel modes.
* [svn-r3236] Purpose:Quincey Koziol2001-01-041-8/+8
| | | | | | | | Clean up code. Description: Cleaned up various compiler warnings. Platforms tested: FreeBSD 4.2 (hawkwind)
* [svn-r3212] ./hdf5/src/H5F.cRobb Matzke2000-12-291-8/+8
|
* [svn-r2763] ./hdf5/src/H5F.cRobb Matzke2000-10-311-2/+8
| | | | | | | * 2000-10-31 Robb Matzke <matzke@llnl.gov> (H5F_dest) Do not call H5FL_FREE() if the root group object is null. This fixes a bug in h5ls when that tool is given a file which is not an hdf5 file.
* [svn-r2722] Purpose:Quincey Koziol2000-10-241-7/+7
| | | | | | | | | | Feature symmetry Description: A while ago I needed to get the 'type' of data being accessed during writes to the VFL driver, so I put in code to get the information down there. Albert asked for the same information during reads, so I've added that in. Tested: FreeBSD 4.1.1 (hawkwind)
* [svn-r2656] Purpose:Quincey Koziol2000-10-101-0/+27
| | | | | | | | | | | | | | Bug Fix Description: When parallel I/O is turned on, there were some macros used in the H5D routines which poked around in the H5F_t structure. This breaks the privacy of that structure and ties the H5D code too tightly to the H5F_t struct. Solution: Added a small function to retrieve the the value (driver_id) needed from the H5F_t function. Platforms tested: Eyeballed only, Albert needs this right away...
* [svn-r2652] Purpose:Quincey Koziol2000-10-101-27/+84
| | | | | | | | | | | | | | | Maintainance & performance enhancements Description: Re-arranged header files to protect private symbols better. Changed optimized regular hyperslab I/O to compute the offsets more efficiently from previous method of using matrix operations. Added sequential I/O operations at a more abstract level (at the same level as H5F_arr_read/write), to support the optimized hyperslab I/O. Platforms tested: Solaris 2.6 (baldric) & FreeBSD 4.1.1 (hawkwind)
* [svn-r2600] Purpose:Quincey Koziol2000-09-261-0/+21
| | | | | | | | | | | Implemented new feature Description: Added data sieve buffering code to raw I/O data path. This is enabled for all the VFL drivers except the mpio & core drivers. Also added two new API functions to control the sieve buffer size: H5Pset_sieve_buf_size() and H5Pget_sieve_buf_size(). Platforms tested: Solaris 2.6 (i.e. baldric)
* [svn-r2557] Purpose:Thomas Radke2000-09-151-0/+7
| | | | | | | Added registration of the Stream Virtual File Driver. Description: The Stream VFD is registered here if it was configured.
* [svn-r2508] Purpose:Albert Cheng2000-09-061-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fixes Description: All tests were core=dumping in IRIX64. The bug is in Generic property list creation in which malloc asked for 2*64-1 bytes due to coding bug. The object creation failed but the return code was not checked. Program eventually crashed. Solution: H5F.c: Check the return code from new file object creation and flag error accordingly. H5FL.c: H5FL_arr_free is a replacement for H5MM_xfree which accepts null value as a legal argument value. H5FL_arr_free assert on it. Since other parts of the code have been passing null value to H5MM_xfree, H5FL_arr_free must accept it too until all the calling routines are changed to not pass Null. H5P.c: some routine passes in 0 as the hashsize value which is uintn. The expression (hashsize-1) underflows to the largest unsigned int for some machines. Thus the calloc failed. Cast hashsize to unsigned int first (this assumes hashsize stays within the signed int data range. H5Smpio.c: Added the extra parameter because the H5FD_write has been redefined. Platforms tested: IRIX64 -64 and -n32
* [svn-r2492] Added type of data parameter to H5F_block_write calls and also ↵Quincey Koziol2000-08-311-5/+7
| | | | | | added the metadata allocation size to the default file access property lists.
* [svn-r2476] Added free lists to track various data structures in memory, to ↵Quincey Koziol2000-08-161-7/+17
| | | | | | reduce malloc abuse.
* [svn-r2444] Checkpoint the Generic Property implementation. It's not active ↵Quincey Koziol2000-07-251-5/+5
| | | | | | yet, but it's close. This shouldn't interfere with other development work. (I think.. :-)