diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2005-07-05 21:58:50 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2005-07-05 21:58:50 (GMT) |
commit | 12d84d4b12f4b43dc3a399fe3ffe8a8a15797b23 (patch) | |
tree | 4591ba2fe3d7fd860686310aea85715def56d81f /src/H5Fpkg.h | |
parent | 4ca9441078b3a51cec7272a6600c32eac9a5f4af (diff) | |
download | hdf5-12d84d4b12f4b43dc3a399fe3ffe8a8a15797b23.zip hdf5-12d84d4b12f4b43dc3a399fe3ffe8a8a15797b23.tar.gz hdf5-12d84d4b12f4b43dc3a399fe3ffe8a8a15797b23.tar.bz2 |
[svn-r11022] Purpose:
Bug fix & code cleanup
Description:
Don't unmount child files from a parent file if the parent file is
being held open by an object.
Also, moved the mounting routines into their own source file and the
superblock routines into their own file also.
Solution:
Moved the code for unmounting child files down in the H5F_close routine
and also add checks to the file and group mounting code to unmount child
files when the last object holding open a file closes.
Platforms tested:
FreeBSD 4.11 (sleipnir)
h5committest
Diffstat (limited to 'src/H5Fpkg.h')
-rw-r--r-- | src/H5Fpkg.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/H5Fpkg.h b/src/H5Fpkg.h index c7b9e95..363c1e6 100644 --- a/src/H5Fpkg.h +++ b/src/H5Fpkg.h @@ -163,7 +163,21 @@ union H5D_storage_t; #ifdef NOT_YET H5_DLL void H5F_encode_length_unusual(const H5F_t *f, uint8_t **p, uint8_t *l); #endif /* NOT_YET */ + +/* General routines */ +H5_DLL herr_t H5F_close(H5F_t *f); +H5_DLL haddr_t H5F_locate_signature(H5FD_t *file, hid_t dxpl_id); + +/* File mount related routines */ H5_DLL herr_t H5F_mountpoint(struct H5G_entry_t *find/*in,out*/); +H5_DLL herr_t H5F_close_mounts(H5F_t *f); +H5_DLL int H5F_term_unmount_cb(void *obj_ptr, hid_t obj_id, void *key); +H5_DLL herr_t H5F_check_mounts(H5F_t *f); + +/* Superblock related routines */ +H5_DLL hsize_t H5F_init_superblock(const H5F_t *f, hid_t dxpl_id); +H5_DLL herr_t H5F_write_superblock(H5F_t *f, hid_t dxpl_id, uint8_t *buf); +H5_DLL herr_t H5F_read_superblock(H5F_t *f, hid_t dxpl_id, H5G_entry_t *root_ent, haddr_t addr, uint8_t *buf, size_t buf_size); #endif |