summaryrefslogtreecommitdiffstats
path: root/src/H5Epublic.h
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r12803] Description:Quincey Koziol2006-10-231-6/+6
| | | | | | | | | | | | | | Finish new version of the I/O pipeline message, which is much smaller than the previous version. This version is used with the "use the latest version of the format" flag. Closed several memory leaks/overruns (found with valgrind). Also, lots of compiler & formatting cleanups. Tested on: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12345] Purpose: Codes for backward compatibility.Raymond Lu2006-05-121-3/+14
| | | | | | | | | | Description: Function prototype H5E_walk_t and structure H5E_error_t wasn't backward compatible. Solution: Make them compatible with v1.6 and provide new definitions of H5E_walk_stack_t and H5E_error_stack_t. Platforms tested: fuss and h5committest.
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-5/+5
| | | | | | | | | | | | | | | | | | | | 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-r10749] Purpose:Quincey Koziol2005-05-171-1/+1
| | | | | | | | | | | | | | | Code cleanup Description: Convert H5Eget_num from 'size_t' to 'ssize_t' to allow for correct error reporting (eventually). Also, convert a bunch of static routines from "FUNC_ENTER_NOAPI" to "FUNC_ENTER_NOAPI_NOINIT" or "FUNC_ENTER_NOAPI_NOINIT_NOFUNC" Platforms tested: FreeBSD 4.11 (sleipnir) w/pthreads Too minor to require h5committest
* [svn-r10746] Purpose: Minor correctionRaymond Lu2005-05-161-1/+1
| | | | | | | | | Description: H5Eget_num used to return an INT type. That's not consistent with the parameter of H5Epop. Solution: Changed it to SIZE_T type. Platforms tested: fuss - very simple change.
* [svn-r10636] Purpose:Quincey Koziol2005-04-211-1/+1
| | | | | | | | | | | Code cleanup Description: Rearrange struct members to fit better on 64-bit machines. Platforms tested: FreeBSD 4.11 (sleipnir) Solaris 2.9 (shanti)
* [svn-r9838] Purpose:Quincey Koziol2005-01-191-3/+0
| | | | | | | | | | | | | | | | | | Bug fix Description: Correctly retire the H5E_LEN setting, now that the FORTRAN and C++ APIs have been corrected to not use it either. Solution: Pass in the string buffer length for FORTRAN In the C++ API, call H5Eget_msg() in a manner similar to the way H5Fget_name() is called. Platforms tested: Linux 2.4 (heping) w/FORTRAN & C++ Solaris 2.7 (arabica) w/FORTRAN & C++
* [svn-r9830] Purpose:Albert Cheng2005-01-171-0/+3
| | | | | | | | | | | | | | | | | | Bug fix Description: Fortran and C++ API failed to compile because they need to use H5E_LEN which was removed. Solution: Restored the H5E_LEN definition. A permenant solution is still needed. Platforms tested: H5committested. (heping, sol, and copper all compiled fine again but sol had an error in testerror.sh which seemed to be a different problem. Also tested in tg-NSCA.
* [svn-r9825] Purpose:Quincey Koziol2005-01-141-4/+1
| | | | | | | | | | | | Bug fix Description: Fix possible overrun in error description string by allocating large enough string on the fly. Platforms tested: FreeBSD 4.10 (sleipnir) Too minor to require h5committest
* [svn-r9727] Purpose:Quincey Koziol2004-12-291-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug Fix/Code Cleanup/Doc Cleanup/Optimization/Branch Sync :-) Description: Generally speaking, this is the "signed->unsigned" change to selections. However, in the process of merging code back, things got stickier and stickier until I ended up doing a big "sync the two branches up" operation. So... I brought back all the "infrastructure" fixes from the development branch to the release branch (which I think were actually making some improvement in performance) as well as fixed several bugs which had been fixed in one branch, but not the other. I've also tagged the repository before making this checkin with the label "before_signed_unsigned_changes". Platforms tested: FreeBSD 4.10 (sleipnir) w/parallel & fphdf5 FreeBSD 4.10 (sleipnir) w/threadsafe FreeBSD 4.10 (sleipnir) w/backward compatibility Solaris 2.7 (arabica) w/"purify options" Solaris 2.8 (sol) w/FORTRAN & C++ AIX 5.x (copper) w/parallel & FORTRAN IRIX64 6.5 (modi4) w/FORTRAN Linux 2.4 (heping) w/FORTRAN & C++ Misc. update:
* [svn-r9234] Purpose:Quincey Koziol2004-09-091-10/+27
| | | | | | | | | | | | | | | | | | | | | | | Code cleanup Description: Tweak recent "forward compatibility" changes to the H5E* API (which allowed for the old H5E API functions to remain unchanged) by allowing for the error stack callback function (H5E_auto_t) to also remain unchanged from the 1.6 branch. This required changing the H5E{get|set}_auto routines to have the old style H5E_auto_t type (which didn't have a stack ID parameter) and the new H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which has a stack ID parameter). This should make the H5E API changes as forwardly compatible as possible. One side-affect of this change was that it was impossible to determine if the current auto error callback was the old style (H5E_auto_t) or the new style (H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was adde to query this. Platforms tested: FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modi4) h5committest
* [svn-r9183] Purpose: New featureRaymond Lu2004-09-011-54/+25
| | | | | | | | | | | | Description: Restore 6 old error API functions back to the library to be backward compatible with v1.6. They are H5Epush, H5Eprint, H5Ewalk, H5Eclear, H5Eset_auto, H5Eget_auto. These functions do not have error stack as parameter. Solution: Internally, these functions use default error stack. Platforms tested: h5committest and fuss. Misc. update: RELEASE.txt
* [svn-r7527] Purpose:Quincey Koziol2003-09-301-2/+3
| | | | | | | | | | | | Code cleanup Description: Clean up a few loose ends and warnings for the 1.6 compatibility changes to the error API. Platforms tested: FreeBSD 4.9 (sleipnir) too minor to require h5committest
* [svn-r7519] Purpose:Raymond Lu2003-09-291-0/+4
| | | | | | | Description: add backward compatibility for thread safety. Platforms tested: RH 8(fuss)
* [svn-r7507] *** empty log message ***Raymond Lu2003-09-241-9/+56
|
* [svn-r7381] Purpose:Quincey Koziol2003-08-181-3/+3
| | | | | | | | | | | 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-r7364] Purpose:Quincey Koziol2003-08-141-1/+2
| | | | | | | | | | | Code cleanup Description: Ran lint over code & cleaned up warnings. Platforms tested: FreeBSD 4.8 (sleipnir) too small of changes to require h5committest
* [svn-r7355] Purpose:Quincey Koziol2003-08-131-263/+2
| | | | | | | | | | | | | | | | | | | | | | Code cleanup, etc. Description: Previously (in versions prior to 1.7), there were two locations to modify when an error was added to the library. Now, with the new error API, there were four. Solution: Created a single text file (src/H5err.txt) and a perl script (bin/make_err) which uses the text file to automatically create header files that are included in appropriate places in the library. This means that there is only one file (src/H5err.txt) which needs to be modified when a new error code is added to the library. The automatically generated headers depend on this file and the makefiles will take care of running the perl script to regenerate them when the text file changes, so no user action is required when a new error is added. Platforms tested: h5committested
* [svn-r7347] Purpose:Quincey Koziol2003-08-121-3/+1
| | | | | | | | | | | | | | | | Code cleanup & bug fix Description: Clean up code, adding error checking where appropriate Fix a number of routines which were clearing the default error stack before checking some information about that stack. Set the version # of the library correctly when it is registered. Platforms tested: FreeBSD 4.8 (sleipnir) h5committested
* [svn-r7298] Purpose:Quincey Koziol2003-08-081-12/+14
| | | | | | | | | | | | | Code cleanup & bug fix Description: Refactor code to clean up Corrected several bugs, including problems with library termination and thread-safete, etc. Platforms tested: h5committested
* [svn-r7265] *** empty log message ***Raymond Lu2003-07-261-311/+129
|
* [svn-r7262] Purpose: Bug fix for C++ caused by new error API.Raymond Lu2003-07-251-108/+237
| | | | Platforms tested: h5committested
* [svn-r7256] Purpose: gradual checkin for error apiRaymond Lu2003-07-231-116/+111
| | | | Platforms tested: RH 8(simple checkin)
* [svn-r7244] Purpose: gradual checkin for error APIRaymond Lu2003-07-221-1/+3
| | | | Platforms tested: h5committest
* [svn-r7241] Purpose: Gradual checkin for error APIRaymond Lu2003-07-181-2/+7
| | | | | | Platforms tested: h5committest, RH 8 Misc. update:
* [svn-r7228] Purpose: Gradual checkin for error APIRaymond Lu2003-07-151-0/+5
| | | | Platforms tested: RH 8
* [svn-r7226] Purpose: Bug fix for error API.Raymond Lu2003-07-151-0/+2
| | | | | | | Description: gradual checkin Platforms tested: platinum, baldric
* [svn-r7225] Purpose: error API gradual checkinRaymond Lu2003-07-141-8/+28
| | | | Platforms tested: RH 8; c and c++
* [svn-r7214] Purpose:Quincey Koziol2003-07-121-25/+20
| | | | | | | | | | | | Code cleanup/bug fix Description: Clean up code a bit and make hid_t's for error class to use the same scheme as predefined datatype hid_t's. Platforms tested: FreeBSD 4.8 (sleipnir) w/C++ h5committest
* [svn-r7212] Purpose: New error API design is being checked gradually.Raymond Lu2003-07-111-0/+177
| | | | Platforms tested: RH 8
* [svn-r7186] Purpose:Quincey Koziol2003-07-091-1/+2
| | | | | | | | | | | Code cleanup Description: More tweaks to clean up warnings from lint. Platforms tested: FreeBSD 4.8 (sleipnir) not major enough to h5committest
* [svn-r6956] Purpose:Quincey Koziol2003-06-041-0/+1
| | | | | | | | | | | | Code cleanup Description: Add another error code... Platforms tested: FreeBSD 4.8 (sleipnir) w/C++ FreeBSD 4.8 (sleipnir) w/parallel h5committested
* [svn-r6825] Purpose:Quincey Koziol2003-05-071-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | New feature/enhancement Description: Chunked datasets are handled poorly in several circumstances involving certain selections and chunks that are too large for the chunk cache and/or chunks with filters, causing the chunk to be read from disk multiple times. Solution: Rearrange raw data I/O infrastructure to handle chunked datasets in a much more friendly way by creating a selection in memory and on disk for each chunk in a chunked dataset and performing all of the I/O on that chunk at one time. There are still some scalability (the current code attempts to create a selection for all the chunks in the dataset, instead of just the chunks that are accessed, requiring portions of the istore.c and fillval.c tests to be commented out) and performance issues, but checking this in will allow the changes to be tested by a much wider audience while I address the remaining issues. Platforms tested: h5committested, FreeBSD 4.8 (sleipnir) serial & parallel, Linux 2.4 (eirene)
* [svn-r6606] Purpose:Quincey Koziol2003-04-091-1/+8
| | | | | | | | | | | | | | | | | New feature Description: Added new error descriptions. Solution: Platforms tested: FreeBSD 4.8 (sleipnir) w/szip Linux 2.4 (sleipnir) w/szip Solaris 2.7 (arabica) w/FORTRAN IRIX64 6.5 (modi4) w/szip, FORTRAN & parallel Misc. update:
* [svn-r6423] Purpose:Bill Wendling2003-02-211-1/+2
| | | | | | | | | Update Description: Added support for the allocation and freeing of space in the file. This information is kept on the Server. Platforms tested: Linux & Modi4
* [svn-r6336] Purpose:Bill Wendling2003-01-271-1/+2
| | | | | | | | | | | | | | | Update Description: This is the first conversion of the FPHDF5 code to be a metadata cache. There's an extra error message. I rewrote the sync/change code to be read metadata/write metadata instead. I still need to hook these changes into the HDF5 code so that it looks at the SAP first before checking the file for metadata. Platforms tested: Linux
* [svn-r6269] Purpose:Quincey Koziol2003-01-131-5/+5
| | | | | | | | | | | | | Code cleanup Description: Various code cleanups to allow the development branch to be compiled with a C++ compiler (i.e. CC=g++ ) Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} FreeBSD 4.7 (sleipnir) C++
* [svn-r6252] Purpose:Quincey Koziol2003-01-091-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Lots of performance improvements & a couple new internal API interfaces. Description: Performance Improvements: - Cached file offset & length sizes in shared file struct, to avoid constantly looking them up in the FCPL. - Generic property improvements: - Added "revision" number to generic property classes to speed up comparisons. - Changed method of storing properties from using a hash-table to the TBBT routines in the library. - Share the propery names between classes and the lists derived from them. - Removed redundant 'def_value' buffer from each property. - Switching code to use a "copy on write" strategy for properties in each list, where the properties in each list are shared with the properties in the class, until a property's value is changed in a list. - Fixed error in layout code which was allocating too many buffers. - Redefined public macros of the form (H5open()/H5check, <variable>) internally to only be (<variable>), avoiding innumerable useless calls to H5open() and H5check_version(). - Reuse already zeroed buffers in H5F_contig_fill instead of constantly re-zeroing them. - Don't write fill values if writing entire dataset. - Use gettimeofday() system call instead of time() system when checking the modification time of a dataset. - Added reference counted string API and use it for tracking the names of objects opening in a file (for the ID->name code). - Removed redundant H5P_get() calls in B-tree routines. - Redefine H5T datatype macros internally to the library, to avoid calling H5check redundantly. - Keep dataspace information for dataset locally instead of reading from disk each time. Added new module to track open objects in a file, to allow this (which will be useful eventually for some FPH5 metadata caching issues). - Remove H5AC_find macro which was inlining metadata cache lookups, and call function instead. - Remove redundant memset() calls from H5G_namei() routine. - Remove redundant checking of object type when locating objects in metadata cache and rely on the address only. - Create default dataset object to use when default dataset creation property list is used to create datasets, bypassing querying for all the property list values. - Use default I/O vector size when performing raw data with the default dataset transfer property list, instead of querying for I/O vector size. - Remove H5P_DEFAULT internally to the library, replacing it with more specific default property list based on the type of property list needed. - Remove redundant memset() calls in object header message (H5O*) routines. - Remove redunant memset() calls in data I/O routines. - Split free-list allocation routines into malloc() and calloc()- like routines, instead of one combined routine. - Remove lots of indirection in H5O*() routines. - Simplify metadata cache entry comparison routine (used when flushing entire cache out). - Only enable metadata cache statistics when H5AC_DEBUG is turned on, instead of always tracking them. - Simplify address comparison macro (H5F_addr_eq). - Remove redundant metadata cache entry protections during dataset creation by protecting the object header once and making all the modifications necessary for the dataset creation before unprotecting it. - Reduce # of "number of element in extent" computations performed by computing and storing the value during dataspace creation. - Simplify checking for group location's file information, when file has not been involving in file-mounting operations. - Use binary encoding for modification time, instead of ASCII. - Hoist H5HL_peek calls (to get information in a local heap) out of loops in many group routine. - Use static variable for iterators of selections, instead of dynamically allocation them each time. - Lookup & insert new entries in one step, avoiding traversing group's B-tree twice. - Fixed memory leak in H5Gget_objname_idx() routine (tangential to performance improvements, but fixed along the way). - Use free-list for reference counted strings. - Don't bother copying object names into cached group entries, since they are re-created when an object is opened. The benchmark I used to measure these results created several thousand small (2K) datasets in a file and wrote out the data for them. This is Elena's "regular.c" benchmark. These changes resulted in approximately ~4.3x speedup of the development branch when compared to the previous code in the development branch and ~1.4x speedup compared to the release branch. Additionally, these changes reduce the total memory used (code and data) by the development branch by ~800KB, bringing the development branch back into the same ballpark as the release branch. I'll send out a more detailed description of the benchmark results as a followup note. New internal API routines: Added "reference counted strings" API for tracking strings that get used by multiple owners without duplicating the strings. Added "ternary search tree" API for text->object mappings. Platforms tested: Tested h5committest {arabica (fortran), eirene (fortran, C++) modi4 (parallel, fortran)} Other platforms/configurations tested? FreeBSD 4.7 (sleipnir) serial & parallel Solaris 2.6 (baldric) serial
* [svn-r6178] ./hdf5-devel/src/H5Epublic.hRobb Matzke2002-12-041-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Purpose: New Feature; Optimization; Clean-up (Merged from 1.4 branch) Description: There is no symbolic constant to pass to functions that take an optional object ID for when the caller wants to indicate no object ID. In the past the caller always passed a negative integer. GPFS performs poorly. The h5ls tool decides whether to list the file name in the output based on a compile-time choice, which isn't always optimal at run time. Solution: Added a symbolic constant H5I_INVALID_HID. Added code to tell the mmfsd of GPFS to forego byte range token prefetching. h5ls decides whether to print the file name at runtime based on the number of objects being listed. Platforms tested: SuSE Linux (arborea), gcc and mpich-1.2.4 SunOS (baldric), gcc 2002-12-03 22:51:43 Robb Matzke <matzke@arborea.spizella.com> *: Added H5E_FCNTL minor error number.
* [svn-r6077] Purpose:Quincey Koziol2002-11-121-0/+2
| | | | | | | | | | Code cleanup Description: Added some comments and made some minor code cleanups Platforms tested: minor change, only testing on FreeBSD 4.7 (sleipnir) w/parallel
* [svn-r6023] Purpose:Bill Wendling2002-10-231-19/+27
| | | | | | | | | | Feature Add Description: Added some error messages for the Flexible Parallel HDF5 stuff. Platforms tested: Arabica Eirene Modi4
* [svn-r5961] Purpose:Quincey Koziol2002-10-071-0/+1
| | | | | | | | New error code Description: Add a new error code for the generic properties to use. Platforms tested: FreeBSD 4.6 (sleipnir) (too small to need triple testing)
* [svn-r5931] MuQun Yang2002-09-201-8/+8
| | | | | | | | | | | | Purpose: __DLL__ is a keyword in some platforms and __DLL__ is also defined as a macro for windows DLL applications. That causes problems. Description: Solution: Use H5_DLL*** to replace __DLL***__ at all header files. Change the macro defination at H5api_adpt.h. Platforms tested: linux2.2.18smp, irix64, solaris 2.7 and windows 2000
* [svn-r5840] Purpose:Quincey Koziol2002-07-311-0/+2
| | | | | | | | | | | | | | Code cleanup Description: Created a new H5I function which combined the some of the functionality of H5I_get_type and H5I_object: H5I_object_verify. Using this new function in the library trims another ~200 lines of code off the library and makes the resulting binaries smaller and faster also. Platforms tested: FreeBSD 4.6 (sleipnir)
* [svn-r5783] Purpose:Quincey Koziol2002-07-121-1/+3
| | | | | | | | | | New code Description: Add a few new error messages. Platforms tested: FreeBSD 4.6 (sleipnir)
* [svn-r5573] Purpose:Quincey Koziol2002-06-101-0/+1
| | | | | | | | | | | Bug fix (#620) Description: Change slightly misleading error message when creating attribute with same name as existing attribute to something a bit more clear. Platforms tested: FreeBSD 4.5 (sleipnir)
* [svn-r5471] Purpose:Quincey Koziol2002-05-291-1/+0
| | | | | | | | | | | | | | | | 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-r5135] Purpose:Albert Cheng2002-04-031-1/+2
| | | | | | | | | | | | | | | | | | | | | | Features. Description: Error stack used to report only hdf5 predefined error messages because it takes only static strings. Runtime defined messages were not pushed to the stack. Added the means and macros to push MPI error strings onto the hdf5 error stack. Added a new minor error class as H5E_MPIERR for this class of messages. H5Epulbic.h, H5E.c: Added H5E_MPIERR and its minor class description. H5Eprivate.h: Added HMPI_XXX macros to push MPI error strings to the stack. H5FDmpio.c: Changed couple places to use the new macros to test the new macros. A more through changes to make use of these new macros will be done later. Platforms tested: eirene (serial, parallel) modi4(parallel)
* [svn-r4586] Purpose:Quincey Koziol2001-11-021-0/+4
| | | | | | | | | | | | | | Code speedups, etc. Description: Bring in new algorithms and data structures for dealing with hyperslabs. This speeds up the hyperslab I/O for non-regular hyperslabs by a huge amount. Currently, the new API functions are ifdef'ed out, pending discussion and consensus approval. Platforms tested: FreeBSD 4.4 (hawkwind)
* [svn-r4324] Purpose:Quincey Koziol2001-08-101-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | 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)