Skip to content

Commit 854354a

Browse files
committed
Add bindings specific to hdf5-1.10.7
1 parent 7eaba8c commit 854354a

File tree

5 files changed

+73
-8
lines changed

5 files changed

+73
-8
lines changed

hdf5-sys/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,7 +609,7 @@ impl Config {
609609
let version = self.header.version;
610610
assert!(version >= Version::new(1, 8, 4), "required HDF5 version: >=1.8.4");
611611
let mut vs: Vec<_> = (5..=21).map(|v| Version::new(1, 8, v)).collect(); // 1.8.[5-21]
612-
vs.extend((0..=6).map(|v| Version::new(1, 10, v))); // 1.10.[0-6]
612+
vs.extend((0..=7).map(|v| Version::new(1, 10, v))); // 1.10.[0-7]
613613
vs.push(Version::new(1, 12, 0)); // 1.12.0
614614
for v in vs.into_iter().filter(|&v| version >= v) {
615615
println!("cargo:rustc-cfg=hdf5_{}_{}_{}", v.major, v.minor, v.micro);

hdf5-sys/src/h5.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,23 @@ extern "C" {
8585
extern "C" {
8686
pub fn H5is_library_threadsafe(is_ts: *mut hbool_t) -> herr_t;
8787
}
88+
89+
#[cfg(all(hdf5_1_10_7, not(hdf5_1_12_0)))]
90+
#[repr(C)]
91+
pub struct H5_alloc_stats_t {
92+
total_alloc_bytes: c_ulonglong,
93+
curr_alloc_bytes: size_t,
94+
peak_alloc_bytes: size_t,
95+
max_block_size: size_t,
96+
total_alloc_blocks_count: size_t,
97+
curr_alloc_blocks_count: size_t,
98+
peak_alloc_blocks_count: size_t,
99+
}
100+
101+
#[cfg(all(hdf5_1_10_7, not(hdf5_1_12_0)))]
102+
extern "C" {
103+
pub fn H5get_alloc_stats(stats: *mut H5_alloc_stats_t) -> herr_t;
104+
pub fn H5get_free_list_sizes(
105+
reg_size: *mut size_t, arr_size: *mut size_t, blk_size: *mut size_t, fac_size: *mut size_t,
106+
) -> herr_t;
107+
}

hdf5-sys/src/h5fd.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,36 @@ pub mod ros3 {
416416
}
417417
}
418418

419+
#[cfg(all(hdf5_1_10_7, not(hdf5_1_12_0)))]
420+
pub mod splitter {
421+
use super::*;
422+
423+
pub const H5FD_CURR_SPLITTER_VFD_CONFIG_VERSION: c_uint = 1;
424+
pub const H5FD_SPLITTER_PATH_MAX: c_uint = 4096;
425+
pub const H5FD_SPLITTER_MAGIC: c_uint = 0x2B916880;
426+
427+
#[repr(C)]
428+
pub struct H5FD_splitter_vfg_config_t {
429+
magic: i32,
430+
version: c_uint,
431+
rw_fapl_id: hid_t,
432+
wo_fapl_id: hid_t,
433+
wo_path: [c_char; H5FD_SPLITTER_PATH_MAX as usize + 1],
434+
log_file_path: [c_char; H5FD_SPLITTER_PATH_MAX as usize + 1],
435+
ignore_wo_errs: hbool_t,
436+
}
437+
438+
extern "C" {
439+
pub fn H5FD_splitter_init() -> hid_t;
440+
pub fn H5Pget_fapl_splitter(
441+
fapl_id: hid_t, config_ptr: *mut H5FD_splitter_vfg_config_t,
442+
) -> herr_t;
443+
pub fn H5Pset_fapl_splitter(
444+
fapl_id: hid_t, config_ptr: *mut H5FD_splitter_vfg_config_t,
445+
) -> herr_t;
446+
}
447+
}
448+
419449
#[cfg(hdf5_1_10_2)]
420450
extern "C" {
421451
pub fn H5FDdriver_query(driver_id: hid_t, flags: *mut c_ulong) -> herr_t;

hdf5-sys/src/h5p.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,17 @@ extern "C" {
764764
pub fn H5Pset_dset_no_attrs_hint(dcpl_id: hid_t, minimize: hbool_t) -> herr_t;
765765
}
766766

767+
#[cfg(all(hdf5_1_10_7, not(hdf5_1_12_0)))]
768+
extern "C" {
769+
pub fn H5Pget_file_locking(
770+
fapl_id: hid_t, use_file_locking: *mut hbool_t, ignore_when_disable: *mut hbool_t,
771+
) -> herr_t;
772+
pub fn H5Pset_file_locking(
773+
fapl_id: hid_t, use_file_locking: hbool_t, ignore_when_disable: hbool_t,
774+
) -> herr_t;
775+
776+
}
777+
767778
#[cfg(hdf5_1_12_0)]
768779
extern "C" {
769780
pub fn H5Pget_vol_id(plist_id: hid_t, vol_id: *mut hid_t) -> herr_t;

hdf5-sys/src/h5s.rs

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,20 +112,14 @@ extern "C" {
112112
) -> htri_t;
113113
}
114114

115-
#[cfg(hdf5_1_12_0)]
115+
#[cfg(any(hdf5_1_12_0, hdf5_1_10_7))]
116116
extern "C" {
117117
pub fn H5Scombine_hyperslab(
118118
space_id: hid_t, op: H5S_seloper_t, start: *const hsize_t, stride: *const hsize_t,
119119
count: *const hsize_t, block: *const hsize_t,
120120
) -> hid_t;
121121
pub fn H5Scombine_select(space1_id: hid_t, op: H5S_seloper_t, space2_id: hid_t) -> hid_t;
122122
pub fn H5Smodify_select(space1_id: hid_t, op: H5S_seloper_t, space2_id: hid_t) -> herr_t;
123-
pub fn H5Ssel_iter_close(sel_iter_id: hid_t) -> herr_t;
124-
pub fn H5Ssel_iter_create(space_id: hid_t, elmt_size: size_t, flags: c_uint) -> hid_t;
125-
pub fn H5Ssel_iter_get_seq_list(
126-
sel_iter_id: hid_t, maxseq: size_t, maxbytes: size_t, nseq: *mut size_t,
127-
nbytes: *mut size_t, off: *mut hsize_t, len: *mut size_t,
128-
) -> herr_t;
129123
pub fn H5Sselect_adjust(space_id: hid_t, offset: *const hssize_t) -> herr_t;
130124
pub fn H5Sselect_copy(dst_id: hid_t, src_id: hid_t) -> herr_t;
131125
pub fn H5Sselect_intersect_block(
@@ -136,3 +130,13 @@ extern "C" {
136130
) -> hid_t;
137131
pub fn H5Sselect_shape_same(space1_id: hid_t, space2_id: hid_t) -> htri_t;
138132
}
133+
134+
#[cfg(hdf5_1_12_0)]
135+
extern "C" {
136+
pub fn H5Ssel_iter_close(sel_iter_id: hid_t) -> herr_t;
137+
pub fn H5Ssel_iter_create(space_id: hid_t, elmt_size: size_t, flags: c_uint) -> hid_t;
138+
pub fn H5Ssel_iter_get_seq_list(
139+
sel_iter_id: hid_t, maxseq: size_t, maxbytes: size_t, nseq: *mut size_t,
140+
nbytes: *mut size_t, off: *mut hsize_t, len: *mut size_t,
141+
) -> herr_t;
142+
}

0 commit comments

Comments
 (0)