hdf5_sys/
h5e.rs

1//! Functions for handling errors that occur within HDF5
2use std::mem;
3
4pub use self::H5E_direction_t::*;
5pub use self::H5E_type_t::*;
6pub use {
7    H5E_auto2_t as H5E_auto_t, H5E_error2_t as H5E_error_t, H5E_walk2_t as H5E_walk_t,
8    H5Eclear2 as H5Eclear, H5Eget_auto2 as H5Eget_auto, H5Eprint2 as H5Eprint, H5Epush2 as H5Epush,
9    H5Eset_auto2 as H5Eset_auto, H5Ewalk2 as H5Ewalk,
10};
11
12use crate::internal_prelude::*;
13
14pub const H5E_DEFAULT: hid_t = 0;
15
16#[repr(C)]
17#[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
18pub enum H5E_type_t {
19    H5E_MAJOR = 0,
20    H5E_MINOR = 1,
21}
22
23pub type H5E_major_t = hid_t;
24pub type H5E_minor_t = hid_t;
25
26#[repr(C)]
27#[derive(Debug, Copy, Clone)]
28#[deprecated(note = "deprecated in HDF5 1.8.0, use H5E_error2_t")]
29pub struct H5E_error1_t {
30    maj_num: H5E_major_t,
31    min_num: H5E_minor_t,
32    func_name: *const c_char,
33    file_name: *const c_char,
34    line: c_uint,
35    desc: *const c_char,
36}
37
38#[repr(C)]
39#[derive(Debug, Copy, Clone)]
40pub struct H5E_error2_t {
41    pub cls_id: hid_t,
42    pub maj_num: hid_t,
43    pub min_num: hid_t,
44    pub line: c_uint,
45    pub func_name: *const c_char,
46    pub file_name: *const c_char,
47    pub desc: *const c_char,
48}
49
50impl Default for H5E_error2_t {
51    fn default() -> Self {
52        unsafe { mem::zeroed() }
53    }
54}
55
56#[repr(C)]
57#[derive(Copy, Clone, PartialEq, PartialOrd, Debug)]
58pub enum H5E_direction_t {
59    H5E_WALK_UPWARD = 0,
60    H5E_WALK_DOWNWARD = 1,
61}
62
63#[deprecated(note = "deprecated in HDF5 1.8.0, use H5E_walk2_t")]
64pub type H5E_walk1_t = Option<
65    unsafe extern "C" fn(n: c_int, err_desc: *mut H5E_error1_t, client_data: *mut c_void) -> herr_t,
66>;
67#[deprecated(note = "deprecated in HDF5 1.8.0, use H5E_auto2_t")]
68pub type H5E_auto1_t = Option<unsafe extern "C" fn(client_data: *mut c_void) -> herr_t>;
69
70pub type H5E_walk2_t = Option<
71    unsafe extern "C" fn(
72        n: c_uint,
73        err_desc: *const H5E_error2_t,
74        client_data: *mut c_void,
75    ) -> herr_t,
76>;
77pub type H5E_auto2_t =
78    Option<unsafe extern "C" fn(estack: hid_t, client_data: *mut c_void) -> herr_t>;
79
80extern "C" {
81    pub fn H5Eregister_class(
82        cls_name: *const c_char, lib_name: *const c_char, version: *const c_char,
83    ) -> hid_t;
84    pub fn H5Eunregister_class(class_id: hid_t) -> herr_t;
85    pub fn H5Eclose_msg(err_id: hid_t) -> herr_t;
86    pub fn H5Ecreate_msg(cls: hid_t, msg_type: H5E_type_t, msg: *const c_char) -> hid_t;
87    pub fn H5Ecreate_stack() -> hid_t;
88    pub fn H5Eget_current_stack() -> hid_t;
89    pub fn H5Eclose_stack(stack_id: hid_t) -> herr_t;
90    pub fn H5Eget_class_name(class_id: hid_t, name: *mut c_char, size: size_t) -> ssize_t;
91    pub fn H5Eset_current_stack(err_stack_id: hid_t) -> herr_t;
92    pub fn H5Epush2(
93        err_stack: hid_t, file: *const c_char, func: *const c_char, line: c_uint, cls_id: hid_t,
94        maj_id: hid_t, min_id: hid_t, msg: *const c_char, ...
95    ) -> herr_t;
96    pub fn H5Epop(err_stack: hid_t, count: size_t) -> herr_t;
97    pub fn H5Eprint2(err_stack: hid_t, stream: *mut FILE) -> herr_t;
98    pub fn H5Ewalk2(
99        err_stack: hid_t, direction: H5E_direction_t, func: H5E_walk2_t, client_data: *mut c_void,
100    ) -> herr_t;
101    pub fn H5Eget_auto2(
102        estack_id: hid_t, func: *mut H5E_auto2_t, client_data: *mut *mut c_void,
103    ) -> herr_t;
104    pub fn H5Eset_auto2(estack_id: hid_t, func: H5E_auto2_t, client_data: *mut c_void) -> herr_t;
105    pub fn H5Eclear2(err_stack: hid_t) -> herr_t;
106    pub fn H5Eauto_is_v2(err_stack: hid_t, is_stack: *mut c_uint) -> herr_t;
107    pub fn H5Eget_msg(
108        msg_id: hid_t, type_: *mut H5E_type_t, msg: *mut c_char, size: size_t,
109    ) -> ssize_t;
110    pub fn H5Eget_num(error_stack_id: hid_t) -> ssize_t;
111
112    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Epush2")]
113    pub fn H5Epush1(
114        file: *const c_char, func: *const c_char, line: c_uint, maj: H5E_major_t, min: H5E_minor_t,
115        str_: *const c_char,
116    ) -> herr_t;
117    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Eprint2")]
118    pub fn H5Eprint1(stream: *mut FILE) -> herr_t;
119    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Ewalk2")]
120    pub fn H5Ewalk1(
121        direction: H5E_direction_t, func: H5E_walk1_t, client_data: *mut c_void,
122    ) -> herr_t;
123    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Eget_auto2")]
124    pub fn H5Eget_auto1(func: *mut H5E_auto1_t, client_data: *mut *mut c_void) -> herr_t;
125    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Eset_auto2")]
126    pub fn H5Eset_auto1(func: H5E_auto1_t, client_data: *mut c_void) -> herr_t;
127    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Eclear2")]
128    pub fn H5Eclear1() -> herr_t;
129    #[deprecated(note = "deprecated in HDF5 1.8.0, use H5Eget_msg")]
130    pub fn H5Eget_major(maj: H5E_major_t) -> *mut c_char;
131    #[deprecated(note = "deprecated in HDF5 1.8.0")]
132    pub fn H5Eget_minor(min: H5E_minor_t) -> *mut c_char;
133}
134
135pub use self::globals::*;
136
137#[cfg(not(all(target_env = "msvc", not(feature = "static"))))]
138mod globals {
139    pub use crate::h5i::hid_t as id_t;
140
141    // Error class
142    extern_static!(H5E_ERR_CLS, H5E_ERR_CLS_g);
143
144    // Errors
145    extern_static!(H5E_DATASET, H5E_DATASET_g);
146    extern_static!(H5E_FUNC, H5E_FUNC_g);
147    extern_static!(H5E_STORAGE, H5E_STORAGE_g);
148    extern_static!(H5E_FILE, H5E_FILE_g);
149    extern_static!(H5E_SOHM, H5E_SOHM_g);
150    extern_static!(H5E_SYM, H5E_SYM_g);
151    extern_static!(H5E_PLUGIN, H5E_PLUGIN_g);
152    extern_static!(H5E_VFL, H5E_VFL_g);
153    extern_static!(H5E_INTERNAL, H5E_INTERNAL_g);
154    extern_static!(H5E_BTREE, H5E_BTREE_g);
155    extern_static!(H5E_REFERENCE, H5E_REFERENCE_g);
156    extern_static!(H5E_DATASPACE, H5E_DATASPACE_g);
157    extern_static!(H5E_RESOURCE, H5E_RESOURCE_g);
158    extern_static!(H5E_PLIST, H5E_PLIST_g);
159    extern_static!(H5E_LINK, H5E_LINK_g);
160    extern_static!(H5E_DATATYPE, H5E_DATATYPE_g);
161    extern_static!(H5E_RS, H5E_RS_g);
162    extern_static!(H5E_HEAP, H5E_HEAP_g);
163    extern_static!(H5E_OHDR, H5E_OHDR_g);
164    extern_static!(H5E_ATOM, H5E_ATOM_g);
165    extern_static!(H5E_ATTR, H5E_ATTR_g);
166    extern_static!(H5E_NONE_MAJOR, H5E_NONE_MAJOR_g);
167    extern_static!(H5E_IO, H5E_IO_g);
168    extern_static!(H5E_SLIST, H5E_SLIST_g);
169    extern_static!(H5E_EFL, H5E_EFL_g);
170    extern_static!(H5E_TST, H5E_TST_g);
171    extern_static!(H5E_ARGS, H5E_ARGS_g);
172    extern_static!(H5E_ERROR, H5E_ERROR_g);
173    extern_static!(H5E_PLINE, H5E_PLINE_g);
174    extern_static!(H5E_FSPACE, H5E_FSPACE_g);
175    extern_static!(H5E_CACHE, H5E_CACHE_g);
176    extern_static!(H5E_SEEKERROR, H5E_SEEKERROR_g);
177    extern_static!(H5E_READERROR, H5E_READERROR_g);
178    extern_static!(H5E_WRITEERROR, H5E_WRITEERROR_g);
179    extern_static!(H5E_CLOSEERROR, H5E_CLOSEERROR_g);
180    extern_static!(H5E_OVERFLOW, H5E_OVERFLOW_g);
181    extern_static!(H5E_FCNTL, H5E_FCNTL_g);
182    extern_static!(H5E_NOSPACE, H5E_NOSPACE_g);
183    extern_static!(H5E_CANTALLOC, H5E_CANTALLOC_g);
184    extern_static!(H5E_CANTCOPY, H5E_CANTCOPY_g);
185    extern_static!(H5E_CANTFREE, H5E_CANTFREE_g);
186    extern_static!(H5E_ALREADYEXISTS, H5E_ALREADYEXISTS_g);
187    extern_static!(H5E_CANTLOCK, H5E_CANTLOCK_g);
188    extern_static!(H5E_CANTUNLOCK, H5E_CANTUNLOCK_g);
189    extern_static!(H5E_CANTGC, H5E_CANTGC_g);
190    extern_static!(H5E_CANTGETSIZE, H5E_CANTGETSIZE_g);
191    extern_static!(H5E_OBJOPEN, H5E_OBJOPEN_g);
192    extern_static!(H5E_CANTRESTORE, H5E_CANTRESTORE_g);
193    extern_static!(H5E_CANTCOMPUTE, H5E_CANTCOMPUTE_g);
194    extern_static!(H5E_CANTEXTEND, H5E_CANTEXTEND_g);
195    extern_static!(H5E_CANTATTACH, H5E_CANTATTACH_g);
196    extern_static!(H5E_CANTUPDATE, H5E_CANTUPDATE_g);
197    extern_static!(H5E_CANTOPERATE, H5E_CANTOPERATE_g);
198    extern_static!(H5E_CANTINIT, H5E_CANTINIT_g);
199    extern_static!(H5E_ALREADYINIT, H5E_ALREADYINIT_g);
200    extern_static!(H5E_CANTRELEASE, H5E_CANTRELEASE_g);
201    extern_static!(H5E_CANTGET, H5E_CANTGET_g);
202    extern_static!(H5E_CANTSET, H5E_CANTSET_g);
203    extern_static!(H5E_DUPCLASS, H5E_DUPCLASS_g);
204    extern_static!(H5E_SETDISALLOWED, H5E_SETDISALLOWED_g);
205    extern_static!(H5E_CANTMERGE, H5E_CANTMERGE_g);
206    extern_static!(H5E_CANTREVIVE, H5E_CANTREVIVE_g);
207    extern_static!(H5E_CANTSHRINK, H5E_CANTSHRINK_g);
208    extern_static!(H5E_LINKCOUNT, H5E_LINKCOUNT_g);
209    extern_static!(H5E_VERSION, H5E_VERSION_g);
210    extern_static!(H5E_ALIGNMENT, H5E_ALIGNMENT_g);
211    extern_static!(H5E_BADMESG, H5E_BADMESG_g);
212    extern_static!(H5E_CANTDELETE, H5E_CANTDELETE_g);
213    extern_static!(H5E_BADITER, H5E_BADITER_g);
214    extern_static!(H5E_CANTPACK, H5E_CANTPACK_g);
215    extern_static!(H5E_CANTRESET, H5E_CANTRESET_g);
216    extern_static!(H5E_CANTRENAME, H5E_CANTRENAME_g);
217    extern_static!(H5E_SYSERRSTR, H5E_SYSERRSTR_g);
218    extern_static!(H5E_NOFILTER, H5E_NOFILTER_g);
219    extern_static!(H5E_CALLBACK, H5E_CALLBACK_g);
220    extern_static!(H5E_CANAPPLY, H5E_CANAPPLY_g);
221    extern_static!(H5E_SETLOCAL, H5E_SETLOCAL_g);
222    extern_static!(H5E_NOENCODER, H5E_NOENCODER_g);
223    extern_static!(H5E_CANTFILTER, H5E_CANTFILTER_g);
224    extern_static!(H5E_CANTOPENOBJ, H5E_CANTOPENOBJ_g);
225    extern_static!(H5E_CANTCLOSEOBJ, H5E_CANTCLOSEOBJ_g);
226    extern_static!(H5E_COMPLEN, H5E_COMPLEN_g);
227    extern_static!(H5E_PATH, H5E_PATH_g);
228    extern_static!(H5E_NONE_MINOR, H5E_NONE_MINOR_g);
229    extern_static!(H5E_OPENERROR, H5E_OPENERROR_g);
230    extern_static!(H5E_FILEEXISTS, H5E_FILEEXISTS_g);
231    extern_static!(H5E_FILEOPEN, H5E_FILEOPEN_g);
232    extern_static!(H5E_CANTCREATE, H5E_CANTCREATE_g);
233    extern_static!(H5E_CANTOPENFILE, H5E_CANTOPENFILE_g);
234    extern_static!(H5E_CANTCLOSEFILE, H5E_CANTCLOSEFILE_g);
235    extern_static!(H5E_NOTHDF5, H5E_NOTHDF5_g);
236    extern_static!(H5E_BADFILE, H5E_BADFILE_g);
237    extern_static!(H5E_TRUNCATED, H5E_TRUNCATED_g);
238    extern_static!(H5E_MOUNT, H5E_MOUNT_g);
239    extern_static!(H5E_BADATOM, H5E_BADATOM_g);
240    extern_static!(H5E_BADGROUP, H5E_BADGROUP_g);
241    extern_static!(H5E_CANTREGISTER, H5E_CANTREGISTER_g);
242    extern_static!(H5E_CANTINC, H5E_CANTINC_g);
243    extern_static!(H5E_CANTDEC, H5E_CANTDEC_g);
244    extern_static!(H5E_NOIDS, H5E_NOIDS_g);
245    extern_static!(H5E_CANTFLUSH, H5E_CANTFLUSH_g);
246    extern_static!(H5E_CANTSERIALIZE, H5E_CANTSERIALIZE_g);
247    extern_static!(H5E_CANTLOAD, H5E_CANTLOAD_g);
248    extern_static!(H5E_PROTECT, H5E_PROTECT_g);
249    extern_static!(H5E_NOTCACHED, H5E_NOTCACHED_g);
250    extern_static!(H5E_SYSTEM, H5E_SYSTEM_g);
251    extern_static!(H5E_CANTINS, H5E_CANTINS_g);
252    extern_static!(H5E_CANTPROTECT, H5E_CANTPROTECT_g);
253    extern_static!(H5E_CANTUNPROTECT, H5E_CANTUNPROTECT_g);
254    extern_static!(H5E_CANTPIN, H5E_CANTPIN_g);
255    extern_static!(H5E_CANTUNPIN, H5E_CANTUNPIN_g);
256    extern_static!(H5E_CANTMARKDIRTY, H5E_CANTMARKDIRTY_g);
257    extern_static!(H5E_CANTDIRTY, H5E_CANTDIRTY_g);
258    extern_static!(H5E_CANTEXPUNGE, H5E_CANTEXPUNGE_g);
259    extern_static!(H5E_CANTRESIZE, H5E_CANTRESIZE_g);
260    extern_static!(H5E_TRAVERSE, H5E_TRAVERSE_g);
261    extern_static!(H5E_NLINKS, H5E_NLINKS_g);
262    extern_static!(H5E_NOTREGISTERED, H5E_NOTREGISTERED_g);
263    extern_static!(H5E_CANTMOVE, H5E_CANTMOVE_g);
264    extern_static!(H5E_CANTSORT, H5E_CANTSORT_g);
265    extern_static!(H5E_MPI, H5E_MPI_g);
266    extern_static!(H5E_MPIERRSTR, H5E_MPIERRSTR_g);
267    extern_static!(H5E_CANTRECV, H5E_CANTRECV_g);
268    extern_static!(H5E_CANTCLIP, H5E_CANTCLIP_g);
269    extern_static!(H5E_CANTCOUNT, H5E_CANTCOUNT_g);
270    extern_static!(H5E_CANTSELECT, H5E_CANTSELECT_g);
271    extern_static!(H5E_CANTNEXT, H5E_CANTNEXT_g);
272    extern_static!(H5E_BADSELECT, H5E_BADSELECT_g);
273    extern_static!(H5E_CANTCOMPARE, H5E_CANTCOMPARE_g);
274    extern_static!(H5E_UNINITIALIZED, H5E_UNINITIALIZED_g);
275    extern_static!(H5E_UNSUPPORTED, H5E_UNSUPPORTED_g);
276    extern_static!(H5E_BADTYPE, H5E_BADTYPE_g);
277    extern_static!(H5E_BADRANGE, H5E_BADRANGE_g);
278    extern_static!(H5E_BADVALUE, H5E_BADVALUE_g);
279    extern_static!(H5E_NOTFOUND, H5E_NOTFOUND_g);
280    extern_static!(H5E_EXISTS, H5E_EXISTS_g);
281    extern_static!(H5E_CANTENCODE, H5E_CANTENCODE_g);
282    extern_static!(H5E_CANTDECODE, H5E_CANTDECODE_g);
283    extern_static!(H5E_CANTSPLIT, H5E_CANTSPLIT_g);
284    extern_static!(H5E_CANTREDISTRIBUTE, H5E_CANTREDISTRIBUTE_g);
285    extern_static!(H5E_CANTSWAP, H5E_CANTSWAP_g);
286    extern_static!(H5E_CANTINSERT, H5E_CANTINSERT_g);
287    extern_static!(H5E_CANTLIST, H5E_CANTLIST_g);
288    extern_static!(H5E_CANTMODIFY, H5E_CANTMODIFY_g);
289    extern_static!(H5E_CANTREMOVE, H5E_CANTREMOVE_g);
290    extern_static!(H5E_CANTCONVERT, H5E_CANTCONVERT_g);
291    extern_static!(H5E_BADSIZE, H5E_BADSIZE_g);
292    #[cfg(feature = "1.12.1")]
293    extern_static!(H5E_CANTLOCKFILE, H5E_CANTLOCKFILE_g);
294    #[cfg(feature = "1.12.1")]
295    extern_static!(H5E_CANTUNLOCKFILE, H5E_CANTUNLOCKFILE_g);
296    #[cfg(feature = "1.12.1")]
297    extern_static!(H5E_LIB, H5E_LIB_g);
298}
299
300#[cfg(all(target_env = "msvc", not(feature = "static")))]
301mod globals {
302    // dllimport hack
303    pub type id_t = usize;
304
305    // Error class
306    extern_static!(H5E_ERR_CLS, __imp_H5E_ERR_CLS_g);
307
308    // Errors
309    extern_static!(H5E_DATASET, __imp_H5E_DATASET_g);
310    extern_static!(H5E_FUNC, __imp_H5E_FUNC_g);
311    extern_static!(H5E_STORAGE, __imp_H5E_STORAGE_g);
312    extern_static!(H5E_FILE, __imp_H5E_FILE_g);
313    extern_static!(H5E_SOHM, __imp_H5E_SOHM_g);
314    extern_static!(H5E_SYM, __imp_H5E_SYM_g);
315    extern_static!(H5E_PLUGIN, __imp_H5E_PLUGIN_g);
316    extern_static!(H5E_VFL, __imp_H5E_VFL_g);
317    extern_static!(H5E_INTERNAL, __imp_H5E_INTERNAL_g);
318    extern_static!(H5E_BTREE, __imp_H5E_BTREE_g);
319    extern_static!(H5E_REFERENCE, __imp_H5E_REFERENCE_g);
320    extern_static!(H5E_DATASPACE, __imp_H5E_DATASPACE_g);
321    extern_static!(H5E_RESOURCE, __imp_H5E_RESOURCE_g);
322    extern_static!(H5E_PLIST, __imp_H5E_PLIST_g);
323    extern_static!(H5E_LINK, __imp_H5E_LINK_g);
324    extern_static!(H5E_DATATYPE, __imp_H5E_DATATYPE_g);
325    extern_static!(H5E_RS, __imp_H5E_RS_g);
326    extern_static!(H5E_HEAP, __imp_H5E_HEAP_g);
327    extern_static!(H5E_OHDR, __imp_H5E_OHDR_g);
328    extern_static!(H5E_ATOM, __imp_H5E_ATOM_g);
329    extern_static!(H5E_ATTR, __imp_H5E_ATTR_g);
330    extern_static!(H5E_NONE_MAJOR, __imp_H5E_NONE_MAJOR_g);
331    extern_static!(H5E_IO, __imp_H5E_IO_g);
332    extern_static!(H5E_SLIST, __imp_H5E_SLIST_g);
333    extern_static!(H5E_EFL, __imp_H5E_EFL_g);
334    extern_static!(H5E_TST, __imp_H5E_TST_g);
335    extern_static!(H5E_ARGS, __imp_H5E_ARGS_g);
336    extern_static!(H5E_ERROR, __imp_H5E_ERROR_g);
337    extern_static!(H5E_PLINE, __imp_H5E_PLINE_g);
338    extern_static!(H5E_FSPACE, __imp_H5E_FSPACE_g);
339    extern_static!(H5E_CACHE, __imp_H5E_CACHE_g);
340    extern_static!(H5E_SEEKERROR, __imp_H5E_SEEKERROR_g);
341    extern_static!(H5E_READERROR, __imp_H5E_READERROR_g);
342    extern_static!(H5E_WRITEERROR, __imp_H5E_WRITEERROR_g);
343    extern_static!(H5E_CLOSEERROR, __imp_H5E_CLOSEERROR_g);
344    extern_static!(H5E_OVERFLOW, __imp_H5E_OVERFLOW_g);
345    extern_static!(H5E_FCNTL, __imp_H5E_FCNTL_g);
346    extern_static!(H5E_NOSPACE, __imp_H5E_NOSPACE_g);
347    extern_static!(H5E_CANTALLOC, __imp_H5E_CANTALLOC_g);
348    extern_static!(H5E_CANTCOPY, __imp_H5E_CANTCOPY_g);
349    extern_static!(H5E_CANTFREE, __imp_H5E_CANTFREE_g);
350    extern_static!(H5E_ALREADYEXISTS, __imp_H5E_ALREADYEXISTS_g);
351    extern_static!(H5E_CANTLOCK, __imp_H5E_CANTLOCK_g);
352    extern_static!(H5E_CANTUNLOCK, __imp_H5E_CANTUNLOCK_g);
353    extern_static!(H5E_CANTGC, __imp_H5E_CANTGC_g);
354    extern_static!(H5E_CANTGETSIZE, __imp_H5E_CANTGETSIZE_g);
355    extern_static!(H5E_OBJOPEN, __imp_H5E_OBJOPEN_g);
356    extern_static!(H5E_CANTRESTORE, __imp_H5E_CANTRESTORE_g);
357    extern_static!(H5E_CANTCOMPUTE, __imp_H5E_CANTCOMPUTE_g);
358    extern_static!(H5E_CANTEXTEND, __imp_H5E_CANTEXTEND_g);
359    extern_static!(H5E_CANTATTACH, __imp_H5E_CANTATTACH_g);
360    extern_static!(H5E_CANTUPDATE, __imp_H5E_CANTUPDATE_g);
361    extern_static!(H5E_CANTOPERATE, __imp_H5E_CANTOPERATE_g);
362    extern_static!(H5E_CANTINIT, __imp_H5E_CANTINIT_g);
363    extern_static!(H5E_ALREADYINIT, __imp_H5E_ALREADYINIT_g);
364    extern_static!(H5E_CANTRELEASE, __imp_H5E_CANTRELEASE_g);
365    extern_static!(H5E_CANTGET, __imp_H5E_CANTGET_g);
366    extern_static!(H5E_CANTSET, __imp_H5E_CANTSET_g);
367    extern_static!(H5E_DUPCLASS, __imp_H5E_DUPCLASS_g);
368    extern_static!(H5E_SETDISALLOWED, __imp_H5E_SETDISALLOWED_g);
369    extern_static!(H5E_CANTMERGE, __imp_H5E_CANTMERGE_g);
370    extern_static!(H5E_CANTREVIVE, __imp_H5E_CANTREVIVE_g);
371    extern_static!(H5E_CANTSHRINK, __imp_H5E_CANTSHRINK_g);
372    extern_static!(H5E_LINKCOUNT, __imp_H5E_LINKCOUNT_g);
373    extern_static!(H5E_VERSION, __imp_H5E_VERSION_g);
374    extern_static!(H5E_ALIGNMENT, __imp_H5E_ALIGNMENT_g);
375    extern_static!(H5E_BADMESG, __imp_H5E_BADMESG_g);
376    extern_static!(H5E_CANTDELETE, __imp_H5E_CANTDELETE_g);
377    extern_static!(H5E_BADITER, __imp_H5E_BADITER_g);
378    extern_static!(H5E_CANTPACK, __imp_H5E_CANTPACK_g);
379    extern_static!(H5E_CANTRESET, __imp_H5E_CANTRESET_g);
380    extern_static!(H5E_CANTRENAME, __imp_H5E_CANTRENAME_g);
381    extern_static!(H5E_SYSERRSTR, __imp_H5E_SYSERRSTR_g);
382    extern_static!(H5E_NOFILTER, __imp_H5E_NOFILTER_g);
383    extern_static!(H5E_CALLBACK, __imp_H5E_CALLBACK_g);
384    extern_static!(H5E_CANAPPLY, __imp_H5E_CANAPPLY_g);
385    extern_static!(H5E_SETLOCAL, __imp_H5E_SETLOCAL_g);
386    extern_static!(H5E_NOENCODER, __imp_H5E_NOENCODER_g);
387    extern_static!(H5E_CANTFILTER, __imp_H5E_CANTFILTER_g);
388    extern_static!(H5E_CANTOPENOBJ, __imp_H5E_CANTOPENOBJ_g);
389    extern_static!(H5E_CANTCLOSEOBJ, __imp_H5E_CANTCLOSEOBJ_g);
390    extern_static!(H5E_COMPLEN, __imp_H5E_COMPLEN_g);
391    extern_static!(H5E_PATH, __imp_H5E_PATH_g);
392    extern_static!(H5E_NONE_MINOR, __imp_H5E_NONE_MINOR_g);
393    extern_static!(H5E_OPENERROR, __imp_H5E_OPENERROR_g);
394    extern_static!(H5E_FILEEXISTS, __imp_H5E_FILEEXISTS_g);
395    extern_static!(H5E_FILEOPEN, __imp_H5E_FILEOPEN_g);
396    extern_static!(H5E_CANTCREATE, __imp_H5E_CANTCREATE_g);
397    extern_static!(H5E_CANTOPENFILE, __imp_H5E_CANTOPENFILE_g);
398    extern_static!(H5E_CANTCLOSEFILE, __imp_H5E_CANTCLOSEFILE_g);
399    extern_static!(H5E_NOTHDF5, __imp_H5E_NOTHDF5_g);
400    extern_static!(H5E_BADFILE, __imp_H5E_BADFILE_g);
401    extern_static!(H5E_TRUNCATED, __imp_H5E_TRUNCATED_g);
402    extern_static!(H5E_MOUNT, __imp_H5E_MOUNT_g);
403    extern_static!(H5E_BADATOM, __imp_H5E_BADATOM_g);
404    extern_static!(H5E_BADGROUP, __imp_H5E_BADGROUP_g);
405    extern_static!(H5E_CANTREGISTER, __imp_H5E_CANTREGISTER_g);
406    extern_static!(H5E_CANTINC, __imp_H5E_CANTINC_g);
407    extern_static!(H5E_CANTDEC, __imp_H5E_CANTDEC_g);
408    extern_static!(H5E_NOIDS, __imp_H5E_NOIDS_g);
409    extern_static!(H5E_CANTFLUSH, __imp_H5E_CANTFLUSH_g);
410    extern_static!(H5E_CANTSERIALIZE, __imp_H5E_CANTSERIALIZE_g);
411    extern_static!(H5E_CANTLOAD, __imp_H5E_CANTLOAD_g);
412    extern_static!(H5E_PROTECT, __imp_H5E_PROTECT_g);
413    extern_static!(H5E_NOTCACHED, __imp_H5E_NOTCACHED_g);
414    extern_static!(H5E_SYSTEM, __imp_H5E_SYSTEM_g);
415    extern_static!(H5E_CANTINS, __imp_H5E_CANTINS_g);
416    extern_static!(H5E_CANTPROTECT, __imp_H5E_CANTPROTECT_g);
417    extern_static!(H5E_CANTUNPROTECT, __imp_H5E_CANTUNPROTECT_g);
418    extern_static!(H5E_CANTPIN, __imp_H5E_CANTPIN_g);
419    extern_static!(H5E_CANTUNPIN, __imp_H5E_CANTUNPIN_g);
420    extern_static!(H5E_CANTMARKDIRTY, __imp_H5E_CANTMARKDIRTY_g);
421    extern_static!(H5E_CANTDIRTY, __imp_H5E_CANTDIRTY_g);
422    extern_static!(H5E_CANTEXPUNGE, __imp_H5E_CANTEXPUNGE_g);
423    extern_static!(H5E_CANTRESIZE, __imp_H5E_CANTRESIZE_g);
424    extern_static!(H5E_TRAVERSE, __imp_H5E_TRAVERSE_g);
425    extern_static!(H5E_NLINKS, __imp_H5E_NLINKS_g);
426    extern_static!(H5E_NOTREGISTERED, __imp_H5E_NOTREGISTERED_g);
427    extern_static!(H5E_CANTMOVE, __imp_H5E_CANTMOVE_g);
428    extern_static!(H5E_CANTSORT, __imp_H5E_CANTSORT_g);
429    extern_static!(H5E_MPI, __imp_H5E_MPI_g);
430    extern_static!(H5E_MPIERRSTR, __imp_H5E_MPIERRSTR_g);
431    extern_static!(H5E_CANTRECV, __imp_H5E_CANTRECV_g);
432    extern_static!(H5E_CANTCLIP, __imp_H5E_CANTCLIP_g);
433    extern_static!(H5E_CANTCOUNT, __imp_H5E_CANTCOUNT_g);
434    extern_static!(H5E_CANTSELECT, __imp_H5E_CANTSELECT_g);
435    extern_static!(H5E_CANTNEXT, __imp_H5E_CANTNEXT_g);
436    extern_static!(H5E_BADSELECT, __imp_H5E_BADSELECT_g);
437    extern_static!(H5E_CANTCOMPARE, __imp_H5E_CANTCOMPARE_g);
438    extern_static!(H5E_UNINITIALIZED, __imp_H5E_UNINITIALIZED_g);
439    extern_static!(H5E_UNSUPPORTED, __imp_H5E_UNSUPPORTED_g);
440    extern_static!(H5E_BADTYPE, __imp_H5E_BADTYPE_g);
441    extern_static!(H5E_BADRANGE, __imp_H5E_BADRANGE_g);
442    extern_static!(H5E_BADVALUE, __imp_H5E_BADVALUE_g);
443    extern_static!(H5E_NOTFOUND, __imp_H5E_NOTFOUND_g);
444    extern_static!(H5E_EXISTS, __imp_H5E_EXISTS_g);
445    extern_static!(H5E_CANTENCODE, __imp_H5E_CANTENCODE_g);
446    extern_static!(H5E_CANTDECODE, __imp_H5E_CANTDECODE_g);
447    extern_static!(H5E_CANTSPLIT, __imp_H5E_CANTSPLIT_g);
448    extern_static!(H5E_CANTREDISTRIBUTE, __imp_H5E_CANTREDISTRIBUTE_g);
449    extern_static!(H5E_CANTSWAP, __imp_H5E_CANTSWAP_g);
450    extern_static!(H5E_CANTINSERT, __imp_H5E_CANTINSERT_g);
451    extern_static!(H5E_CANTLIST, __imp_H5E_CANTLIST_g);
452    extern_static!(H5E_CANTMODIFY, __imp_H5E_CANTMODIFY_g);
453    extern_static!(H5E_CANTREMOVE, __imp_H5E_CANTREMOVE_g);
454    extern_static!(H5E_CANTCONVERT, __imp_H5E_CANTCONVERT_g);
455    extern_static!(H5E_BADSIZE, __imp_H5E_BADSIZE_g);
456    #[cfg(feature = "1.12.1")]
457    extern_static!(H5E_CANTLOCKFILE, __imp_H5E_CANTLOCKFILE_g);
458    #[cfg(feature = "1.12.1")]
459    extern_static!(H5E_CANTUNLOCKFILE, __imp_H5E_CANTUNLOCKFILE_g);
460    #[cfg(feature = "1.12.1")]
461    extern_static!(H5E_LIB, __imp_H5E_LIB_g);
462}