summaryrefslogtreecommitdiffstats
path: root/src/H5MFprivate.h
diff options
context:
space:
mode:
authorJames Laird <jlaird@hdfgroup.org>2004-07-14 19:32:51 (GMT)
committerJames Laird <jlaird@hdfgroup.org>2004-07-14 19:32:51 (GMT)
commitd89d73048a57c8dd1bffb3596c633c77d45d5ea6 (patch)
tree25733c713399bb23e8e54ac8f86170dd0a814796 /src/H5MFprivate.h
parentf0fe9b0114591c13051ccc92a2fca81b1ec3ca95 (diff)
downloadhdf5-d89d73048a57c8dd1bffb3596c633c77d45d5ea6.zip
hdf5-d89d73048a57c8dd1bffb3596c633c77d45d5ea6.tar.gz
hdf5-d89d73048a57c8dd1bffb3596c633c77d45d5ea6.tar.bz2
[svn-r8876]
Purpose: Bug Fix Description: If an HDF5 file grows larger than its address space, it dies and is unable to write any data. This is more likely to happen since users are able to change the number of bytes used to store addresses in the file. Solution: HDF5 now throws an error instead of dying. In addition, it "reserves" address space for the local heap and for object headers (which do not allocate space immediately). This ensures that after the error occurs, there is enough address space left to flush the entire file to disk, so no data is lost. A more complete explanation is at /doc/html/TechNotes/ReservedFileSpace.html Platforms tested: sleipnir, copper (parallel), verbena, arabica, Windows (Visual Studio 7) Misc. update:
Diffstat (limited to 'src/H5MFprivate.h')
-rw-r--r--src/H5MFprivate.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/H5MFprivate.h b/src/H5MFprivate.h
index 14b2761..2a129ea 100644
--- a/src/H5MFprivate.h
+++ b/src/H5MFprivate.h
@@ -48,6 +48,9 @@ H5_DLL herr_t H5MF_xfree(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, haddr_t addr,
hsize_t size);
H5_DLL haddr_t H5MF_realloc(H5F_t *f, H5FD_mem_t type, hid_t dxpl_id, haddr_t old_addr,
hsize_t old_size, hsize_t new_size);
+H5_DLL herr_t H5MF_reserve(H5F_t *f, hsize_t size);
+H5_DLL void H5MF_free_reserved(H5F_t *f, hsize_t size);
+H5_DLL int H5MF_alloc_overflow(H5F_t *f, hsize_t size);
H5_DLL htri_t H5MF_can_extend(H5F_t *f, H5FD_mem_t type, haddr_t addr,
hsize_t size, hsize_t extra_requested);
H5_DLL htri_t H5MF_extend(H5F_t *f, H5FD_mem_t type, haddr_t addr, hsize_t size,