diff options
Diffstat (limited to 'src/H5Fpublic.h')
-rw-r--r-- | src/H5Fpublic.h | 65 |
1 files changed, 60 insertions, 5 deletions
diff --git a/src/H5Fpublic.h b/src/H5Fpublic.h index 20814b6..a26c814 100644 --- a/src/H5Fpublic.h +++ b/src/H5Fpublic.h @@ -101,14 +101,23 @@ typedef enum H5F_close_degree_t { } H5F_close_degree_t; /* Current "global" information about file */ -/* (just size info currently) */ -typedef struct H5F_info_t { - hsize_t super_ext_size; /* Superblock extension size */ +typedef struct H5F_info2_t { + struct { + unsigned version; /* Superblock version # */ + hsize_t super_size; /* Superblock size */ + hsize_t super_ext_size; /* Superblock extension size */ + } super; + struct { + unsigned version; /* Version # of file free space management */ + hsize_t meta_size; /* Free space manager metadata size */ + hsize_t tot_space; /* Amount of free space in the file */ + } free; struct { + unsigned version; /* Version # of shared object header info */ hsize_t hdr_size; /* Shared object header message header size */ H5_ih_info_t msgs_info; /* Shared object header message index & heap size */ } sohm; -} H5F_info_t; +} H5F_info2_t; /* * Types of allocation requests. The values larger than H5FD_MEM_DEFAULT @@ -128,12 +137,30 @@ typedef enum H5F_mem_t { H5FD_MEM_NTYPES /*must be last*/ } H5F_mem_t; +/* Free space section information */ +typedef struct H5F_sect_info_t { + haddr_t addr; /* Address of free space section */ + hsize_t size; /* Size of free space section */ +} H5F_sect_info_t; + /* Library's file format versions */ typedef enum H5F_libver_t { H5F_LIBVER_EARLIEST, /* Use the earliest possible format for storing objects */ H5F_LIBVER_LATEST /* Use the latest possible format available for storing objects*/ } H5F_libver_t; +/* File space handling strategy */ +typedef enum H5F_file_space_type_t { + H5F_FILE_SPACE_DEFAULT = 0, /* Default (or current) free space strategy setting */ + H5F_FILE_SPACE_ALL_PERSIST = 1, /* Persistent free space managers, aggregators, virtual file driver */ + H5F_FILE_SPACE_ALL = 2, /* Non-persistent free space managers, aggregators, virtual file driver */ + /* This is the library default */ + H5F_FILE_SPACE_AGGR_VFD = 3, /* Aggregators, Virtual file driver */ + H5F_FILE_SPACE_VFD = 4, /* Virtual file driver */ + H5F_FILE_SPACE_NTYPES /* must be last */ +} H5F_file_space_type_t; + + #ifdef __cplusplus extern "C" { #endif @@ -169,7 +196,35 @@ H5_DLL herr_t H5Fget_mdc_size(hid_t file_id, int * cur_num_entries_ptr); H5_DLL herr_t H5Freset_mdc_hit_rate_stats(hid_t file_id); H5_DLL ssize_t H5Fget_name(hid_t obj_id, char *name, size_t size); -H5_DLL herr_t H5Fget_info(hid_t obj_id, H5F_info_t *bh_info); +H5_DLL herr_t H5Fget_info2(hid_t obj_id, H5F_info2_t *finfo); +H5_DLL ssize_t H5Fget_free_sections(hid_t file_id, H5F_mem_t type, + size_t nsects, H5F_sect_info_t *sect_info/*out*/); + +/* Symbols defined for compatibility with previous versions of the HDF5 API. + * + * Use of these symbols is deprecated. + */ +#ifndef H5_NO_DEPRECATED_SYMBOLS + +/* Macros */ + + +/* Typedefs */ + +/* Current "global" information about file */ +typedef struct H5F_info1_t { + hsize_t super_ext_size; /* Superblock extension size */ + struct { + hsize_t hdr_size; /* Shared object header message header size */ + H5_ih_info_t msgs_info; /* Shared object header message index & heap size */ + } sohm; +} H5F_info1_t; + + +/* Function prototypes */ +H5_DLL herr_t H5Fget_info1(hid_t obj_id, H5F_info1_t *finfo); + +#endif /* H5_NO_DEPRECATED_SYMBOLS */ #ifdef __cplusplus } |