summaryrefslogtreecommitdiffstats
path: root/src/H5private.h
Commit message (Collapse)AuthorAgeFilesLines
* [svn-r12649] Description:Quincey Koziol2006-09-051-1/+2
| | | | | | | | | | | | Add a CRC algorithm to the library, initially for "small" (<256 byte) metadata blocks. Update checksum tests to verify it's working correctly. Tested: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2) (Will be testing on more platforms after checkin)
* [svn-r12612] Description:Quincey Koziol2006-08-221-0/+1
| | | | | | | | | | Provide more abstract internal routine for computing checksums on metadata in a file. This will allow a unified policy on which algorithm to choose and under what criteria (length probably) to be more easily maintained. Tested On: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2)
* [svn-r12605] Description:Quincey Koziol2006-08-211-0/+3
| | | | | | | | | | | | | Break out a bunch of the misc. routines that were in src/H5.c into more specific modules. Add optimized fletcher32 checksum routine, for checksumming metadata as well as raw data. Tested On: Linux/32 2.6 (chicago) Linux/64 2.6 (chicago2) Will test further after checkin...
* [svn-r12528] Added User-Defined links to the library.James Laird2006-08-021-0/+1
| | | | | | | | | | | | | | 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-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-0/+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-r12348] Purpose:Albert Cheng2006-05-141-13/+5
| | | | | | | | | | | | | | | | | | Bug fix. Description: Some machines (e.g., HPUX) will have off64_t defined but no support for stat64 unless certain LargeFile macro is turned on. This caused the last fix on H5private not quite right which caused compiling failures. Solution: Added stat64 and fstat64 tests and then will use them only if they are supported. Platforms tested: Tested on kelgia, copper and heping (pll). (Compiling alright but tests for kelgia and heping are not done. expect no problems.)
* [svn-r12342] Purpose:Albert Cheng2006-05-101-29/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | bug fix. Description: Previous H5private.h would attempt to use the off64_t/stat64/etc by checking just sizeof __INT64 being 8. This caused errors in some machines like alpha cluster which is a 64bit machine. Its compiler supports the type __int64 but it does not support off64_t since its off_t is already 64bits big. The above code casued the compiler to complain about the unknown off64_t and such. Solution: H5private.h: Changed the code to use the pseudo standard of off64_t/stat64/etc only if sizeof(off_t) is not 64 bits AND sizeof(off64_t) exists and is 64 bits. This assumes if off64_t is defined, all those stat64, fstat64, etc are supported too. configure.in: configure: Added the testing of sizeof(off64_t) to support the above solution. Platforms tested: h5committested. Also tested at LANL QSC.
* [svn-r12320] Purpose:Quincey Koziol2006-05-021-8/+8
| | | | | | | | | | code cleanup Description: Finish H5FS->H5CS internal API name changes... Platforms tested: FreeBSD 4.11 (sleipnir) w/ & w/o --enable-codestack
* [svn-r12286] Purpose: Fix bugBinh-Minh Ribler2006-04-201-3/+13
| | | | | | | | | | | | | | | | | Description: The file size test in C++ library failed on Copper because the value returned by h5_get_file_size was intepreted incorrectly due to different interger sizes. Solution: H5private.h: Added check to use stat64 and off64_t where appropriate. h5test.c and h5test.h: used h5_stat_size_t in place of off_t. tattr.cpp: used h5_stat_size_t in place of off_t. Platforms tested: Linux 2.4 (heping) AIX 5.1 (copper) SunOS 5.8 64-bit (sol) - still on going
* [svn-r12139] Purpose:MuQun Yang2006-03-231-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | portibility issue to windows Description: setvbuf on visual studio 2005 needs the size to be greater or equal to 2. <description of setvbuf from msdn library> Buffer size in bytes. Allowable range: 2 <= size <= INT_MAX (2147483647). Internally, the value supplied for size is rounded down to the nearest multiple of 2. h5import used linebuffer option of setvbuf for stderr and stdout and the size is 0 by default. This causes core dump with visual 2005 on windows 64-bit. Solution: 1. Use HDsetvbuf inside h5import.c, 2. Define HDsetvbuf inside windows H5pubconf.h for windows to work around the core dump of h5import test. This is probably a bug inside visual studio 2005. Platforms tested: h5committest windows 6.0 at XP visual 2005 at XP-64bit Misc. update:
* [svn-r12138] Purpose: VMS portElena Pourmal2006-03-221-1/+2
| | | | | | | | | | | | | | Description: Unix remove function removes only the latest version of a file on VMS. Some of our tests create multiple versions of the testfiles and as a result, test programs may be confused, give false negative result, etc. Solution: Created HDremove_all function for VMS that removes all versions of the files. HDremove on VMS is an alias to HDremove_all. Platforms tested: VMS server and heping (to check that nothing is borken on UNIX side) Misc. update:
* [svn-r12125] Purpose:Quincey Koziol2006-03-211-4/+15
| | | | | | | | | | | | | | | Code checkpoint Description: Update fractal heap code to insert & read heaps up to 64MB in size (with my current configuration paramaters) and add initial support for iteratively walking down nested indirect blocks. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 (chicago) Solaris 9 (shanti) Linux 2.4 (mir) w/64-bit
* [svn-r12114] Purpose:Quincey Koziol2006-03-171-7/+11
| | | | | | | | | | | | Code cleanup Description: Re-alphabetize the POSIX routines (again). Also, add proper prototype to HDrand() definition. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r12113] Purpose:Leon Arber2006-03-171-3/+0
| | | | | | | | | | | | | | | Bug fix Description: There was a duplicate definition for HDsrandom and HDsrand left over in H5private.h Solution: Removed the two duplicate definitions. Platforms tested: heping (minor change) Misc. update:
* [svn-r12110] Purpose:Leon Arber2006-03-161-1/+17
| | | | | | | | | | | | | | | | | | Optimization Description: Get rid of unnecessary function call for systems that don't have rand_r. Solution: If rand_r isn't present on a system, then macros can be used to simply call the underlying random function instead of calling the HDrand/HDsrand functions that keep track of the random seed within the library. Platforms tested: heping (minor change) Misc. update:
* [svn-r12104] Purpose:Quincey Koziol2006-03-161-2/+2
| | | | | | | | | | Code cleanup Description: Re-alphabetize POSIX macros. Platforms tested: None, just eyeballed, too minor.
* [svn-r12082] Purpose:Quincey Koziol2006-03-121-1/+1
| | | | | | | | | | | Bug fix Description: Clean up a few code mis-matches that crept in during the last checkin. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5commitest
* [svn-r12081] Purpose:Quincey Koziol2006-03-111-1/+2
| | | | | | | | | | | New feature Description: Update "power of two" macro and add "general" log2() routine. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r12054] Purpose: VMS portElena Pourmal2006-03-091-0/+4
| | | | | | | | | | | | Description: Made small changes to sec2 driver to reflect that VMS systems ino_t is 1dim array of size 3; all changes are marked with H5_VMS variable. Defined HDremove macro for VMS to remove multiple versions of the files. Solution: Platforms tested: heping, VMS server Misc. update:
* [svn-r12035] Purpose:Fang Guo2006-03-071-2/+2
| | | | | | | | | | | | | | Description: Two functions (HDsrand and HDrand) are not declared. They caused compiling errors on Windows. Declare these two functions: H5_DLL int HDrand(); H5_DLL void HDsrand(unsigned int seed); Solution: Platforms tested: Windows XP and heping Misc. update:
* [svn-r12019] Purpose:Leon Arber2006-03-071-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug fix/Feature Description: Modify the library to use rand_r, when available, instead of srand. If rand_r is not available, it will try to use srandom/random, and then finally fall back to srand/rand. Solution: A couple places in the library use the srand() function to seed the random number generator. This can cause problems on certain platforms and could theoretically cause problems for users who expect a certain sequence of random numbers following their own call to srand(). Most platforms have an implementation of rand_r, which is identical to rand, except that it allows for explicit storage of the seed value. The configure script will now check for the existence of rand_r to facilitate its use in the library. Two new functions are added, to replace the macros HDsrand/HDrand. These functions are HDrand and HDsrand. HDrand will call rand_r, if available, or random(), if available, and fall back to rand() if neither of those is available. HDsrand will store the seed value locally, if rand_r is available. Otherwise, it will call srandom if available, and fall back to srand otherwise. Platforms tested: heping, mir. Really need to test on Red Storm, since that platform motivated this fix, but the machine is currently not available. Misc. update:
* [svn-r12004] Purpose:Quincey Koziol2006-03-041-0/+7
| | | | | | | | | | | | | | | | | 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-r11838] Purpose:Quincey Koziol2005-12-261-0/+6
| | | | | | | | | | | | | | | | 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-1/+1
| | | | | | | | | | | | | 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-r11735] Purpose:Albert Cheng2005-11-161-17/+2
| | | | | | | | | | | | | | | | | | Cleanup. Description: Removed the home-made version of snprintf and vsnprintf since they do not actually enforce the size parameter correctly and could corrupt memory or as a security hole. This block of code has been turned off since Aug 11, 2005 for all platforms except Tflops. No one has reported any problem since--sort of empirical evidence that all platforms except Tflops support both functions. Tflops has retired in September. So, no need to keep this block of code. Also, fixed the HDxxx macro to call the corresponding xxx function. Platforms tested: Tested in heping, both serial and parallel.
* [svn-r11733] Purpose:Quincey Koziol2005-11-161-1/+23
| | | | | | | | | | | | | | | | | | Code cleanup Description: Added some comments about the thread-specific memory for the error and function stacks. Changed H5close() to not use the function stack (since it causes it to be re-enabled after shutting it down) Changed thread-safe semaphore code to not use dynamicly allocated memory. Platforms tested: FreeBSD 4.11 (sleipnir) Linux 2.4 Too minor to require h5committest
* [svn-r11712] Purpose:Quincey Koziol2005-11-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r11598] Purpose:Quincey Koziol2005-10-221-3/+5
| | | | | | | | | | | | Code cleanup Description: Take out odd definition of HDalarm() and replace with standard macro like the rest of the library. Platforms tested: FreeBSD 4.11 (sleipnir) Too minor to require h5committest
* [svn-r11480] Purpose:Fang Guo2005-09-291-2/+2
| | | | | | | | | | | Maintenance on Windows Description: No alarm function on Windows, opt out Solution: Platforms tested: MSVS 6.0 on Windows XP Misc. update:
* [svn-r11289] Purpose:Albert Cheng2005-08-221-0/+3
| | | | | | | | | | | | | | cleanup Description: Changed the conditional definitions of HDvsnrintf and HDsnprint be dependent on TFLOPS being defined so that these are consistent with the condition in H5.c in which the two functions are coded. Platforms tested: heping. Misc. update:
* [svn-r11288] Purpose:Fang Guo2005-08-221-9/+8
| | | | | | | | | | | | Maintenance on Windows Description: Move Win32 Macros(snprintf and vsnprintf) to the right places Solution: Platforms tested: MSVS 6.0 on Windows XP heping Misc. update:
* [svn-r11251] Purpose:Fang Guo2005-08-161-0/+10
| | | | | | | | | | | | | | Maintenance on windows Description: Add two macros for windows, susbstitue functions HDsnprintf and HDvsnprintf with _snprintf and _vsnprintf when using Visual C++ on windows Solution: Platforms tested: MSVC 6.0 on Windows XP heping Misc. update:
* [svn-r11245] Purpose:Quincey Koziol2005-08-131-17/+17
| | | | | | | | | | | | | | | | | | | | 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-r11144] Purpose:Quincey Koziol2005-07-231-0/+2
| | | | | | | | | | | New port Description: Elena asked me to check in her NEC SX-6 work, so here it is! :-) Platforms tested: FreeBSD 4.11 (sleipnir) NEC SX-6 (by Elena)
* [svn-r10730] Purpose:James Laird2005-05-051-6/+6
| | | | | | | | | | | | | | | | Portability feature Description: The random() and srandom() functions are not available on all machines. Set up the configure script to automatically detect them, rather than requiring their presence or absence to be hardcoded. Solution: Added AC_CHECK_FUNCS macro to configure.in and replaced #ifdef WIN32 conditionals with #ifdef H5_HAVE_RANDOM conditionals. Platforms tested: sleipnir, Windows
* [svn-r10716] Purpose:Quincey Koziol2005-05-021-4/+57
| | | | | | | | | | | | Code cleanup Description: Migrate MPE macros to H5private.h, in preparation for using the H5MPprivate.h file for "memory pool" API. Platforms tested: FreeBSD 4.11 (sleipnir) w/parallel Too minor to require h5committest
* [svn-r10701] James Laird2005-04-291-18/+0
| | | | | | | | | | | | | | | | | Purpose: Bug fix Description: Some platforms (Windows) don't have the long long type, which causes automatic Fortran type matching to fail. A solution is to use HDF5's long_long type. Solution: Changed H5match_types.c to use long_long type. Moved definition of long_long out of H5private.h and into H5public.h. Platforms tested: mir, copper, pommier
* [svn-r9861] Purpose:Quincey Koziol2005-01-241-0/+1
| | | | | | | | | | | | | | | | | | | | Bug fix Description: Add detect vasprintf() routine and use it instead of vsnprintf() when formatting error descriptions if it's available. Added configure test to detect "broken" vsnprintf() implementations which don't return the correct number of character for strings that are too long to fit into the buffer provided (currently a problem on the SGIs and probably the HP). Re-wrote error formatting code in H5Epush_stack() to handle broken vsnprintf() implementations, etc. Platforms tested: IRIX64 6.5 (modi4) h5committest
* [svn-r9858] Purpose:Quincey Koziol2005-01-221-3/+1
| | | | | | | | | | Code cleanup Description: Clean up a few rements from the Pablo removal Platforms tested: None, very minor
* [svn-r9857] Purpose: MaintenanceElena Pourmal2005-01-221-30/+1
| | | | | | | | | | | | | | Description: Removed PABLO from the source Solution: Platforms tested: arabica with 64-bit, copper with parallel, heping with GNU C and C++ and PGI fortran (but I disabled hl, there is some weird problem only on heping: F9XMODFLAG is not propagated to the Makefile files Misc. update:
* [svn-r9805] Purpose:Quincey Koziol2005-01-111-4/+0
| | | | | | | | | | Code cleanup Description: Remove obsolete support for Watcom C compiler. Platforms tested: None - too minor to require any.
* [svn-r9727] Purpose:Quincey Koziol2004-12-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-r9654] Purpose:Raymond Lu2004-12-101-1/+4
| | | | | | | | | | | | | Description: In file H5FDsec2.c and H5FDlog.c, there's statements like H5_ASSIGN_OVERFLOW(file->eof,sb.st_size,off_t,haddr_t); It assumes sb.st_size from h5_stat_t is of type off_t. But on Windows, it has type __int64. So the H5_ASSIGN_OVERFLOW statement may cause problem. Instead of trying to do switch between Windows and other systems in H5FDsec2.c and H5FDlog.c, define a substituting type in H5private.h to fix the problem. On Windows, this type is __int64; on other systems, it is off_t. Platforms tested: fuss. Simple fix. Already did h5committest for v1.6.
* [svn-r9474] Purpose:MuQun Yang2004-10-271-0/+4
| | | | | | | | | | | | | | | | | Updating H5api_adpt.h to help the implementation of Fortran DLL on windows. Description: 1. More functions need to be added prefix macro for exporting and importing fortran DLL on Windows. 2. unlink was _unlink on windows and use HDunlink to specify this. Solution: Platforms tested: linux 2.4(h5committest not finished yet, but should work since the change is minor and it is passed with pgi compiler) Misc. update:
* [svn-r9183] Purpose: New featureRaymond Lu2004-09-011-1/+1
| | | | | | | | | | | | 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-r9154] Elena Pourmal2004-08-251-0/+2
| | | | | | | | | | | | Purpose: Maintenance/bug fixes (OSF1 C++ and missing Fortran APIs) Description: bringing 1.6 changes to 1.7 Solution: Platforms tested: OSF1, Solaris 2.8, AIX5.1 Misc. update:
* [svn-r9037] Purpose:Quincey Koziol2004-08-061-1/+1
| | | | | | | | | | | | Code cleanup/bug fix Description: Check for _O_BINARY being defined instead of O_BINARY, since we actually use _O_BINARY. (Note that this only affects Windows) Platforms tested: FreeBSD 4.10 (sleipnir) Not tested w/h5committest
* [svn-r8731] Purpose:Quincey Koziol2004-06-231-71/+43
| | | | | | | | | | | | | | | Code cleanup & minor optimization Description: Re-work the way interface initialization routines are specified in the library to avoid the overhead of checking for them in routines where there is no interface initialization routine. This cleans up warnings with gcc 3.4, reduces the library binary size a bit (about 2-3%) and should speedup the library's execution slightly. Platforms tested: FreeBSD 4.10 (sleipnir) w/gcc34 h5committest
* [svn-r8370] Purpose:Albert Cheng2004-04-171-0/+3
| | | | | | | | | | | | | | Bug fix. Description: Not all machines (like Sun and AIX) support fabsl() and fabsf() used in test/dtypes.c. Changed the coding to use macro names HDfabsl and HDfabsf. Also set the two macros to use ABS for now so that they will work for all machines. (need more portable fixes which would involve configure.) Platforms tested: h5committested. (also tested in LANL QSC and Theta).