1use crate::internal_prelude::*;
3
4use crate::h5ac::H5AC_cache_config_t;
5use crate::h5d::{H5D_alloc_time_t, H5D_fill_time_t, H5D_fill_value_t, H5D_layout_t};
6use crate::h5f::{H5F_close_degree_t, H5F_libver_t};
7use crate::h5fd::H5FD_mem_t;
8use crate::h5l::H5L_elink_traverse_t;
9use crate::h5mm::{H5MM_allocate_t, H5MM_free_t};
10use crate::h5t::{H5T_conv_except_func_t, H5T_cset_t};
11use crate::h5z::{H5Z_EDC_t, H5Z_SO_scale_type_t, H5Z_filter_func_t, H5Z_filter_t};
12
13#[cfg(feature = "1.8.9")]
14use crate::h5fd::H5FD_file_image_callbacks_t;
15#[cfg(feature = "1.8.9")]
16use crate::h5o::H5O_mcdt_search_cb_t;
17#[cfg(feature = "1.10.1")]
18use crate::{h5ac::H5AC_cache_image_config_t, h5f::H5F_fspace_strategy_t};
19
20pub const H5P_CRT_ORDER_TRACKED: c_uint = 0x0001;
21pub const H5P_CRT_ORDER_INDEXED: c_uint = 0x0002;
22
23pub const H5P_DEFAULT: hid_t = 0;
24
25pub type H5P_cls_create_func_t =
26 Option<extern "C" fn(prop_id: hid_t, create_data: *mut c_void) -> herr_t>;
27pub type H5P_cls_copy_func_t =
28 Option<extern "C" fn(new_prop_id: hid_t, old_prop_id: hid_t, copy_data: *mut c_void) -> herr_t>;
29pub type H5P_cls_close_func_t =
30 Option<extern "C" fn(prop_id: hid_t, close_data: *mut c_void) -> herr_t>;
31pub type H5P_prp_cb1_t =
32 Option<extern "C" fn(name: *const c_char, size: size_t, value: *mut c_void) -> herr_t>;
33pub type H5P_prp_cb2_t = Option<
34 extern "C" fn(prop_id: hid_t, name: *const c_char, size: size_t, value: *mut c_void) -> herr_t,
35>;
36pub type H5P_prp_create_func_t = H5P_prp_cb1_t;
37pub type H5P_prp_set_func_t = H5P_prp_cb2_t;
38pub type H5P_prp_get_func_t = H5P_prp_cb2_t;
39pub type H5P_prp_delete_func_t = H5P_prp_cb2_t;
40pub type H5P_prp_copy_func_t = H5P_prp_cb1_t;
41pub type H5P_prp_compare_func_t =
42 Option<extern "C" fn(value1: *const c_void, value2: *const c_void, size: size_t) -> c_int>;
43pub type H5P_prp_close_func_t = H5P_prp_cb1_t;
44pub type H5P_iterate_t =
45 Option<extern "C" fn(id: hid_t, name: *const c_char, iter_data: *mut c_void) -> herr_t>;
46
47pub use self::globals::*;
48
49#[cfg(all(not(feature = "1.8.14"), not(all(target_env = "msvc", not(feature = "static")))))]
50mod globals {
51 pub use crate::h5i::hid_t as id_t;
52
53 extern_static!(H5P_CLS_ROOT, H5P_CLS_ROOT_g);
55 extern_static!(H5P_CLS_OBJECT_CREATE, H5P_CLS_OBJECT_CREATE_g);
56 extern_static!(H5P_CLS_FILE_CREATE, H5P_CLS_FILE_CREATE_g);
57 extern_static!(H5P_CLS_FILE_ACCESS, H5P_CLS_FILE_ACCESS_g);
58 extern_static!(H5P_CLS_DATASET_CREATE, H5P_CLS_DATASET_CREATE_g);
59 extern_static!(H5P_CLS_DATASET_ACCESS, H5P_CLS_DATASET_ACCESS_g);
60 extern_static!(H5P_CLS_DATASET_XFER, H5P_CLS_DATASET_XFER_g);
61 extern_static!(H5P_CLS_FILE_MOUNT, H5P_CLS_FILE_MOUNT_g);
62 extern_static!(H5P_CLS_GROUP_CREATE, H5P_CLS_GROUP_CREATE_g);
63 extern_static!(H5P_CLS_GROUP_ACCESS, H5P_CLS_GROUP_ACCESS_g);
64 extern_static!(H5P_CLS_DATATYPE_CREATE, H5P_CLS_DATATYPE_CREATE_g);
65 extern_static!(H5P_CLS_DATATYPE_ACCESS, H5P_CLS_DATATYPE_ACCESS_g);
66 extern_static!(H5P_CLS_STRING_CREATE, H5P_CLS_STRING_CREATE_g);
67 extern_static!(H5P_CLS_ATTRIBUTE_CREATE, H5P_CLS_ATTRIBUTE_CREATE_g);
68 extern_static!(H5P_CLS_OBJECT_COPY, H5P_CLS_OBJECT_COPY_g);
69 extern_static!(H5P_CLS_LINK_CREATE, H5P_CLS_LINK_CREATE_g);
70 extern_static!(H5P_CLS_LINK_ACCESS, H5P_CLS_LINK_ACCESS_g);
71
72 extern_static!(H5P_LST_FILE_CREATE, H5P_LST_FILE_CREATE_g);
74 extern_static!(H5P_LST_FILE_ACCESS, H5P_LST_FILE_ACCESS_g);
75 extern_static!(H5P_LST_DATASET_CREATE, H5P_LST_DATASET_CREATE_g);
76 extern_static!(H5P_LST_DATASET_ACCESS, H5P_LST_DATASET_ACCESS_g);
77 extern_static!(H5P_LST_DATASET_XFER, H5P_LST_DATASET_XFER_g);
78 extern_static!(H5P_LST_FILE_MOUNT, H5P_LST_FILE_MOUNT_g);
79 extern_static!(H5P_LST_GROUP_CREATE, H5P_LST_GROUP_CREATE_g);
80 extern_static!(H5P_LST_GROUP_ACCESS, H5P_LST_GROUP_ACCESS_g);
81 extern_static!(H5P_LST_DATATYPE_CREATE, H5P_LST_DATATYPE_CREATE_g);
82 extern_static!(H5P_LST_DATATYPE_ACCESS, H5P_LST_DATATYPE_ACCESS_g);
83 extern_static!(H5P_LST_ATTRIBUTE_CREATE, H5P_LST_ATTRIBUTE_CREATE_g);
84 extern_static!(H5P_LST_OBJECT_COPY, H5P_LST_OBJECT_COPY_g);
85 extern_static!(H5P_LST_LINK_CREATE, H5P_LST_LINK_CREATE_g);
86 extern_static!(H5P_LST_LINK_ACCESS, H5P_LST_LINK_ACCESS_g);
87}
88
89#[cfg(all(feature = "1.8.14", not(all(target_env = "msvc", not(feature = "static")))))]
90mod globals {
91 pub use crate::h5i::hid_t as id_t;
92
93 extern_static!(H5P_CLS_ROOT, H5P_CLS_ROOT_ID_g);
95 extern_static!(H5P_CLS_OBJECT_CREATE, H5P_CLS_OBJECT_CREATE_ID_g);
96 extern_static!(H5P_CLS_FILE_CREATE, H5P_CLS_FILE_CREATE_ID_g);
97 extern_static!(H5P_CLS_FILE_ACCESS, H5P_CLS_FILE_ACCESS_ID_g);
98 extern_static!(H5P_CLS_DATASET_CREATE, H5P_CLS_DATASET_CREATE_ID_g);
99 extern_static!(H5P_CLS_DATASET_ACCESS, H5P_CLS_DATASET_ACCESS_ID_g);
100 extern_static!(H5P_CLS_DATASET_XFER, H5P_CLS_DATASET_XFER_ID_g);
101 extern_static!(H5P_CLS_FILE_MOUNT, H5P_CLS_FILE_MOUNT_ID_g);
102 extern_static!(H5P_CLS_GROUP_CREATE, H5P_CLS_GROUP_CREATE_ID_g);
103 extern_static!(H5P_CLS_GROUP_ACCESS, H5P_CLS_GROUP_ACCESS_ID_g);
104 extern_static!(H5P_CLS_DATATYPE_CREATE, H5P_CLS_DATATYPE_CREATE_ID_g);
105 extern_static!(H5P_CLS_DATATYPE_ACCESS, H5P_CLS_DATATYPE_ACCESS_ID_g);
106 extern_static!(H5P_CLS_STRING_CREATE, H5P_CLS_STRING_CREATE_ID_g);
107 extern_static!(H5P_CLS_ATTRIBUTE_CREATE, H5P_CLS_ATTRIBUTE_CREATE_ID_g);
108 extern_static!(H5P_CLS_OBJECT_COPY, H5P_CLS_OBJECT_COPY_ID_g);
109 extern_static!(H5P_CLS_LINK_CREATE, H5P_CLS_LINK_CREATE_ID_g);
110 extern_static!(H5P_CLS_LINK_ACCESS, H5P_CLS_LINK_ACCESS_ID_g);
111
112 extern_static!(H5P_LST_FILE_CREATE, H5P_LST_FILE_CREATE_ID_g);
114 extern_static!(H5P_LST_FILE_ACCESS, H5P_LST_FILE_ACCESS_ID_g);
115 extern_static!(H5P_LST_DATASET_CREATE, H5P_LST_DATASET_CREATE_ID_g);
116 extern_static!(H5P_LST_DATASET_ACCESS, H5P_LST_DATASET_ACCESS_ID_g);
117 extern_static!(H5P_LST_DATASET_XFER, H5P_LST_DATASET_XFER_ID_g);
118 extern_static!(H5P_LST_FILE_MOUNT, H5P_LST_FILE_MOUNT_ID_g);
119 extern_static!(H5P_LST_GROUP_CREATE, H5P_LST_GROUP_CREATE_ID_g);
120 extern_static!(H5P_LST_GROUP_ACCESS, H5P_LST_GROUP_ACCESS_ID_g);
121 extern_static!(H5P_LST_DATATYPE_CREATE, H5P_LST_DATATYPE_CREATE_ID_g);
122 extern_static!(H5P_LST_DATATYPE_ACCESS, H5P_LST_DATATYPE_ACCESS_ID_g);
123 extern_static!(H5P_LST_ATTRIBUTE_CREATE, H5P_LST_ATTRIBUTE_CREATE_ID_g);
124 extern_static!(H5P_LST_OBJECT_COPY, H5P_LST_OBJECT_COPY_ID_g);
125 extern_static!(H5P_LST_LINK_CREATE, H5P_LST_LINK_CREATE_ID_g);
126 extern_static!(H5P_LST_LINK_ACCESS, H5P_LST_LINK_ACCESS_ID_g);
127
128 #[cfg(feature = "1.12.0")]
129 #[allow(clippy::module_inception)]
130 pub mod globals {
131 use super::*;
132 extern_static!(H5P_MAP_CREATE, H5P_CLS_MAP_CREATE_ID_g);
133 extern_static!(H5P_MAP_ACCESS, H5P_CLS_MAP_ACCESS_ID_g);
134 extern_static!(H5P_VOL_INITIALIZE, H5P_CLS_VOL_INITIALIZE_ID_g);
135 extern_static!(H5P_REFERENCE_ACCESS, H5P_CLS_REFERENCE_ACCESS_ID_g);
136 extern_static!(H5P_MAP_CREATE_DEFAULT, H5P_LST_MAP_CREATE_ID_g);
137 extern_static!(H5P_MAP_ACCESS_DEFAULT, H5P_LST_MAP_ACCESS_ID_g);
138 extern_static!(H5P_VOL_INITIALIZE_DEFAULT, H5P_LST_VOL_INITIALIZE_ID_g);
139 extern_static!(H5P_REFERENCE_ACCESS_DEFAULT, H5P_LST_REFERENCE_ACCESS_ID_g);
140 }
141 #[cfg(feature = "1.12.0")]
142 pub use globals::*;
143}
144
145#[cfg(all(not(feature = "1.8.14"), all(target_env = "msvc", not(feature = "static"))))]
146mod globals {
147 pub type id_t = usize;
149
150 extern_static!(H5P_CLS_ROOT, __imp_H5P_CLS_ROOT_g);
152 extern_static!(H5P_CLS_OBJECT_CREATE, __imp_H5P_CLS_OBJECT_CREATE_g);
153 extern_static!(H5P_CLS_FILE_CREATE, __imp_H5P_CLS_FILE_CREATE_g);
154 extern_static!(H5P_CLS_FILE_ACCESS, __imp_H5P_CLS_FILE_ACCESS_g);
155 extern_static!(H5P_CLS_DATASET_CREATE, __imp_H5P_CLS_DATASET_CREATE_g);
156 extern_static!(H5P_CLS_DATASET_ACCESS, __imp_H5P_CLS_DATASET_ACCESS_g);
157 extern_static!(H5P_CLS_DATASET_XFER, __imp_H5P_CLS_DATASET_XFER_g);
158 extern_static!(H5P_CLS_FILE_MOUNT, __imp_H5P_CLS_FILE_MOUNT_g);
159 extern_static!(H5P_CLS_GROUP_CREATE, __imp_H5P_CLS_GROUP_CREATE_g);
160 extern_static!(H5P_CLS_GROUP_ACCESS, __imp_H5P_CLS_GROUP_ACCESS_g);
161 extern_static!(H5P_CLS_DATATYPE_CREATE, __imp_H5P_CLS_DATATYPE_CREATE_g);
162 extern_static!(H5P_CLS_DATATYPE_ACCESS, __imp_H5P_CLS_DATATYPE_ACCESS_g);
163 extern_static!(H5P_CLS_STRING_CREATE, __imp_H5P_CLS_STRING_CREATE_g);
164 extern_static!(H5P_CLS_ATTRIBUTE_CREATE, __imp_H5P_CLS_ATTRIBUTE_CREATE_g);
165 extern_static!(H5P_CLS_OBJECT_COPY, __imp_H5P_CLS_OBJECT_COPY_g);
166 extern_static!(H5P_CLS_LINK_CREATE, __imp_H5P_CLS_LINK_CREATE_g);
167 extern_static!(H5P_CLS_LINK_ACCESS, __imp_H5P_CLS_LINK_ACCESS_g);
168
169 extern_static!(H5P_LST_FILE_CREATE, __imp_H5P_LST_FILE_CREATE_g);
171 extern_static!(H5P_LST_FILE_ACCESS, __imp_H5P_LST_FILE_ACCESS_g);
172 extern_static!(H5P_LST_DATASET_CREATE, __imp_H5P_LST_DATASET_CREATE_g);
173 extern_static!(H5P_LST_DATASET_ACCESS, __imp_H5P_LST_DATASET_ACCESS_g);
174 extern_static!(H5P_LST_DATASET_XFER, __imp_H5P_LST_DATASET_XFER_g);
175 extern_static!(H5P_LST_FILE_MOUNT, __imp_H5P_LST_FILE_MOUNT_g);
176 extern_static!(H5P_LST_GROUP_CREATE, __imp_H5P_LST_GROUP_CREATE_g);
177 extern_static!(H5P_LST_GROUP_ACCESS, __imp_H5P_LST_GROUP_ACCESS_g);
178 extern_static!(H5P_LST_DATATYPE_CREATE, __imp_H5P_LST_DATATYPE_CREATE_g);
179 extern_static!(H5P_LST_DATATYPE_ACCESS, __imp_H5P_LST_DATATYPE_ACCESS_g);
180 extern_static!(H5P_LST_ATTRIBUTE_CREATE, __imp_H5P_LST_ATTRIBUTE_CREATE_g);
181 extern_static!(H5P_LST_OBJECT_COPY, __imp_H5P_LST_OBJECT_COPY_g);
182 extern_static!(H5P_LST_LINK_CREATE, __imp_H5P_LST_LINK_CREATE_g);
183 extern_static!(H5P_LST_LINK_ACCESS, __imp_H5P_LST_LINK_ACCESS_g);
184}
185
186#[cfg(all(feature = "1.8.14", all(target_env = "msvc", not(feature = "static"))))]
187mod globals {
188 pub type id_t = usize;
190
191 extern_static!(H5P_CLS_ROOT, __imp_H5P_CLS_ROOT_ID_g);
193 extern_static!(H5P_CLS_OBJECT_CREATE, __imp_H5P_CLS_OBJECT_CREATE_ID_g);
194 extern_static!(H5P_CLS_FILE_CREATE, __imp_H5P_CLS_FILE_CREATE_ID_g);
195 extern_static!(H5P_CLS_FILE_ACCESS, __imp_H5P_CLS_FILE_ACCESS_ID_g);
196 extern_static!(H5P_CLS_DATASET_CREATE, __imp_H5P_CLS_DATASET_CREATE_ID_g);
197 extern_static!(H5P_CLS_DATASET_ACCESS, __imp_H5P_CLS_DATASET_ACCESS_ID_g);
198 extern_static!(H5P_CLS_DATASET_XFER, __imp_H5P_CLS_DATASET_XFER_ID_g);
199 extern_static!(H5P_CLS_FILE_MOUNT, __imp_H5P_CLS_FILE_MOUNT_ID_g);
200 extern_static!(H5P_CLS_GROUP_CREATE, __imp_H5P_CLS_GROUP_CREATE_ID_g);
201 extern_static!(H5P_CLS_GROUP_ACCESS, __imp_H5P_CLS_GROUP_ACCESS_ID_g);
202 extern_static!(H5P_CLS_DATATYPE_CREATE, __imp_H5P_CLS_DATATYPE_CREATE_ID_g);
203 extern_static!(H5P_CLS_DATATYPE_ACCESS, __imp_H5P_CLS_DATATYPE_ACCESS_ID_g);
204 extern_static!(H5P_CLS_STRING_CREATE, __imp_H5P_CLS_STRING_CREATE_ID_g);
205 extern_static!(H5P_CLS_ATTRIBUTE_CREATE, __imp_H5P_CLS_ATTRIBUTE_CREATE_ID_g);
206 extern_static!(H5P_CLS_OBJECT_COPY, __imp_H5P_CLS_OBJECT_COPY_ID_g);
207 extern_static!(H5P_CLS_LINK_CREATE, __imp_H5P_CLS_LINK_CREATE_ID_g);
208 extern_static!(H5P_CLS_LINK_ACCESS, __imp_H5P_CLS_LINK_ACCESS_ID_g);
209
210 extern_static!(H5P_LST_FILE_CREATE, __imp_H5P_LST_FILE_CREATE_ID_g);
212 extern_static!(H5P_LST_FILE_ACCESS, __imp_H5P_LST_FILE_ACCESS_ID_g);
213 extern_static!(H5P_LST_DATASET_CREATE, __imp_H5P_LST_DATASET_CREATE_ID_g);
214 extern_static!(H5P_LST_DATASET_ACCESS, __imp_H5P_LST_DATASET_ACCESS_ID_g);
215 extern_static!(H5P_LST_DATASET_XFER, __imp_H5P_LST_DATASET_XFER_ID_g);
216 extern_static!(H5P_LST_FILE_MOUNT, __imp_H5P_LST_FILE_MOUNT_ID_g);
217 extern_static!(H5P_LST_GROUP_CREATE, __imp_H5P_LST_GROUP_CREATE_ID_g);
218 extern_static!(H5P_LST_GROUP_ACCESS, __imp_H5P_LST_GROUP_ACCESS_ID_g);
219 extern_static!(H5P_LST_DATATYPE_CREATE, __imp_H5P_LST_DATATYPE_CREATE_ID_g);
220 extern_static!(H5P_LST_DATATYPE_ACCESS, __imp_H5P_LST_DATATYPE_ACCESS_ID_g);
221 extern_static!(H5P_LST_ATTRIBUTE_CREATE, __imp_H5P_LST_ATTRIBUTE_CREATE_ID_g);
222 extern_static!(H5P_LST_OBJECT_COPY, __imp_H5P_LST_OBJECT_COPY_ID_g);
223 extern_static!(H5P_LST_LINK_CREATE, __imp_H5P_LST_LINK_CREATE_ID_g);
224 extern_static!(H5P_LST_LINK_ACCESS, __imp_H5P_LST_LINK_ACCESS_ID_g);
225
226 #[cfg(feature = "1.12.0")]
227 #[allow(clippy::module_inception)]
228 pub mod globals {
229 use super::*;
230 extern_static!(H5P_MAP_CREATE, __imp_H5P_CLS_MAP_CREATE_ID_g);
231 extern_static!(H5P_MAP_ACCESS, __imp_H5P_CLS_MAP_ACCESS_ID_g);
232 extern_static!(H5P_VOL_INITIALIZE, __imp_H5P_CLS_VOL_INITIALIZE_ID_g);
233 extern_static!(H5P_REFERENCE_ACCESS, __imp_H5P_CLS_REFERENCE_ACCESS_ID_g);
234 extern_static!(H5P_MAP_CREATE_DEFAULT, __imp_H5P_LST_MAP_CREATE_ID_g);
235 extern_static!(H5P_MAP_ACCESS_DEFAULT, __imp_H5P_LST_MAP_ACCESS_ID_g);
236 extern_static!(H5P_VOL_INITIALIZE_DEFAULT, __imp_H5P_LST_VOL_INITIALIZE_ID_g);
237 extern_static!(H5P_REFERENCE_ACCESS_DEFAULT, __imp_H5P_LST_REFERENCE_ACCESS_ID_g);
238 }
239 #[cfg(feature = "1.12.0")]
240 pub use globals::*;
241}
242
243extern "C" {
244 pub fn H5Pcreate_class(
245 parent: hid_t, name: *const c_char, cls_create: H5P_cls_create_func_t,
246 create_data: *mut c_void, cls_copy: H5P_cls_copy_func_t, copy_data: *mut c_void,
247 cls_close: H5P_cls_close_func_t, close_data: *mut c_void,
248 ) -> hid_t;
249 pub fn H5Pget_class_name(pclass_id: hid_t) -> *mut c_char;
250 pub fn H5Pcreate(cls_id: hid_t) -> hid_t;
251 pub fn H5Pregister2(
252 cls_id: hid_t, name: *const c_char, size: size_t, def_value: *mut c_void,
253 prp_create: H5P_prp_create_func_t, prp_set: H5P_prp_set_func_t,
254 prp_get: H5P_prp_get_func_t, prp_del: H5P_prp_delete_func_t, prp_copy: H5P_prp_copy_func_t,
255 prp_cmp: H5P_prp_compare_func_t, prp_close: H5P_prp_close_func_t,
256 ) -> herr_t;
257 pub fn H5Pinsert2(
258 plist_id: hid_t, name: *const c_char, size: size_t, value: *mut c_void,
259 prp_set: H5P_prp_set_func_t, prp_get: H5P_prp_get_func_t,
260 prp_delete: H5P_prp_delete_func_t, prp_copy: H5P_prp_copy_func_t,
261 prp_cmp: H5P_prp_compare_func_t, prp_close: H5P_prp_close_func_t,
262 ) -> herr_t;
263 pub fn H5Pset(plist_id: hid_t, name: *const c_char, value: *mut c_void) -> herr_t;
264 pub fn H5Pexist(plist_id: hid_t, name: *const c_char) -> htri_t;
265 pub fn H5Pget_size(id: hid_t, name: *const c_char, size: *mut size_t) -> herr_t;
266 pub fn H5Pget_nprops(id: hid_t, nprops: *mut size_t) -> herr_t;
267 pub fn H5Pget_class(plist_id: hid_t) -> hid_t;
268 pub fn H5Pget_class_parent(pclass_id: hid_t) -> hid_t;
269 pub fn H5Pget(plist_id: hid_t, name: *const c_char, value: *mut c_void) -> herr_t;
270 pub fn H5Pequal(id1: hid_t, id2: hid_t) -> htri_t;
271 pub fn H5Pisa_class(plist_id: hid_t, pclass_id: hid_t) -> htri_t;
272 pub fn H5Piterate(
273 id: hid_t, idx: *mut c_int, iter_func: H5P_iterate_t, iter_data: *mut c_void,
274 ) -> c_int;
275 pub fn H5Pcopy_prop(dst_id: hid_t, src_id: hid_t, name: *const c_char) -> herr_t;
276 pub fn H5Premove(plist_id: hid_t, name: *const c_char) -> herr_t;
277 pub fn H5Punregister(pclass_id: hid_t, name: *const c_char) -> herr_t;
278 pub fn H5Pclose_class(plist_id: hid_t) -> herr_t;
279 pub fn H5Pclose(plist_id: hid_t) -> herr_t;
280 pub fn H5Pcopy(plist_id: hid_t) -> hid_t;
281 pub fn H5Pset_attr_phase_change(
282 plist_id: hid_t, max_compact: c_uint, min_dense: c_uint,
283 ) -> herr_t;
284 pub fn H5Pget_attr_phase_change(
285 plist_id: hid_t, max_compact: *mut c_uint, min_dense: *mut c_uint,
286 ) -> herr_t;
287 pub fn H5Pset_attr_creation_order(plist_id: hid_t, crt_order_flags: c_uint) -> herr_t;
288 pub fn H5Pget_attr_creation_order(plist_id: hid_t, crt_order_flags: *mut c_uint) -> herr_t;
289 pub fn H5Pset_obj_track_times(plist_id: hid_t, track_times: hbool_t) -> herr_t;
290 pub fn H5Pget_obj_track_times(plist_id: hid_t, track_times: *mut hbool_t) -> herr_t;
291 pub fn H5Pmodify_filter(
292 plist_id: hid_t, filter: H5Z_filter_t, flags: c_uint, cd_nelmts: size_t,
293 cd_values: *const c_uint,
294 ) -> herr_t;
295 pub fn H5Pset_filter(
296 plist_id: hid_t, filter: H5Z_filter_t, flags: c_uint, cd_nelmts: size_t,
297 c_values: *const c_uint,
298 ) -> herr_t;
299 pub fn H5Pget_nfilters(plist_id: hid_t) -> c_int;
300 pub fn H5Pget_filter2(
301 plist_id: hid_t, filter: c_uint, flags: *mut c_uint, cd_nelmts: *mut size_t,
302 cd_values: *mut c_uint, namelen: size_t, name: *mut c_char, filter_config: *mut c_uint,
303 ) -> H5Z_filter_t;
304 pub fn H5Pget_filter_by_id2(
305 plist_id: hid_t, id: H5Z_filter_t, flags: *mut c_uint, cd_nelmts: *mut size_t,
306 cd_values: *mut c_uint, namelen: size_t, name: *mut c_char, filter_config: *mut c_uint,
307 ) -> herr_t;
308 pub fn H5Pall_filters_avail(plist_id: hid_t) -> htri_t;
309 pub fn H5Premove_filter(plist_id: hid_t, filter: H5Z_filter_t) -> herr_t;
310 pub fn H5Pset_deflate(plist_id: hid_t, aggression: c_uint) -> herr_t;
311 pub fn H5Pset_fletcher32(plist_id: hid_t) -> herr_t;
312 pub fn H5Pset_userblock(plist_id: hid_t, size: hsize_t) -> herr_t;
313 pub fn H5Pget_userblock(plist_id: hid_t, size: *mut hsize_t) -> herr_t;
314 pub fn H5Pset_sizes(plist_id: hid_t, sizeof_addr: size_t, sizeof_size: size_t) -> herr_t;
315 pub fn H5Pget_sizes(
316 plist_id: hid_t, sizeof_addr: *mut size_t, sizeof_size: *mut size_t,
317 ) -> herr_t;
318 pub fn H5Pset_sym_k(plist_id: hid_t, ik: c_uint, lk: c_uint) -> herr_t;
319 pub fn H5Pget_sym_k(plist_id: hid_t, ik: *mut c_uint, lk: *mut c_uint) -> herr_t;
320 pub fn H5Pset_istore_k(plist_id: hid_t, ik: c_uint) -> herr_t;
321 pub fn H5Pget_istore_k(plist_id: hid_t, ik: *mut c_uint) -> herr_t;
322 pub fn H5Pset_shared_mesg_nindexes(plist_id: hid_t, nindexes: c_uint) -> herr_t;
323 pub fn H5Pget_shared_mesg_nindexes(plist_id: hid_t, nindexes: *mut c_uint) -> herr_t;
324 pub fn H5Pset_shared_mesg_index(
325 plist_id: hid_t, index_num: c_uint, mesg_type_flags: c_uint, min_mesg_size: c_uint,
326 ) -> herr_t;
327 pub fn H5Pget_shared_mesg_index(
328 plist_id: hid_t, index_num: c_uint, mesg_type_flags: *mut c_uint,
329 min_mesg_size: *mut c_uint,
330 ) -> herr_t;
331 pub fn H5Pset_shared_mesg_phase_change(
332 plist_id: hid_t, max_list: c_uint, min_btree: c_uint,
333 ) -> herr_t;
334 pub fn H5Pget_shared_mesg_phase_change(
335 plist_id: hid_t, max_list: *mut c_uint, min_btree: *mut c_uint,
336 ) -> herr_t;
337 pub fn H5Pset_alignment(fapl_id: hid_t, threshold: hsize_t, alignment: hsize_t) -> herr_t;
338 pub fn H5Pget_alignment(
339 fapl_id: hid_t, threshold: *mut hsize_t, alignment: *mut hsize_t,
340 ) -> herr_t;
341 pub fn H5Pset_driver(plist_id: hid_t, driver_id: hid_t, driver_info: *const c_void) -> herr_t;
342 pub fn H5Pget_driver(plist_id: hid_t) -> hid_t;
343 pub fn H5Pget_driver_info(plist_id: hid_t) -> *mut c_void;
344 pub fn H5Pset_cache(
345 plist_id: hid_t, mdc_nelmts: c_int, rdcc_nslots: size_t, rdcc_nbytes: size_t,
346 rdcc_w0: c_double,
347 ) -> herr_t;
348 pub fn H5Pget_cache(
349 plist_id: hid_t, mdc_nelmts: *mut c_int, rdcc_nslots: *mut size_t,
350 rdcc_nbytes: *mut size_t, rdcc_w0: *mut c_double,
351 ) -> herr_t;
352 pub fn H5Pset_mdc_config(plist_id: hid_t, config_ptr: *const H5AC_cache_config_t) -> herr_t;
353 pub fn H5Pget_mdc_config(plist_id: hid_t, config_ptr: *mut H5AC_cache_config_t) -> herr_t;
354 pub fn H5Pset_gc_references(fapl_id: hid_t, gc_ref: c_uint) -> herr_t;
355 pub fn H5Pget_gc_references(fapl_id: hid_t, gc_ref: *mut c_uint) -> herr_t;
356 pub fn H5Pset_fclose_degree(fapl_id: hid_t, degree: H5F_close_degree_t) -> herr_t;
357 pub fn H5Pget_fclose_degree(fapl_id: hid_t, degree: *mut H5F_close_degree_t) -> herr_t;
358 pub fn H5Pset_meta_block_size(fapl_id: hid_t, size: hsize_t) -> herr_t;
359 pub fn H5Pget_meta_block_size(fapl_id: hid_t, size: *mut hsize_t) -> herr_t;
360 pub fn H5Pset_sieve_buf_size(fapl_id: hid_t, size: size_t) -> herr_t;
361 pub fn H5Pget_sieve_buf_size(fapl_id: hid_t, size: *mut size_t) -> herr_t;
362 pub fn H5Pset_small_data_block_size(fapl_id: hid_t, size: hsize_t) -> herr_t;
363 pub fn H5Pget_small_data_block_size(fapl_id: hid_t, size: *mut hsize_t) -> herr_t;
364 pub fn H5Pset_libver_bounds(plist_id: hid_t, low: H5F_libver_t, high: H5F_libver_t) -> herr_t;
365 pub fn H5Pget_libver_bounds(
366 plist_id: hid_t, low: *mut H5F_libver_t, high: *mut H5F_libver_t,
367 ) -> herr_t;
368 pub fn H5Pset_layout(plist_id: hid_t, layout: H5D_layout_t) -> herr_t;
369 pub fn H5Pget_layout(plist_id: hid_t) -> H5D_layout_t;
370 pub fn H5Pset_chunk(plist_id: hid_t, ndims: c_int, dim: *const hsize_t) -> herr_t;
371 pub fn H5Pget_chunk(plist_id: hid_t, max_ndims: c_int, dim: *mut hsize_t) -> c_int;
372 pub fn H5Pset_external(
373 plist_id: hid_t, name: *const c_char, offset: off_t, size: hsize_t,
374 ) -> herr_t;
375 pub fn H5Pget_external_count(plist_id: hid_t) -> c_int;
376 pub fn H5Pget_external(
377 plist_id: hid_t, idx: c_uint, name_size: size_t, name: *mut c_char, offset: *mut off_t,
378 size: *mut hsize_t,
379 ) -> herr_t;
380 pub fn H5Pset_szip(plist_id: hid_t, options_mask: c_uint, pixels_per_block: c_uint) -> herr_t;
381 pub fn H5Pset_shuffle(plist_id: hid_t) -> herr_t;
382 pub fn H5Pset_nbit(plist_id: hid_t) -> herr_t;
383 pub fn H5Pset_scaleoffset(
384 plist_id: hid_t, scale_type: H5Z_SO_scale_type_t, scale_factor: c_int,
385 ) -> herr_t;
386 pub fn H5Pset_fill_value(plist_id: hid_t, type_id: hid_t, value: *const c_void) -> herr_t;
387 pub fn H5Pget_fill_value(plist_id: hid_t, type_id: hid_t, value: *mut c_void) -> herr_t;
388 pub fn H5Pfill_value_defined(plist: hid_t, status: *mut H5D_fill_value_t) -> herr_t;
389 pub fn H5Pset_alloc_time(plist_id: hid_t, alloc_time: H5D_alloc_time_t) -> herr_t;
390 pub fn H5Pget_alloc_time(plist_id: hid_t, alloc_time: *mut H5D_alloc_time_t) -> herr_t;
391 pub fn H5Pset_fill_time(plist_id: hid_t, fill_time: H5D_fill_time_t) -> herr_t;
392 pub fn H5Pget_fill_time(plist_id: hid_t, fill_time: *mut H5D_fill_time_t) -> herr_t;
393 pub fn H5Pset_chunk_cache(
394 dapl_id: hid_t, rdcc_nslots: size_t, rdcc_nbytes: size_t, rdcc_w0: c_double,
395 ) -> herr_t;
396 pub fn H5Pget_chunk_cache(
397 dapl_id: hid_t, rdcc_nslots: *mut size_t, rdcc_nbytes: *mut size_t, rdcc_w0: *mut c_double,
398 ) -> herr_t;
399 pub fn H5Pset_data_transform(plist_id: hid_t, expression: *const c_char) -> herr_t;
400 pub fn H5Pget_data_transform(plist_id: hid_t, expression: *mut c_char, size: size_t)
401 -> ssize_t;
402 pub fn H5Pset_buffer(
403 plist_id: hid_t, size: size_t, tconv: *mut c_void, bkg: *mut c_void,
404 ) -> herr_t;
405 pub fn H5Pget_buffer(plist_id: hid_t, tconv: *mut *mut c_void, bkg: *mut *mut c_void)
406 -> size_t;
407 pub fn H5Pset_edc_check(plist_id: hid_t, check: H5Z_EDC_t) -> herr_t;
408 pub fn H5Pget_edc_check(plist_id: hid_t) -> H5Z_EDC_t;
409 pub fn H5Pset_filter_callback(
410 plist_id: hid_t, func: H5Z_filter_func_t, op_data: *mut c_void,
411 ) -> herr_t;
412 pub fn H5Pset_btree_ratios(
413 plist_id: hid_t, left: c_double, middle: c_double, right: c_double,
414 ) -> herr_t;
415 pub fn H5Pget_btree_ratios(
416 plist_id: hid_t, left: *mut c_double, middle: *mut c_double, right: *mut c_double,
417 ) -> herr_t;
418 pub fn H5Pset_vlen_mem_manager(
419 plist_id: hid_t, alloc_func: H5MM_allocate_t, alloc_info: *mut c_void,
420 free_func: H5MM_free_t, free_info: *mut c_void,
421 ) -> herr_t;
422 pub fn H5Pget_vlen_mem_manager(
423 plist_id: hid_t, alloc_func: *mut H5MM_allocate_t, alloc_info: *mut *mut c_void,
424 free_func: *mut H5MM_free_t, free_info: *mut *mut c_void,
425 ) -> herr_t;
426 pub fn H5Pset_hyper_vector_size(fapl_id: hid_t, size: size_t) -> herr_t;
427 pub fn H5Pget_hyper_vector_size(fapl_id: hid_t, size: *mut size_t) -> herr_t;
428 pub fn H5Pset_type_conv_cb(
429 dxpl_id: hid_t, op: H5T_conv_except_func_t, operate_data: *mut c_void,
430 ) -> herr_t;
431 pub fn H5Pget_type_conv_cb(
432 dxpl_id: hid_t, op: *mut H5T_conv_except_func_t, operate_data: *mut *mut c_void,
433 ) -> herr_t;
434 pub fn H5Pset_create_intermediate_group(plist_id: hid_t, crt_intmd: c_uint) -> herr_t;
435 pub fn H5Pget_create_intermediate_group(plist_id: hid_t, crt_intmd: *mut c_uint) -> herr_t;
436 pub fn H5Pset_local_heap_size_hint(plist_id: hid_t, size_hint: size_t) -> herr_t;
437 pub fn H5Pget_local_heap_size_hint(plist_id: hid_t, size_hint: *mut size_t) -> herr_t;
438 pub fn H5Pset_link_phase_change(
439 plist_id: hid_t, max_compact: c_uint, min_dense: c_uint,
440 ) -> herr_t;
441 pub fn H5Pget_link_phase_change(
442 plist_id: hid_t, max_compact: *mut c_uint, min_dense: *mut c_uint,
443 ) -> herr_t;
444 pub fn H5Pset_est_link_info(
445 plist_id: hid_t, est_num_entries: c_uint, est_name_len: c_uint,
446 ) -> herr_t;
447 pub fn H5Pget_est_link_info(
448 plist_id: hid_t, est_num_entries: *mut c_uint, est_name_len: *mut c_uint,
449 ) -> herr_t;
450 pub fn H5Pset_link_creation_order(plist_id: hid_t, crt_order_flags: c_uint) -> herr_t;
451 pub fn H5Pget_link_creation_order(plist_id: hid_t, crt_order_flags: *mut c_uint) -> herr_t;
452 pub fn H5Pset_char_encoding(plist_id: hid_t, encoding: H5T_cset_t) -> herr_t;
453 pub fn H5Pget_char_encoding(plist_id: hid_t, encoding: *mut H5T_cset_t) -> herr_t;
454 pub fn H5Pset_nlinks(plist_id: hid_t, nlinks: size_t) -> herr_t;
455 pub fn H5Pget_nlinks(plist_id: hid_t, nlinks: *mut size_t) -> herr_t;
456 pub fn H5Pset_elink_prefix(plist_id: hid_t, prefix: *const c_char) -> herr_t;
457 pub fn H5Pget_elink_prefix(plist_id: hid_t, prefix: *mut c_char, size: size_t) -> ssize_t;
458 pub fn H5Pget_elink_fapl(lapl_id: hid_t) -> hid_t;
459 pub fn H5Pset_elink_fapl(lapl_id: hid_t, fapl_id: hid_t) -> herr_t;
460 pub fn H5Pset_elink_acc_flags(lapl_id: hid_t, flags: c_uint) -> herr_t;
461 pub fn H5Pget_elink_acc_flags(lapl_id: hid_t, flags: *mut c_uint) -> herr_t;
462 pub fn H5Pset_elink_cb(
463 lapl_id: hid_t, func: H5L_elink_traverse_t, op_data: *mut c_void,
464 ) -> herr_t;
465 pub fn H5Pget_elink_cb(
466 lapl_id: hid_t, func: *mut H5L_elink_traverse_t, op_data: *mut *mut c_void,
467 ) -> herr_t;
468 pub fn H5Pset_copy_object(plist_id: hid_t, crt_intmd: c_uint) -> herr_t;
469 pub fn H5Pget_copy_object(plist_id: hid_t, crt_intmd: *mut c_uint) -> herr_t;
470 #[cfg_attr(
471 feature = "1.10.0",
472 deprecated(note = "deprecated in HDF5 1.10.0, use H5Fget_info2()")
473 )]
474 pub fn H5Pget_version(
475 plist_id: hid_t, boot: *mut c_uint, freelist: *mut c_uint, stab: *mut c_uint,
476 shhdr: *mut c_uint,
477 ) -> herr_t;
478}
479
480extern "C" {
482 pub fn H5Pset_fapl_sec2(fapl_id: hid_t) -> herr_t;
484
485 pub fn H5Pset_fapl_core(fapl_id: hid_t, increment: size_t, backing_store: hbool_t) -> herr_t;
487 pub fn H5Pget_fapl_core(
488 fapl_id: hid_t, increment: *mut size_t, backing_store: *mut hbool_t,
489 ) -> herr_t;
490
491 pub fn H5Pset_fapl_stdio(fapl_id: hid_t) -> herr_t;
493
494 pub fn H5Pset_fapl_family(fapl_id: hid_t, memb_size: hsize_t, memb_fapl_id: hid_t) -> herr_t;
496 pub fn H5Pget_fapl_family(
497 fapl_id: hid_t, memb_size: *mut hsize_t, memb_fapl_id: *mut hid_t,
498 ) -> herr_t;
499 pub fn H5Pset_family_offset(fapl_id: hid_t, offset: hsize_t) -> herr_t;
500 pub fn H5Pget_family_offset(fapl_id: hid_t, offset: *mut hsize_t) -> herr_t;
501
502 pub fn H5Pset_fapl_multi(
504 fapl_id: hid_t, memb_map: *const H5FD_mem_t, memb_fapl: *const hid_t,
505 memb_name: *const *const c_char, memb_addr: *const haddr_t, relax: hbool_t,
506 ) -> herr_t;
507 pub fn H5Pget_fapl_multi(
508 fapl_id: hid_t, memb_map: *mut H5FD_mem_t, memb_fapl: *mut hid_t,
509 memb_name: *mut *const c_char, memb_addr: *mut haddr_t, relax: *mut hbool_t,
510 ) -> herr_t;
511 pub fn H5Pset_multi_type(fapl_id: hid_t, type_: H5FD_mem_t) -> herr_t;
512 pub fn H5Pget_multi_type(fapl_id: hid_t, type_: *mut H5FD_mem_t) -> herr_t;
513 pub fn H5Pset_fapl_split(
514 fapl_id: hid_t, meta_ext: *const c_char, meta_plist_id: hid_t, raw_ext: *const c_char,
515 raw_plist_id: hid_t,
516 ) -> herr_t;
517
518 pub fn H5Pset_fapl_log(
520 fapl_id: hid_t, logfile: *const c_char, flags: c_ulonglong, buf_size: size_t,
521 ) -> herr_t;
522
523 #[cfg(feature = "mpio")]
525 pub fn H5Pset_fapl_mpio(
526 fapl_id: hid_t, comm: mpi_sys::MPI_Comm, info: mpi_sys::MPI_Info,
527 ) -> herr_t;
528 #[cfg(feature = "mpio")]
529 pub fn H5Pget_fapl_mpio(
530 fapl_id: hid_t, comm: *mut mpi_sys::MPI_Comm, info: *mut mpi_sys::MPI_Info,
531 ) -> herr_t;
532
533 #[cfg(feature = "have-direct")]
535 pub fn H5Pset_fapl_direct(
536 fapl_id: hid_t, alignment: size_t, block_size: size_t, cbuf_size: size_t,
537 ) -> herr_t;
538 #[cfg(feature = "have-parallel")]
539 pub fn H5Pget_fapl_direct(
540 fapl_id: hid_t, alignment: *mut size_t, block_size: *mut size_t, cbuf_size: *mut size_t,
541 ) -> herr_t;
542}
543
544#[cfg(feature = "have-parallel")]
545mod mpio {
546 use crate::internal_prelude::*;
547
548 pub const H5D_ONE_LINK_CHUNK_IO_THRESHOLD: c_uint = 0;
549 pub const H5D_MULTI_CHUNK_IO_COL_THRESHOLD: c_uint = 60;
550
551 #[repr(C)]
552 #[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
553 pub enum H5FD_mpio_xfer_t {
554 H5FD_MPIO_INDEPENDENT = 0,
555 H5FD_MPIO_COLLECTIVE = 1,
556 }
557
558 #[repr(C)]
559 #[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
560 pub enum H5FD_mpio_chunk_opt_t {
561 H5FD_MPIO_CHUNK_DEFAULT = 0,
562 H5FD_MPIO_CHUNK_ONE_IO = 1,
563 H5FD_MPIO_CHUNK_MULTI_IO = 2,
564 }
565
566 #[repr(C)]
567 #[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
568 pub enum H5FD_mpio_collective_opt_t {
569 H5FD_MPIO_COLLECTIVE_IO = 0,
570 H5FD_MPIO_INDIVIDUAL_IO = 1,
571 }
572
573 extern "C" {
574 pub fn H5Pset_dxpl_mpio(dxpl_id: hid_t, xfer_mode: H5FD_mpio_xfer_t) -> herr_t;
575 pub fn H5Pget_dxpl_mpio(dxpl_id: hid_t, xfer_mode: *mut H5FD_mpio_xfer_t) -> herr_t;
576 pub fn H5Pset_dxpl_mpio_collective_opt(
577 dxpl_id: hid_t, opt_mode: H5FD_mpio_collective_opt_t,
578 ) -> herr_t;
579 pub fn H5Pset_dxpl_mpio_chunk_opt(
580 dxpl_id: hid_t, opt_mode: H5FD_mpio_chunk_opt_t,
581 ) -> herr_t;
582 pub fn H5Pset_dxpl_mpio_chunk_opt_num(dxpl_id: hid_t, num_chunk_per_proc: c_uint)
583 -> herr_t;
584 pub fn H5Pset_dxpl_mpio_chunk_opt_ratio(
585 dxpl_id: hid_t, percent_num_proc_per_chunk: c_uint,
586 ) -> herr_t;
587 }
588}
589
590#[cfg(feature = "have-parallel")]
591pub use self::mpio::*;
592
593#[cfg(target_os = "windows")]
594extern "C" {
595 pub fn H5Pset_fapl_windows(fapl_id: hid_t) -> herr_t;
596}
597
598#[cfg(feature = "1.8.7")]
599extern "C" {
600 pub fn H5Pset_elink_file_cache_size(plist_id: hid_t, efc_size: c_uint) -> herr_t;
601 pub fn H5Pget_elink_file_cache_size(plist_id: hid_t, efc_size: *mut c_uint) -> herr_t;
602}
603
604#[cfg(feature = "1.8.9")]
605extern "C" {
606 pub fn H5Pset_file_image(fapl_id: hid_t, buf_ptr: *mut c_void, buf_len: size_t) -> herr_t;
607 pub fn H5Pget_file_image(
608 fapl_id: hid_t, buf_ptr_ptr: *mut *mut c_void, buf_len_ptr: *mut size_t,
609 ) -> herr_t;
610 pub fn H5Pset_file_image_callbacks(
611 fapl_id: hid_t, callbacks_ptr: *mut H5FD_file_image_callbacks_t,
612 ) -> herr_t;
613 pub fn H5Pget_file_image_callbacks(
614 fapl_id: hid_t, callbacks_ptr: *mut H5FD_file_image_callbacks_t,
615 ) -> herr_t;
616 pub fn H5Pset_mcdt_search_cb(
617 plist_id: hid_t, func: H5O_mcdt_search_cb_t, op_data: *mut c_void,
618 ) -> herr_t;
619 pub fn H5Pget_mcdt_search_cb(
620 plist_id: hid_t, func: *mut H5O_mcdt_search_cb_t, op_data: *mut *mut c_void,
621 ) -> herr_t;
622 pub fn H5Padd_merge_committed_dtype_path(plist_id: hid_t, path: *const c_char) -> herr_t;
623 pub fn H5Pfree_merge_committed_dtype_paths(plist_id: hid_t) -> herr_t;
624}
625
626#[cfg(feature = "1.8.13")]
627extern "C" {
628 pub fn H5Pset_core_write_tracking(
629 fapl_id: hid_t, is_enabled: hbool_t, page_size: size_t,
630 ) -> herr_t;
631 pub fn H5Pget_core_write_tracking(
632 fapl_id: hid_t, is_enabled: *mut hbool_t, page_size: *mut size_t,
633 ) -> herr_t;
634}
635
636#[cfg(feature = "1.8.17")]
637extern "C" {
638 pub fn H5Pset_efile_prefix(dapl_id: hid_t, prefix: *const c_char) -> herr_t;
639 pub fn H5Pget_efile_prefix(dapl_id: hid_t, prefix: *const c_char, size: size_t) -> ssize_t;
640}
641
642#[cfg(feature = "1.10.0")]
643use crate::{
644 h5d::{H5D_append_cb_t, H5D_vds_view_t},
645 h5f::{H5F_file_space_type_t, H5F_flush_cb_t},
646};
647
648#[cfg(feature = "1.10.0")]
649extern "C" {
650 pub fn H5Pset_append_flush(
651 plist_id: hid_t, ndims: c_uint, boundary: *const hsize_t, func: H5D_append_cb_t,
652 udata: *mut c_void,
653 ) -> herr_t;
654 pub fn H5Pget_append_flush(
655 plist_id: hid_t, dims: c_uint, boundary: *mut hsize_t, func: *mut H5D_append_cb_t,
656 udata: *mut *mut c_void,
657 ) -> herr_t;
658 pub fn H5Pset_object_flush_cb(
659 plist_id: hid_t, func: H5F_flush_cb_t, udata: *mut c_void,
660 ) -> herr_t;
661 pub fn H5Pget_object_flush_cb(
662 plist_id: hid_t, func: *mut H5F_flush_cb_t, udata: *mut *mut c_void,
663 ) -> herr_t;
664 pub fn H5Pget_metadata_read_attempts(plist_id: hid_t, attempts: *mut c_uint) -> herr_t;
665 pub fn H5Pset_metadata_read_attempts(plist_id: hid_t, attempts: c_uint) -> herr_t;
666 pub fn H5Pset_mdc_log_options(
667 plist_id: hid_t, is_enabled: hbool_t, location: *const c_char, start_on_access: hbool_t,
668 ) -> herr_t;
669 pub fn H5Pget_mdc_log_options(
670 plist_id: hid_t, is_enabled: *mut hbool_t, location: *mut c_char,
671 location_size: *mut size_t, start_on_access: *mut hbool_t,
672 ) -> herr_t;
673 pub fn H5Fget_mdc_logging_status(
674 file_id: hid_t, is_enabled: *mut hbool_t, is_currently_logging: *mut hbool_t,
675 ) -> herr_t;
676 pub fn H5Pset_virtual(
677 dcpl_id: hid_t, vspace_id: hid_t, src_file_name: *const c_char,
678 src_dset_name: *const c_char, src_space_id: hid_t,
679 ) -> herr_t;
680 pub fn H5Pget_virtual_count(dcpl_id: hid_t, count: *mut size_t) -> herr_t;
681 pub fn H5Pget_virtual_vspace(dcpl_id: hid_t, index: size_t) -> hid_t;
682 pub fn H5Pget_virtual_srcspace(dcpl_id: hid_t, index: size_t) -> hid_t;
683 pub fn H5Pget_virtual_dsetname(
684 dcpl_id: hid_t, index: size_t, name: *mut c_char, size: size_t,
685 ) -> ssize_t;
686 pub fn H5Pget_virtual_filename(
687 dcpl_id: hid_t, index: size_t, name: *mut c_char, size: size_t,
688 ) -> ssize_t;
689 pub fn H5Pget_virtual_printf_gap(plist_id: hid_t, gap_size: *mut hsize_t) -> herr_t;
690 pub fn H5Pset_virtual_printf_gap(plist_id: hid_t, gap_size: hsize_t) -> herr_t;
691 pub fn H5Pget_virtual_view(plist_id: hid_t, view: *mut H5D_vds_view_t) -> herr_t;
692 pub fn H5Pset_virtual_view(plist_id: hid_t, view: H5D_vds_view_t) -> herr_t;
693 pub fn H5Pget_chunk_opts(plist_id: hid_t, opts: *mut c_uint) -> herr_t;
694 pub fn H5Pset_chunk_opts(plist_id: hid_t, opts: c_uint) -> herr_t;
695 #[cfg_attr(
696 feature = "1.12.0",
697 deprecated(note = "deprecated in HDF5 1.12.0, use H5Pencode2()")
698 )]
699 #[cfg_attr(not(feature = "1.12.0"), link_name = "H5Pencode")]
700 pub fn H5Pencode1(plist_id: hid_t, buf: *mut c_void, nalloc: *mut size_t) -> herr_t;
701 #[cfg(feature = "1.12.0")]
702 pub fn H5Pencode2(
703 plist_id: hid_t, buf: *mut c_void, nalloc: *mut size_t, fapl_id: hid_t,
704 ) -> herr_t;
705 pub fn H5Pdecode(buf: *const c_void) -> hid_t;
706 #[cfg_attr(
707 hdf5_1_10_1,
708 deprecated(note = "deprecated in HDF5 1.10.1, use H5Pset_file_space_strategy()")
709 )]
710 pub fn H5Pset_file_space(
711 plist_id: hid_t, strategy: H5F_file_space_type_t, threshold: hsize_t,
712 ) -> herr_t;
713 #[cfg_attr(
714 hdf5_1_10_1,
715 deprecated(note = "deprecated in HDF5 1.10.1, use H5Pget_file_space_strategy()")
716 )]
717 pub fn H5Pget_file_space(
718 plist_id: hid_t, strategy: *mut H5F_file_space_type_t, threshold: *mut hsize_t,
719 ) -> herr_t;
720}
721
722#[cfg(all(feature = "1.10.0", not(feature = "1.12.0")))]
723pub use self::H5Pencode1 as H5Pencode;
724#[cfg(feature = "1.12.0")]
725pub use self::H5Pencode2 as H5Pencode;
726
727#[cfg(all(feature = "1.10.0", feature = "have-parallel"))]
728extern "C" {
729 pub fn H5Pset_coll_metadata_write(fapl_id: hid_t, is_collective: hbool_t) -> herr_t;
730 pub fn H5Pget_coll_metadata_write(fapl_id: hid_t, is_collective: *mut hbool_t) -> herr_t;
731 pub fn H5Pset_all_coll_metadata_ops(accpl_id: hid_t, is_collective: hbool_t) -> herr_t;
732 pub fn H5Pget_all_coll_metadata_ops(accpl_id: hid_t, is_collective: *mut hbool_t) -> herr_t;
733}
734
735#[cfg(feature = "1.10.1")]
736extern "C" {
737 pub fn H5Pset_evict_on_close(fapl_id: hid_t, evict_on_close: hbool_t) -> herr_t;
738 pub fn H5Pget_evict_on_close(fapl_id: hid_t, evict_on_close: *mut hbool_t) -> herr_t;
739 pub fn H5Pset_mdc_image_config(
740 plist_id: hid_t, config_ptr: *const H5AC_cache_image_config_t,
741 ) -> herr_t;
742 pub fn H5Pget_mdc_image_config(
743 plist_id: hid_t, config_ptr: *mut H5AC_cache_image_config_t,
744 ) -> herr_t;
745 pub fn H5Pset_page_buffer_size(
746 plist_id: hid_t, buf_size: size_t, min_meta_per: c_uint, min_raw_per: c_uint,
747 ) -> herr_t;
748 pub fn H5Pget_page_buffer_size(
749 plist_id: hid_t, buf_size: *mut size_t, min_meta_per: *mut c_uint, min_raw_per: *mut c_uint,
750 ) -> herr_t;
751 pub fn H5Pset_file_space_strategy(
752 plist_id: hid_t, strategy: H5F_fspace_strategy_t, persist: hbool_t, threshold: hsize_t,
753 ) -> herr_t;
754 pub fn H5Pget_file_space_strategy(
755 plist_id: hid_t, strategy: *mut H5F_fspace_strategy_t, persist: *mut hbool_t,
756 threshold: *mut hsize_t,
757 ) -> herr_t;
758 pub fn H5Pset_file_space_page_size(plist_id: hid_t, fsp_size: hsize_t) -> herr_t;
759 pub fn H5Pget_file_space_page_size(plist_id: hid_t, fsp_size: *mut hsize_t) -> herr_t;
760}
761
762#[cfg(feature = "1.10.2")]
763extern "C" {
764 pub fn H5Pset_virtual_prefix(dapl_id: hid_t, prefix: *const c_char) -> herr_t;
765 pub fn H5Pget_virtual_prefix(dapl_id: hid_t, prefix: *mut c_char, size: size_t) -> ssize_t;
766}
767
768#[cfg(feature = "1.10.5")]
769extern "C" {
770 pub fn H5Pget_dset_no_attrs_hint(dcpl_id: hid_t, minimize: *mut hbool_t) -> herr_t;
771 pub fn H5Pset_dset_no_attrs_hint(dcpl_id: hid_t, minimize: hbool_t) -> herr_t;
772}
773
774#[cfg(any(all(feature = "1.10.7", not(feature = "1.12.0")), feature = "1.12.1"))]
775extern "C" {
776 pub fn H5Pget_file_locking(
777 fapl_id: hid_t, use_file_locking: *mut hbool_t, ignore_when_disable: *mut hbool_t,
778 ) -> herr_t;
779 pub fn H5Pset_file_locking(
780 fapl_id: hid_t, use_file_locking: hbool_t, ignore_when_disable: hbool_t,
781 ) -> herr_t;
782
783}
784
785#[cfg(feature = "1.12.0")]
786extern "C" {
787 pub fn H5Pget_vol_id(plist_id: hid_t, vol_id: *mut hid_t) -> herr_t;
788 pub fn H5Pget_vol_info(plist_id: hid_t, vol_info: *mut *mut c_void) -> herr_t;
789 pub fn H5Pset_vol(plist_id: hid_t, new_vol_id: hid_t, new_vol_id: *const c_void) -> herr_t;
790}