lib60870_sys/
bindings_pregenerated.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3#[repr(C)]
4#[derive(Copy, Clone, Debug, Default, Eq, Hash, Ord, PartialEq, PartialOrd)]
5pub struct __BindgenBitfieldUnit<Storage> {
6    storage: Storage,
7}
8impl<Storage> __BindgenBitfieldUnit<Storage> {
9    #[inline]
10    pub const fn new(storage: Storage) -> Self {
11        Self { storage }
12    }
13}
14impl<Storage> __BindgenBitfieldUnit<Storage>
15where
16    Storage: AsRef<[u8]> + AsMut<[u8]>,
17{
18    #[inline]
19    fn extract_bit(byte: u8, index: usize) -> bool {
20        let bit_index = if cfg!(target_endian = "big") {
21            7 - (index % 8)
22        } else {
23            index % 8
24        };
25        let mask = 1 << bit_index;
26        byte & mask == mask
27    }
28    #[inline]
29    pub fn get_bit(&self, index: usize) -> bool {
30        debug_assert!(index / 8 < self.storage.as_ref().len());
31        let byte_index = index / 8;
32        let byte = self.storage.as_ref()[byte_index];
33        Self::extract_bit(byte, index)
34    }
35    #[inline]
36    pub unsafe fn raw_get_bit(this: *const Self, index: usize) -> bool {
37        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
38        let byte_index = index / 8;
39        let byte = unsafe {
40            *(core::ptr::addr_of!((*this).storage) as *const u8).offset(byte_index as isize)
41        };
42        Self::extract_bit(byte, index)
43    }
44    #[inline]
45    fn change_bit(byte: u8, index: usize, val: bool) -> u8 {
46        let bit_index = if cfg!(target_endian = "big") {
47            7 - (index % 8)
48        } else {
49            index % 8
50        };
51        let mask = 1 << bit_index;
52        if val { byte | mask } else { byte & !mask }
53    }
54    #[inline]
55    pub fn set_bit(&mut self, index: usize, val: bool) {
56        debug_assert!(index / 8 < self.storage.as_ref().len());
57        let byte_index = index / 8;
58        let byte = &mut self.storage.as_mut()[byte_index];
59        *byte = Self::change_bit(*byte, index, val);
60    }
61    #[inline]
62    pub unsafe fn raw_set_bit(this: *mut Self, index: usize, val: bool) {
63        debug_assert!(index / 8 < core::mem::size_of::<Storage>());
64        let byte_index = index / 8;
65        let byte = unsafe {
66            (core::ptr::addr_of_mut!((*this).storage) as *mut u8).offset(byte_index as isize)
67        };
68        unsafe { *byte = Self::change_bit(*byte, index, val) };
69    }
70    #[inline]
71    pub fn get(&self, bit_offset: usize, bit_width: u8) -> u64 {
72        debug_assert!(bit_width <= 64);
73        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
74        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
75        let mut val = 0;
76        for i in 0..(bit_width as usize) {
77            if self.get_bit(i + bit_offset) {
78                let index = if cfg!(target_endian = "big") {
79                    bit_width as usize - 1 - i
80                } else {
81                    i
82                };
83                val |= 1 << index;
84            }
85        }
86        val
87    }
88    #[inline]
89    pub unsafe fn raw_get(this: *const Self, bit_offset: usize, bit_width: u8) -> u64 {
90        debug_assert!(bit_width <= 64);
91        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
92        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
93        let mut val = 0;
94        for i in 0..(bit_width as usize) {
95            if unsafe { Self::raw_get_bit(this, i + bit_offset) } {
96                let index = if cfg!(target_endian = "big") {
97                    bit_width as usize - 1 - i
98                } else {
99                    i
100                };
101                val |= 1 << index;
102            }
103        }
104        val
105    }
106    #[inline]
107    pub fn set(&mut self, bit_offset: usize, bit_width: u8, val: u64) {
108        debug_assert!(bit_width <= 64);
109        debug_assert!(bit_offset / 8 < self.storage.as_ref().len());
110        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= self.storage.as_ref().len());
111        for i in 0..(bit_width as usize) {
112            let mask = 1 << i;
113            let val_bit_is_set = val & mask == mask;
114            let index = if cfg!(target_endian = "big") {
115                bit_width as usize - 1 - i
116            } else {
117                i
118            };
119            self.set_bit(index + bit_offset, val_bit_is_set);
120        }
121    }
122    #[inline]
123    pub unsafe fn raw_set(this: *mut Self, bit_offset: usize, bit_width: u8, val: u64) {
124        debug_assert!(bit_width <= 64);
125        debug_assert!(bit_offset / 8 < core::mem::size_of::<Storage>());
126        debug_assert!((bit_offset + (bit_width as usize)) / 8 <= core::mem::size_of::<Storage>());
127        for i in 0..(bit_width as usize) {
128            let mask = 1 << i;
129            let val_bit_is_set = val & mask == mask;
130            let index = if cfg!(target_endian = "big") {
131                bit_width as usize - 1 - i
132            } else {
133                i
134            };
135            unsafe { Self::raw_set_bit(this, index + bit_offset, val_bit_is_set) };
136        }
137    }
138}
139pub const __API_TO_BE_DEPRECATED: u32 = 100000;
140pub const __API_TO_BE_DEPRECATED_MACOS: u32 = 100000;
141pub const __API_TO_BE_DEPRECATED_MACOSAPPLICATIONEXTENSION: u32 = 100000;
142pub const __API_TO_BE_DEPRECATED_IOS: u32 = 100000;
143pub const __API_TO_BE_DEPRECATED_IOSAPPLICATIONEXTENSION: u32 = 100000;
144pub const __API_TO_BE_DEPRECATED_MACCATALYST: u32 = 100000;
145pub const __API_TO_BE_DEPRECATED_MACCATALYSTAPPLICATIONEXTENSION: u32 = 100000;
146pub const __API_TO_BE_DEPRECATED_WATCHOS: u32 = 100000;
147pub const __API_TO_BE_DEPRECATED_WATCHOSAPPLICATIONEXTENSION: u32 = 100000;
148pub const __API_TO_BE_DEPRECATED_TVOS: u32 = 100000;
149pub const __API_TO_BE_DEPRECATED_TVOSAPPLICATIONEXTENSION: u32 = 100000;
150pub const __API_TO_BE_DEPRECATED_DRIVERKIT: u32 = 100000;
151pub const __API_TO_BE_DEPRECATED_VISIONOS: u32 = 100000;
152pub const __API_TO_BE_DEPRECATED_VISIONOSAPPLICATIONEXTENSION: u32 = 100000;
153pub const __API_TO_BE_DEPRECATED_KERNELKIT: u32 = 100000;
154pub const __MAC_10_0: u32 = 1000;
155pub const __MAC_10_1: u32 = 1010;
156pub const __MAC_10_2: u32 = 1020;
157pub const __MAC_10_3: u32 = 1030;
158pub const __MAC_10_4: u32 = 1040;
159pub const __MAC_10_5: u32 = 1050;
160pub const __MAC_10_6: u32 = 1060;
161pub const __MAC_10_7: u32 = 1070;
162pub const __MAC_10_8: u32 = 1080;
163pub const __MAC_10_9: u32 = 1090;
164pub const __MAC_10_10: u32 = 101000;
165pub const __MAC_10_10_2: u32 = 101002;
166pub const __MAC_10_10_3: u32 = 101003;
167pub const __MAC_10_11: u32 = 101100;
168pub const __MAC_10_11_2: u32 = 101102;
169pub const __MAC_10_11_3: u32 = 101103;
170pub const __MAC_10_11_4: u32 = 101104;
171pub const __MAC_10_12: u32 = 101200;
172pub const __MAC_10_12_1: u32 = 101201;
173pub const __MAC_10_12_2: u32 = 101202;
174pub const __MAC_10_12_4: u32 = 101204;
175pub const __MAC_10_13: u32 = 101300;
176pub const __MAC_10_13_1: u32 = 101301;
177pub const __MAC_10_13_2: u32 = 101302;
178pub const __MAC_10_13_4: u32 = 101304;
179pub const __MAC_10_14: u32 = 101400;
180pub const __MAC_10_14_1: u32 = 101401;
181pub const __MAC_10_14_4: u32 = 101404;
182pub const __MAC_10_14_5: u32 = 101405;
183pub const __MAC_10_14_6: u32 = 101406;
184pub const __MAC_10_15: u32 = 101500;
185pub const __MAC_10_15_1: u32 = 101501;
186pub const __MAC_10_15_4: u32 = 101504;
187pub const __MAC_10_16: u32 = 101600;
188pub const __MAC_11_0: u32 = 110000;
189pub const __MAC_11_1: u32 = 110100;
190pub const __MAC_11_3: u32 = 110300;
191pub const __MAC_11_4: u32 = 110400;
192pub const __MAC_11_5: u32 = 110500;
193pub const __MAC_11_6: u32 = 110600;
194pub const __MAC_12_0: u32 = 120000;
195pub const __MAC_12_1: u32 = 120100;
196pub const __MAC_12_2: u32 = 120200;
197pub const __MAC_12_3: u32 = 120300;
198pub const __MAC_12_4: u32 = 120400;
199pub const __MAC_12_5: u32 = 120500;
200pub const __MAC_12_6: u32 = 120600;
201pub const __MAC_12_7: u32 = 120700;
202pub const __MAC_13_0: u32 = 130000;
203pub const __MAC_13_1: u32 = 130100;
204pub const __MAC_13_2: u32 = 130200;
205pub const __MAC_13_3: u32 = 130300;
206pub const __MAC_13_4: u32 = 130400;
207pub const __MAC_13_5: u32 = 130500;
208pub const __MAC_13_6: u32 = 130600;
209pub const __MAC_13_7: u32 = 130700;
210pub const __MAC_14_0: u32 = 140000;
211pub const __MAC_14_1: u32 = 140100;
212pub const __MAC_14_2: u32 = 140200;
213pub const __MAC_14_3: u32 = 140300;
214pub const __MAC_14_4: u32 = 140400;
215pub const __MAC_14_5: u32 = 140500;
216pub const __MAC_14_6: u32 = 140600;
217pub const __MAC_14_7: u32 = 140700;
218pub const __MAC_15_0: u32 = 150000;
219pub const __MAC_15_1: u32 = 150100;
220pub const __MAC_15_2: u32 = 150200;
221pub const __MAC_15_3: u32 = 150300;
222pub const __MAC_15_4: u32 = 150400;
223pub const __MAC_15_5: u32 = 150500;
224pub const __MAC_15_6: u32 = 150600;
225pub const __MAC_16_0: u32 = 160000;
226pub const __MAC_26_0: u32 = 260000;
227pub const __MAC_26_1: u32 = 260100;
228pub const __IPHONE_2_0: u32 = 20000;
229pub const __IPHONE_2_1: u32 = 20100;
230pub const __IPHONE_2_2: u32 = 20200;
231pub const __IPHONE_3_0: u32 = 30000;
232pub const __IPHONE_3_1: u32 = 30100;
233pub const __IPHONE_3_2: u32 = 30200;
234pub const __IPHONE_4_0: u32 = 40000;
235pub const __IPHONE_4_1: u32 = 40100;
236pub const __IPHONE_4_2: u32 = 40200;
237pub const __IPHONE_4_3: u32 = 40300;
238pub const __IPHONE_5_0: u32 = 50000;
239pub const __IPHONE_5_1: u32 = 50100;
240pub const __IPHONE_6_0: u32 = 60000;
241pub const __IPHONE_6_1: u32 = 60100;
242pub const __IPHONE_7_0: u32 = 70000;
243pub const __IPHONE_7_1: u32 = 70100;
244pub const __IPHONE_8_0: u32 = 80000;
245pub const __IPHONE_8_1: u32 = 80100;
246pub const __IPHONE_8_2: u32 = 80200;
247pub const __IPHONE_8_3: u32 = 80300;
248pub const __IPHONE_8_4: u32 = 80400;
249pub const __IPHONE_9_0: u32 = 90000;
250pub const __IPHONE_9_1: u32 = 90100;
251pub const __IPHONE_9_2: u32 = 90200;
252pub const __IPHONE_9_3: u32 = 90300;
253pub const __IPHONE_10_0: u32 = 100000;
254pub const __IPHONE_10_1: u32 = 100100;
255pub const __IPHONE_10_2: u32 = 100200;
256pub const __IPHONE_10_3: u32 = 100300;
257pub const __IPHONE_11_0: u32 = 110000;
258pub const __IPHONE_11_1: u32 = 110100;
259pub const __IPHONE_11_2: u32 = 110200;
260pub const __IPHONE_11_3: u32 = 110300;
261pub const __IPHONE_11_4: u32 = 110400;
262pub const __IPHONE_12_0: u32 = 120000;
263pub const __IPHONE_12_1: u32 = 120100;
264pub const __IPHONE_12_2: u32 = 120200;
265pub const __IPHONE_12_3: u32 = 120300;
266pub const __IPHONE_12_4: u32 = 120400;
267pub const __IPHONE_13_0: u32 = 130000;
268pub const __IPHONE_13_1: u32 = 130100;
269pub const __IPHONE_13_2: u32 = 130200;
270pub const __IPHONE_13_3: u32 = 130300;
271pub const __IPHONE_13_4: u32 = 130400;
272pub const __IPHONE_13_5: u32 = 130500;
273pub const __IPHONE_13_6: u32 = 130600;
274pub const __IPHONE_13_7: u32 = 130700;
275pub const __IPHONE_14_0: u32 = 140000;
276pub const __IPHONE_14_1: u32 = 140100;
277pub const __IPHONE_14_2: u32 = 140200;
278pub const __IPHONE_14_3: u32 = 140300;
279pub const __IPHONE_14_5: u32 = 140500;
280pub const __IPHONE_14_6: u32 = 140600;
281pub const __IPHONE_14_7: u32 = 140700;
282pub const __IPHONE_14_8: u32 = 140800;
283pub const __IPHONE_15_0: u32 = 150000;
284pub const __IPHONE_15_1: u32 = 150100;
285pub const __IPHONE_15_2: u32 = 150200;
286pub const __IPHONE_15_3: u32 = 150300;
287pub const __IPHONE_15_4: u32 = 150400;
288pub const __IPHONE_15_5: u32 = 150500;
289pub const __IPHONE_15_6: u32 = 150600;
290pub const __IPHONE_15_7: u32 = 150700;
291pub const __IPHONE_15_8: u32 = 150800;
292pub const __IPHONE_16_0: u32 = 160000;
293pub const __IPHONE_16_1: u32 = 160100;
294pub const __IPHONE_16_2: u32 = 160200;
295pub const __IPHONE_16_3: u32 = 160300;
296pub const __IPHONE_16_4: u32 = 160400;
297pub const __IPHONE_16_5: u32 = 160500;
298pub const __IPHONE_16_6: u32 = 160600;
299pub const __IPHONE_16_7: u32 = 160700;
300pub const __IPHONE_17_0: u32 = 170000;
301pub const __IPHONE_17_1: u32 = 170100;
302pub const __IPHONE_17_2: u32 = 170200;
303pub const __IPHONE_17_3: u32 = 170300;
304pub const __IPHONE_17_4: u32 = 170400;
305pub const __IPHONE_17_5: u32 = 170500;
306pub const __IPHONE_17_6: u32 = 170600;
307pub const __IPHONE_17_7: u32 = 170700;
308pub const __IPHONE_18_0: u32 = 180000;
309pub const __IPHONE_18_1: u32 = 180100;
310pub const __IPHONE_18_2: u32 = 180200;
311pub const __IPHONE_18_3: u32 = 180300;
312pub const __IPHONE_18_4: u32 = 180400;
313pub const __IPHONE_18_5: u32 = 180500;
314pub const __IPHONE_18_6: u32 = 180600;
315pub const __IPHONE_19_0: u32 = 190000;
316pub const __IPHONE_26_0: u32 = 260000;
317pub const __IPHONE_26_1: u32 = 260100;
318pub const __WATCHOS_1_0: u32 = 10000;
319pub const __WATCHOS_2_0: u32 = 20000;
320pub const __WATCHOS_2_1: u32 = 20100;
321pub const __WATCHOS_2_2: u32 = 20200;
322pub const __WATCHOS_3_0: u32 = 30000;
323pub const __WATCHOS_3_1: u32 = 30100;
324pub const __WATCHOS_3_1_1: u32 = 30101;
325pub const __WATCHOS_3_2: u32 = 30200;
326pub const __WATCHOS_4_0: u32 = 40000;
327pub const __WATCHOS_4_1: u32 = 40100;
328pub const __WATCHOS_4_2: u32 = 40200;
329pub const __WATCHOS_4_3: u32 = 40300;
330pub const __WATCHOS_5_0: u32 = 50000;
331pub const __WATCHOS_5_1: u32 = 50100;
332pub const __WATCHOS_5_2: u32 = 50200;
333pub const __WATCHOS_5_3: u32 = 50300;
334pub const __WATCHOS_6_0: u32 = 60000;
335pub const __WATCHOS_6_1: u32 = 60100;
336pub const __WATCHOS_6_2: u32 = 60200;
337pub const __WATCHOS_7_0: u32 = 70000;
338pub const __WATCHOS_7_1: u32 = 70100;
339pub const __WATCHOS_7_2: u32 = 70200;
340pub const __WATCHOS_7_3: u32 = 70300;
341pub const __WATCHOS_7_4: u32 = 70400;
342pub const __WATCHOS_7_5: u32 = 70500;
343pub const __WATCHOS_7_6: u32 = 70600;
344pub const __WATCHOS_8_0: u32 = 80000;
345pub const __WATCHOS_8_1: u32 = 80100;
346pub const __WATCHOS_8_3: u32 = 80300;
347pub const __WATCHOS_8_4: u32 = 80400;
348pub const __WATCHOS_8_5: u32 = 80500;
349pub const __WATCHOS_8_6: u32 = 80600;
350pub const __WATCHOS_8_7: u32 = 80700;
351pub const __WATCHOS_8_8: u32 = 80800;
352pub const __WATCHOS_9_0: u32 = 90000;
353pub const __WATCHOS_9_1: u32 = 90100;
354pub const __WATCHOS_9_2: u32 = 90200;
355pub const __WATCHOS_9_3: u32 = 90300;
356pub const __WATCHOS_9_4: u32 = 90400;
357pub const __WATCHOS_9_5: u32 = 90500;
358pub const __WATCHOS_9_6: u32 = 90600;
359pub const __WATCHOS_10_0: u32 = 100000;
360pub const __WATCHOS_10_1: u32 = 100100;
361pub const __WATCHOS_10_2: u32 = 100200;
362pub const __WATCHOS_10_3: u32 = 100300;
363pub const __WATCHOS_10_4: u32 = 100400;
364pub const __WATCHOS_10_5: u32 = 100500;
365pub const __WATCHOS_10_6: u32 = 100600;
366pub const __WATCHOS_10_7: u32 = 100700;
367pub const __WATCHOS_11_0: u32 = 110000;
368pub const __WATCHOS_11_1: u32 = 110100;
369pub const __WATCHOS_11_2: u32 = 110200;
370pub const __WATCHOS_11_3: u32 = 110300;
371pub const __WATCHOS_11_4: u32 = 110400;
372pub const __WATCHOS_11_5: u32 = 110500;
373pub const __WATCHOS_11_6: u32 = 110600;
374pub const __WATCHOS_12_0: u32 = 120000;
375pub const __WATCHOS_26_0: u32 = 260000;
376pub const __WATCHOS_26_1: u32 = 260100;
377pub const __TVOS_9_0: u32 = 90000;
378pub const __TVOS_9_1: u32 = 90100;
379pub const __TVOS_9_2: u32 = 90200;
380pub const __TVOS_10_0: u32 = 100000;
381pub const __TVOS_10_0_1: u32 = 100001;
382pub const __TVOS_10_1: u32 = 100100;
383pub const __TVOS_10_2: u32 = 100200;
384pub const __TVOS_11_0: u32 = 110000;
385pub const __TVOS_11_1: u32 = 110100;
386pub const __TVOS_11_2: u32 = 110200;
387pub const __TVOS_11_3: u32 = 110300;
388pub const __TVOS_11_4: u32 = 110400;
389pub const __TVOS_12_0: u32 = 120000;
390pub const __TVOS_12_1: u32 = 120100;
391pub const __TVOS_12_2: u32 = 120200;
392pub const __TVOS_12_3: u32 = 120300;
393pub const __TVOS_12_4: u32 = 120400;
394pub const __TVOS_13_0: u32 = 130000;
395pub const __TVOS_13_2: u32 = 130200;
396pub const __TVOS_13_3: u32 = 130300;
397pub const __TVOS_13_4: u32 = 130400;
398pub const __TVOS_14_0: u32 = 140000;
399pub const __TVOS_14_1: u32 = 140100;
400pub const __TVOS_14_2: u32 = 140200;
401pub const __TVOS_14_3: u32 = 140300;
402pub const __TVOS_14_5: u32 = 140500;
403pub const __TVOS_14_6: u32 = 140600;
404pub const __TVOS_14_7: u32 = 140700;
405pub const __TVOS_15_0: u32 = 150000;
406pub const __TVOS_15_1: u32 = 150100;
407pub const __TVOS_15_2: u32 = 150200;
408pub const __TVOS_15_3: u32 = 150300;
409pub const __TVOS_15_4: u32 = 150400;
410pub const __TVOS_15_5: u32 = 150500;
411pub const __TVOS_15_6: u32 = 150600;
412pub const __TVOS_16_0: u32 = 160000;
413pub const __TVOS_16_1: u32 = 160100;
414pub const __TVOS_16_2: u32 = 160200;
415pub const __TVOS_16_3: u32 = 160300;
416pub const __TVOS_16_4: u32 = 160400;
417pub const __TVOS_16_5: u32 = 160500;
418pub const __TVOS_16_6: u32 = 160600;
419pub const __TVOS_17_0: u32 = 170000;
420pub const __TVOS_17_1: u32 = 170100;
421pub const __TVOS_17_2: u32 = 170200;
422pub const __TVOS_17_3: u32 = 170300;
423pub const __TVOS_17_4: u32 = 170400;
424pub const __TVOS_17_5: u32 = 170500;
425pub const __TVOS_17_6: u32 = 170600;
426pub const __TVOS_18_0: u32 = 180000;
427pub const __TVOS_18_1: u32 = 180100;
428pub const __TVOS_18_2: u32 = 180200;
429pub const __TVOS_18_3: u32 = 180300;
430pub const __TVOS_18_4: u32 = 180400;
431pub const __TVOS_18_5: u32 = 180500;
432pub const __TVOS_18_6: u32 = 180600;
433pub const __TVOS_19_0: u32 = 190000;
434pub const __TVOS_26_0: u32 = 260000;
435pub const __TVOS_26_1: u32 = 260100;
436pub const __BRIDGEOS_2_0: u32 = 20000;
437pub const __BRIDGEOS_3_0: u32 = 30000;
438pub const __BRIDGEOS_3_1: u32 = 30100;
439pub const __BRIDGEOS_3_4: u32 = 30400;
440pub const __BRIDGEOS_4_0: u32 = 40000;
441pub const __BRIDGEOS_4_1: u32 = 40100;
442pub const __BRIDGEOS_5_0: u32 = 50000;
443pub const __BRIDGEOS_5_1: u32 = 50100;
444pub const __BRIDGEOS_5_3: u32 = 50300;
445pub const __BRIDGEOS_6_0: u32 = 60000;
446pub const __BRIDGEOS_6_2: u32 = 60200;
447pub const __BRIDGEOS_6_4: u32 = 60400;
448pub const __BRIDGEOS_6_5: u32 = 60500;
449pub const __BRIDGEOS_6_6: u32 = 60600;
450pub const __BRIDGEOS_7_0: u32 = 70000;
451pub const __BRIDGEOS_7_1: u32 = 70100;
452pub const __BRIDGEOS_7_2: u32 = 70200;
453pub const __BRIDGEOS_7_3: u32 = 70300;
454pub const __BRIDGEOS_7_4: u32 = 70400;
455pub const __BRIDGEOS_7_6: u32 = 70600;
456pub const __BRIDGEOS_8_0: u32 = 80000;
457pub const __BRIDGEOS_8_1: u32 = 80100;
458pub const __BRIDGEOS_8_2: u32 = 80200;
459pub const __BRIDGEOS_8_3: u32 = 80300;
460pub const __BRIDGEOS_8_4: u32 = 80400;
461pub const __BRIDGEOS_8_5: u32 = 80500;
462pub const __BRIDGEOS_8_6: u32 = 80600;
463pub const __BRIDGEOS_9_0: u32 = 90000;
464pub const __BRIDGEOS_9_1: u32 = 90100;
465pub const __BRIDGEOS_9_2: u32 = 90200;
466pub const __BRIDGEOS_9_3: u32 = 90300;
467pub const __BRIDGEOS_9_4: u32 = 90400;
468pub const __BRIDGEOS_9_5: u32 = 90500;
469pub const __BRIDGEOS_9_6: u32 = 90600;
470pub const __BRIDGEOS_10_0: u32 = 100000;
471pub const __BRIDGEOS_10_1: u32 = 100100;
472pub const __DRIVERKIT_19_0: u32 = 190000;
473pub const __DRIVERKIT_20_0: u32 = 200000;
474pub const __DRIVERKIT_21_0: u32 = 210000;
475pub const __DRIVERKIT_22_0: u32 = 220000;
476pub const __DRIVERKIT_22_4: u32 = 220400;
477pub const __DRIVERKIT_22_5: u32 = 220500;
478pub const __DRIVERKIT_22_6: u32 = 220600;
479pub const __DRIVERKIT_23_0: u32 = 230000;
480pub const __DRIVERKIT_23_1: u32 = 230100;
481pub const __DRIVERKIT_23_2: u32 = 230200;
482pub const __DRIVERKIT_23_3: u32 = 230300;
483pub const __DRIVERKIT_23_4: u32 = 230400;
484pub const __DRIVERKIT_23_5: u32 = 230500;
485pub const __DRIVERKIT_23_6: u32 = 230600;
486pub const __DRIVERKIT_24_0: u32 = 240000;
487pub const __DRIVERKIT_24_1: u32 = 240100;
488pub const __DRIVERKIT_24_2: u32 = 240200;
489pub const __DRIVERKIT_24_3: u32 = 240300;
490pub const __DRIVERKIT_24_4: u32 = 240400;
491pub const __DRIVERKIT_24_5: u32 = 240500;
492pub const __DRIVERKIT_24_6: u32 = 240600;
493pub const __DRIVERKIT_25_0: u32 = 250000;
494pub const __DRIVERKIT_25_1: u32 = 250100;
495pub const __VISIONOS_1_0: u32 = 10000;
496pub const __VISIONOS_1_1: u32 = 10100;
497pub const __VISIONOS_1_2: u32 = 10200;
498pub const __VISIONOS_1_3: u32 = 10300;
499pub const __VISIONOS_2_0: u32 = 20000;
500pub const __VISIONOS_2_1: u32 = 20100;
501pub const __VISIONOS_2_2: u32 = 20200;
502pub const __VISIONOS_2_3: u32 = 20300;
503pub const __VISIONOS_2_4: u32 = 20400;
504pub const __VISIONOS_2_5: u32 = 20500;
505pub const __VISIONOS_2_6: u32 = 20600;
506pub const __VISIONOS_3_0: u32 = 30000;
507pub const __VISIONOS_26_0: u32 = 260000;
508pub const __VISIONOS_26_1: u32 = 260100;
509pub const MAC_OS_X_VERSION_10_0: u32 = 1000;
510pub const MAC_OS_X_VERSION_10_1: u32 = 1010;
511pub const MAC_OS_X_VERSION_10_2: u32 = 1020;
512pub const MAC_OS_X_VERSION_10_3: u32 = 1030;
513pub const MAC_OS_X_VERSION_10_4: u32 = 1040;
514pub const MAC_OS_X_VERSION_10_5: u32 = 1050;
515pub const MAC_OS_X_VERSION_10_6: u32 = 1060;
516pub const MAC_OS_X_VERSION_10_7: u32 = 1070;
517pub const MAC_OS_X_VERSION_10_8: u32 = 1080;
518pub const MAC_OS_X_VERSION_10_9: u32 = 1090;
519pub const MAC_OS_X_VERSION_10_10: u32 = 101000;
520pub const MAC_OS_X_VERSION_10_10_2: u32 = 101002;
521pub const MAC_OS_X_VERSION_10_10_3: u32 = 101003;
522pub const MAC_OS_X_VERSION_10_11: u32 = 101100;
523pub const MAC_OS_X_VERSION_10_11_2: u32 = 101102;
524pub const MAC_OS_X_VERSION_10_11_3: u32 = 101103;
525pub const MAC_OS_X_VERSION_10_11_4: u32 = 101104;
526pub const MAC_OS_X_VERSION_10_12: u32 = 101200;
527pub const MAC_OS_X_VERSION_10_12_1: u32 = 101201;
528pub const MAC_OS_X_VERSION_10_12_2: u32 = 101202;
529pub const MAC_OS_X_VERSION_10_12_4: u32 = 101204;
530pub const MAC_OS_X_VERSION_10_13: u32 = 101300;
531pub const MAC_OS_X_VERSION_10_13_1: u32 = 101301;
532pub const MAC_OS_X_VERSION_10_13_2: u32 = 101302;
533pub const MAC_OS_X_VERSION_10_13_4: u32 = 101304;
534pub const MAC_OS_X_VERSION_10_14: u32 = 101400;
535pub const MAC_OS_X_VERSION_10_14_1: u32 = 101401;
536pub const MAC_OS_X_VERSION_10_14_4: u32 = 101404;
537pub const MAC_OS_X_VERSION_10_14_5: u32 = 101405;
538pub const MAC_OS_X_VERSION_10_14_6: u32 = 101406;
539pub const MAC_OS_X_VERSION_10_15: u32 = 101500;
540pub const MAC_OS_X_VERSION_10_15_1: u32 = 101501;
541pub const MAC_OS_X_VERSION_10_15_4: u32 = 101504;
542pub const MAC_OS_X_VERSION_10_16: u32 = 101600;
543pub const MAC_OS_VERSION_11_0: u32 = 110000;
544pub const MAC_OS_VERSION_11_1: u32 = 110100;
545pub const MAC_OS_VERSION_11_3: u32 = 110300;
546pub const MAC_OS_VERSION_11_4: u32 = 110400;
547pub const MAC_OS_VERSION_11_5: u32 = 110500;
548pub const MAC_OS_VERSION_11_6: u32 = 110600;
549pub const MAC_OS_VERSION_12_0: u32 = 120000;
550pub const MAC_OS_VERSION_12_1: u32 = 120100;
551pub const MAC_OS_VERSION_12_2: u32 = 120200;
552pub const MAC_OS_VERSION_12_3: u32 = 120300;
553pub const MAC_OS_VERSION_12_4: u32 = 120400;
554pub const MAC_OS_VERSION_12_5: u32 = 120500;
555pub const MAC_OS_VERSION_12_6: u32 = 120600;
556pub const MAC_OS_VERSION_12_7: u32 = 120700;
557pub const MAC_OS_VERSION_13_0: u32 = 130000;
558pub const MAC_OS_VERSION_13_1: u32 = 130100;
559pub const MAC_OS_VERSION_13_2: u32 = 130200;
560pub const MAC_OS_VERSION_13_3: u32 = 130300;
561pub const MAC_OS_VERSION_13_4: u32 = 130400;
562pub const MAC_OS_VERSION_13_5: u32 = 130500;
563pub const MAC_OS_VERSION_13_6: u32 = 130600;
564pub const MAC_OS_VERSION_13_7: u32 = 130700;
565pub const MAC_OS_VERSION_14_0: u32 = 140000;
566pub const MAC_OS_VERSION_14_1: u32 = 140100;
567pub const MAC_OS_VERSION_14_2: u32 = 140200;
568pub const MAC_OS_VERSION_14_3: u32 = 140300;
569pub const MAC_OS_VERSION_14_4: u32 = 140400;
570pub const MAC_OS_VERSION_14_5: u32 = 140500;
571pub const MAC_OS_VERSION_14_6: u32 = 140600;
572pub const MAC_OS_VERSION_14_7: u32 = 140700;
573pub const MAC_OS_VERSION_15_0: u32 = 150000;
574pub const MAC_OS_VERSION_15_1: u32 = 150100;
575pub const MAC_OS_VERSION_15_2: u32 = 150200;
576pub const MAC_OS_VERSION_15_3: u32 = 150300;
577pub const MAC_OS_VERSION_15_4: u32 = 150400;
578pub const MAC_OS_VERSION_15_5: u32 = 150500;
579pub const MAC_OS_VERSION_15_6: u32 = 150600;
580pub const MAC_OS_VERSION_16_0: u32 = 160000;
581pub const MAC_OS_VERSION_26_0: u32 = 260000;
582pub const MAC_OS_VERSION_26_1: u32 = 260100;
583pub const __AVAILABILITY_VERSIONS_VERSION_HASH: u32 = 93585900;
584pub const __AVAILABILITY_VERSIONS_VERSION_STRING: &[u8; 6] = b"Local\0";
585pub const __AVAILABILITY_FILE: &[u8; 23] = b"AvailabilityVersions.h\0";
586pub const __MAC_OS_X_VERSION_MAX_ALLOWED: u32 = 260100;
587pub const __ENABLE_LEGACY_MAC_AVAILABILITY: u32 = 1;
588pub const __has_safe_buffers: u32 = 1;
589pub const __DARWIN_ONLY_64_BIT_INO_T: u32 = 1;
590pub const __DARWIN_ONLY_UNIX_CONFORMANCE: u32 = 1;
591pub const __DARWIN_ONLY_VERS_1050: u32 = 1;
592pub const __DARWIN_UNIX03: u32 = 1;
593pub const __DARWIN_64_BIT_INO_T: u32 = 1;
594pub const __DARWIN_VERS_1050: u32 = 1;
595pub const __DARWIN_NON_CANCELABLE: u32 = 0;
596pub const __DARWIN_SUF_EXTSN: &[u8; 14] = b"$DARWIN_EXTSN\0";
597pub const __DARWIN_C_ANSI: u32 = 4096;
598pub const __DARWIN_C_FULL: u32 = 900000;
599pub const __DARWIN_C_LEVEL: u32 = 900000;
600pub const __STDC_WANT_LIB_EXT1__: u32 = 1;
601pub const __DARWIN_NO_LONG_LONG: u32 = 0;
602pub const _DARWIN_FEATURE_64_BIT_INODE: u32 = 1;
603pub const _DARWIN_FEATURE_ONLY_64_BIT_INODE: u32 = 1;
604pub const _DARWIN_FEATURE_ONLY_VERS_1050: u32 = 1;
605pub const _DARWIN_FEATURE_ONLY_UNIX_CONFORMANCE: u32 = 1;
606pub const _DARWIN_FEATURE_UNIX_CONFORMANCE: u32 = 3;
607pub const __has_ptrcheck: u32 = 0;
608pub const __has_bounds_safety_attributes: u32 = 0;
609pub const USE_CLANG_TYPES: u32 = 0;
610pub const __PTHREAD_SIZE__: u32 = 8176;
611pub const __PTHREAD_ATTR_SIZE__: u32 = 56;
612pub const __PTHREAD_MUTEXATTR_SIZE__: u32 = 8;
613pub const __PTHREAD_MUTEX_SIZE__: u32 = 56;
614pub const __PTHREAD_CONDATTR_SIZE__: u32 = 8;
615pub const __PTHREAD_COND_SIZE__: u32 = 40;
616pub const __PTHREAD_ONCE_SIZE__: u32 = 8;
617pub const __PTHREAD_RWLOCK_SIZE__: u32 = 192;
618pub const __PTHREAD_RWLOCKATTR_SIZE__: u32 = 16;
619pub const __DARWIN_WCHAR_MIN: i32 = -2147483648;
620pub const _FORTIFY_SOURCE: u32 = 2;
621pub const __DARWIN_NSIG: u32 = 32;
622pub const NSIG: u32 = 32;
623pub const _ARM_SIGNAL_: u32 = 1;
624pub const SIGHUP: u32 = 1;
625pub const SIGINT: u32 = 2;
626pub const SIGQUIT: u32 = 3;
627pub const SIGILL: u32 = 4;
628pub const SIGTRAP: u32 = 5;
629pub const SIGABRT: u32 = 6;
630pub const SIGIOT: u32 = 6;
631pub const SIGEMT: u32 = 7;
632pub const SIGFPE: u32 = 8;
633pub const SIGKILL: u32 = 9;
634pub const SIGBUS: u32 = 10;
635pub const SIGSEGV: u32 = 11;
636pub const SIGSYS: u32 = 12;
637pub const SIGPIPE: u32 = 13;
638pub const SIGALRM: u32 = 14;
639pub const SIGTERM: u32 = 15;
640pub const SIGURG: u32 = 16;
641pub const SIGSTOP: u32 = 17;
642pub const SIGTSTP: u32 = 18;
643pub const SIGCONT: u32 = 19;
644pub const SIGCHLD: u32 = 20;
645pub const SIGTTIN: u32 = 21;
646pub const SIGTTOU: u32 = 22;
647pub const SIGIO: u32 = 23;
648pub const SIGXCPU: u32 = 24;
649pub const SIGXFSZ: u32 = 25;
650pub const SIGVTALRM: u32 = 26;
651pub const SIGPROF: u32 = 27;
652pub const SIGWINCH: u32 = 28;
653pub const SIGINFO: u32 = 29;
654pub const SIGUSR1: u32 = 30;
655pub const SIGUSR2: u32 = 31;
656pub const __DARWIN_OPAQUE_ARM_THREAD_STATE64: u32 = 0;
657pub const USE_CLANG_STDDEF: u32 = 0;
658pub const SIGEV_NONE: u32 = 0;
659pub const SIGEV_SIGNAL: u32 = 1;
660pub const SIGEV_THREAD: u32 = 3;
661pub const SIGEV_KEVENT: u32 = 4;
662pub const ILL_NOOP: u32 = 0;
663pub const ILL_ILLOPC: u32 = 1;
664pub const ILL_ILLTRP: u32 = 2;
665pub const ILL_PRVOPC: u32 = 3;
666pub const ILL_ILLOPN: u32 = 4;
667pub const ILL_ILLADR: u32 = 5;
668pub const ILL_PRVREG: u32 = 6;
669pub const ILL_COPROC: u32 = 7;
670pub const ILL_BADSTK: u32 = 8;
671pub const FPE_NOOP: u32 = 0;
672pub const FPE_FLTDIV: u32 = 1;
673pub const FPE_FLTOVF: u32 = 2;
674pub const FPE_FLTUND: u32 = 3;
675pub const FPE_FLTRES: u32 = 4;
676pub const FPE_FLTINV: u32 = 5;
677pub const FPE_FLTSUB: u32 = 6;
678pub const FPE_INTDIV: u32 = 7;
679pub const FPE_INTOVF: u32 = 8;
680pub const SEGV_NOOP: u32 = 0;
681pub const SEGV_MAPERR: u32 = 1;
682pub const SEGV_ACCERR: u32 = 2;
683pub const BUS_NOOP: u32 = 0;
684pub const BUS_ADRALN: u32 = 1;
685pub const BUS_ADRERR: u32 = 2;
686pub const BUS_OBJERR: u32 = 3;
687pub const TRAP_BRKPT: u32 = 1;
688pub const TRAP_TRACE: u32 = 2;
689pub const CLD_NOOP: u32 = 0;
690pub const CLD_EXITED: u32 = 1;
691pub const CLD_KILLED: u32 = 2;
692pub const CLD_DUMPED: u32 = 3;
693pub const CLD_TRAPPED: u32 = 4;
694pub const CLD_STOPPED: u32 = 5;
695pub const CLD_CONTINUED: u32 = 6;
696pub const POLL_IN: u32 = 1;
697pub const POLL_OUT: u32 = 2;
698pub const POLL_MSG: u32 = 3;
699pub const POLL_ERR: u32 = 4;
700pub const POLL_PRI: u32 = 5;
701pub const POLL_HUP: u32 = 6;
702pub const SA_ONSTACK: u32 = 1;
703pub const SA_RESTART: u32 = 2;
704pub const SA_RESETHAND: u32 = 4;
705pub const SA_NOCLDSTOP: u32 = 8;
706pub const SA_NODEFER: u32 = 16;
707pub const SA_NOCLDWAIT: u32 = 32;
708pub const SA_SIGINFO: u32 = 64;
709pub const SA_USERTRAMP: u32 = 256;
710pub const SA_64REGSET: u32 = 512;
711pub const SA_USERSPACE_MASK: u32 = 127;
712pub const SIG_BLOCK: u32 = 1;
713pub const SIG_UNBLOCK: u32 = 2;
714pub const SIG_SETMASK: u32 = 3;
715pub const SI_USER: u32 = 65537;
716pub const SI_QUEUE: u32 = 65538;
717pub const SI_TIMER: u32 = 65539;
718pub const SI_ASYNCIO: u32 = 65540;
719pub const SI_MESGQ: u32 = 65541;
720pub const SS_ONSTACK: u32 = 1;
721pub const SS_DISABLE: u32 = 4;
722pub const MINSIGSTKSZ: u32 = 32768;
723pub const SIGSTKSZ: u32 = 131072;
724pub const SV_ONSTACK: u32 = 1;
725pub const SV_INTERRUPT: u32 = 2;
726pub const SV_RESETHAND: u32 = 4;
727pub const SV_NODEFER: u32 = 16;
728pub const SV_NOCLDSTOP: u32 = 8;
729pub const SV_SIGINFO: u32 = 64;
730pub const __WORDSIZE: u32 = 64;
731pub const INT8_MAX: u32 = 127;
732pub const INT16_MAX: u32 = 32767;
733pub const INT32_MAX: u32 = 2147483647;
734pub const INT64_MAX: u64 = 9223372036854775807;
735pub const INT8_MIN: i32 = -128;
736pub const INT16_MIN: i32 = -32768;
737pub const INT32_MIN: i32 = -2147483648;
738pub const INT64_MIN: i64 = -9223372036854775808;
739pub const UINT8_MAX: u32 = 255;
740pub const UINT16_MAX: u32 = 65535;
741pub const UINT32_MAX: u32 = 4294967295;
742pub const UINT64_MAX: i32 = -1;
743pub const INT_LEAST8_MIN: i32 = -128;
744pub const INT_LEAST16_MIN: i32 = -32768;
745pub const INT_LEAST32_MIN: i32 = -2147483648;
746pub const INT_LEAST64_MIN: i64 = -9223372036854775808;
747pub const INT_LEAST8_MAX: u32 = 127;
748pub const INT_LEAST16_MAX: u32 = 32767;
749pub const INT_LEAST32_MAX: u32 = 2147483647;
750pub const INT_LEAST64_MAX: u64 = 9223372036854775807;
751pub const UINT_LEAST8_MAX: u32 = 255;
752pub const UINT_LEAST16_MAX: u32 = 65535;
753pub const UINT_LEAST32_MAX: u32 = 4294967295;
754pub const UINT_LEAST64_MAX: i32 = -1;
755pub const INT_FAST8_MIN: i32 = -128;
756pub const INT_FAST16_MIN: i32 = -32768;
757pub const INT_FAST32_MIN: i32 = -2147483648;
758pub const INT_FAST64_MIN: i64 = -9223372036854775808;
759pub const INT_FAST8_MAX: u32 = 127;
760pub const INT_FAST16_MAX: u32 = 32767;
761pub const INT_FAST32_MAX: u32 = 2147483647;
762pub const INT_FAST64_MAX: u64 = 9223372036854775807;
763pub const UINT_FAST8_MAX: u32 = 255;
764pub const UINT_FAST16_MAX: u32 = 65535;
765pub const UINT_FAST32_MAX: u32 = 4294967295;
766pub const UINT_FAST64_MAX: i32 = -1;
767pub const INTPTR_MAX: u64 = 9223372036854775807;
768pub const INTPTR_MIN: i64 = -9223372036854775808;
769pub const UINTPTR_MAX: i32 = -1;
770pub const SIZE_MAX: i32 = -1;
771pub const RSIZE_MAX: i32 = -1;
772pub const WINT_MIN: i32 = -2147483648;
773pub const WINT_MAX: u32 = 2147483647;
774pub const SIG_ATOMIC_MIN: i32 = -2147483648;
775pub const SIG_ATOMIC_MAX: u32 = 2147483647;
776pub const PRIO_PROCESS: u32 = 0;
777pub const PRIO_PGRP: u32 = 1;
778pub const PRIO_USER: u32 = 2;
779pub const PRIO_DARWIN_THREAD: u32 = 3;
780pub const PRIO_DARWIN_PROCESS: u32 = 4;
781pub const PRIO_MIN: i32 = -20;
782pub const PRIO_MAX: u32 = 20;
783pub const PRIO_DARWIN_BG: u32 = 4096;
784pub const PRIO_DARWIN_NONUI: u32 = 4097;
785pub const RUSAGE_SELF: u32 = 0;
786pub const RUSAGE_CHILDREN: i32 = -1;
787pub const RUSAGE_INFO_V0: u32 = 0;
788pub const RUSAGE_INFO_V1: u32 = 1;
789pub const RUSAGE_INFO_V2: u32 = 2;
790pub const RUSAGE_INFO_V3: u32 = 3;
791pub const RUSAGE_INFO_V4: u32 = 4;
792pub const RUSAGE_INFO_V5: u32 = 5;
793pub const RUSAGE_INFO_V6: u32 = 6;
794pub const RUSAGE_INFO_CURRENT: u32 = 6;
795pub const RU_PROC_RUNS_RESLIDE: u32 = 1;
796pub const RLIMIT_CPU: u32 = 0;
797pub const RLIMIT_FSIZE: u32 = 1;
798pub const RLIMIT_DATA: u32 = 2;
799pub const RLIMIT_STACK: u32 = 3;
800pub const RLIMIT_CORE: u32 = 4;
801pub const RLIMIT_AS: u32 = 5;
802pub const RLIMIT_RSS: u32 = 5;
803pub const RLIMIT_MEMLOCK: u32 = 6;
804pub const RLIMIT_NPROC: u32 = 7;
805pub const RLIMIT_NOFILE: u32 = 8;
806pub const RLIM_NLIMITS: u32 = 9;
807pub const _RLIMIT_POSIX_FLAG: u32 = 4096;
808pub const RLIMIT_WAKEUPS_MONITOR: u32 = 1;
809pub const RLIMIT_CPU_USAGE_MONITOR: u32 = 2;
810pub const RLIMIT_THREAD_CPULIMITS: u32 = 3;
811pub const RLIMIT_FOOTPRINT_INTERVAL: u32 = 4;
812pub const WAKEMON_ENABLE: u32 = 1;
813pub const WAKEMON_DISABLE: u32 = 2;
814pub const WAKEMON_GET_PARAMS: u32 = 4;
815pub const WAKEMON_SET_DEFAULTS: u32 = 8;
816pub const WAKEMON_MAKE_FATAL: u32 = 16;
817pub const CPUMON_MAKE_FATAL: u32 = 4096;
818pub const FOOTPRINT_INTERVAL_RESET: u32 = 1;
819pub const IOPOL_TYPE_DISK: u32 = 0;
820pub const IOPOL_TYPE_VFS_ATIME_UPDATES: u32 = 2;
821pub const IOPOL_TYPE_VFS_MATERIALIZE_DATALESS_FILES: u32 = 3;
822pub const IOPOL_TYPE_VFS_STATFS_NO_DATA_VOLUME: u32 = 4;
823pub const IOPOL_TYPE_VFS_TRIGGER_RESOLVE: u32 = 5;
824pub const IOPOL_TYPE_VFS_IGNORE_CONTENT_PROTECTION: u32 = 6;
825pub const IOPOL_TYPE_VFS_IGNORE_PERMISSIONS: u32 = 7;
826pub const IOPOL_TYPE_VFS_SKIP_MTIME_UPDATE: u32 = 8;
827pub const IOPOL_TYPE_VFS_ALLOW_LOW_SPACE_WRITES: u32 = 9;
828pub const IOPOL_TYPE_VFS_DISALLOW_RW_FOR_O_EVTONLY: u32 = 10;
829pub const IOPOL_TYPE_VFS_ENTITLED_RESERVE_ACCESS: u32 = 14;
830pub const IOPOL_SCOPE_PROCESS: u32 = 0;
831pub const IOPOL_SCOPE_THREAD: u32 = 1;
832pub const IOPOL_SCOPE_DARWIN_BG: u32 = 2;
833pub const IOPOL_DEFAULT: u32 = 0;
834pub const IOPOL_IMPORTANT: u32 = 1;
835pub const IOPOL_PASSIVE: u32 = 2;
836pub const IOPOL_THROTTLE: u32 = 3;
837pub const IOPOL_UTILITY: u32 = 4;
838pub const IOPOL_STANDARD: u32 = 5;
839pub const IOPOL_APPLICATION: u32 = 5;
840pub const IOPOL_NORMAL: u32 = 1;
841pub const IOPOL_ATIME_UPDATES_DEFAULT: u32 = 0;
842pub const IOPOL_ATIME_UPDATES_OFF: u32 = 1;
843pub const IOPOL_MATERIALIZE_DATALESS_FILES_DEFAULT: u32 = 0;
844pub const IOPOL_MATERIALIZE_DATALESS_FILES_OFF: u32 = 1;
845pub const IOPOL_MATERIALIZE_DATALESS_FILES_ON: u32 = 2;
846pub const IOPOL_MATERIALIZE_DATALESS_FILES_ORIG: u32 = 4;
847pub const IOPOL_MATERIALIZE_DATALESS_FILES_BASIC_MASK: u32 = 3;
848pub const IOPOL_VFS_STATFS_NO_DATA_VOLUME_DEFAULT: u32 = 0;
849pub const IOPOL_VFS_STATFS_FORCE_NO_DATA_VOLUME: u32 = 1;
850pub const IOPOL_VFS_TRIGGER_RESOLVE_DEFAULT: u32 = 0;
851pub const IOPOL_VFS_TRIGGER_RESOLVE_OFF: u32 = 1;
852pub const IOPOL_VFS_CONTENT_PROTECTION_DEFAULT: u32 = 0;
853pub const IOPOL_VFS_CONTENT_PROTECTION_IGNORE: u32 = 1;
854pub const IOPOL_VFS_IGNORE_PERMISSIONS_OFF: u32 = 0;
855pub const IOPOL_VFS_IGNORE_PERMISSIONS_ON: u32 = 1;
856pub const IOPOL_VFS_SKIP_MTIME_UPDATE_OFF: u32 = 0;
857pub const IOPOL_VFS_SKIP_MTIME_UPDATE_ON: u32 = 1;
858pub const IOPOL_VFS_SKIP_MTIME_UPDATE_IGNORE: u32 = 2;
859pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_OFF: u32 = 0;
860pub const IOPOL_VFS_ALLOW_LOW_SPACE_WRITES_ON: u32 = 1;
861pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_DEFAULT: u32 = 0;
862pub const IOPOL_VFS_DISALLOW_RW_FOR_O_EVTONLY_ON: u32 = 1;
863pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_DEFAULT: u32 = 0;
864pub const IOPOL_VFS_NOCACHE_WRITE_FS_BLKSIZE_ON: u32 = 1;
865pub const IOPOL_VFS_ENTITLED_RESERVE_ACCESS_OFF: u32 = 0;
866pub const IOPOL_VFS_ENTITLED_RESERVE_ACCESS_ON: u32 = 1;
867pub const WNOHANG: u32 = 1;
868pub const WUNTRACED: u32 = 2;
869pub const WCOREFLAG: u32 = 128;
870pub const _WSTOPPED: u32 = 127;
871pub const WEXITED: u32 = 4;
872pub const WSTOPPED: u32 = 8;
873pub const WCONTINUED: u32 = 16;
874pub const WNOWAIT: u32 = 32;
875pub const WAIT_ANY: i32 = -1;
876pub const WAIT_MYPGRP: u32 = 0;
877pub const _QUAD_HIGHWORD: u32 = 1;
878pub const _QUAD_LOWWORD: u32 = 0;
879pub const __DARWIN_LITTLE_ENDIAN: u32 = 1234;
880pub const __DARWIN_BIG_ENDIAN: u32 = 4321;
881pub const __DARWIN_PDP_ENDIAN: u32 = 3412;
882pub const LITTLE_ENDIAN: u32 = 1234;
883pub const BIG_ENDIAN: u32 = 4321;
884pub const PDP_ENDIAN: u32 = 3412;
885pub const __DARWIN_BYTE_ORDER: u32 = 1234;
886pub const BYTE_ORDER: u32 = 1234;
887pub const EXIT_FAILURE: u32 = 1;
888pub const EXIT_SUCCESS: u32 = 0;
889pub const RAND_MAX: u32 = 2147483647;
890pub const _MALLOC_TYPE_MALLOC_BACKDEPLOY_PUBLIC: u32 = 1;
891pub const __bool_true_false_are_defined: u32 = 1;
892pub const true_: u32 = 1;
893pub const false_: u32 = 0;
894pub const _USE_FORTIFY_LEVEL: u32 = 2;
895pub const TLS_NULL_WITH_NULL_NULL: u32 = 0;
896pub const TLS_RSA_WITH_NULL_MD5: u32 = 1;
897pub const TLS_RSA_WITH_NULL_SHA: u32 = 2;
898pub const TLS_RSA_EXPORT_WITH_RC4_40_MD5: u32 = 3;
899pub const TLS_RSA_WITH_RC4_128_MD5: u32 = 4;
900pub const TLS_RSA_WITH_RC4_128_SHA: u32 = 5;
901pub const TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5: u32 = 6;
902pub const TLS_RSA_WITH_IDEA_CBC_SHA: u32 = 7;
903pub const TLS_RSA_EXPORT_WITH_DES40_CBC_SHA: u32 = 8;
904pub const TLS_RSA_WITH_DES_CBC_SHA: u32 = 9;
905pub const TLS_RSA_WITH_3DES_EDE_CBC_SHA: u32 = 10;
906pub const TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA: u32 = 11;
907pub const TLS_DH_DSS_WITH_DES_CBC_SHA: u32 = 12;
908pub const TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA: u32 = 13;
909pub const TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA: u32 = 14;
910pub const TLS_DH_RSA_WITH_DES_CBC_SHA: u32 = 15;
911pub const TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA: u32 = 16;
912pub const TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: u32 = 17;
913pub const TLS_DHE_DSS_WITH_DES_CBC_SHA: u32 = 18;
914pub const TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA: u32 = 19;
915pub const TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA: u32 = 20;
916pub const TLS_DHE_RSA_WITH_DES_CBC_SHA: u32 = 21;
917pub const TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA: u32 = 22;
918pub const TLS_DH_anon_EXPORT_WITH_RC4_40_MD5: u32 = 23;
919pub const TLS_DH_anon_WITH_RC4_128_MD5: u32 = 24;
920pub const TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA: u32 = 25;
921pub const TLS_DH_anon_WITH_DES_CBC_SHA: u32 = 26;
922pub const TLS_DH_anon_WITH_3DES_EDE_CBC_SHA: u32 = 27;
923pub const TLS_RSA_WITH_AES_128_CBC_SHA: u32 = 47;
924pub const TLS_DH_DSS_WITH_AES_128_CBC_SHA: u32 = 48;
925pub const TLS_DH_RSA_WITH_AES_128_CBC_SHA: u32 = 49;
926pub const TLS_DHE_DSS_WITH_AES_128_CBC_SHA: u32 = 50;
927pub const TLS_DHE_RSA_WITH_AES_128_CBC_SHA: u32 = 51;
928pub const TLS_DH_anon_WITH_AES_128_CBC_SHA: u32 = 52;
929pub const TLS_RSA_WITH_AES_256_CBC_SHA: u32 = 53;
930pub const TLS_DH_DSS_WITH_AES_256_CBC_SHA: u32 = 54;
931pub const TLS_DH_RSA_WITH_AES_256_CBC_SHA: u32 = 55;
932pub const TLS_DHE_DSS_WITH_AES_256_CBC_SHA: u32 = 56;
933pub const TLS_DHE_RSA_WITH_AES_256_CBC_SHA: u32 = 57;
934pub const TLS_DH_anon_WITH_AES_256_CBC_SHA: u32 = 58;
935pub const TLS_RSA_WITH_NULL_SHA256: u32 = 59;
936pub const TLS_RSA_WITH_AES_128_CBC_SHA256: u32 = 60;
937pub const TLS_RSA_WITH_AES_256_CBC_SHA256: u32 = 61;
938pub const TLS_DH_DSS_WITH_AES_128_CBC_SHA256: u32 = 62;
939pub const TLS_DH_RSA_WITH_AES_128_CBC_SHA256: u32 = 63;
940pub const TLS_DHE_DSS_WITH_AES_128_CBC_SHA256: u32 = 64;
941pub const TLS_RSA_WITH_CAMELLIA_128_CBC_SHA: u32 = 65;
942pub const TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA: u32 = 66;
943pub const TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA: u32 = 67;
944pub const TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA: u32 = 68;
945pub const TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA: u32 = 69;
946pub const TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA: u32 = 70;
947pub const TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: u32 = 103;
948pub const TLS_DH_DSS_WITH_AES_256_CBC_SHA256: u32 = 104;
949pub const TLS_DH_RSA_WITH_AES_256_CBC_SHA256: u32 = 105;
950pub const TLS_DHE_DSS_WITH_AES_256_CBC_SHA256: u32 = 106;
951pub const TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: u32 = 107;
952pub const TLS_DH_anon_WITH_AES_128_CBC_SHA256: u32 = 108;
953pub const TLS_DH_anon_WITH_AES_256_CBC_SHA256: u32 = 109;
954pub const TLS_RSA_WITH_CAMELLIA_256_CBC_SHA: u32 = 132;
955pub const TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA: u32 = 133;
956pub const TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA: u32 = 134;
957pub const TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA: u32 = 135;
958pub const TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA: u32 = 136;
959pub const TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA: u32 = 137;
960pub const TLS_RSA_WITH_SEED_CBC_SHA: u32 = 150;
961pub const TLS_DH_DSS_WITH_SEED_CBC_SHA: u32 = 151;
962pub const TLS_DH_RSA_WITH_SEED_CBC_SHA: u32 = 152;
963pub const TLS_DHE_DSS_WITH_SEED_CBC_SHA: u32 = 153;
964pub const TLS_DHE_RSA_WITH_SEED_CBC_SHA: u32 = 154;
965pub const TLS_DH_anon_WITH_SEED_CBC_SHA: u32 = 155;
966pub const TLS_RSA_WITH_AES_128_GCM_SHA256: u32 = 156;
967pub const TLS_RSA_WITH_AES_256_GCM_SHA384: u32 = 157;
968pub const TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: u32 = 158;
969pub const TLS_DHE_RSA_WITH_AES_256_GCM_SHA384: u32 = 159;
970pub const TLS_DH_RSA_WITH_AES_128_GCM_SHA256: u32 = 160;
971pub const TLS_DH_RSA_WITH_AES_256_GCM_SHA384: u32 = 161;
972pub const TLS_DHE_DSS_WITH_AES_128_GCM_SHA256: u32 = 162;
973pub const TLS_DHE_DSS_WITH_AES_256_GCM_SHA384: u32 = 163;
974pub const TLS_DH_DSS_WITH_AES_128_GCM_SHA256: u32 = 164;
975pub const TLS_DH_DSS_WITH_AES_256_GCM_SHA384: u32 = 165;
976pub const TLS_DH_anon_WITH_AES_128_GCM_SHA256: u32 = 166;
977pub const TLS_DH_anon_WITH_AES_256_GCM_SHA384: u32 = 167;
978pub const TLS_PSK_WITH_AES_128_CBC_SHA: u32 = 140;
979pub const TLS_PSK_WITH_AES_256_CBC_SHA: u32 = 141;
980pub const TLS_DHE_PSK_WITH_AES_128_CBC_SHA: u32 = 142;
981pub const TLS_DHE_PSK_WITH_AES_256_CBC_SHA: u32 = 143;
982pub const TLS_RSA_PSK_WITH_AES_128_CBC_SHA: u32 = 144;
983pub const TLS_RSA_PSK_WITH_AES_256_CBC_SHA: u32 = 145;
984pub const TLS_PSK_WITH_AES_128_CBC_SHA256: u32 = 174;
985pub const TLS_PSK_WITH_AES_256_CBC_SHA384: u32 = 175;
986pub const TLS_DHE_PSK_WITH_AES_128_CBC_SHA256: u32 = 176;
987pub const TLS_DHE_PSK_WITH_AES_256_CBC_SHA384: u32 = 177;
988pub const TLS_RSA_PSK_WITH_AES_128_CBC_SHA256: u32 = 178;
989pub const TLS_RSA_PSK_WITH_AES_256_CBC_SHA384: u32 = 179;
990pub const TLS_PSK_WITH_NULL_SHA: u32 = 44;
991pub const TLS_DHE_PSK_WITH_NULL_SHA: u32 = 45;
992pub const TLS_RSA_PSK_WITH_NULL_SHA: u32 = 46;
993pub const TLS_PSK_WITH_NULL_SHA256: u32 = 180;
994pub const TLS_PSK_WITH_NULL_SHA384: u32 = 181;
995pub const TLS_DHE_PSK_WITH_NULL_SHA256: u32 = 182;
996pub const TLS_DHE_PSK_WITH_NULL_SHA384: u32 = 183;
997pub const TLS_RSA_PSK_WITH_NULL_SHA256: u32 = 184;
998pub const TLS_RSA_PSK_WITH_NULL_SHA384: u32 = 185;
999pub const TLS_ECDH_ECDSA_WITH_NULL_SHA: u32 = 49153;
1000pub const TLS_ECDH_ECDSA_WITH_RC4_128_SHA: u32 = 49154;
1001pub const TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA: u32 = 49155;
1002pub const TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA: u32 = 49156;
1003pub const TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA: u32 = 49157;
1004pub const TLS_ECDHE_ECDSA_WITH_NULL_SHA: u32 = 49158;
1005pub const TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: u32 = 49159;
1006pub const TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA: u32 = 49160;
1007pub const TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: u32 = 49161;
1008pub const TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: u32 = 49162;
1009pub const TLS_ECDH_RSA_WITH_NULL_SHA: u32 = 49163;
1010pub const TLS_ECDH_RSA_WITH_RC4_128_SHA: u32 = 49164;
1011pub const TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA: u32 = 49165;
1012pub const TLS_ECDH_RSA_WITH_AES_128_CBC_SHA: u32 = 49166;
1013pub const TLS_ECDH_RSA_WITH_AES_256_CBC_SHA: u32 = 49167;
1014pub const TLS_ECDHE_RSA_WITH_NULL_SHA: u32 = 49168;
1015pub const TLS_ECDHE_RSA_WITH_RC4_128_SHA: u32 = 49169;
1016pub const TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: u32 = 49170;
1017pub const TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: u32 = 49171;
1018pub const TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: u32 = 49172;
1019pub const TLS_ECDH_anon_WITH_NULL_SHA: u32 = 49173;
1020pub const TLS_ECDH_anon_WITH_RC4_128_SHA: u32 = 49174;
1021pub const TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA: u32 = 49175;
1022pub const TLS_ECDH_anon_WITH_AES_128_CBC_SHA: u32 = 49176;
1023pub const TLS_ECDH_anon_WITH_AES_256_CBC_SHA: u32 = 49177;
1024pub const TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: u32 = 49187;
1025pub const TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384: u32 = 49188;
1026pub const TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256: u32 = 49189;
1027pub const TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384: u32 = 49190;
1028pub const TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: u32 = 49191;
1029pub const TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384: u32 = 49192;
1030pub const TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256: u32 = 49193;
1031pub const TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384: u32 = 49194;
1032pub const TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: u32 = 49195;
1033pub const TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: u32 = 49196;
1034pub const TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256: u32 = 49197;
1035pub const TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384: u32 = 49198;
1036pub const TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: u32 = 49199;
1037pub const TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: u32 = 49200;
1038pub const TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256: u32 = 49201;
1039pub const TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384: u32 = 49202;
1040pub const TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA: u32 = 49205;
1041pub const TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA: u32 = 49206;
1042pub const TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256: u32 = 49207;
1043pub const TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384: u32 = 49208;
1044pub const TLS_ECDHE_PSK_WITH_NULL_SHA: u32 = 49209;
1045pub const TLS_ECDHE_PSK_WITH_NULL_SHA256: u32 = 49210;
1046pub const TLS_ECDHE_PSK_WITH_NULL_SHA384: u32 = 49211;
1047pub const TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: u32 = 49266;
1048pub const TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: u32 = 49267;
1049pub const TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: u32 = 49268;
1050pub const TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: u32 = 49269;
1051pub const TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256: u32 = 49270;
1052pub const TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384: u32 = 49271;
1053pub const TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256: u32 = 49272;
1054pub const TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384: u32 = 49273;
1055pub const TLS_RSA_WITH_ARIA_128_CBC_SHA256: u32 = 49212;
1056pub const TLS_RSA_WITH_ARIA_256_CBC_SHA384: u32 = 49213;
1057pub const TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256: u32 = 49214;
1058pub const TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384: u32 = 49215;
1059pub const TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256: u32 = 49216;
1060pub const TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384: u32 = 49217;
1061pub const TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256: u32 = 49218;
1062pub const TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384: u32 = 49219;
1063pub const TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256: u32 = 49220;
1064pub const TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384: u32 = 49221;
1065pub const TLS_DH_anon_WITH_ARIA_128_CBC_SHA256: u32 = 49222;
1066pub const TLS_DH_anon_WITH_ARIA_256_CBC_SHA384: u32 = 49223;
1067pub const TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256: u32 = 49224;
1068pub const TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384: u32 = 49225;
1069pub const TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256: u32 = 49226;
1070pub const TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384: u32 = 49227;
1071pub const TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256: u32 = 49228;
1072pub const TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384: u32 = 49229;
1073pub const TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256: u32 = 49230;
1074pub const TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384: u32 = 49231;
1075pub const TLS_RSA_WITH_ARIA_128_GCM_SHA256: u32 = 49232;
1076pub const TLS_RSA_WITH_ARIA_256_GCM_SHA384: u32 = 49233;
1077pub const TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256: u32 = 49234;
1078pub const TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384: u32 = 49235;
1079pub const TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256: u32 = 49236;
1080pub const TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384: u32 = 49237;
1081pub const TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256: u32 = 49238;
1082pub const TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384: u32 = 49239;
1083pub const TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256: u32 = 49240;
1084pub const TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384: u32 = 49241;
1085pub const TLS_DH_anon_WITH_ARIA_128_GCM_SHA256: u32 = 49242;
1086pub const TLS_DH_anon_WITH_ARIA_256_GCM_SHA384: u32 = 49243;
1087pub const TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256: u32 = 49244;
1088pub const TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384: u32 = 49245;
1089pub const TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256: u32 = 49246;
1090pub const TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384: u32 = 49247;
1091pub const TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256: u32 = 49248;
1092pub const TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384: u32 = 49249;
1093pub const TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256: u32 = 49250;
1094pub const TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384: u32 = 49251;
1095pub const TLS_PSK_WITH_ARIA_128_CBC_SHA256: u32 = 49252;
1096pub const TLS_PSK_WITH_ARIA_256_CBC_SHA384: u32 = 49253;
1097pub const TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256: u32 = 49254;
1098pub const TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384: u32 = 49255;
1099pub const TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256: u32 = 49256;
1100pub const TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384: u32 = 49257;
1101pub const TLS_PSK_WITH_ARIA_128_GCM_SHA256: u32 = 49258;
1102pub const TLS_PSK_WITH_ARIA_256_GCM_SHA384: u32 = 49259;
1103pub const TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256: u32 = 49260;
1104pub const TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384: u32 = 49261;
1105pub const TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256: u32 = 49262;
1106pub const TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384: u32 = 49263;
1107pub const TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256: u32 = 49264;
1108pub const TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384: u32 = 49265;
1109pub const TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49270;
1110pub const TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49271;
1111pub const TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49272;
1112pub const TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49273;
1113pub const TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49274;
1114pub const TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49275;
1115pub const TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49276;
1116pub const TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49277;
1117pub const TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49278;
1118pub const TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49279;
1119pub const TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49280;
1120pub const TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49281;
1121pub const TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49282;
1122pub const TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49283;
1123pub const TLS_ECDHE_PSK_WITH_CAMELLIA_128_GCM_SHA256: u32 = 49284;
1124pub const TLS_ECDHE_PSK_WITH_CAMELLIA_256_GCM_SHA384: u32 = 49285;
1125pub const TLS_RSA_WITH_AES_128_CCM: u32 = 49308;
1126pub const TLS_RSA_WITH_AES_256_CCM: u32 = 49309;
1127pub const TLS_DHE_RSA_WITH_AES_128_CCM: u32 = 49310;
1128pub const TLS_DHE_RSA_WITH_AES_256_CCM: u32 = 49311;
1129pub const TLS_RSA_WITH_AES_128_CCM_8: u32 = 49312;
1130pub const TLS_RSA_WITH_AES_256_CCM_8: u32 = 49313;
1131pub const TLS_DHE_RSA_WITH_AES_128_CCM_8: u32 = 49314;
1132pub const TLS_DHE_RSA_WITH_AES_256_CCM_8: u32 = 49315;
1133pub const TLS_PSK_WITH_AES_128_CCM: u32 = 49316;
1134pub const TLS_PSK_WITH_AES_256_CCM: u32 = 49317;
1135pub const TLS_DHE_PSK_WITH_AES_128_CCM: u32 = 49318;
1136pub const TLS_DHE_PSK_WITH_AES_256_CCM: u32 = 49319;
1137pub const TLS_PSK_WITH_AES_128_CCM_8: u32 = 49320;
1138pub const TLS_PSK_WITH_AES_256_CCM_8: u32 = 49321;
1139pub const TLS_PSK_DHE_WITH_AES_128_CCM_8: u32 = 49322;
1140pub const TLS_PSK_DHE_WITH_AES_256_CCM_8: u32 = 49323;
1141pub const TLS_ECDHE_ECDSA_WITH_AES_128_CCM: u32 = 49324;
1142pub const TLS_EVENT_CODE_ALM_ALGO_NOT_SUPPORTED: u32 = 1;
1143pub const TLS_EVENT_CODE_ALM_UNSECURE_COMMUNICATION: u32 = 2;
1144pub const TLS_EVENT_CODE_ALM_CERT_UNAVAILABLE: u32 = 3;
1145pub const TLS_EVENT_CODE_ALM_BAD_CERT: u32 = 4;
1146pub const TLS_EVENT_CODE_ALM_CERT_SIZE_EXCEEDED: u32 = 5;
1147pub const TLS_EVENT_CODE_ALM_CERT_VALIDATION_FAILED: u32 = 6;
1148pub const TLS_EVENT_CODE_ALM_CERT_REQUIRED: u32 = 7;
1149pub const TLS_EVENT_CODE_ALM_HANDSHAKE_FAILED_UNKNOWN_REASON: u32 = 8;
1150pub const TLS_EVENT_CODE_WRN_INSECURE_TLS_VERSION: u32 = 9;
1151pub const TLS_EVENT_CODE_INF_SESSION_RENEGOTIATION: u32 = 10;
1152pub const TLS_EVENT_CODE_ALM_CERT_EXPIRED: u32 = 11;
1153pub const TLS_EVENT_CODE_ALM_CERT_REVOKED: u32 = 12;
1154pub const TLS_EVENT_CODE_ALM_CERT_NOT_CONFIGURED: u32 = 13;
1155pub const TLS_EVENT_CODE_ALM_CERT_NOT_TRUSTED: u32 = 14;
1156pub const TLS_EVENT_CODE_ALM_NO_CIPHER: u32 = 15;
1157pub const TLS_EVENT_CODE_INF_SESSION_ESTABLISHED: u32 = 16;
1158pub const TLS_EVENT_CODE_WRN_CERT_EXPIRED: u32 = 17;
1159pub const TLS_EVENT_CODE_WRN_CERT_NOT_YET_VALID: u32 = 18;
1160pub const TLS_EVENT_CODE_WRN_CRL_EXPIRED: u32 = 19;
1161pub const TLS_EVENT_CODE_WRN_CRL_NOT_YET_VALID: u32 = 20;
1162pub const IEC_60870_5_104_DEFAULT_PORT: u32 = 2404;
1163pub const IEC_60870_5_104_DEFAULT_TLS_PORT: u32 = 19998;
1164pub const LIB60870_VERSION_MAJOR: u32 = 2;
1165pub const LIB60870_VERSION_MINOR: u32 = 3;
1166pub const LIB60870_VERSION_PATCH: u32 = 6;
1167pub const IEC60870_QUALITY_GOOD: u32 = 0;
1168pub const IEC60870_QUALITY_OVERFLOW: u32 = 1;
1169pub const IEC60870_QUALITY_RESERVED: u32 = 4;
1170pub const IEC60870_QUALITY_ELAPSED_TIME_INVALID: u32 = 8;
1171pub const IEC60870_QUALITY_BLOCKED: u32 = 16;
1172pub const IEC60870_QUALITY_SUBSTITUTED: u32 = 32;
1173pub const IEC60870_QUALITY_NON_TOPICAL: u32 = 64;
1174pub const IEC60870_QUALITY_INVALID: u32 = 128;
1175pub const IEC60870_START_EVENT_NONE: u32 = 0;
1176pub const IEC60870_START_EVENT_GS: u32 = 1;
1177pub const IEC60870_START_EVENT_SL1: u32 = 2;
1178pub const IEC60870_START_EVENT_SL2: u32 = 4;
1179pub const IEC60870_START_EVENT_SL3: u32 = 8;
1180pub const IEC60870_START_EVENT_SIE: u32 = 16;
1181pub const IEC60870_START_EVENT_SRD: u32 = 32;
1182pub const IEC60870_START_EVENT_RES1: u32 = 64;
1183pub const IEC60870_START_EVENT_RES2: u32 = 128;
1184pub const IEC60870_OUTPUT_CI_GC: u32 = 1;
1185pub const IEC60870_OUTPUT_CI_CL1: u32 = 2;
1186pub const IEC60870_OUTPUT_CI_CL2: u32 = 4;
1187pub const IEC60870_OUTPUT_CI_CL3: u32 = 8;
1188pub const IEC60870_QPM_NOT_USED: u32 = 0;
1189pub const IEC60870_QPM_THRESHOLD_VALUE: u32 = 1;
1190pub const IEC60870_QPM_SMOOTHING_FACTOR: u32 = 2;
1191pub const IEC60870_QPM_LOW_LIMIT_FOR_TRANSMISSION: u32 = 3;
1192pub const IEC60870_QPM_HIGH_LIMIT_FOR_TRANSMISSION: u32 = 4;
1193pub const IEC60870_COI_LOCAL_SWITCH_ON: u32 = 0;
1194pub const IEC60870_COI_LOCAL_MANUAL_RESET: u32 = 1;
1195pub const IEC60870_COI_REMOTE_RESET: u32 = 2;
1196pub const IEC60870_QOC_NO_ADDITIONAL_DEFINITION: u32 = 0;
1197pub const IEC60870_QOC_SHORT_PULSE_DURATION: u32 = 1;
1198pub const IEC60870_QOC_LONG_PULSE_DURATION: u32 = 2;
1199pub const IEC60870_QOC_PERSISTANT_OUTPUT: u32 = 3;
1200pub const IEC60870_SCQ_DEFAULT: u32 = 0;
1201pub const IEC60870_SCQ_SELECT_FILE: u32 = 1;
1202pub const IEC60870_SCQ_REQUEST_FILE: u32 = 2;
1203pub const IEC60870_SCQ_DEACTIVATE_FILE: u32 = 3;
1204pub const IEC60870_SCQ_DELETE_FILE: u32 = 4;
1205pub const IEC60870_SCQ_SELECT_SECTION: u32 = 5;
1206pub const IEC60870_SCQ_REQUEST_SECTION: u32 = 6;
1207pub const IEC60870_SCQ_DEACTIVATE_SECTION: u32 = 7;
1208pub const IEC60870_QOI_STATION: u32 = 20;
1209pub const IEC60870_QOI_GROUP_1: u32 = 21;
1210pub const IEC60870_QOI_GROUP_2: u32 = 22;
1211pub const IEC60870_QOI_GROUP_3: u32 = 23;
1212pub const IEC60870_QOI_GROUP_4: u32 = 24;
1213pub const IEC60870_QOI_GROUP_5: u32 = 25;
1214pub const IEC60870_QOI_GROUP_6: u32 = 26;
1215pub const IEC60870_QOI_GROUP_7: u32 = 27;
1216pub const IEC60870_QOI_GROUP_8: u32 = 28;
1217pub const IEC60870_QOI_GROUP_9: u32 = 29;
1218pub const IEC60870_QOI_GROUP_10: u32 = 30;
1219pub const IEC60870_QOI_GROUP_11: u32 = 31;
1220pub const IEC60870_QOI_GROUP_12: u32 = 32;
1221pub const IEC60870_QOI_GROUP_13: u32 = 33;
1222pub const IEC60870_QOI_GROUP_14: u32 = 34;
1223pub const IEC60870_QOI_GROUP_15: u32 = 35;
1224pub const IEC60870_QOI_GROUP_16: u32 = 36;
1225pub const IEC60870_QCC_RQT_GROUP_1: u32 = 1;
1226pub const IEC60870_QCC_RQT_GROUP_2: u32 = 2;
1227pub const IEC60870_QCC_RQT_GROUP_3: u32 = 3;
1228pub const IEC60870_QCC_RQT_GROUP_4: u32 = 4;
1229pub const IEC60870_QCC_RQT_GENERAL: u32 = 5;
1230pub const IEC60870_QCC_FRZ_READ: u32 = 0;
1231pub const IEC60870_QCC_FRZ_FREEZE_WITHOUT_RESET: u32 = 64;
1232pub const IEC60870_QCC_FRZ_FREEZE_WITH_RESET: u32 = 128;
1233pub const IEC60870_QCC_FRZ_COUNTER_RESET: u32 = 192;
1234pub const IEC60870_QRP_NOT_USED: u32 = 0;
1235pub const IEC60870_QRP_GENERAL_RESET: u32 = 1;
1236pub const IEC60870_QRP_RESET_PENDING_INFO_WITH_TIME_TAG: u32 = 2;
1237pub const IEC60870_QPA_NOT_USED: u32 = 0;
1238pub const IEC60870_QPA_DE_ACT_PREV_LOADED_PARAMETER: u32 = 1;
1239pub const IEC60870_QPA_DE_ACT_OBJECT_PARAMETER: u32 = 2;
1240pub const IEC60870_QPA_DE_ACT_OBJECT_TRANSMISSION: u32 = 4;
1241pub const CS101_NOF_DEFAULT: u32 = 0;
1242pub const CS101_NOF_TRANSPARENT_FILE: u32 = 1;
1243pub const CS101_NOF_DISTURBANCE_DATA: u32 = 2;
1244pub const CS101_NOF_SEQUENCES_OF_EVENTS: u32 = 3;
1245pub const CS101_NOF_SEQUENCES_OF_ANALOGUE_VALUES: u32 = 4;
1246pub const CS101_SCQ_DEFAULT: u32 = 0;
1247pub const CS101_SCQ_SELECT_FILE: u32 = 1;
1248pub const CS101_SCQ_REQUEST_FILE: u32 = 2;
1249pub const CS101_SCQ_DEACTIVATE_FILE: u32 = 3;
1250pub const CS101_SCQ_DELETE_FILE: u32 = 4;
1251pub const CS101_SCQ_SELECT_SECTION: u32 = 5;
1252pub const CS101_SCQ_REQUEST_SECTION: u32 = 6;
1253pub const CS101_SCQ_DEACTIVATE_SECTION: u32 = 7;
1254pub const CS101_LSQ_FILE_TRANSFER_WITHOUT_DEACT: u32 = 1;
1255pub const CS101_LSQ_FILE_TRANSFER_WITH_DEACT: u32 = 2;
1256pub const CS101_LSQ_SECTION_TRANSFER_WITHOUT_DEACT: u32 = 3;
1257pub const CS101_LSQ_SECTION_TRANSFER_WITH_DEACT: u32 = 4;
1258pub const CS101_AFQ_NOT_USED: u32 = 0;
1259pub const CS101_AFQ_POS_ACK_FILE: u32 = 1;
1260pub const CS101_AFQ_NEG_ACK_FILE: u32 = 2;
1261pub const CS101_AFQ_POS_ACK_SECTION: u32 = 3;
1262pub const CS101_AFQ_NEG_ACK_SECTION: u32 = 4;
1263pub const CS101_FILE_ERROR_DEFAULT: u32 = 0;
1264pub const CS101_FILE_ERROR_REQ_MEMORY_NOT_AVAILABLE: u32 = 1;
1265pub const CS101_FILE_ERROR_CHECKSUM_FAILED: u32 = 2;
1266pub const CS101_FILE_ERROR_UNEXPECTED_COMM_SERVICE: u32 = 3;
1267pub const CS101_FILE_ERROR_UNEXPECTED_NAME_OF_FILE: u32 = 4;
1268pub const CS101_FILE_ERROR_UNEXPECTED_NAME_OF_SECTION: u32 = 5;
1269pub const CS101_SOF_STATUS: u32 = 31;
1270pub const CS101_SOF_LFD: u32 = 32;
1271pub const CS101_SOF_FOR: u32 = 64;
1272pub const CS101_SOF_FA: u32 = 128;
1273pub type __int8_t = ::std::os::raw::c_schar;
1274pub type __uint8_t = ::std::os::raw::c_uchar;
1275pub type __int16_t = ::std::os::raw::c_short;
1276pub type __uint16_t = ::std::os::raw::c_ushort;
1277pub type __int32_t = ::std::os::raw::c_int;
1278pub type __uint32_t = ::std::os::raw::c_uint;
1279pub type __int64_t = ::std::os::raw::c_longlong;
1280pub type __uint64_t = ::std::os::raw::c_ulonglong;
1281pub type __darwin_intptr_t = ::std::os::raw::c_long;
1282pub type __darwin_natural_t = ::std::os::raw::c_uint;
1283pub type __darwin_ct_rune_t = ::std::os::raw::c_int;
1284#[repr(C)]
1285#[derive(Copy, Clone)]
1286pub union __mbstate_t {
1287    pub __mbstate8: [::std::os::raw::c_char; 128usize],
1288    pub _mbstateL: ::std::os::raw::c_longlong,
1289}
1290#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1291const _: () = {
1292    ["Size of __mbstate_t"][::std::mem::size_of::<__mbstate_t>() - 128usize];
1293    ["Alignment of __mbstate_t"][::std::mem::align_of::<__mbstate_t>() - 8usize];
1294    ["Offset of field: __mbstate_t::__mbstate8"]
1295        [::std::mem::offset_of!(__mbstate_t, __mbstate8) - 0usize];
1296    ["Offset of field: __mbstate_t::_mbstateL"]
1297        [::std::mem::offset_of!(__mbstate_t, _mbstateL) - 0usize];
1298};
1299impl Default for __mbstate_t {
1300    fn default() -> Self {
1301        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1302        unsafe {
1303            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1304            s.assume_init()
1305        }
1306    }
1307}
1308pub type __darwin_mbstate_t = __mbstate_t;
1309pub type __darwin_ptrdiff_t = ::std::os::raw::c_long;
1310pub type __darwin_size_t = ::std::os::raw::c_ulong;
1311pub type __darwin_wchar_t = ::std::os::raw::c_int;
1312pub type __darwin_rune_t = __darwin_wchar_t;
1313pub type __darwin_wint_t = ::std::os::raw::c_int;
1314pub type __darwin_clock_t = ::std::os::raw::c_ulong;
1315pub type __darwin_socklen_t = __uint32_t;
1316pub type __darwin_ssize_t = ::std::os::raw::c_long;
1317pub type __darwin_time_t = ::std::os::raw::c_long;
1318pub type __darwin_blkcnt_t = __int64_t;
1319pub type __darwin_blksize_t = __int32_t;
1320pub type __darwin_dev_t = __int32_t;
1321pub type __darwin_fsblkcnt_t = ::std::os::raw::c_uint;
1322pub type __darwin_fsfilcnt_t = ::std::os::raw::c_uint;
1323pub type __darwin_gid_t = __uint32_t;
1324pub type __darwin_id_t = __uint32_t;
1325pub type __darwin_ino64_t = __uint64_t;
1326pub type __darwin_ino_t = __darwin_ino64_t;
1327pub type __darwin_mach_port_name_t = __darwin_natural_t;
1328pub type __darwin_mach_port_t = __darwin_mach_port_name_t;
1329pub type __darwin_mode_t = __uint16_t;
1330pub type __darwin_off_t = __int64_t;
1331pub type __darwin_pid_t = __int32_t;
1332pub type __darwin_sigset_t = __uint32_t;
1333pub type __darwin_suseconds_t = __int32_t;
1334pub type __darwin_uid_t = __uint32_t;
1335pub type __darwin_useconds_t = __uint32_t;
1336pub type __darwin_uuid_t = [::std::os::raw::c_uchar; 16usize];
1337pub type __darwin_uuid_string_t = [::std::os::raw::c_char; 37usize];
1338#[repr(C)]
1339#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1340pub struct __darwin_pthread_handler_rec {
1341    pub __routine: ::std::option::Option<unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void)>,
1342    pub __arg: *mut ::std::os::raw::c_void,
1343    pub __next: *mut __darwin_pthread_handler_rec,
1344}
1345#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1346const _: () = {
1347    ["Size of __darwin_pthread_handler_rec"]
1348        [::std::mem::size_of::<__darwin_pthread_handler_rec>() - 24usize];
1349    ["Alignment of __darwin_pthread_handler_rec"]
1350        [::std::mem::align_of::<__darwin_pthread_handler_rec>() - 8usize];
1351    ["Offset of field: __darwin_pthread_handler_rec::__routine"]
1352        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __routine) - 0usize];
1353    ["Offset of field: __darwin_pthread_handler_rec::__arg"]
1354        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __arg) - 8usize];
1355    ["Offset of field: __darwin_pthread_handler_rec::__next"]
1356        [::std::mem::offset_of!(__darwin_pthread_handler_rec, __next) - 16usize];
1357};
1358impl Default for __darwin_pthread_handler_rec {
1359    fn default() -> Self {
1360        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1361        unsafe {
1362            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1363            s.assume_init()
1364        }
1365    }
1366}
1367#[repr(C)]
1368#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1369pub struct _opaque_pthread_attr_t {
1370    pub __sig: ::std::os::raw::c_long,
1371    pub __opaque: [::std::os::raw::c_char; 56usize],
1372}
1373#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1374const _: () = {
1375    ["Size of _opaque_pthread_attr_t"][::std::mem::size_of::<_opaque_pthread_attr_t>() - 64usize];
1376    ["Alignment of _opaque_pthread_attr_t"]
1377        [::std::mem::align_of::<_opaque_pthread_attr_t>() - 8usize];
1378    ["Offset of field: _opaque_pthread_attr_t::__sig"]
1379        [::std::mem::offset_of!(_opaque_pthread_attr_t, __sig) - 0usize];
1380    ["Offset of field: _opaque_pthread_attr_t::__opaque"]
1381        [::std::mem::offset_of!(_opaque_pthread_attr_t, __opaque) - 8usize];
1382};
1383impl Default for _opaque_pthread_attr_t {
1384    fn default() -> Self {
1385        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1386        unsafe {
1387            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1388            s.assume_init()
1389        }
1390    }
1391}
1392#[repr(C)]
1393#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1394pub struct _opaque_pthread_cond_t {
1395    pub __sig: ::std::os::raw::c_long,
1396    pub __opaque: [::std::os::raw::c_char; 40usize],
1397}
1398#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1399const _: () = {
1400    ["Size of _opaque_pthread_cond_t"][::std::mem::size_of::<_opaque_pthread_cond_t>() - 48usize];
1401    ["Alignment of _opaque_pthread_cond_t"]
1402        [::std::mem::align_of::<_opaque_pthread_cond_t>() - 8usize];
1403    ["Offset of field: _opaque_pthread_cond_t::__sig"]
1404        [::std::mem::offset_of!(_opaque_pthread_cond_t, __sig) - 0usize];
1405    ["Offset of field: _opaque_pthread_cond_t::__opaque"]
1406        [::std::mem::offset_of!(_opaque_pthread_cond_t, __opaque) - 8usize];
1407};
1408impl Default for _opaque_pthread_cond_t {
1409    fn default() -> Self {
1410        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1411        unsafe {
1412            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1413            s.assume_init()
1414        }
1415    }
1416}
1417#[repr(C)]
1418#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1419pub struct _opaque_pthread_condattr_t {
1420    pub __sig: ::std::os::raw::c_long,
1421    pub __opaque: [::std::os::raw::c_char; 8usize],
1422}
1423#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1424const _: () = {
1425    ["Size of _opaque_pthread_condattr_t"]
1426        [::std::mem::size_of::<_opaque_pthread_condattr_t>() - 16usize];
1427    ["Alignment of _opaque_pthread_condattr_t"]
1428        [::std::mem::align_of::<_opaque_pthread_condattr_t>() - 8usize];
1429    ["Offset of field: _opaque_pthread_condattr_t::__sig"]
1430        [::std::mem::offset_of!(_opaque_pthread_condattr_t, __sig) - 0usize];
1431    ["Offset of field: _opaque_pthread_condattr_t::__opaque"]
1432        [::std::mem::offset_of!(_opaque_pthread_condattr_t, __opaque) - 8usize];
1433};
1434#[repr(C)]
1435#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1436pub struct _opaque_pthread_mutex_t {
1437    pub __sig: ::std::os::raw::c_long,
1438    pub __opaque: [::std::os::raw::c_char; 56usize],
1439}
1440#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1441const _: () = {
1442    ["Size of _opaque_pthread_mutex_t"][::std::mem::size_of::<_opaque_pthread_mutex_t>() - 64usize];
1443    ["Alignment of _opaque_pthread_mutex_t"]
1444        [::std::mem::align_of::<_opaque_pthread_mutex_t>() - 8usize];
1445    ["Offset of field: _opaque_pthread_mutex_t::__sig"]
1446        [::std::mem::offset_of!(_opaque_pthread_mutex_t, __sig) - 0usize];
1447    ["Offset of field: _opaque_pthread_mutex_t::__opaque"]
1448        [::std::mem::offset_of!(_opaque_pthread_mutex_t, __opaque) - 8usize];
1449};
1450impl Default for _opaque_pthread_mutex_t {
1451    fn default() -> Self {
1452        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1453        unsafe {
1454            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1455            s.assume_init()
1456        }
1457    }
1458}
1459#[repr(C)]
1460#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1461pub struct _opaque_pthread_mutexattr_t {
1462    pub __sig: ::std::os::raw::c_long,
1463    pub __opaque: [::std::os::raw::c_char; 8usize],
1464}
1465#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1466const _: () = {
1467    ["Size of _opaque_pthread_mutexattr_t"]
1468        [::std::mem::size_of::<_opaque_pthread_mutexattr_t>() - 16usize];
1469    ["Alignment of _opaque_pthread_mutexattr_t"]
1470        [::std::mem::align_of::<_opaque_pthread_mutexattr_t>() - 8usize];
1471    ["Offset of field: _opaque_pthread_mutexattr_t::__sig"]
1472        [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __sig) - 0usize];
1473    ["Offset of field: _opaque_pthread_mutexattr_t::__opaque"]
1474        [::std::mem::offset_of!(_opaque_pthread_mutexattr_t, __opaque) - 8usize];
1475};
1476#[repr(C)]
1477#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1478pub struct _opaque_pthread_once_t {
1479    pub __sig: ::std::os::raw::c_long,
1480    pub __opaque: [::std::os::raw::c_char; 8usize],
1481}
1482#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1483const _: () = {
1484    ["Size of _opaque_pthread_once_t"][::std::mem::size_of::<_opaque_pthread_once_t>() - 16usize];
1485    ["Alignment of _opaque_pthread_once_t"]
1486        [::std::mem::align_of::<_opaque_pthread_once_t>() - 8usize];
1487    ["Offset of field: _opaque_pthread_once_t::__sig"]
1488        [::std::mem::offset_of!(_opaque_pthread_once_t, __sig) - 0usize];
1489    ["Offset of field: _opaque_pthread_once_t::__opaque"]
1490        [::std::mem::offset_of!(_opaque_pthread_once_t, __opaque) - 8usize];
1491};
1492#[repr(C)]
1493#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1494pub struct _opaque_pthread_rwlock_t {
1495    pub __sig: ::std::os::raw::c_long,
1496    pub __opaque: [::std::os::raw::c_char; 192usize],
1497}
1498#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1499const _: () = {
1500    ["Size of _opaque_pthread_rwlock_t"]
1501        [::std::mem::size_of::<_opaque_pthread_rwlock_t>() - 200usize];
1502    ["Alignment of _opaque_pthread_rwlock_t"]
1503        [::std::mem::align_of::<_opaque_pthread_rwlock_t>() - 8usize];
1504    ["Offset of field: _opaque_pthread_rwlock_t::__sig"]
1505        [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __sig) - 0usize];
1506    ["Offset of field: _opaque_pthread_rwlock_t::__opaque"]
1507        [::std::mem::offset_of!(_opaque_pthread_rwlock_t, __opaque) - 8usize];
1508};
1509impl Default for _opaque_pthread_rwlock_t {
1510    fn default() -> Self {
1511        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1512        unsafe {
1513            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1514            s.assume_init()
1515        }
1516    }
1517}
1518#[repr(C)]
1519#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1520pub struct _opaque_pthread_rwlockattr_t {
1521    pub __sig: ::std::os::raw::c_long,
1522    pub __opaque: [::std::os::raw::c_char; 16usize],
1523}
1524#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1525const _: () = {
1526    ["Size of _opaque_pthread_rwlockattr_t"]
1527        [::std::mem::size_of::<_opaque_pthread_rwlockattr_t>() - 24usize];
1528    ["Alignment of _opaque_pthread_rwlockattr_t"]
1529        [::std::mem::align_of::<_opaque_pthread_rwlockattr_t>() - 8usize];
1530    ["Offset of field: _opaque_pthread_rwlockattr_t::__sig"]
1531        [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __sig) - 0usize];
1532    ["Offset of field: _opaque_pthread_rwlockattr_t::__opaque"]
1533        [::std::mem::offset_of!(_opaque_pthread_rwlockattr_t, __opaque) - 8usize];
1534};
1535#[repr(C)]
1536#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1537pub struct _opaque_pthread_t {
1538    pub __sig: ::std::os::raw::c_long,
1539    pub __cleanup_stack: *mut __darwin_pthread_handler_rec,
1540    pub __opaque: [::std::os::raw::c_char; 8176usize],
1541}
1542#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1543const _: () = {
1544    ["Size of _opaque_pthread_t"][::std::mem::size_of::<_opaque_pthread_t>() - 8192usize];
1545    ["Alignment of _opaque_pthread_t"][::std::mem::align_of::<_opaque_pthread_t>() - 8usize];
1546    ["Offset of field: _opaque_pthread_t::__sig"]
1547        [::std::mem::offset_of!(_opaque_pthread_t, __sig) - 0usize];
1548    ["Offset of field: _opaque_pthread_t::__cleanup_stack"]
1549        [::std::mem::offset_of!(_opaque_pthread_t, __cleanup_stack) - 8usize];
1550    ["Offset of field: _opaque_pthread_t::__opaque"]
1551        [::std::mem::offset_of!(_opaque_pthread_t, __opaque) - 16usize];
1552};
1553impl Default for _opaque_pthread_t {
1554    fn default() -> Self {
1555        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1556        unsafe {
1557            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1558            s.assume_init()
1559        }
1560    }
1561}
1562pub type __darwin_pthread_attr_t = _opaque_pthread_attr_t;
1563pub type __darwin_pthread_cond_t = _opaque_pthread_cond_t;
1564pub type __darwin_pthread_condattr_t = _opaque_pthread_condattr_t;
1565pub type __darwin_pthread_key_t = ::std::os::raw::c_ulong;
1566pub type __darwin_pthread_mutex_t = _opaque_pthread_mutex_t;
1567pub type __darwin_pthread_mutexattr_t = _opaque_pthread_mutexattr_t;
1568pub type __darwin_pthread_once_t = _opaque_pthread_once_t;
1569pub type __darwin_pthread_rwlock_t = _opaque_pthread_rwlock_t;
1570pub type __darwin_pthread_rwlockattr_t = _opaque_pthread_rwlockattr_t;
1571pub type __darwin_pthread_t = *mut _opaque_pthread_t;
1572pub type __darwin_nl_item = ::std::os::raw::c_int;
1573pub type __darwin_wctrans_t = ::std::os::raw::c_int;
1574pub type __darwin_wctype_t = __uint32_t;
1575pub const idtype_t_P_ALL: idtype_t = 0;
1576pub const idtype_t_P_PID: idtype_t = 1;
1577pub const idtype_t_P_PGID: idtype_t = 2;
1578pub type idtype_t = ::std::os::raw::c_uint;
1579pub type pid_t = __darwin_pid_t;
1580pub type id_t = __darwin_id_t;
1581pub type sig_atomic_t = ::std::os::raw::c_int;
1582pub type u_int8_t = ::std::os::raw::c_uchar;
1583pub type u_int16_t = ::std::os::raw::c_ushort;
1584pub type u_int32_t = ::std::os::raw::c_uint;
1585pub type u_int64_t = ::std::os::raw::c_ulonglong;
1586pub type register_t = i64;
1587pub type user_addr_t = u_int64_t;
1588pub type user_size_t = u_int64_t;
1589pub type user_ssize_t = i64;
1590pub type user_long_t = i64;
1591pub type user_ulong_t = u_int64_t;
1592pub type user_time_t = i64;
1593pub type user_off_t = i64;
1594pub type syscall_arg_t = u_int64_t;
1595#[repr(C)]
1596#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1597pub struct __darwin_arm_exception_state {
1598    pub __exception: __uint32_t,
1599    pub __fsr: __uint32_t,
1600    pub __far: __uint32_t,
1601}
1602#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1603const _: () = {
1604    ["Size of __darwin_arm_exception_state"]
1605        [::std::mem::size_of::<__darwin_arm_exception_state>() - 12usize];
1606    ["Alignment of __darwin_arm_exception_state"]
1607        [::std::mem::align_of::<__darwin_arm_exception_state>() - 4usize];
1608    ["Offset of field: __darwin_arm_exception_state::__exception"]
1609        [::std::mem::offset_of!(__darwin_arm_exception_state, __exception) - 0usize];
1610    ["Offset of field: __darwin_arm_exception_state::__fsr"]
1611        [::std::mem::offset_of!(__darwin_arm_exception_state, __fsr) - 4usize];
1612    ["Offset of field: __darwin_arm_exception_state::__far"]
1613        [::std::mem::offset_of!(__darwin_arm_exception_state, __far) - 8usize];
1614};
1615#[repr(C)]
1616#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1617pub struct __darwin_arm_exception_state64 {
1618    pub __far: __uint64_t,
1619    pub __esr: __uint32_t,
1620    pub __exception: __uint32_t,
1621}
1622#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1623const _: () = {
1624    ["Size of __darwin_arm_exception_state64"]
1625        [::std::mem::size_of::<__darwin_arm_exception_state64>() - 16usize];
1626    ["Alignment of __darwin_arm_exception_state64"]
1627        [::std::mem::align_of::<__darwin_arm_exception_state64>() - 8usize];
1628    ["Offset of field: __darwin_arm_exception_state64::__far"]
1629        [::std::mem::offset_of!(__darwin_arm_exception_state64, __far) - 0usize];
1630    ["Offset of field: __darwin_arm_exception_state64::__esr"]
1631        [::std::mem::offset_of!(__darwin_arm_exception_state64, __esr) - 8usize];
1632    ["Offset of field: __darwin_arm_exception_state64::__exception"]
1633        [::std::mem::offset_of!(__darwin_arm_exception_state64, __exception) - 12usize];
1634};
1635#[repr(C)]
1636#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1637pub struct __darwin_arm_exception_state64_v2 {
1638    pub __far: __uint64_t,
1639    pub __esr: __uint64_t,
1640}
1641#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1642const _: () = {
1643    ["Size of __darwin_arm_exception_state64_v2"]
1644        [::std::mem::size_of::<__darwin_arm_exception_state64_v2>() - 16usize];
1645    ["Alignment of __darwin_arm_exception_state64_v2"]
1646        [::std::mem::align_of::<__darwin_arm_exception_state64_v2>() - 8usize];
1647    ["Offset of field: __darwin_arm_exception_state64_v2::__far"]
1648        [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __far) - 0usize];
1649    ["Offset of field: __darwin_arm_exception_state64_v2::__esr"]
1650        [::std::mem::offset_of!(__darwin_arm_exception_state64_v2, __esr) - 8usize];
1651};
1652#[repr(C)]
1653#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1654pub struct __darwin_arm_thread_state {
1655    pub __r: [__uint32_t; 13usize],
1656    pub __sp: __uint32_t,
1657    pub __lr: __uint32_t,
1658    pub __pc: __uint32_t,
1659    pub __cpsr: __uint32_t,
1660}
1661#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1662const _: () = {
1663    ["Size of __darwin_arm_thread_state"]
1664        [::std::mem::size_of::<__darwin_arm_thread_state>() - 68usize];
1665    ["Alignment of __darwin_arm_thread_state"]
1666        [::std::mem::align_of::<__darwin_arm_thread_state>() - 4usize];
1667    ["Offset of field: __darwin_arm_thread_state::__r"]
1668        [::std::mem::offset_of!(__darwin_arm_thread_state, __r) - 0usize];
1669    ["Offset of field: __darwin_arm_thread_state::__sp"]
1670        [::std::mem::offset_of!(__darwin_arm_thread_state, __sp) - 52usize];
1671    ["Offset of field: __darwin_arm_thread_state::__lr"]
1672        [::std::mem::offset_of!(__darwin_arm_thread_state, __lr) - 56usize];
1673    ["Offset of field: __darwin_arm_thread_state::__pc"]
1674        [::std::mem::offset_of!(__darwin_arm_thread_state, __pc) - 60usize];
1675    ["Offset of field: __darwin_arm_thread_state::__cpsr"]
1676        [::std::mem::offset_of!(__darwin_arm_thread_state, __cpsr) - 64usize];
1677};
1678#[repr(C)]
1679#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1680pub struct __darwin_arm_thread_state64 {
1681    pub __x: [__uint64_t; 29usize],
1682    pub __fp: __uint64_t,
1683    pub __lr: __uint64_t,
1684    pub __sp: __uint64_t,
1685    pub __pc: __uint64_t,
1686    pub __cpsr: __uint32_t,
1687    pub __pad: __uint32_t,
1688}
1689#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1690const _: () = {
1691    ["Size of __darwin_arm_thread_state64"]
1692        [::std::mem::size_of::<__darwin_arm_thread_state64>() - 272usize];
1693    ["Alignment of __darwin_arm_thread_state64"]
1694        [::std::mem::align_of::<__darwin_arm_thread_state64>() - 8usize];
1695    ["Offset of field: __darwin_arm_thread_state64::__x"]
1696        [::std::mem::offset_of!(__darwin_arm_thread_state64, __x) - 0usize];
1697    ["Offset of field: __darwin_arm_thread_state64::__fp"]
1698        [::std::mem::offset_of!(__darwin_arm_thread_state64, __fp) - 232usize];
1699    ["Offset of field: __darwin_arm_thread_state64::__lr"]
1700        [::std::mem::offset_of!(__darwin_arm_thread_state64, __lr) - 240usize];
1701    ["Offset of field: __darwin_arm_thread_state64::__sp"]
1702        [::std::mem::offset_of!(__darwin_arm_thread_state64, __sp) - 248usize];
1703    ["Offset of field: __darwin_arm_thread_state64::__pc"]
1704        [::std::mem::offset_of!(__darwin_arm_thread_state64, __pc) - 256usize];
1705    ["Offset of field: __darwin_arm_thread_state64::__cpsr"]
1706        [::std::mem::offset_of!(__darwin_arm_thread_state64, __cpsr) - 264usize];
1707    ["Offset of field: __darwin_arm_thread_state64::__pad"]
1708        [::std::mem::offset_of!(__darwin_arm_thread_state64, __pad) - 268usize];
1709};
1710#[repr(C)]
1711#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1712pub struct __darwin_arm_vfp_state {
1713    pub __r: [__uint32_t; 64usize],
1714    pub __fpscr: __uint32_t,
1715}
1716#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1717const _: () = {
1718    ["Size of __darwin_arm_vfp_state"][::std::mem::size_of::<__darwin_arm_vfp_state>() - 260usize];
1719    ["Alignment of __darwin_arm_vfp_state"]
1720        [::std::mem::align_of::<__darwin_arm_vfp_state>() - 4usize];
1721    ["Offset of field: __darwin_arm_vfp_state::__r"]
1722        [::std::mem::offset_of!(__darwin_arm_vfp_state, __r) - 0usize];
1723    ["Offset of field: __darwin_arm_vfp_state::__fpscr"]
1724        [::std::mem::offset_of!(__darwin_arm_vfp_state, __fpscr) - 256usize];
1725};
1726impl Default for __darwin_arm_vfp_state {
1727    fn default() -> Self {
1728        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1729        unsafe {
1730            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1731            s.assume_init()
1732        }
1733    }
1734}
1735#[repr(C)]
1736#[repr(align(16))]
1737#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1738pub struct __darwin_arm_neon_state64 {
1739    pub __v: [__uint128_t; 32usize],
1740    pub __fpsr: __uint32_t,
1741    pub __fpcr: __uint32_t,
1742}
1743#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1744const _: () = {
1745    ["Size of __darwin_arm_neon_state64"]
1746        [::std::mem::size_of::<__darwin_arm_neon_state64>() - 528usize];
1747    ["Alignment of __darwin_arm_neon_state64"]
1748        [::std::mem::align_of::<__darwin_arm_neon_state64>() - 16usize];
1749    ["Offset of field: __darwin_arm_neon_state64::__v"]
1750        [::std::mem::offset_of!(__darwin_arm_neon_state64, __v) - 0usize];
1751    ["Offset of field: __darwin_arm_neon_state64::__fpsr"]
1752        [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpsr) - 512usize];
1753    ["Offset of field: __darwin_arm_neon_state64::__fpcr"]
1754        [::std::mem::offset_of!(__darwin_arm_neon_state64, __fpcr) - 516usize];
1755};
1756#[repr(C)]
1757#[repr(align(16))]
1758#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1759pub struct __darwin_arm_neon_state {
1760    pub __v: [__uint128_t; 16usize],
1761    pub __fpsr: __uint32_t,
1762    pub __fpcr: __uint32_t,
1763}
1764#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1765const _: () = {
1766    ["Size of __darwin_arm_neon_state"]
1767        [::std::mem::size_of::<__darwin_arm_neon_state>() - 272usize];
1768    ["Alignment of __darwin_arm_neon_state"]
1769        [::std::mem::align_of::<__darwin_arm_neon_state>() - 16usize];
1770    ["Offset of field: __darwin_arm_neon_state::__v"]
1771        [::std::mem::offset_of!(__darwin_arm_neon_state, __v) - 0usize];
1772    ["Offset of field: __darwin_arm_neon_state::__fpsr"]
1773        [::std::mem::offset_of!(__darwin_arm_neon_state, __fpsr) - 256usize];
1774    ["Offset of field: __darwin_arm_neon_state::__fpcr"]
1775        [::std::mem::offset_of!(__darwin_arm_neon_state, __fpcr) - 260usize];
1776};
1777#[repr(C)]
1778#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1779pub struct __arm_pagein_state {
1780    pub __pagein_error: ::std::os::raw::c_int,
1781}
1782#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1783const _: () = {
1784    ["Size of __arm_pagein_state"][::std::mem::size_of::<__arm_pagein_state>() - 4usize];
1785    ["Alignment of __arm_pagein_state"][::std::mem::align_of::<__arm_pagein_state>() - 4usize];
1786    ["Offset of field: __arm_pagein_state::__pagein_error"]
1787        [::std::mem::offset_of!(__arm_pagein_state, __pagein_error) - 0usize];
1788};
1789#[repr(C)]
1790#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1791pub struct __darwin_arm_sme_state {
1792    pub __svcr: __uint64_t,
1793    pub __tpidr2_el0: __uint64_t,
1794    pub __svl_b: __uint16_t,
1795}
1796#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1797const _: () = {
1798    ["Size of __darwin_arm_sme_state"][::std::mem::size_of::<__darwin_arm_sme_state>() - 24usize];
1799    ["Alignment of __darwin_arm_sme_state"]
1800        [::std::mem::align_of::<__darwin_arm_sme_state>() - 8usize];
1801    ["Offset of field: __darwin_arm_sme_state::__svcr"]
1802        [::std::mem::offset_of!(__darwin_arm_sme_state, __svcr) - 0usize];
1803    ["Offset of field: __darwin_arm_sme_state::__tpidr2_el0"]
1804        [::std::mem::offset_of!(__darwin_arm_sme_state, __tpidr2_el0) - 8usize];
1805    ["Offset of field: __darwin_arm_sme_state::__svl_b"]
1806        [::std::mem::offset_of!(__darwin_arm_sme_state, __svl_b) - 16usize];
1807};
1808#[repr(C)]
1809#[repr(align(4))]
1810#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1811pub struct __darwin_arm_sve_z_state {
1812    pub __z: [[::std::os::raw::c_char; 256usize]; 16usize],
1813}
1814#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1815const _: () = {
1816    ["Size of __darwin_arm_sve_z_state"]
1817        [::std::mem::size_of::<__darwin_arm_sve_z_state>() - 4096usize];
1818    ["Alignment of __darwin_arm_sve_z_state"]
1819        [::std::mem::align_of::<__darwin_arm_sve_z_state>() - 4usize];
1820    ["Offset of field: __darwin_arm_sve_z_state::__z"]
1821        [::std::mem::offset_of!(__darwin_arm_sve_z_state, __z) - 0usize];
1822};
1823impl Default for __darwin_arm_sve_z_state {
1824    fn default() -> Self {
1825        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1826        unsafe {
1827            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1828            s.assume_init()
1829        }
1830    }
1831}
1832#[repr(C)]
1833#[repr(align(4))]
1834#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1835pub struct __darwin_arm_sve_p_state {
1836    pub __p: [[::std::os::raw::c_char; 32usize]; 16usize],
1837}
1838#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1839const _: () = {
1840    ["Size of __darwin_arm_sve_p_state"]
1841        [::std::mem::size_of::<__darwin_arm_sve_p_state>() - 512usize];
1842    ["Alignment of __darwin_arm_sve_p_state"]
1843        [::std::mem::align_of::<__darwin_arm_sve_p_state>() - 4usize];
1844    ["Offset of field: __darwin_arm_sve_p_state::__p"]
1845        [::std::mem::offset_of!(__darwin_arm_sve_p_state, __p) - 0usize];
1846};
1847#[repr(C)]
1848#[repr(align(4))]
1849#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1850pub struct __darwin_arm_sme_za_state {
1851    pub __za: [::std::os::raw::c_char; 4096usize],
1852}
1853#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1854const _: () = {
1855    ["Size of __darwin_arm_sme_za_state"]
1856        [::std::mem::size_of::<__darwin_arm_sme_za_state>() - 4096usize];
1857    ["Alignment of __darwin_arm_sme_za_state"]
1858        [::std::mem::align_of::<__darwin_arm_sme_za_state>() - 4usize];
1859    ["Offset of field: __darwin_arm_sme_za_state::__za"]
1860        [::std::mem::offset_of!(__darwin_arm_sme_za_state, __za) - 0usize];
1861};
1862impl Default for __darwin_arm_sme_za_state {
1863    fn default() -> Self {
1864        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1865        unsafe {
1866            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1867            s.assume_init()
1868        }
1869    }
1870}
1871#[repr(C)]
1872#[repr(align(4))]
1873#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1874pub struct __darwin_arm_sme2_state {
1875    pub __zt0: [::std::os::raw::c_char; 64usize],
1876}
1877#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1878const _: () = {
1879    ["Size of __darwin_arm_sme2_state"][::std::mem::size_of::<__darwin_arm_sme2_state>() - 64usize];
1880    ["Alignment of __darwin_arm_sme2_state"]
1881        [::std::mem::align_of::<__darwin_arm_sme2_state>() - 4usize];
1882    ["Offset of field: __darwin_arm_sme2_state::__zt0"]
1883        [::std::mem::offset_of!(__darwin_arm_sme2_state, __zt0) - 0usize];
1884};
1885impl Default for __darwin_arm_sme2_state {
1886    fn default() -> Self {
1887        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
1888        unsafe {
1889            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1890            s.assume_init()
1891        }
1892    }
1893}
1894#[repr(C)]
1895#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1896pub struct __arm_legacy_debug_state {
1897    pub __bvr: [__uint32_t; 16usize],
1898    pub __bcr: [__uint32_t; 16usize],
1899    pub __wvr: [__uint32_t; 16usize],
1900    pub __wcr: [__uint32_t; 16usize],
1901}
1902#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1903const _: () = {
1904    ["Size of __arm_legacy_debug_state"]
1905        [::std::mem::size_of::<__arm_legacy_debug_state>() - 256usize];
1906    ["Alignment of __arm_legacy_debug_state"]
1907        [::std::mem::align_of::<__arm_legacy_debug_state>() - 4usize];
1908    ["Offset of field: __arm_legacy_debug_state::__bvr"]
1909        [::std::mem::offset_of!(__arm_legacy_debug_state, __bvr) - 0usize];
1910    ["Offset of field: __arm_legacy_debug_state::__bcr"]
1911        [::std::mem::offset_of!(__arm_legacy_debug_state, __bcr) - 64usize];
1912    ["Offset of field: __arm_legacy_debug_state::__wvr"]
1913        [::std::mem::offset_of!(__arm_legacy_debug_state, __wvr) - 128usize];
1914    ["Offset of field: __arm_legacy_debug_state::__wcr"]
1915        [::std::mem::offset_of!(__arm_legacy_debug_state, __wcr) - 192usize];
1916};
1917#[repr(C)]
1918#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1919pub struct __darwin_arm_debug_state32 {
1920    pub __bvr: [__uint32_t; 16usize],
1921    pub __bcr: [__uint32_t; 16usize],
1922    pub __wvr: [__uint32_t; 16usize],
1923    pub __wcr: [__uint32_t; 16usize],
1924    pub __mdscr_el1: __uint64_t,
1925}
1926#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1927const _: () = {
1928    ["Size of __darwin_arm_debug_state32"]
1929        [::std::mem::size_of::<__darwin_arm_debug_state32>() - 264usize];
1930    ["Alignment of __darwin_arm_debug_state32"]
1931        [::std::mem::align_of::<__darwin_arm_debug_state32>() - 8usize];
1932    ["Offset of field: __darwin_arm_debug_state32::__bvr"]
1933        [::std::mem::offset_of!(__darwin_arm_debug_state32, __bvr) - 0usize];
1934    ["Offset of field: __darwin_arm_debug_state32::__bcr"]
1935        [::std::mem::offset_of!(__darwin_arm_debug_state32, __bcr) - 64usize];
1936    ["Offset of field: __darwin_arm_debug_state32::__wvr"]
1937        [::std::mem::offset_of!(__darwin_arm_debug_state32, __wvr) - 128usize];
1938    ["Offset of field: __darwin_arm_debug_state32::__wcr"]
1939        [::std::mem::offset_of!(__darwin_arm_debug_state32, __wcr) - 192usize];
1940    ["Offset of field: __darwin_arm_debug_state32::__mdscr_el1"]
1941        [::std::mem::offset_of!(__darwin_arm_debug_state32, __mdscr_el1) - 256usize];
1942};
1943#[repr(C)]
1944#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1945pub struct __darwin_arm_debug_state64 {
1946    pub __bvr: [__uint64_t; 16usize],
1947    pub __bcr: [__uint64_t; 16usize],
1948    pub __wvr: [__uint64_t; 16usize],
1949    pub __wcr: [__uint64_t; 16usize],
1950    pub __mdscr_el1: __uint64_t,
1951}
1952#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1953const _: () = {
1954    ["Size of __darwin_arm_debug_state64"]
1955        [::std::mem::size_of::<__darwin_arm_debug_state64>() - 520usize];
1956    ["Alignment of __darwin_arm_debug_state64"]
1957        [::std::mem::align_of::<__darwin_arm_debug_state64>() - 8usize];
1958    ["Offset of field: __darwin_arm_debug_state64::__bvr"]
1959        [::std::mem::offset_of!(__darwin_arm_debug_state64, __bvr) - 0usize];
1960    ["Offset of field: __darwin_arm_debug_state64::__bcr"]
1961        [::std::mem::offset_of!(__darwin_arm_debug_state64, __bcr) - 128usize];
1962    ["Offset of field: __darwin_arm_debug_state64::__wvr"]
1963        [::std::mem::offset_of!(__darwin_arm_debug_state64, __wvr) - 256usize];
1964    ["Offset of field: __darwin_arm_debug_state64::__wcr"]
1965        [::std::mem::offset_of!(__darwin_arm_debug_state64, __wcr) - 384usize];
1966    ["Offset of field: __darwin_arm_debug_state64::__mdscr_el1"]
1967        [::std::mem::offset_of!(__darwin_arm_debug_state64, __mdscr_el1) - 512usize];
1968};
1969#[repr(C)]
1970#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
1971pub struct __darwin_arm_cpmu_state64 {
1972    pub __ctrs: [__uint64_t; 16usize],
1973}
1974#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1975const _: () = {
1976    ["Size of __darwin_arm_cpmu_state64"]
1977        [::std::mem::size_of::<__darwin_arm_cpmu_state64>() - 128usize];
1978    ["Alignment of __darwin_arm_cpmu_state64"]
1979        [::std::mem::align_of::<__darwin_arm_cpmu_state64>() - 8usize];
1980    ["Offset of field: __darwin_arm_cpmu_state64::__ctrs"]
1981        [::std::mem::offset_of!(__darwin_arm_cpmu_state64, __ctrs) - 0usize];
1982};
1983#[repr(C)]
1984#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
1985pub struct __darwin_mcontext32 {
1986    pub __es: __darwin_arm_exception_state,
1987    pub __ss: __darwin_arm_thread_state,
1988    pub __fs: __darwin_arm_vfp_state,
1989}
1990#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1991const _: () = {
1992    ["Size of __darwin_mcontext32"][::std::mem::size_of::<__darwin_mcontext32>() - 340usize];
1993    ["Alignment of __darwin_mcontext32"][::std::mem::align_of::<__darwin_mcontext32>() - 4usize];
1994    ["Offset of field: __darwin_mcontext32::__es"]
1995        [::std::mem::offset_of!(__darwin_mcontext32, __es) - 0usize];
1996    ["Offset of field: __darwin_mcontext32::__ss"]
1997        [::std::mem::offset_of!(__darwin_mcontext32, __ss) - 12usize];
1998    ["Offset of field: __darwin_mcontext32::__fs"]
1999        [::std::mem::offset_of!(__darwin_mcontext32, __fs) - 80usize];
2000};
2001impl Default for __darwin_mcontext32 {
2002    fn default() -> Self {
2003        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2004        unsafe {
2005            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2006            s.assume_init()
2007        }
2008    }
2009}
2010#[repr(C)]
2011#[repr(align(16))]
2012#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2013pub struct __darwin_mcontext64 {
2014    pub __es: __darwin_arm_exception_state64,
2015    pub __ss: __darwin_arm_thread_state64,
2016    pub __ns: __darwin_arm_neon_state64,
2017}
2018#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2019const _: () = {
2020    ["Size of __darwin_mcontext64"][::std::mem::size_of::<__darwin_mcontext64>() - 816usize];
2021    ["Alignment of __darwin_mcontext64"][::std::mem::align_of::<__darwin_mcontext64>() - 16usize];
2022    ["Offset of field: __darwin_mcontext64::__es"]
2023        [::std::mem::offset_of!(__darwin_mcontext64, __es) - 0usize];
2024    ["Offset of field: __darwin_mcontext64::__ss"]
2025        [::std::mem::offset_of!(__darwin_mcontext64, __ss) - 16usize];
2026    ["Offset of field: __darwin_mcontext64::__ns"]
2027        [::std::mem::offset_of!(__darwin_mcontext64, __ns) - 288usize];
2028};
2029pub type mcontext_t = *mut __darwin_mcontext64;
2030pub type pthread_attr_t = __darwin_pthread_attr_t;
2031#[repr(C)]
2032#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2033pub struct __darwin_sigaltstack {
2034    pub ss_sp: *mut ::std::os::raw::c_void,
2035    pub ss_size: __darwin_size_t,
2036    pub ss_flags: ::std::os::raw::c_int,
2037}
2038#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2039const _: () = {
2040    ["Size of __darwin_sigaltstack"][::std::mem::size_of::<__darwin_sigaltstack>() - 24usize];
2041    ["Alignment of __darwin_sigaltstack"][::std::mem::align_of::<__darwin_sigaltstack>() - 8usize];
2042    ["Offset of field: __darwin_sigaltstack::ss_sp"]
2043        [::std::mem::offset_of!(__darwin_sigaltstack, ss_sp) - 0usize];
2044    ["Offset of field: __darwin_sigaltstack::ss_size"]
2045        [::std::mem::offset_of!(__darwin_sigaltstack, ss_size) - 8usize];
2046    ["Offset of field: __darwin_sigaltstack::ss_flags"]
2047        [::std::mem::offset_of!(__darwin_sigaltstack, ss_flags) - 16usize];
2048};
2049impl Default for __darwin_sigaltstack {
2050    fn default() -> Self {
2051        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2052        unsafe {
2053            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2054            s.assume_init()
2055        }
2056    }
2057}
2058pub type stack_t = __darwin_sigaltstack;
2059#[repr(C)]
2060#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2061pub struct __darwin_ucontext {
2062    pub uc_onstack: ::std::os::raw::c_int,
2063    pub uc_sigmask: __darwin_sigset_t,
2064    pub uc_stack: __darwin_sigaltstack,
2065    pub uc_link: *mut __darwin_ucontext,
2066    pub uc_mcsize: __darwin_size_t,
2067    pub uc_mcontext: *mut __darwin_mcontext64,
2068}
2069#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2070const _: () = {
2071    ["Size of __darwin_ucontext"][::std::mem::size_of::<__darwin_ucontext>() - 56usize];
2072    ["Alignment of __darwin_ucontext"][::std::mem::align_of::<__darwin_ucontext>() - 8usize];
2073    ["Offset of field: __darwin_ucontext::uc_onstack"]
2074        [::std::mem::offset_of!(__darwin_ucontext, uc_onstack) - 0usize];
2075    ["Offset of field: __darwin_ucontext::uc_sigmask"]
2076        [::std::mem::offset_of!(__darwin_ucontext, uc_sigmask) - 4usize];
2077    ["Offset of field: __darwin_ucontext::uc_stack"]
2078        [::std::mem::offset_of!(__darwin_ucontext, uc_stack) - 8usize];
2079    ["Offset of field: __darwin_ucontext::uc_link"]
2080        [::std::mem::offset_of!(__darwin_ucontext, uc_link) - 32usize];
2081    ["Offset of field: __darwin_ucontext::uc_mcsize"]
2082        [::std::mem::offset_of!(__darwin_ucontext, uc_mcsize) - 40usize];
2083    ["Offset of field: __darwin_ucontext::uc_mcontext"]
2084        [::std::mem::offset_of!(__darwin_ucontext, uc_mcontext) - 48usize];
2085};
2086impl Default for __darwin_ucontext {
2087    fn default() -> Self {
2088        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2089        unsafe {
2090            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2091            s.assume_init()
2092        }
2093    }
2094}
2095pub type ucontext_t = __darwin_ucontext;
2096pub type sigset_t = __darwin_sigset_t;
2097pub type uid_t = __darwin_uid_t;
2098#[repr(C)]
2099#[derive(Copy, Clone)]
2100pub union sigval {
2101    pub sival_int: ::std::os::raw::c_int,
2102    pub sival_ptr: *mut ::std::os::raw::c_void,
2103}
2104#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2105const _: () = {
2106    ["Size of sigval"][::std::mem::size_of::<sigval>() - 8usize];
2107    ["Alignment of sigval"][::std::mem::align_of::<sigval>() - 8usize];
2108    ["Offset of field: sigval::sival_int"][::std::mem::offset_of!(sigval, sival_int) - 0usize];
2109    ["Offset of field: sigval::sival_ptr"][::std::mem::offset_of!(sigval, sival_ptr) - 0usize];
2110};
2111impl Default for sigval {
2112    fn default() -> Self {
2113        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2114        unsafe {
2115            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2116            s.assume_init()
2117        }
2118    }
2119}
2120#[repr(C)]
2121#[derive(Copy, Clone)]
2122pub struct sigevent {
2123    pub sigev_notify: ::std::os::raw::c_int,
2124    pub sigev_signo: ::std::os::raw::c_int,
2125    pub sigev_value: sigval,
2126    pub sigev_notify_function: ::std::option::Option<unsafe extern "C" fn(arg1: sigval)>,
2127    pub sigev_notify_attributes: *mut pthread_attr_t,
2128}
2129#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2130const _: () = {
2131    ["Size of sigevent"][::std::mem::size_of::<sigevent>() - 32usize];
2132    ["Alignment of sigevent"][::std::mem::align_of::<sigevent>() - 8usize];
2133    ["Offset of field: sigevent::sigev_notify"]
2134        [::std::mem::offset_of!(sigevent, sigev_notify) - 0usize];
2135    ["Offset of field: sigevent::sigev_signo"]
2136        [::std::mem::offset_of!(sigevent, sigev_signo) - 4usize];
2137    ["Offset of field: sigevent::sigev_value"]
2138        [::std::mem::offset_of!(sigevent, sigev_value) - 8usize];
2139    ["Offset of field: sigevent::sigev_notify_function"]
2140        [::std::mem::offset_of!(sigevent, sigev_notify_function) - 16usize];
2141    ["Offset of field: sigevent::sigev_notify_attributes"]
2142        [::std::mem::offset_of!(sigevent, sigev_notify_attributes) - 24usize];
2143};
2144impl Default for sigevent {
2145    fn default() -> Self {
2146        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2147        unsafe {
2148            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2149            s.assume_init()
2150        }
2151    }
2152}
2153#[repr(C)]
2154#[derive(Copy, Clone)]
2155pub struct __siginfo {
2156    pub si_signo: ::std::os::raw::c_int,
2157    pub si_errno: ::std::os::raw::c_int,
2158    pub si_code: ::std::os::raw::c_int,
2159    pub si_pid: pid_t,
2160    pub si_uid: uid_t,
2161    pub si_status: ::std::os::raw::c_int,
2162    pub si_addr: *mut ::std::os::raw::c_void,
2163    pub si_value: sigval,
2164    pub si_band: ::std::os::raw::c_long,
2165    pub __pad: [::std::os::raw::c_ulong; 7usize],
2166}
2167#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2168const _: () = {
2169    ["Size of __siginfo"][::std::mem::size_of::<__siginfo>() - 104usize];
2170    ["Alignment of __siginfo"][::std::mem::align_of::<__siginfo>() - 8usize];
2171    ["Offset of field: __siginfo::si_signo"][::std::mem::offset_of!(__siginfo, si_signo) - 0usize];
2172    ["Offset of field: __siginfo::si_errno"][::std::mem::offset_of!(__siginfo, si_errno) - 4usize];
2173    ["Offset of field: __siginfo::si_code"][::std::mem::offset_of!(__siginfo, si_code) - 8usize];
2174    ["Offset of field: __siginfo::si_pid"][::std::mem::offset_of!(__siginfo, si_pid) - 12usize];
2175    ["Offset of field: __siginfo::si_uid"][::std::mem::offset_of!(__siginfo, si_uid) - 16usize];
2176    ["Offset of field: __siginfo::si_status"]
2177        [::std::mem::offset_of!(__siginfo, si_status) - 20usize];
2178    ["Offset of field: __siginfo::si_addr"][::std::mem::offset_of!(__siginfo, si_addr) - 24usize];
2179    ["Offset of field: __siginfo::si_value"][::std::mem::offset_of!(__siginfo, si_value) - 32usize];
2180    ["Offset of field: __siginfo::si_band"][::std::mem::offset_of!(__siginfo, si_band) - 40usize];
2181    ["Offset of field: __siginfo::__pad"][::std::mem::offset_of!(__siginfo, __pad) - 48usize];
2182};
2183impl Default for __siginfo {
2184    fn default() -> Self {
2185        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2186        unsafe {
2187            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2188            s.assume_init()
2189        }
2190    }
2191}
2192pub type siginfo_t = __siginfo;
2193#[repr(C)]
2194#[derive(Copy, Clone)]
2195pub union __sigaction_u {
2196    pub __sa_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2197    pub __sa_sigaction: ::std::option::Option<
2198        unsafe extern "C" fn(
2199            arg1: ::std::os::raw::c_int,
2200            arg2: *mut __siginfo,
2201            arg3: *mut ::std::os::raw::c_void,
2202        ),
2203    >,
2204}
2205#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2206const _: () = {
2207    ["Size of __sigaction_u"][::std::mem::size_of::<__sigaction_u>() - 8usize];
2208    ["Alignment of __sigaction_u"][::std::mem::align_of::<__sigaction_u>() - 8usize];
2209    ["Offset of field: __sigaction_u::__sa_handler"]
2210        [::std::mem::offset_of!(__sigaction_u, __sa_handler) - 0usize];
2211    ["Offset of field: __sigaction_u::__sa_sigaction"]
2212        [::std::mem::offset_of!(__sigaction_u, __sa_sigaction) - 0usize];
2213};
2214impl Default for __sigaction_u {
2215    fn default() -> Self {
2216        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2217        unsafe {
2218            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2219            s.assume_init()
2220        }
2221    }
2222}
2223#[repr(C)]
2224#[derive(Copy, Clone)]
2225pub struct __sigaction {
2226    pub __sigaction_u: __sigaction_u,
2227    pub sa_tramp: ::std::option::Option<
2228        unsafe extern "C" fn(
2229            arg1: *mut ::std::os::raw::c_void,
2230            arg2: ::std::os::raw::c_int,
2231            arg3: ::std::os::raw::c_int,
2232            arg4: *mut siginfo_t,
2233            arg5: *mut ::std::os::raw::c_void,
2234        ),
2235    >,
2236    pub sa_mask: sigset_t,
2237    pub sa_flags: ::std::os::raw::c_int,
2238}
2239#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2240const _: () = {
2241    ["Size of __sigaction"][::std::mem::size_of::<__sigaction>() - 24usize];
2242    ["Alignment of __sigaction"][::std::mem::align_of::<__sigaction>() - 8usize];
2243    ["Offset of field: __sigaction::__sigaction_u"]
2244        [::std::mem::offset_of!(__sigaction, __sigaction_u) - 0usize];
2245    ["Offset of field: __sigaction::sa_tramp"]
2246        [::std::mem::offset_of!(__sigaction, sa_tramp) - 8usize];
2247    ["Offset of field: __sigaction::sa_mask"]
2248        [::std::mem::offset_of!(__sigaction, sa_mask) - 16usize];
2249    ["Offset of field: __sigaction::sa_flags"]
2250        [::std::mem::offset_of!(__sigaction, sa_flags) - 20usize];
2251};
2252impl Default for __sigaction {
2253    fn default() -> Self {
2254        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2255        unsafe {
2256            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2257            s.assume_init()
2258        }
2259    }
2260}
2261#[repr(C)]
2262#[derive(Copy, Clone)]
2263pub struct sigaction {
2264    pub __sigaction_u: __sigaction_u,
2265    pub sa_mask: sigset_t,
2266    pub sa_flags: ::std::os::raw::c_int,
2267}
2268#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2269const _: () = {
2270    ["Size of sigaction"][::std::mem::size_of::<sigaction>() - 16usize];
2271    ["Alignment of sigaction"][::std::mem::align_of::<sigaction>() - 8usize];
2272    ["Offset of field: sigaction::__sigaction_u"]
2273        [::std::mem::offset_of!(sigaction, __sigaction_u) - 0usize];
2274    ["Offset of field: sigaction::sa_mask"][::std::mem::offset_of!(sigaction, sa_mask) - 8usize];
2275    ["Offset of field: sigaction::sa_flags"][::std::mem::offset_of!(sigaction, sa_flags) - 12usize];
2276};
2277impl Default for sigaction {
2278    fn default() -> Self {
2279        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2280        unsafe {
2281            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2282            s.assume_init()
2283        }
2284    }
2285}
2286pub type sig_t = ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>;
2287#[repr(C)]
2288#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2289pub struct sigvec {
2290    pub sv_handler: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2291    pub sv_mask: ::std::os::raw::c_int,
2292    pub sv_flags: ::std::os::raw::c_int,
2293}
2294#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2295const _: () = {
2296    ["Size of sigvec"][::std::mem::size_of::<sigvec>() - 16usize];
2297    ["Alignment of sigvec"][::std::mem::align_of::<sigvec>() - 8usize];
2298    ["Offset of field: sigvec::sv_handler"][::std::mem::offset_of!(sigvec, sv_handler) - 0usize];
2299    ["Offset of field: sigvec::sv_mask"][::std::mem::offset_of!(sigvec, sv_mask) - 8usize];
2300    ["Offset of field: sigvec::sv_flags"][::std::mem::offset_of!(sigvec, sv_flags) - 12usize];
2301};
2302#[repr(C)]
2303#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
2304pub struct sigstack {
2305    pub ss_sp: *mut ::std::os::raw::c_char,
2306    pub ss_onstack: ::std::os::raw::c_int,
2307}
2308#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2309const _: () = {
2310    ["Size of sigstack"][::std::mem::size_of::<sigstack>() - 16usize];
2311    ["Alignment of sigstack"][::std::mem::align_of::<sigstack>() - 8usize];
2312    ["Offset of field: sigstack::ss_sp"][::std::mem::offset_of!(sigstack, ss_sp) - 0usize];
2313    ["Offset of field: sigstack::ss_onstack"]
2314        [::std::mem::offset_of!(sigstack, ss_onstack) - 8usize];
2315};
2316impl Default for sigstack {
2317    fn default() -> Self {
2318        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
2319        unsafe {
2320            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
2321            s.assume_init()
2322        }
2323    }
2324}
2325unsafe extern "C" {
2326    pub fn signal(
2327        arg1: ::std::os::raw::c_int,
2328        arg2: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2329    ) -> ::std::option::Option<
2330        unsafe extern "C" fn(
2331            arg1: ::std::os::raw::c_int,
2332            arg2: ::std::option::Option<unsafe extern "C" fn(arg1: ::std::os::raw::c_int)>,
2333        ),
2334    >;
2335}
2336pub type int_least8_t = i8;
2337pub type int_least16_t = i16;
2338pub type int_least32_t = i32;
2339pub type int_least64_t = i64;
2340pub type uint_least8_t = u8;
2341pub type uint_least16_t = u16;
2342pub type uint_least32_t = u32;
2343pub type uint_least64_t = u64;
2344pub type int_fast8_t = i8;
2345pub type int_fast16_t = i16;
2346pub type int_fast32_t = i32;
2347pub type int_fast64_t = i64;
2348pub type uint_fast8_t = u8;
2349pub type uint_fast16_t = u16;
2350pub type uint_fast32_t = u32;
2351pub type uint_fast64_t = u64;
2352pub type intmax_t = ::std::os::raw::c_long;
2353pub type uintmax_t = ::std::os::raw::c_ulong;
2354#[repr(C)]
2355#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2356pub struct timeval {
2357    pub tv_sec: __darwin_time_t,
2358    pub tv_usec: __darwin_suseconds_t,
2359}
2360#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2361const _: () = {
2362    ["Size of timeval"][::std::mem::size_of::<timeval>() - 16usize];
2363    ["Alignment of timeval"][::std::mem::align_of::<timeval>() - 8usize];
2364    ["Offset of field: timeval::tv_sec"][::std::mem::offset_of!(timeval, tv_sec) - 0usize];
2365    ["Offset of field: timeval::tv_usec"][::std::mem::offset_of!(timeval, tv_usec) - 8usize];
2366};
2367pub type rlim_t = __uint64_t;
2368#[repr(C)]
2369#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2370pub struct rusage {
2371    pub ru_utime: timeval,
2372    pub ru_stime: timeval,
2373    pub ru_maxrss: ::std::os::raw::c_long,
2374    pub ru_ixrss: ::std::os::raw::c_long,
2375    pub ru_idrss: ::std::os::raw::c_long,
2376    pub ru_isrss: ::std::os::raw::c_long,
2377    pub ru_minflt: ::std::os::raw::c_long,
2378    pub ru_majflt: ::std::os::raw::c_long,
2379    pub ru_nswap: ::std::os::raw::c_long,
2380    pub ru_inblock: ::std::os::raw::c_long,
2381    pub ru_oublock: ::std::os::raw::c_long,
2382    pub ru_msgsnd: ::std::os::raw::c_long,
2383    pub ru_msgrcv: ::std::os::raw::c_long,
2384    pub ru_nsignals: ::std::os::raw::c_long,
2385    pub ru_nvcsw: ::std::os::raw::c_long,
2386    pub ru_nivcsw: ::std::os::raw::c_long,
2387}
2388#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2389const _: () = {
2390    ["Size of rusage"][::std::mem::size_of::<rusage>() - 144usize];
2391    ["Alignment of rusage"][::std::mem::align_of::<rusage>() - 8usize];
2392    ["Offset of field: rusage::ru_utime"][::std::mem::offset_of!(rusage, ru_utime) - 0usize];
2393    ["Offset of field: rusage::ru_stime"][::std::mem::offset_of!(rusage, ru_stime) - 16usize];
2394    ["Offset of field: rusage::ru_maxrss"][::std::mem::offset_of!(rusage, ru_maxrss) - 32usize];
2395    ["Offset of field: rusage::ru_ixrss"][::std::mem::offset_of!(rusage, ru_ixrss) - 40usize];
2396    ["Offset of field: rusage::ru_idrss"][::std::mem::offset_of!(rusage, ru_idrss) - 48usize];
2397    ["Offset of field: rusage::ru_isrss"][::std::mem::offset_of!(rusage, ru_isrss) - 56usize];
2398    ["Offset of field: rusage::ru_minflt"][::std::mem::offset_of!(rusage, ru_minflt) - 64usize];
2399    ["Offset of field: rusage::ru_majflt"][::std::mem::offset_of!(rusage, ru_majflt) - 72usize];
2400    ["Offset of field: rusage::ru_nswap"][::std::mem::offset_of!(rusage, ru_nswap) - 80usize];
2401    ["Offset of field: rusage::ru_inblock"][::std::mem::offset_of!(rusage, ru_inblock) - 88usize];
2402    ["Offset of field: rusage::ru_oublock"][::std::mem::offset_of!(rusage, ru_oublock) - 96usize];
2403    ["Offset of field: rusage::ru_msgsnd"][::std::mem::offset_of!(rusage, ru_msgsnd) - 104usize];
2404    ["Offset of field: rusage::ru_msgrcv"][::std::mem::offset_of!(rusage, ru_msgrcv) - 112usize];
2405    ["Offset of field: rusage::ru_nsignals"]
2406        [::std::mem::offset_of!(rusage, ru_nsignals) - 120usize];
2407    ["Offset of field: rusage::ru_nvcsw"][::std::mem::offset_of!(rusage, ru_nvcsw) - 128usize];
2408    ["Offset of field: rusage::ru_nivcsw"][::std::mem::offset_of!(rusage, ru_nivcsw) - 136usize];
2409};
2410pub type rusage_info_t = *mut ::std::os::raw::c_void;
2411#[repr(C)]
2412#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2413pub struct rusage_info_v0 {
2414    pub ri_uuid: [u8; 16usize],
2415    pub ri_user_time: u64,
2416    pub ri_system_time: u64,
2417    pub ri_pkg_idle_wkups: u64,
2418    pub ri_interrupt_wkups: u64,
2419    pub ri_pageins: u64,
2420    pub ri_wired_size: u64,
2421    pub ri_resident_size: u64,
2422    pub ri_phys_footprint: u64,
2423    pub ri_proc_start_abstime: u64,
2424    pub ri_proc_exit_abstime: u64,
2425}
2426#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2427const _: () = {
2428    ["Size of rusage_info_v0"][::std::mem::size_of::<rusage_info_v0>() - 96usize];
2429    ["Alignment of rusage_info_v0"][::std::mem::align_of::<rusage_info_v0>() - 8usize];
2430    ["Offset of field: rusage_info_v0::ri_uuid"]
2431        [::std::mem::offset_of!(rusage_info_v0, ri_uuid) - 0usize];
2432    ["Offset of field: rusage_info_v0::ri_user_time"]
2433        [::std::mem::offset_of!(rusage_info_v0, ri_user_time) - 16usize];
2434    ["Offset of field: rusage_info_v0::ri_system_time"]
2435        [::std::mem::offset_of!(rusage_info_v0, ri_system_time) - 24usize];
2436    ["Offset of field: rusage_info_v0::ri_pkg_idle_wkups"]
2437        [::std::mem::offset_of!(rusage_info_v0, ri_pkg_idle_wkups) - 32usize];
2438    ["Offset of field: rusage_info_v0::ri_interrupt_wkups"]
2439        [::std::mem::offset_of!(rusage_info_v0, ri_interrupt_wkups) - 40usize];
2440    ["Offset of field: rusage_info_v0::ri_pageins"]
2441        [::std::mem::offset_of!(rusage_info_v0, ri_pageins) - 48usize];
2442    ["Offset of field: rusage_info_v0::ri_wired_size"]
2443        [::std::mem::offset_of!(rusage_info_v0, ri_wired_size) - 56usize];
2444    ["Offset of field: rusage_info_v0::ri_resident_size"]
2445        [::std::mem::offset_of!(rusage_info_v0, ri_resident_size) - 64usize];
2446    ["Offset of field: rusage_info_v0::ri_phys_footprint"]
2447        [::std::mem::offset_of!(rusage_info_v0, ri_phys_footprint) - 72usize];
2448    ["Offset of field: rusage_info_v0::ri_proc_start_abstime"]
2449        [::std::mem::offset_of!(rusage_info_v0, ri_proc_start_abstime) - 80usize];
2450    ["Offset of field: rusage_info_v0::ri_proc_exit_abstime"]
2451        [::std::mem::offset_of!(rusage_info_v0, ri_proc_exit_abstime) - 88usize];
2452};
2453#[repr(C)]
2454#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2455pub struct rusage_info_v1 {
2456    pub ri_uuid: [u8; 16usize],
2457    pub ri_user_time: u64,
2458    pub ri_system_time: u64,
2459    pub ri_pkg_idle_wkups: u64,
2460    pub ri_interrupt_wkups: u64,
2461    pub ri_pageins: u64,
2462    pub ri_wired_size: u64,
2463    pub ri_resident_size: u64,
2464    pub ri_phys_footprint: u64,
2465    pub ri_proc_start_abstime: u64,
2466    pub ri_proc_exit_abstime: u64,
2467    pub ri_child_user_time: u64,
2468    pub ri_child_system_time: u64,
2469    pub ri_child_pkg_idle_wkups: u64,
2470    pub ri_child_interrupt_wkups: u64,
2471    pub ri_child_pageins: u64,
2472    pub ri_child_elapsed_abstime: u64,
2473}
2474#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2475const _: () = {
2476    ["Size of rusage_info_v1"][::std::mem::size_of::<rusage_info_v1>() - 144usize];
2477    ["Alignment of rusage_info_v1"][::std::mem::align_of::<rusage_info_v1>() - 8usize];
2478    ["Offset of field: rusage_info_v1::ri_uuid"]
2479        [::std::mem::offset_of!(rusage_info_v1, ri_uuid) - 0usize];
2480    ["Offset of field: rusage_info_v1::ri_user_time"]
2481        [::std::mem::offset_of!(rusage_info_v1, ri_user_time) - 16usize];
2482    ["Offset of field: rusage_info_v1::ri_system_time"]
2483        [::std::mem::offset_of!(rusage_info_v1, ri_system_time) - 24usize];
2484    ["Offset of field: rusage_info_v1::ri_pkg_idle_wkups"]
2485        [::std::mem::offset_of!(rusage_info_v1, ri_pkg_idle_wkups) - 32usize];
2486    ["Offset of field: rusage_info_v1::ri_interrupt_wkups"]
2487        [::std::mem::offset_of!(rusage_info_v1, ri_interrupt_wkups) - 40usize];
2488    ["Offset of field: rusage_info_v1::ri_pageins"]
2489        [::std::mem::offset_of!(rusage_info_v1, ri_pageins) - 48usize];
2490    ["Offset of field: rusage_info_v1::ri_wired_size"]
2491        [::std::mem::offset_of!(rusage_info_v1, ri_wired_size) - 56usize];
2492    ["Offset of field: rusage_info_v1::ri_resident_size"]
2493        [::std::mem::offset_of!(rusage_info_v1, ri_resident_size) - 64usize];
2494    ["Offset of field: rusage_info_v1::ri_phys_footprint"]
2495        [::std::mem::offset_of!(rusage_info_v1, ri_phys_footprint) - 72usize];
2496    ["Offset of field: rusage_info_v1::ri_proc_start_abstime"]
2497        [::std::mem::offset_of!(rusage_info_v1, ri_proc_start_abstime) - 80usize];
2498    ["Offset of field: rusage_info_v1::ri_proc_exit_abstime"]
2499        [::std::mem::offset_of!(rusage_info_v1, ri_proc_exit_abstime) - 88usize];
2500    ["Offset of field: rusage_info_v1::ri_child_user_time"]
2501        [::std::mem::offset_of!(rusage_info_v1, ri_child_user_time) - 96usize];
2502    ["Offset of field: rusage_info_v1::ri_child_system_time"]
2503        [::std::mem::offset_of!(rusage_info_v1, ri_child_system_time) - 104usize];
2504    ["Offset of field: rusage_info_v1::ri_child_pkg_idle_wkups"]
2505        [::std::mem::offset_of!(rusage_info_v1, ri_child_pkg_idle_wkups) - 112usize];
2506    ["Offset of field: rusage_info_v1::ri_child_interrupt_wkups"]
2507        [::std::mem::offset_of!(rusage_info_v1, ri_child_interrupt_wkups) - 120usize];
2508    ["Offset of field: rusage_info_v1::ri_child_pageins"]
2509        [::std::mem::offset_of!(rusage_info_v1, ri_child_pageins) - 128usize];
2510    ["Offset of field: rusage_info_v1::ri_child_elapsed_abstime"]
2511        [::std::mem::offset_of!(rusage_info_v1, ri_child_elapsed_abstime) - 136usize];
2512};
2513#[repr(C)]
2514#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2515pub struct rusage_info_v2 {
2516    pub ri_uuid: [u8; 16usize],
2517    pub ri_user_time: u64,
2518    pub ri_system_time: u64,
2519    pub ri_pkg_idle_wkups: u64,
2520    pub ri_interrupt_wkups: u64,
2521    pub ri_pageins: u64,
2522    pub ri_wired_size: u64,
2523    pub ri_resident_size: u64,
2524    pub ri_phys_footprint: u64,
2525    pub ri_proc_start_abstime: u64,
2526    pub ri_proc_exit_abstime: u64,
2527    pub ri_child_user_time: u64,
2528    pub ri_child_system_time: u64,
2529    pub ri_child_pkg_idle_wkups: u64,
2530    pub ri_child_interrupt_wkups: u64,
2531    pub ri_child_pageins: u64,
2532    pub ri_child_elapsed_abstime: u64,
2533    pub ri_diskio_bytesread: u64,
2534    pub ri_diskio_byteswritten: u64,
2535}
2536#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2537const _: () = {
2538    ["Size of rusage_info_v2"][::std::mem::size_of::<rusage_info_v2>() - 160usize];
2539    ["Alignment of rusage_info_v2"][::std::mem::align_of::<rusage_info_v2>() - 8usize];
2540    ["Offset of field: rusage_info_v2::ri_uuid"]
2541        [::std::mem::offset_of!(rusage_info_v2, ri_uuid) - 0usize];
2542    ["Offset of field: rusage_info_v2::ri_user_time"]
2543        [::std::mem::offset_of!(rusage_info_v2, ri_user_time) - 16usize];
2544    ["Offset of field: rusage_info_v2::ri_system_time"]
2545        [::std::mem::offset_of!(rusage_info_v2, ri_system_time) - 24usize];
2546    ["Offset of field: rusage_info_v2::ri_pkg_idle_wkups"]
2547        [::std::mem::offset_of!(rusage_info_v2, ri_pkg_idle_wkups) - 32usize];
2548    ["Offset of field: rusage_info_v2::ri_interrupt_wkups"]
2549        [::std::mem::offset_of!(rusage_info_v2, ri_interrupt_wkups) - 40usize];
2550    ["Offset of field: rusage_info_v2::ri_pageins"]
2551        [::std::mem::offset_of!(rusage_info_v2, ri_pageins) - 48usize];
2552    ["Offset of field: rusage_info_v2::ri_wired_size"]
2553        [::std::mem::offset_of!(rusage_info_v2, ri_wired_size) - 56usize];
2554    ["Offset of field: rusage_info_v2::ri_resident_size"]
2555        [::std::mem::offset_of!(rusage_info_v2, ri_resident_size) - 64usize];
2556    ["Offset of field: rusage_info_v2::ri_phys_footprint"]
2557        [::std::mem::offset_of!(rusage_info_v2, ri_phys_footprint) - 72usize];
2558    ["Offset of field: rusage_info_v2::ri_proc_start_abstime"]
2559        [::std::mem::offset_of!(rusage_info_v2, ri_proc_start_abstime) - 80usize];
2560    ["Offset of field: rusage_info_v2::ri_proc_exit_abstime"]
2561        [::std::mem::offset_of!(rusage_info_v2, ri_proc_exit_abstime) - 88usize];
2562    ["Offset of field: rusage_info_v2::ri_child_user_time"]
2563        [::std::mem::offset_of!(rusage_info_v2, ri_child_user_time) - 96usize];
2564    ["Offset of field: rusage_info_v2::ri_child_system_time"]
2565        [::std::mem::offset_of!(rusage_info_v2, ri_child_system_time) - 104usize];
2566    ["Offset of field: rusage_info_v2::ri_child_pkg_idle_wkups"]
2567        [::std::mem::offset_of!(rusage_info_v2, ri_child_pkg_idle_wkups) - 112usize];
2568    ["Offset of field: rusage_info_v2::ri_child_interrupt_wkups"]
2569        [::std::mem::offset_of!(rusage_info_v2, ri_child_interrupt_wkups) - 120usize];
2570    ["Offset of field: rusage_info_v2::ri_child_pageins"]
2571        [::std::mem::offset_of!(rusage_info_v2, ri_child_pageins) - 128usize];
2572    ["Offset of field: rusage_info_v2::ri_child_elapsed_abstime"]
2573        [::std::mem::offset_of!(rusage_info_v2, ri_child_elapsed_abstime) - 136usize];
2574    ["Offset of field: rusage_info_v2::ri_diskio_bytesread"]
2575        [::std::mem::offset_of!(rusage_info_v2, ri_diskio_bytesread) - 144usize];
2576    ["Offset of field: rusage_info_v2::ri_diskio_byteswritten"]
2577        [::std::mem::offset_of!(rusage_info_v2, ri_diskio_byteswritten) - 152usize];
2578};
2579#[repr(C)]
2580#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2581pub struct rusage_info_v3 {
2582    pub ri_uuid: [u8; 16usize],
2583    pub ri_user_time: u64,
2584    pub ri_system_time: u64,
2585    pub ri_pkg_idle_wkups: u64,
2586    pub ri_interrupt_wkups: u64,
2587    pub ri_pageins: u64,
2588    pub ri_wired_size: u64,
2589    pub ri_resident_size: u64,
2590    pub ri_phys_footprint: u64,
2591    pub ri_proc_start_abstime: u64,
2592    pub ri_proc_exit_abstime: u64,
2593    pub ri_child_user_time: u64,
2594    pub ri_child_system_time: u64,
2595    pub ri_child_pkg_idle_wkups: u64,
2596    pub ri_child_interrupt_wkups: u64,
2597    pub ri_child_pageins: u64,
2598    pub ri_child_elapsed_abstime: u64,
2599    pub ri_diskio_bytesread: u64,
2600    pub ri_diskio_byteswritten: u64,
2601    pub ri_cpu_time_qos_default: u64,
2602    pub ri_cpu_time_qos_maintenance: u64,
2603    pub ri_cpu_time_qos_background: u64,
2604    pub ri_cpu_time_qos_utility: u64,
2605    pub ri_cpu_time_qos_legacy: u64,
2606    pub ri_cpu_time_qos_user_initiated: u64,
2607    pub ri_cpu_time_qos_user_interactive: u64,
2608    pub ri_billed_system_time: u64,
2609    pub ri_serviced_system_time: u64,
2610}
2611#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2612const _: () = {
2613    ["Size of rusage_info_v3"][::std::mem::size_of::<rusage_info_v3>() - 232usize];
2614    ["Alignment of rusage_info_v3"][::std::mem::align_of::<rusage_info_v3>() - 8usize];
2615    ["Offset of field: rusage_info_v3::ri_uuid"]
2616        [::std::mem::offset_of!(rusage_info_v3, ri_uuid) - 0usize];
2617    ["Offset of field: rusage_info_v3::ri_user_time"]
2618        [::std::mem::offset_of!(rusage_info_v3, ri_user_time) - 16usize];
2619    ["Offset of field: rusage_info_v3::ri_system_time"]
2620        [::std::mem::offset_of!(rusage_info_v3, ri_system_time) - 24usize];
2621    ["Offset of field: rusage_info_v3::ri_pkg_idle_wkups"]
2622        [::std::mem::offset_of!(rusage_info_v3, ri_pkg_idle_wkups) - 32usize];
2623    ["Offset of field: rusage_info_v3::ri_interrupt_wkups"]
2624        [::std::mem::offset_of!(rusage_info_v3, ri_interrupt_wkups) - 40usize];
2625    ["Offset of field: rusage_info_v3::ri_pageins"]
2626        [::std::mem::offset_of!(rusage_info_v3, ri_pageins) - 48usize];
2627    ["Offset of field: rusage_info_v3::ri_wired_size"]
2628        [::std::mem::offset_of!(rusage_info_v3, ri_wired_size) - 56usize];
2629    ["Offset of field: rusage_info_v3::ri_resident_size"]
2630        [::std::mem::offset_of!(rusage_info_v3, ri_resident_size) - 64usize];
2631    ["Offset of field: rusage_info_v3::ri_phys_footprint"]
2632        [::std::mem::offset_of!(rusage_info_v3, ri_phys_footprint) - 72usize];
2633    ["Offset of field: rusage_info_v3::ri_proc_start_abstime"]
2634        [::std::mem::offset_of!(rusage_info_v3, ri_proc_start_abstime) - 80usize];
2635    ["Offset of field: rusage_info_v3::ri_proc_exit_abstime"]
2636        [::std::mem::offset_of!(rusage_info_v3, ri_proc_exit_abstime) - 88usize];
2637    ["Offset of field: rusage_info_v3::ri_child_user_time"]
2638        [::std::mem::offset_of!(rusage_info_v3, ri_child_user_time) - 96usize];
2639    ["Offset of field: rusage_info_v3::ri_child_system_time"]
2640        [::std::mem::offset_of!(rusage_info_v3, ri_child_system_time) - 104usize];
2641    ["Offset of field: rusage_info_v3::ri_child_pkg_idle_wkups"]
2642        [::std::mem::offset_of!(rusage_info_v3, ri_child_pkg_idle_wkups) - 112usize];
2643    ["Offset of field: rusage_info_v3::ri_child_interrupt_wkups"]
2644        [::std::mem::offset_of!(rusage_info_v3, ri_child_interrupt_wkups) - 120usize];
2645    ["Offset of field: rusage_info_v3::ri_child_pageins"]
2646        [::std::mem::offset_of!(rusage_info_v3, ri_child_pageins) - 128usize];
2647    ["Offset of field: rusage_info_v3::ri_child_elapsed_abstime"]
2648        [::std::mem::offset_of!(rusage_info_v3, ri_child_elapsed_abstime) - 136usize];
2649    ["Offset of field: rusage_info_v3::ri_diskio_bytesread"]
2650        [::std::mem::offset_of!(rusage_info_v3, ri_diskio_bytesread) - 144usize];
2651    ["Offset of field: rusage_info_v3::ri_diskio_byteswritten"]
2652        [::std::mem::offset_of!(rusage_info_v3, ri_diskio_byteswritten) - 152usize];
2653    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_default"]
2654        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_default) - 160usize];
2655    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_maintenance"]
2656        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_maintenance) - 168usize];
2657    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_background"]
2658        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_background) - 176usize];
2659    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_utility"]
2660        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_utility) - 184usize];
2661    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_legacy"]
2662        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_legacy) - 192usize];
2663    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_initiated"]
2664        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_initiated) - 200usize];
2665    ["Offset of field: rusage_info_v3::ri_cpu_time_qos_user_interactive"]
2666        [::std::mem::offset_of!(rusage_info_v3, ri_cpu_time_qos_user_interactive) - 208usize];
2667    ["Offset of field: rusage_info_v3::ri_billed_system_time"]
2668        [::std::mem::offset_of!(rusage_info_v3, ri_billed_system_time) - 216usize];
2669    ["Offset of field: rusage_info_v3::ri_serviced_system_time"]
2670        [::std::mem::offset_of!(rusage_info_v3, ri_serviced_system_time) - 224usize];
2671};
2672#[repr(C)]
2673#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2674pub struct rusage_info_v4 {
2675    pub ri_uuid: [u8; 16usize],
2676    pub ri_user_time: u64,
2677    pub ri_system_time: u64,
2678    pub ri_pkg_idle_wkups: u64,
2679    pub ri_interrupt_wkups: u64,
2680    pub ri_pageins: u64,
2681    pub ri_wired_size: u64,
2682    pub ri_resident_size: u64,
2683    pub ri_phys_footprint: u64,
2684    pub ri_proc_start_abstime: u64,
2685    pub ri_proc_exit_abstime: u64,
2686    pub ri_child_user_time: u64,
2687    pub ri_child_system_time: u64,
2688    pub ri_child_pkg_idle_wkups: u64,
2689    pub ri_child_interrupt_wkups: u64,
2690    pub ri_child_pageins: u64,
2691    pub ri_child_elapsed_abstime: u64,
2692    pub ri_diskio_bytesread: u64,
2693    pub ri_diskio_byteswritten: u64,
2694    pub ri_cpu_time_qos_default: u64,
2695    pub ri_cpu_time_qos_maintenance: u64,
2696    pub ri_cpu_time_qos_background: u64,
2697    pub ri_cpu_time_qos_utility: u64,
2698    pub ri_cpu_time_qos_legacy: u64,
2699    pub ri_cpu_time_qos_user_initiated: u64,
2700    pub ri_cpu_time_qos_user_interactive: u64,
2701    pub ri_billed_system_time: u64,
2702    pub ri_serviced_system_time: u64,
2703    pub ri_logical_writes: u64,
2704    pub ri_lifetime_max_phys_footprint: u64,
2705    pub ri_instructions: u64,
2706    pub ri_cycles: u64,
2707    pub ri_billed_energy: u64,
2708    pub ri_serviced_energy: u64,
2709    pub ri_interval_max_phys_footprint: u64,
2710    pub ri_runnable_time: u64,
2711}
2712#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2713const _: () = {
2714    ["Size of rusage_info_v4"][::std::mem::size_of::<rusage_info_v4>() - 296usize];
2715    ["Alignment of rusage_info_v4"][::std::mem::align_of::<rusage_info_v4>() - 8usize];
2716    ["Offset of field: rusage_info_v4::ri_uuid"]
2717        [::std::mem::offset_of!(rusage_info_v4, ri_uuid) - 0usize];
2718    ["Offset of field: rusage_info_v4::ri_user_time"]
2719        [::std::mem::offset_of!(rusage_info_v4, ri_user_time) - 16usize];
2720    ["Offset of field: rusage_info_v4::ri_system_time"]
2721        [::std::mem::offset_of!(rusage_info_v4, ri_system_time) - 24usize];
2722    ["Offset of field: rusage_info_v4::ri_pkg_idle_wkups"]
2723        [::std::mem::offset_of!(rusage_info_v4, ri_pkg_idle_wkups) - 32usize];
2724    ["Offset of field: rusage_info_v4::ri_interrupt_wkups"]
2725        [::std::mem::offset_of!(rusage_info_v4, ri_interrupt_wkups) - 40usize];
2726    ["Offset of field: rusage_info_v4::ri_pageins"]
2727        [::std::mem::offset_of!(rusage_info_v4, ri_pageins) - 48usize];
2728    ["Offset of field: rusage_info_v4::ri_wired_size"]
2729        [::std::mem::offset_of!(rusage_info_v4, ri_wired_size) - 56usize];
2730    ["Offset of field: rusage_info_v4::ri_resident_size"]
2731        [::std::mem::offset_of!(rusage_info_v4, ri_resident_size) - 64usize];
2732    ["Offset of field: rusage_info_v4::ri_phys_footprint"]
2733        [::std::mem::offset_of!(rusage_info_v4, ri_phys_footprint) - 72usize];
2734    ["Offset of field: rusage_info_v4::ri_proc_start_abstime"]
2735        [::std::mem::offset_of!(rusage_info_v4, ri_proc_start_abstime) - 80usize];
2736    ["Offset of field: rusage_info_v4::ri_proc_exit_abstime"]
2737        [::std::mem::offset_of!(rusage_info_v4, ri_proc_exit_abstime) - 88usize];
2738    ["Offset of field: rusage_info_v4::ri_child_user_time"]
2739        [::std::mem::offset_of!(rusage_info_v4, ri_child_user_time) - 96usize];
2740    ["Offset of field: rusage_info_v4::ri_child_system_time"]
2741        [::std::mem::offset_of!(rusage_info_v4, ri_child_system_time) - 104usize];
2742    ["Offset of field: rusage_info_v4::ri_child_pkg_idle_wkups"]
2743        [::std::mem::offset_of!(rusage_info_v4, ri_child_pkg_idle_wkups) - 112usize];
2744    ["Offset of field: rusage_info_v4::ri_child_interrupt_wkups"]
2745        [::std::mem::offset_of!(rusage_info_v4, ri_child_interrupt_wkups) - 120usize];
2746    ["Offset of field: rusage_info_v4::ri_child_pageins"]
2747        [::std::mem::offset_of!(rusage_info_v4, ri_child_pageins) - 128usize];
2748    ["Offset of field: rusage_info_v4::ri_child_elapsed_abstime"]
2749        [::std::mem::offset_of!(rusage_info_v4, ri_child_elapsed_abstime) - 136usize];
2750    ["Offset of field: rusage_info_v4::ri_diskio_bytesread"]
2751        [::std::mem::offset_of!(rusage_info_v4, ri_diskio_bytesread) - 144usize];
2752    ["Offset of field: rusage_info_v4::ri_diskio_byteswritten"]
2753        [::std::mem::offset_of!(rusage_info_v4, ri_diskio_byteswritten) - 152usize];
2754    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_default"]
2755        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_default) - 160usize];
2756    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_maintenance"]
2757        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_maintenance) - 168usize];
2758    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_background"]
2759        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_background) - 176usize];
2760    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_utility"]
2761        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_utility) - 184usize];
2762    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_legacy"]
2763        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_legacy) - 192usize];
2764    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_initiated"]
2765        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_initiated) - 200usize];
2766    ["Offset of field: rusage_info_v4::ri_cpu_time_qos_user_interactive"]
2767        [::std::mem::offset_of!(rusage_info_v4, ri_cpu_time_qos_user_interactive) - 208usize];
2768    ["Offset of field: rusage_info_v4::ri_billed_system_time"]
2769        [::std::mem::offset_of!(rusage_info_v4, ri_billed_system_time) - 216usize];
2770    ["Offset of field: rusage_info_v4::ri_serviced_system_time"]
2771        [::std::mem::offset_of!(rusage_info_v4, ri_serviced_system_time) - 224usize];
2772    ["Offset of field: rusage_info_v4::ri_logical_writes"]
2773        [::std::mem::offset_of!(rusage_info_v4, ri_logical_writes) - 232usize];
2774    ["Offset of field: rusage_info_v4::ri_lifetime_max_phys_footprint"]
2775        [::std::mem::offset_of!(rusage_info_v4, ri_lifetime_max_phys_footprint) - 240usize];
2776    ["Offset of field: rusage_info_v4::ri_instructions"]
2777        [::std::mem::offset_of!(rusage_info_v4, ri_instructions) - 248usize];
2778    ["Offset of field: rusage_info_v4::ri_cycles"]
2779        [::std::mem::offset_of!(rusage_info_v4, ri_cycles) - 256usize];
2780    ["Offset of field: rusage_info_v4::ri_billed_energy"]
2781        [::std::mem::offset_of!(rusage_info_v4, ri_billed_energy) - 264usize];
2782    ["Offset of field: rusage_info_v4::ri_serviced_energy"]
2783        [::std::mem::offset_of!(rusage_info_v4, ri_serviced_energy) - 272usize];
2784    ["Offset of field: rusage_info_v4::ri_interval_max_phys_footprint"]
2785        [::std::mem::offset_of!(rusage_info_v4, ri_interval_max_phys_footprint) - 280usize];
2786    ["Offset of field: rusage_info_v4::ri_runnable_time"]
2787        [::std::mem::offset_of!(rusage_info_v4, ri_runnable_time) - 288usize];
2788};
2789#[repr(C)]
2790#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2791pub struct rusage_info_v5 {
2792    pub ri_uuid: [u8; 16usize],
2793    pub ri_user_time: u64,
2794    pub ri_system_time: u64,
2795    pub ri_pkg_idle_wkups: u64,
2796    pub ri_interrupt_wkups: u64,
2797    pub ri_pageins: u64,
2798    pub ri_wired_size: u64,
2799    pub ri_resident_size: u64,
2800    pub ri_phys_footprint: u64,
2801    pub ri_proc_start_abstime: u64,
2802    pub ri_proc_exit_abstime: u64,
2803    pub ri_child_user_time: u64,
2804    pub ri_child_system_time: u64,
2805    pub ri_child_pkg_idle_wkups: u64,
2806    pub ri_child_interrupt_wkups: u64,
2807    pub ri_child_pageins: u64,
2808    pub ri_child_elapsed_abstime: u64,
2809    pub ri_diskio_bytesread: u64,
2810    pub ri_diskio_byteswritten: u64,
2811    pub ri_cpu_time_qos_default: u64,
2812    pub ri_cpu_time_qos_maintenance: u64,
2813    pub ri_cpu_time_qos_background: u64,
2814    pub ri_cpu_time_qos_utility: u64,
2815    pub ri_cpu_time_qos_legacy: u64,
2816    pub ri_cpu_time_qos_user_initiated: u64,
2817    pub ri_cpu_time_qos_user_interactive: u64,
2818    pub ri_billed_system_time: u64,
2819    pub ri_serviced_system_time: u64,
2820    pub ri_logical_writes: u64,
2821    pub ri_lifetime_max_phys_footprint: u64,
2822    pub ri_instructions: u64,
2823    pub ri_cycles: u64,
2824    pub ri_billed_energy: u64,
2825    pub ri_serviced_energy: u64,
2826    pub ri_interval_max_phys_footprint: u64,
2827    pub ri_runnable_time: u64,
2828    pub ri_flags: u64,
2829}
2830#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2831const _: () = {
2832    ["Size of rusage_info_v5"][::std::mem::size_of::<rusage_info_v5>() - 304usize];
2833    ["Alignment of rusage_info_v5"][::std::mem::align_of::<rusage_info_v5>() - 8usize];
2834    ["Offset of field: rusage_info_v5::ri_uuid"]
2835        [::std::mem::offset_of!(rusage_info_v5, ri_uuid) - 0usize];
2836    ["Offset of field: rusage_info_v5::ri_user_time"]
2837        [::std::mem::offset_of!(rusage_info_v5, ri_user_time) - 16usize];
2838    ["Offset of field: rusage_info_v5::ri_system_time"]
2839        [::std::mem::offset_of!(rusage_info_v5, ri_system_time) - 24usize];
2840    ["Offset of field: rusage_info_v5::ri_pkg_idle_wkups"]
2841        [::std::mem::offset_of!(rusage_info_v5, ri_pkg_idle_wkups) - 32usize];
2842    ["Offset of field: rusage_info_v5::ri_interrupt_wkups"]
2843        [::std::mem::offset_of!(rusage_info_v5, ri_interrupt_wkups) - 40usize];
2844    ["Offset of field: rusage_info_v5::ri_pageins"]
2845        [::std::mem::offset_of!(rusage_info_v5, ri_pageins) - 48usize];
2846    ["Offset of field: rusage_info_v5::ri_wired_size"]
2847        [::std::mem::offset_of!(rusage_info_v5, ri_wired_size) - 56usize];
2848    ["Offset of field: rusage_info_v5::ri_resident_size"]
2849        [::std::mem::offset_of!(rusage_info_v5, ri_resident_size) - 64usize];
2850    ["Offset of field: rusage_info_v5::ri_phys_footprint"]
2851        [::std::mem::offset_of!(rusage_info_v5, ri_phys_footprint) - 72usize];
2852    ["Offset of field: rusage_info_v5::ri_proc_start_abstime"]
2853        [::std::mem::offset_of!(rusage_info_v5, ri_proc_start_abstime) - 80usize];
2854    ["Offset of field: rusage_info_v5::ri_proc_exit_abstime"]
2855        [::std::mem::offset_of!(rusage_info_v5, ri_proc_exit_abstime) - 88usize];
2856    ["Offset of field: rusage_info_v5::ri_child_user_time"]
2857        [::std::mem::offset_of!(rusage_info_v5, ri_child_user_time) - 96usize];
2858    ["Offset of field: rusage_info_v5::ri_child_system_time"]
2859        [::std::mem::offset_of!(rusage_info_v5, ri_child_system_time) - 104usize];
2860    ["Offset of field: rusage_info_v5::ri_child_pkg_idle_wkups"]
2861        [::std::mem::offset_of!(rusage_info_v5, ri_child_pkg_idle_wkups) - 112usize];
2862    ["Offset of field: rusage_info_v5::ri_child_interrupt_wkups"]
2863        [::std::mem::offset_of!(rusage_info_v5, ri_child_interrupt_wkups) - 120usize];
2864    ["Offset of field: rusage_info_v5::ri_child_pageins"]
2865        [::std::mem::offset_of!(rusage_info_v5, ri_child_pageins) - 128usize];
2866    ["Offset of field: rusage_info_v5::ri_child_elapsed_abstime"]
2867        [::std::mem::offset_of!(rusage_info_v5, ri_child_elapsed_abstime) - 136usize];
2868    ["Offset of field: rusage_info_v5::ri_diskio_bytesread"]
2869        [::std::mem::offset_of!(rusage_info_v5, ri_diskio_bytesread) - 144usize];
2870    ["Offset of field: rusage_info_v5::ri_diskio_byteswritten"]
2871        [::std::mem::offset_of!(rusage_info_v5, ri_diskio_byteswritten) - 152usize];
2872    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_default"]
2873        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_default) - 160usize];
2874    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_maintenance"]
2875        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_maintenance) - 168usize];
2876    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_background"]
2877        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_background) - 176usize];
2878    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_utility"]
2879        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_utility) - 184usize];
2880    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_legacy"]
2881        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_legacy) - 192usize];
2882    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_initiated"]
2883        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_initiated) - 200usize];
2884    ["Offset of field: rusage_info_v5::ri_cpu_time_qos_user_interactive"]
2885        [::std::mem::offset_of!(rusage_info_v5, ri_cpu_time_qos_user_interactive) - 208usize];
2886    ["Offset of field: rusage_info_v5::ri_billed_system_time"]
2887        [::std::mem::offset_of!(rusage_info_v5, ri_billed_system_time) - 216usize];
2888    ["Offset of field: rusage_info_v5::ri_serviced_system_time"]
2889        [::std::mem::offset_of!(rusage_info_v5, ri_serviced_system_time) - 224usize];
2890    ["Offset of field: rusage_info_v5::ri_logical_writes"]
2891        [::std::mem::offset_of!(rusage_info_v5, ri_logical_writes) - 232usize];
2892    ["Offset of field: rusage_info_v5::ri_lifetime_max_phys_footprint"]
2893        [::std::mem::offset_of!(rusage_info_v5, ri_lifetime_max_phys_footprint) - 240usize];
2894    ["Offset of field: rusage_info_v5::ri_instructions"]
2895        [::std::mem::offset_of!(rusage_info_v5, ri_instructions) - 248usize];
2896    ["Offset of field: rusage_info_v5::ri_cycles"]
2897        [::std::mem::offset_of!(rusage_info_v5, ri_cycles) - 256usize];
2898    ["Offset of field: rusage_info_v5::ri_billed_energy"]
2899        [::std::mem::offset_of!(rusage_info_v5, ri_billed_energy) - 264usize];
2900    ["Offset of field: rusage_info_v5::ri_serviced_energy"]
2901        [::std::mem::offset_of!(rusage_info_v5, ri_serviced_energy) - 272usize];
2902    ["Offset of field: rusage_info_v5::ri_interval_max_phys_footprint"]
2903        [::std::mem::offset_of!(rusage_info_v5, ri_interval_max_phys_footprint) - 280usize];
2904    ["Offset of field: rusage_info_v5::ri_runnable_time"]
2905        [::std::mem::offset_of!(rusage_info_v5, ri_runnable_time) - 288usize];
2906    ["Offset of field: rusage_info_v5::ri_flags"]
2907        [::std::mem::offset_of!(rusage_info_v5, ri_flags) - 296usize];
2908};
2909#[repr(C)]
2910#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
2911pub struct rusage_info_v6 {
2912    pub ri_uuid: [u8; 16usize],
2913    pub ri_user_time: u64,
2914    pub ri_system_time: u64,
2915    pub ri_pkg_idle_wkups: u64,
2916    pub ri_interrupt_wkups: u64,
2917    pub ri_pageins: u64,
2918    pub ri_wired_size: u64,
2919    pub ri_resident_size: u64,
2920    pub ri_phys_footprint: u64,
2921    pub ri_proc_start_abstime: u64,
2922    pub ri_proc_exit_abstime: u64,
2923    pub ri_child_user_time: u64,
2924    pub ri_child_system_time: u64,
2925    pub ri_child_pkg_idle_wkups: u64,
2926    pub ri_child_interrupt_wkups: u64,
2927    pub ri_child_pageins: u64,
2928    pub ri_child_elapsed_abstime: u64,
2929    pub ri_diskio_bytesread: u64,
2930    pub ri_diskio_byteswritten: u64,
2931    pub ri_cpu_time_qos_default: u64,
2932    pub ri_cpu_time_qos_maintenance: u64,
2933    pub ri_cpu_time_qos_background: u64,
2934    pub ri_cpu_time_qos_utility: u64,
2935    pub ri_cpu_time_qos_legacy: u64,
2936    pub ri_cpu_time_qos_user_initiated: u64,
2937    pub ri_cpu_time_qos_user_interactive: u64,
2938    pub ri_billed_system_time: u64,
2939    pub ri_serviced_system_time: u64,
2940    pub ri_logical_writes: u64,
2941    pub ri_lifetime_max_phys_footprint: u64,
2942    pub ri_instructions: u64,
2943    pub ri_cycles: u64,
2944    pub ri_billed_energy: u64,
2945    pub ri_serviced_energy: u64,
2946    pub ri_interval_max_phys_footprint: u64,
2947    pub ri_runnable_time: u64,
2948    pub ri_flags: u64,
2949    pub ri_user_ptime: u64,
2950    pub ri_system_ptime: u64,
2951    pub ri_pinstructions: u64,
2952    pub ri_pcycles: u64,
2953    pub ri_energy_nj: u64,
2954    pub ri_penergy_nj: u64,
2955    pub ri_secure_time_in_system: u64,
2956    pub ri_secure_ptime_in_system: u64,
2957    pub ri_neural_footprint: u64,
2958    pub ri_lifetime_max_neural_footprint: u64,
2959    pub ri_interval_max_neural_footprint: u64,
2960    pub ri_reserved: [u64; 9usize],
2961}
2962#[allow(clippy::unnecessary_operation, clippy::identity_op)]
2963const _: () = {
2964    ["Size of rusage_info_v6"][::std::mem::size_of::<rusage_info_v6>() - 464usize];
2965    ["Alignment of rusage_info_v6"][::std::mem::align_of::<rusage_info_v6>() - 8usize];
2966    ["Offset of field: rusage_info_v6::ri_uuid"]
2967        [::std::mem::offset_of!(rusage_info_v6, ri_uuid) - 0usize];
2968    ["Offset of field: rusage_info_v6::ri_user_time"]
2969        [::std::mem::offset_of!(rusage_info_v6, ri_user_time) - 16usize];
2970    ["Offset of field: rusage_info_v6::ri_system_time"]
2971        [::std::mem::offset_of!(rusage_info_v6, ri_system_time) - 24usize];
2972    ["Offset of field: rusage_info_v6::ri_pkg_idle_wkups"]
2973        [::std::mem::offset_of!(rusage_info_v6, ri_pkg_idle_wkups) - 32usize];
2974    ["Offset of field: rusage_info_v6::ri_interrupt_wkups"]
2975        [::std::mem::offset_of!(rusage_info_v6, ri_interrupt_wkups) - 40usize];
2976    ["Offset of field: rusage_info_v6::ri_pageins"]
2977        [::std::mem::offset_of!(rusage_info_v6, ri_pageins) - 48usize];
2978    ["Offset of field: rusage_info_v6::ri_wired_size"]
2979        [::std::mem::offset_of!(rusage_info_v6, ri_wired_size) - 56usize];
2980    ["Offset of field: rusage_info_v6::ri_resident_size"]
2981        [::std::mem::offset_of!(rusage_info_v6, ri_resident_size) - 64usize];
2982    ["Offset of field: rusage_info_v6::ri_phys_footprint"]
2983        [::std::mem::offset_of!(rusage_info_v6, ri_phys_footprint) - 72usize];
2984    ["Offset of field: rusage_info_v6::ri_proc_start_abstime"]
2985        [::std::mem::offset_of!(rusage_info_v6, ri_proc_start_abstime) - 80usize];
2986    ["Offset of field: rusage_info_v6::ri_proc_exit_abstime"]
2987        [::std::mem::offset_of!(rusage_info_v6, ri_proc_exit_abstime) - 88usize];
2988    ["Offset of field: rusage_info_v6::ri_child_user_time"]
2989        [::std::mem::offset_of!(rusage_info_v6, ri_child_user_time) - 96usize];
2990    ["Offset of field: rusage_info_v6::ri_child_system_time"]
2991        [::std::mem::offset_of!(rusage_info_v6, ri_child_system_time) - 104usize];
2992    ["Offset of field: rusage_info_v6::ri_child_pkg_idle_wkups"]
2993        [::std::mem::offset_of!(rusage_info_v6, ri_child_pkg_idle_wkups) - 112usize];
2994    ["Offset of field: rusage_info_v6::ri_child_interrupt_wkups"]
2995        [::std::mem::offset_of!(rusage_info_v6, ri_child_interrupt_wkups) - 120usize];
2996    ["Offset of field: rusage_info_v6::ri_child_pageins"]
2997        [::std::mem::offset_of!(rusage_info_v6, ri_child_pageins) - 128usize];
2998    ["Offset of field: rusage_info_v6::ri_child_elapsed_abstime"]
2999        [::std::mem::offset_of!(rusage_info_v6, ri_child_elapsed_abstime) - 136usize];
3000    ["Offset of field: rusage_info_v6::ri_diskio_bytesread"]
3001        [::std::mem::offset_of!(rusage_info_v6, ri_diskio_bytesread) - 144usize];
3002    ["Offset of field: rusage_info_v6::ri_diskio_byteswritten"]
3003        [::std::mem::offset_of!(rusage_info_v6, ri_diskio_byteswritten) - 152usize];
3004    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_default"]
3005        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_default) - 160usize];
3006    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_maintenance"]
3007        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_maintenance) - 168usize];
3008    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_background"]
3009        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_background) - 176usize];
3010    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_utility"]
3011        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_utility) - 184usize];
3012    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_legacy"]
3013        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_legacy) - 192usize];
3014    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_initiated"]
3015        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_initiated) - 200usize];
3016    ["Offset of field: rusage_info_v6::ri_cpu_time_qos_user_interactive"]
3017        [::std::mem::offset_of!(rusage_info_v6, ri_cpu_time_qos_user_interactive) - 208usize];
3018    ["Offset of field: rusage_info_v6::ri_billed_system_time"]
3019        [::std::mem::offset_of!(rusage_info_v6, ri_billed_system_time) - 216usize];
3020    ["Offset of field: rusage_info_v6::ri_serviced_system_time"]
3021        [::std::mem::offset_of!(rusage_info_v6, ri_serviced_system_time) - 224usize];
3022    ["Offset of field: rusage_info_v6::ri_logical_writes"]
3023        [::std::mem::offset_of!(rusage_info_v6, ri_logical_writes) - 232usize];
3024    ["Offset of field: rusage_info_v6::ri_lifetime_max_phys_footprint"]
3025        [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_phys_footprint) - 240usize];
3026    ["Offset of field: rusage_info_v6::ri_instructions"]
3027        [::std::mem::offset_of!(rusage_info_v6, ri_instructions) - 248usize];
3028    ["Offset of field: rusage_info_v6::ri_cycles"]
3029        [::std::mem::offset_of!(rusage_info_v6, ri_cycles) - 256usize];
3030    ["Offset of field: rusage_info_v6::ri_billed_energy"]
3031        [::std::mem::offset_of!(rusage_info_v6, ri_billed_energy) - 264usize];
3032    ["Offset of field: rusage_info_v6::ri_serviced_energy"]
3033        [::std::mem::offset_of!(rusage_info_v6, ri_serviced_energy) - 272usize];
3034    ["Offset of field: rusage_info_v6::ri_interval_max_phys_footprint"]
3035        [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_phys_footprint) - 280usize];
3036    ["Offset of field: rusage_info_v6::ri_runnable_time"]
3037        [::std::mem::offset_of!(rusage_info_v6, ri_runnable_time) - 288usize];
3038    ["Offset of field: rusage_info_v6::ri_flags"]
3039        [::std::mem::offset_of!(rusage_info_v6, ri_flags) - 296usize];
3040    ["Offset of field: rusage_info_v6::ri_user_ptime"]
3041        [::std::mem::offset_of!(rusage_info_v6, ri_user_ptime) - 304usize];
3042    ["Offset of field: rusage_info_v6::ri_system_ptime"]
3043        [::std::mem::offset_of!(rusage_info_v6, ri_system_ptime) - 312usize];
3044    ["Offset of field: rusage_info_v6::ri_pinstructions"]
3045        [::std::mem::offset_of!(rusage_info_v6, ri_pinstructions) - 320usize];
3046    ["Offset of field: rusage_info_v6::ri_pcycles"]
3047        [::std::mem::offset_of!(rusage_info_v6, ri_pcycles) - 328usize];
3048    ["Offset of field: rusage_info_v6::ri_energy_nj"]
3049        [::std::mem::offset_of!(rusage_info_v6, ri_energy_nj) - 336usize];
3050    ["Offset of field: rusage_info_v6::ri_penergy_nj"]
3051        [::std::mem::offset_of!(rusage_info_v6, ri_penergy_nj) - 344usize];
3052    ["Offset of field: rusage_info_v6::ri_secure_time_in_system"]
3053        [::std::mem::offset_of!(rusage_info_v6, ri_secure_time_in_system) - 352usize];
3054    ["Offset of field: rusage_info_v6::ri_secure_ptime_in_system"]
3055        [::std::mem::offset_of!(rusage_info_v6, ri_secure_ptime_in_system) - 360usize];
3056    ["Offset of field: rusage_info_v6::ri_neural_footprint"]
3057        [::std::mem::offset_of!(rusage_info_v6, ri_neural_footprint) - 368usize];
3058    ["Offset of field: rusage_info_v6::ri_lifetime_max_neural_footprint"]
3059        [::std::mem::offset_of!(rusage_info_v6, ri_lifetime_max_neural_footprint) - 376usize];
3060    ["Offset of field: rusage_info_v6::ri_interval_max_neural_footprint"]
3061        [::std::mem::offset_of!(rusage_info_v6, ri_interval_max_neural_footprint) - 384usize];
3062    ["Offset of field: rusage_info_v6::ri_reserved"]
3063        [::std::mem::offset_of!(rusage_info_v6, ri_reserved) - 392usize];
3064};
3065pub type rusage_info_current = rusage_info_v6;
3066#[repr(C)]
3067#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3068pub struct rlimit {
3069    pub rlim_cur: rlim_t,
3070    pub rlim_max: rlim_t,
3071}
3072#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3073const _: () = {
3074    ["Size of rlimit"][::std::mem::size_of::<rlimit>() - 16usize];
3075    ["Alignment of rlimit"][::std::mem::align_of::<rlimit>() - 8usize];
3076    ["Offset of field: rlimit::rlim_cur"][::std::mem::offset_of!(rlimit, rlim_cur) - 0usize];
3077    ["Offset of field: rlimit::rlim_max"][::std::mem::offset_of!(rlimit, rlim_max) - 8usize];
3078};
3079#[repr(C)]
3080#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3081pub struct proc_rlimit_control_wakeupmon {
3082    pub wm_flags: u32,
3083    pub wm_rate: i32,
3084}
3085#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3086const _: () = {
3087    ["Size of proc_rlimit_control_wakeupmon"]
3088        [::std::mem::size_of::<proc_rlimit_control_wakeupmon>() - 8usize];
3089    ["Alignment of proc_rlimit_control_wakeupmon"]
3090        [::std::mem::align_of::<proc_rlimit_control_wakeupmon>() - 4usize];
3091    ["Offset of field: proc_rlimit_control_wakeupmon::wm_flags"]
3092        [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_flags) - 0usize];
3093    ["Offset of field: proc_rlimit_control_wakeupmon::wm_rate"]
3094        [::std::mem::offset_of!(proc_rlimit_control_wakeupmon, wm_rate) - 4usize];
3095};
3096unsafe extern "C" {
3097    pub fn getpriority(arg1: ::std::os::raw::c_int, arg2: id_t) -> ::std::os::raw::c_int;
3098}
3099unsafe extern "C" {
3100    pub fn getiopolicy_np(
3101        arg1: ::std::os::raw::c_int,
3102        arg2: ::std::os::raw::c_int,
3103    ) -> ::std::os::raw::c_int;
3104}
3105unsafe extern "C" {
3106    pub fn getrlimit(arg1: ::std::os::raw::c_int, arg2: *mut rlimit) -> ::std::os::raw::c_int;
3107}
3108unsafe extern "C" {
3109    pub fn getrusage(arg1: ::std::os::raw::c_int, arg2: *mut rusage) -> ::std::os::raw::c_int;
3110}
3111unsafe extern "C" {
3112    pub fn setpriority(
3113        arg1: ::std::os::raw::c_int,
3114        arg2: id_t,
3115        arg3: ::std::os::raw::c_int,
3116    ) -> ::std::os::raw::c_int;
3117}
3118unsafe extern "C" {
3119    pub fn setiopolicy_np(
3120        arg1: ::std::os::raw::c_int,
3121        arg2: ::std::os::raw::c_int,
3122        arg3: ::std::os::raw::c_int,
3123    ) -> ::std::os::raw::c_int;
3124}
3125unsafe extern "C" {
3126    pub fn setrlimit(arg1: ::std::os::raw::c_int, arg2: *const rlimit) -> ::std::os::raw::c_int;
3127}
3128#[repr(C)]
3129#[derive(Copy, Clone)]
3130pub union wait {
3131    pub w_status: ::std::os::raw::c_int,
3132    pub w_T: wait__bindgen_ty_1,
3133    pub w_S: wait__bindgen_ty_2,
3134}
3135#[repr(C)]
3136#[repr(align(4))]
3137#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3138pub struct wait__bindgen_ty_1 {
3139    pub _bitfield_align_1: [u16; 0],
3140    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
3141}
3142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3143const _: () = {
3144    ["Size of wait__bindgen_ty_1"][::std::mem::size_of::<wait__bindgen_ty_1>() - 4usize];
3145    ["Alignment of wait__bindgen_ty_1"][::std::mem::align_of::<wait__bindgen_ty_1>() - 4usize];
3146};
3147impl wait__bindgen_ty_1 {
3148    #[inline]
3149    pub fn w_Termsig(&self) -> ::std::os::raw::c_uint {
3150        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 7u8) as u32) }
3151    }
3152    #[inline]
3153    pub fn set_w_Termsig(&mut self, val: ::std::os::raw::c_uint) {
3154        unsafe {
3155            let val: u32 = ::std::mem::transmute(val);
3156            self._bitfield_1.set(0usize, 7u8, val as u64)
3157        }
3158    }
3159    #[inline]
3160    pub unsafe fn w_Termsig_raw(this: *const Self) -> ::std::os::raw::c_uint {
3161        unsafe {
3162            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3163                ::std::ptr::addr_of!((*this)._bitfield_1),
3164                0usize,
3165                7u8,
3166            ) as u32)
3167        }
3168    }
3169    #[inline]
3170    pub unsafe fn set_w_Termsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3171        unsafe {
3172            let val: u32 = ::std::mem::transmute(val);
3173            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3174                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3175                0usize,
3176                7u8,
3177                val as u64,
3178            )
3179        }
3180    }
3181    #[inline]
3182    pub fn w_Coredump(&self) -> ::std::os::raw::c_uint {
3183        unsafe { ::std::mem::transmute(self._bitfield_1.get(7usize, 1u8) as u32) }
3184    }
3185    #[inline]
3186    pub fn set_w_Coredump(&mut self, val: ::std::os::raw::c_uint) {
3187        unsafe {
3188            let val: u32 = ::std::mem::transmute(val);
3189            self._bitfield_1.set(7usize, 1u8, val as u64)
3190        }
3191    }
3192    #[inline]
3193    pub unsafe fn w_Coredump_raw(this: *const Self) -> ::std::os::raw::c_uint {
3194        unsafe {
3195            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3196                ::std::ptr::addr_of!((*this)._bitfield_1),
3197                7usize,
3198                1u8,
3199            ) as u32)
3200        }
3201    }
3202    #[inline]
3203    pub unsafe fn set_w_Coredump_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3204        unsafe {
3205            let val: u32 = ::std::mem::transmute(val);
3206            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3207                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3208                7usize,
3209                1u8,
3210                val as u64,
3211            )
3212        }
3213    }
3214    #[inline]
3215    pub fn w_Retcode(&self) -> ::std::os::raw::c_uint {
3216        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
3217    }
3218    #[inline]
3219    pub fn set_w_Retcode(&mut self, val: ::std::os::raw::c_uint) {
3220        unsafe {
3221            let val: u32 = ::std::mem::transmute(val);
3222            self._bitfield_1.set(8usize, 8u8, val as u64)
3223        }
3224    }
3225    #[inline]
3226    pub unsafe fn w_Retcode_raw(this: *const Self) -> ::std::os::raw::c_uint {
3227        unsafe {
3228            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3229                ::std::ptr::addr_of!((*this)._bitfield_1),
3230                8usize,
3231                8u8,
3232            ) as u32)
3233        }
3234    }
3235    #[inline]
3236    pub unsafe fn set_w_Retcode_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3237        unsafe {
3238            let val: u32 = ::std::mem::transmute(val);
3239            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3240                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3241                8usize,
3242                8u8,
3243                val as u64,
3244            )
3245        }
3246    }
3247    #[inline]
3248    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
3249        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
3250    }
3251    #[inline]
3252    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
3253        unsafe {
3254            let val: u32 = ::std::mem::transmute(val);
3255            self._bitfield_1.set(16usize, 16u8, val as u64)
3256        }
3257    }
3258    #[inline]
3259    pub unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint {
3260        unsafe {
3261            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3262                ::std::ptr::addr_of!((*this)._bitfield_1),
3263                16usize,
3264                16u8,
3265            ) as u32)
3266        }
3267    }
3268    #[inline]
3269    pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3270        unsafe {
3271            let val: u32 = ::std::mem::transmute(val);
3272            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3273                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3274                16usize,
3275                16u8,
3276                val as u64,
3277            )
3278        }
3279    }
3280    #[inline]
3281    pub fn new_bitfield_1(
3282        w_Termsig: ::std::os::raw::c_uint,
3283        w_Coredump: ::std::os::raw::c_uint,
3284        w_Retcode: ::std::os::raw::c_uint,
3285        w_Filler: ::std::os::raw::c_uint,
3286    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
3287        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
3288        __bindgen_bitfield_unit.set(0usize, 7u8, {
3289            let w_Termsig: u32 = unsafe { ::std::mem::transmute(w_Termsig) };
3290            w_Termsig as u64
3291        });
3292        __bindgen_bitfield_unit.set(7usize, 1u8, {
3293            let w_Coredump: u32 = unsafe { ::std::mem::transmute(w_Coredump) };
3294            w_Coredump as u64
3295        });
3296        __bindgen_bitfield_unit.set(8usize, 8u8, {
3297            let w_Retcode: u32 = unsafe { ::std::mem::transmute(w_Retcode) };
3298            w_Retcode as u64
3299        });
3300        __bindgen_bitfield_unit.set(16usize, 16u8, {
3301            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
3302            w_Filler as u64
3303        });
3304        __bindgen_bitfield_unit
3305    }
3306}
3307#[repr(C)]
3308#[repr(align(4))]
3309#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3310pub struct wait__bindgen_ty_2 {
3311    pub _bitfield_align_1: [u16; 0],
3312    pub _bitfield_1: __BindgenBitfieldUnit<[u8; 4usize]>,
3313}
3314#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3315const _: () = {
3316    ["Size of wait__bindgen_ty_2"][::std::mem::size_of::<wait__bindgen_ty_2>() - 4usize];
3317    ["Alignment of wait__bindgen_ty_2"][::std::mem::align_of::<wait__bindgen_ty_2>() - 4usize];
3318};
3319impl wait__bindgen_ty_2 {
3320    #[inline]
3321    pub fn w_Stopval(&self) -> ::std::os::raw::c_uint {
3322        unsafe { ::std::mem::transmute(self._bitfield_1.get(0usize, 8u8) as u32) }
3323    }
3324    #[inline]
3325    pub fn set_w_Stopval(&mut self, val: ::std::os::raw::c_uint) {
3326        unsafe {
3327            let val: u32 = ::std::mem::transmute(val);
3328            self._bitfield_1.set(0usize, 8u8, val as u64)
3329        }
3330    }
3331    #[inline]
3332    pub unsafe fn w_Stopval_raw(this: *const Self) -> ::std::os::raw::c_uint {
3333        unsafe {
3334            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3335                ::std::ptr::addr_of!((*this)._bitfield_1),
3336                0usize,
3337                8u8,
3338            ) as u32)
3339        }
3340    }
3341    #[inline]
3342    pub unsafe fn set_w_Stopval_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3343        unsafe {
3344            let val: u32 = ::std::mem::transmute(val);
3345            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3346                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3347                0usize,
3348                8u8,
3349                val as u64,
3350            )
3351        }
3352    }
3353    #[inline]
3354    pub fn w_Stopsig(&self) -> ::std::os::raw::c_uint {
3355        unsafe { ::std::mem::transmute(self._bitfield_1.get(8usize, 8u8) as u32) }
3356    }
3357    #[inline]
3358    pub fn set_w_Stopsig(&mut self, val: ::std::os::raw::c_uint) {
3359        unsafe {
3360            let val: u32 = ::std::mem::transmute(val);
3361            self._bitfield_1.set(8usize, 8u8, val as u64)
3362        }
3363    }
3364    #[inline]
3365    pub unsafe fn w_Stopsig_raw(this: *const Self) -> ::std::os::raw::c_uint {
3366        unsafe {
3367            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3368                ::std::ptr::addr_of!((*this)._bitfield_1),
3369                8usize,
3370                8u8,
3371            ) as u32)
3372        }
3373    }
3374    #[inline]
3375    pub unsafe fn set_w_Stopsig_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3376        unsafe {
3377            let val: u32 = ::std::mem::transmute(val);
3378            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3379                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3380                8usize,
3381                8u8,
3382                val as u64,
3383            )
3384        }
3385    }
3386    #[inline]
3387    pub fn w_Filler(&self) -> ::std::os::raw::c_uint {
3388        unsafe { ::std::mem::transmute(self._bitfield_1.get(16usize, 16u8) as u32) }
3389    }
3390    #[inline]
3391    pub fn set_w_Filler(&mut self, val: ::std::os::raw::c_uint) {
3392        unsafe {
3393            let val: u32 = ::std::mem::transmute(val);
3394            self._bitfield_1.set(16usize, 16u8, val as u64)
3395        }
3396    }
3397    #[inline]
3398    pub unsafe fn w_Filler_raw(this: *const Self) -> ::std::os::raw::c_uint {
3399        unsafe {
3400            ::std::mem::transmute(<__BindgenBitfieldUnit<[u8; 4usize]>>::raw_get(
3401                ::std::ptr::addr_of!((*this)._bitfield_1),
3402                16usize,
3403                16u8,
3404            ) as u32)
3405        }
3406    }
3407    #[inline]
3408    pub unsafe fn set_w_Filler_raw(this: *mut Self, val: ::std::os::raw::c_uint) {
3409        unsafe {
3410            let val: u32 = ::std::mem::transmute(val);
3411            <__BindgenBitfieldUnit<[u8; 4usize]>>::raw_set(
3412                ::std::ptr::addr_of_mut!((*this)._bitfield_1),
3413                16usize,
3414                16u8,
3415                val as u64,
3416            )
3417        }
3418    }
3419    #[inline]
3420    pub fn new_bitfield_1(
3421        w_Stopval: ::std::os::raw::c_uint,
3422        w_Stopsig: ::std::os::raw::c_uint,
3423        w_Filler: ::std::os::raw::c_uint,
3424    ) -> __BindgenBitfieldUnit<[u8; 4usize]> {
3425        let mut __bindgen_bitfield_unit: __BindgenBitfieldUnit<[u8; 4usize]> = Default::default();
3426        __bindgen_bitfield_unit.set(0usize, 8u8, {
3427            let w_Stopval: u32 = unsafe { ::std::mem::transmute(w_Stopval) };
3428            w_Stopval as u64
3429        });
3430        __bindgen_bitfield_unit.set(8usize, 8u8, {
3431            let w_Stopsig: u32 = unsafe { ::std::mem::transmute(w_Stopsig) };
3432            w_Stopsig as u64
3433        });
3434        __bindgen_bitfield_unit.set(16usize, 16u8, {
3435            let w_Filler: u32 = unsafe { ::std::mem::transmute(w_Filler) };
3436            w_Filler as u64
3437        });
3438        __bindgen_bitfield_unit
3439    }
3440}
3441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3442const _: () = {
3443    ["Size of wait"][::std::mem::size_of::<wait>() - 4usize];
3444    ["Alignment of wait"][::std::mem::align_of::<wait>() - 4usize];
3445    ["Offset of field: wait::w_status"][::std::mem::offset_of!(wait, w_status) - 0usize];
3446    ["Offset of field: wait::w_T"][::std::mem::offset_of!(wait, w_T) - 0usize];
3447    ["Offset of field: wait::w_S"][::std::mem::offset_of!(wait, w_S) - 0usize];
3448};
3449impl Default for wait {
3450    fn default() -> Self {
3451        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
3452        unsafe {
3453            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
3454            s.assume_init()
3455        }
3456    }
3457}
3458unsafe extern "C" {
3459    pub fn wait(arg1: *mut ::std::os::raw::c_int) -> pid_t;
3460}
3461unsafe extern "C" {
3462    pub fn waitpid(
3463        arg1: pid_t,
3464        arg2: *mut ::std::os::raw::c_int,
3465        arg3: ::std::os::raw::c_int,
3466    ) -> pid_t;
3467}
3468unsafe extern "C" {
3469    pub fn waitid(
3470        arg1: idtype_t,
3471        arg2: id_t,
3472        arg3: *mut siginfo_t,
3473        arg4: ::std::os::raw::c_int,
3474    ) -> ::std::os::raw::c_int;
3475}
3476unsafe extern "C" {
3477    pub fn wait3(
3478        arg1: *mut ::std::os::raw::c_int,
3479        arg2: ::std::os::raw::c_int,
3480        arg3: *mut rusage,
3481    ) -> pid_t;
3482}
3483unsafe extern "C" {
3484    pub fn wait4(
3485        arg1: pid_t,
3486        arg2: *mut ::std::os::raw::c_int,
3487        arg3: ::std::os::raw::c_int,
3488        arg4: *mut rusage,
3489    ) -> pid_t;
3490}
3491unsafe extern "C" {
3492    pub fn alloca(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3493}
3494pub type ct_rune_t = __darwin_ct_rune_t;
3495pub type rune_t = __darwin_rune_t;
3496pub type wchar_t = __darwin_wchar_t;
3497#[repr(C)]
3498#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3499pub struct div_t {
3500    pub quot: ::std::os::raw::c_int,
3501    pub rem: ::std::os::raw::c_int,
3502}
3503#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3504const _: () = {
3505    ["Size of div_t"][::std::mem::size_of::<div_t>() - 8usize];
3506    ["Alignment of div_t"][::std::mem::align_of::<div_t>() - 4usize];
3507    ["Offset of field: div_t::quot"][::std::mem::offset_of!(div_t, quot) - 0usize];
3508    ["Offset of field: div_t::rem"][::std::mem::offset_of!(div_t, rem) - 4usize];
3509};
3510#[repr(C)]
3511#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3512pub struct ldiv_t {
3513    pub quot: ::std::os::raw::c_long,
3514    pub rem: ::std::os::raw::c_long,
3515}
3516#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3517const _: () = {
3518    ["Size of ldiv_t"][::std::mem::size_of::<ldiv_t>() - 16usize];
3519    ["Alignment of ldiv_t"][::std::mem::align_of::<ldiv_t>() - 8usize];
3520    ["Offset of field: ldiv_t::quot"][::std::mem::offset_of!(ldiv_t, quot) - 0usize];
3521    ["Offset of field: ldiv_t::rem"][::std::mem::offset_of!(ldiv_t, rem) - 8usize];
3522};
3523#[repr(C)]
3524#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
3525pub struct lldiv_t {
3526    pub quot: ::std::os::raw::c_longlong,
3527    pub rem: ::std::os::raw::c_longlong,
3528}
3529#[allow(clippy::unnecessary_operation, clippy::identity_op)]
3530const _: () = {
3531    ["Size of lldiv_t"][::std::mem::size_of::<lldiv_t>() - 16usize];
3532    ["Alignment of lldiv_t"][::std::mem::align_of::<lldiv_t>() - 8usize];
3533    ["Offset of field: lldiv_t::quot"][::std::mem::offset_of!(lldiv_t, quot) - 0usize];
3534    ["Offset of field: lldiv_t::rem"][::std::mem::offset_of!(lldiv_t, rem) - 8usize];
3535};
3536unsafe extern "C" {
3537    pub static mut __mb_cur_max: ::std::os::raw::c_int;
3538}
3539pub type malloc_type_id_t = ::std::os::raw::c_ulonglong;
3540unsafe extern "C" {
3541    pub fn malloc_type_malloc(
3542        size: usize,
3543        type_id: malloc_type_id_t,
3544    ) -> *mut ::std::os::raw::c_void;
3545}
3546unsafe extern "C" {
3547    pub fn malloc_type_calloc(
3548        count: usize,
3549        size: usize,
3550        type_id: malloc_type_id_t,
3551    ) -> *mut ::std::os::raw::c_void;
3552}
3553unsafe extern "C" {
3554    pub fn malloc_type_free(ptr: *mut ::std::os::raw::c_void, type_id: malloc_type_id_t);
3555}
3556unsafe extern "C" {
3557    pub fn malloc_type_realloc(
3558        ptr: *mut ::std::os::raw::c_void,
3559        size: usize,
3560        type_id: malloc_type_id_t,
3561    ) -> *mut ::std::os::raw::c_void;
3562}
3563unsafe extern "C" {
3564    pub fn malloc_type_valloc(
3565        size: usize,
3566        type_id: malloc_type_id_t,
3567    ) -> *mut ::std::os::raw::c_void;
3568}
3569unsafe extern "C" {
3570    pub fn malloc_type_aligned_alloc(
3571        alignment: usize,
3572        size: usize,
3573        type_id: malloc_type_id_t,
3574    ) -> *mut ::std::os::raw::c_void;
3575}
3576unsafe extern "C" {
3577    pub fn malloc_type_posix_memalign(
3578        memptr: *mut *mut ::std::os::raw::c_void,
3579        alignment: usize,
3580        size: usize,
3581        type_id: malloc_type_id_t,
3582    ) -> ::std::os::raw::c_int;
3583}
3584#[repr(C)]
3585#[derive(Debug, Copy, Clone)]
3586pub struct _malloc_zone_t {
3587    _unused: [u8; 0],
3588}
3589pub type malloc_zone_t = _malloc_zone_t;
3590unsafe extern "C" {
3591    pub fn malloc_type_zone_malloc(
3592        zone: *mut malloc_zone_t,
3593        size: usize,
3594        type_id: malloc_type_id_t,
3595    ) -> *mut ::std::os::raw::c_void;
3596}
3597unsafe extern "C" {
3598    pub fn malloc_type_zone_calloc(
3599        zone: *mut malloc_zone_t,
3600        count: usize,
3601        size: usize,
3602        type_id: malloc_type_id_t,
3603    ) -> *mut ::std::os::raw::c_void;
3604}
3605unsafe extern "C" {
3606    pub fn malloc_type_zone_free(
3607        zone: *mut malloc_zone_t,
3608        ptr: *mut ::std::os::raw::c_void,
3609        type_id: malloc_type_id_t,
3610    );
3611}
3612unsafe extern "C" {
3613    pub fn malloc_type_zone_realloc(
3614        zone: *mut malloc_zone_t,
3615        ptr: *mut ::std::os::raw::c_void,
3616        size: usize,
3617        type_id: malloc_type_id_t,
3618    ) -> *mut ::std::os::raw::c_void;
3619}
3620unsafe extern "C" {
3621    pub fn malloc_type_zone_valloc(
3622        zone: *mut malloc_zone_t,
3623        size: usize,
3624        type_id: malloc_type_id_t,
3625    ) -> *mut ::std::os::raw::c_void;
3626}
3627unsafe extern "C" {
3628    pub fn malloc_type_zone_memalign(
3629        zone: *mut malloc_zone_t,
3630        alignment: usize,
3631        size: usize,
3632        type_id: malloc_type_id_t,
3633    ) -> *mut ::std::os::raw::c_void;
3634}
3635unsafe extern "C" {
3636    pub fn malloc(__size: ::std::os::raw::c_ulong) -> *mut ::std::os::raw::c_void;
3637}
3638unsafe extern "C" {
3639    pub fn calloc(
3640        __count: ::std::os::raw::c_ulong,
3641        __size: ::std::os::raw::c_ulong,
3642    ) -> *mut ::std::os::raw::c_void;
3643}
3644unsafe extern "C" {
3645    pub fn free(arg1: *mut ::std::os::raw::c_void);
3646}
3647unsafe extern "C" {
3648    pub fn realloc(
3649        __ptr: *mut ::std::os::raw::c_void,
3650        __size: ::std::os::raw::c_ulong,
3651    ) -> *mut ::std::os::raw::c_void;
3652}
3653unsafe extern "C" {
3654    pub fn reallocf(
3655        __ptr: *mut ::std::os::raw::c_void,
3656        __size: usize,
3657    ) -> *mut ::std::os::raw::c_void;
3658}
3659unsafe extern "C" {
3660    pub fn valloc(__size: usize) -> *mut ::std::os::raw::c_void;
3661}
3662unsafe extern "C" {
3663    pub fn aligned_alloc(
3664        __alignment: ::std::os::raw::c_ulong,
3665        __size: ::std::os::raw::c_ulong,
3666    ) -> *mut ::std::os::raw::c_void;
3667}
3668unsafe extern "C" {
3669    pub fn posix_memalign(
3670        __memptr: *mut *mut ::std::os::raw::c_void,
3671        __alignment: usize,
3672        __size: usize,
3673    ) -> ::std::os::raw::c_int;
3674}
3675unsafe extern "C" {
3676    pub fn abort() -> !;
3677}
3678unsafe extern "C" {
3679    pub fn abs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3680}
3681unsafe extern "C" {
3682    pub fn atexit(arg1: ::std::option::Option<unsafe extern "C" fn()>) -> ::std::os::raw::c_int;
3683}
3684unsafe extern "C" {
3685    pub fn at_quick_exit(
3686        arg1: ::std::option::Option<unsafe extern "C" fn()>,
3687    ) -> ::std::os::raw::c_int;
3688}
3689unsafe extern "C" {
3690    pub fn atof(arg1: *const ::std::os::raw::c_char) -> f64;
3691}
3692unsafe extern "C" {
3693    pub fn atoi(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3694}
3695unsafe extern "C" {
3696    pub fn atol(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3697}
3698unsafe extern "C" {
3699    pub fn atoll(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_longlong;
3700}
3701unsafe extern "C" {
3702    pub fn bsearch(
3703        __key: *const ::std::os::raw::c_void,
3704        __base: *const ::std::os::raw::c_void,
3705        __nel: usize,
3706        __width: usize,
3707        __compar: ::std::option::Option<
3708            unsafe extern "C" fn(
3709                arg1: *const ::std::os::raw::c_void,
3710                arg2: *const ::std::os::raw::c_void,
3711            ) -> ::std::os::raw::c_int,
3712        >,
3713    ) -> *mut ::std::os::raw::c_void;
3714}
3715unsafe extern "C" {
3716    pub fn div(arg1: ::std::os::raw::c_int, arg2: ::std::os::raw::c_int) -> div_t;
3717}
3718unsafe extern "C" {
3719    pub fn exit(arg1: ::std::os::raw::c_int) -> !;
3720}
3721unsafe extern "C" {
3722    pub fn getenv(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3723}
3724unsafe extern "C" {
3725    pub fn labs(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_long;
3726}
3727unsafe extern "C" {
3728    pub fn ldiv(arg1: ::std::os::raw::c_long, arg2: ::std::os::raw::c_long) -> ldiv_t;
3729}
3730unsafe extern "C" {
3731    pub fn llabs(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_longlong;
3732}
3733unsafe extern "C" {
3734    pub fn lldiv(arg1: ::std::os::raw::c_longlong, arg2: ::std::os::raw::c_longlong) -> lldiv_t;
3735}
3736unsafe extern "C" {
3737    pub fn mblen(__s: *const ::std::os::raw::c_char, __n: usize) -> ::std::os::raw::c_int;
3738}
3739unsafe extern "C" {
3740    pub fn mbstowcs(arg1: *mut wchar_t, arg2: *const ::std::os::raw::c_char, __n: usize) -> usize;
3741}
3742unsafe extern "C" {
3743    pub fn mbtowc(
3744        arg1: *mut wchar_t,
3745        arg2: *const ::std::os::raw::c_char,
3746        __n: usize,
3747    ) -> ::std::os::raw::c_int;
3748}
3749unsafe extern "C" {
3750    pub fn qsort(
3751        __base: *mut ::std::os::raw::c_void,
3752        __nel: usize,
3753        __width: usize,
3754        __compar: ::std::option::Option<
3755            unsafe extern "C" fn(
3756                arg1: *const ::std::os::raw::c_void,
3757                arg2: *const ::std::os::raw::c_void,
3758            ) -> ::std::os::raw::c_int,
3759        >,
3760    );
3761}
3762unsafe extern "C" {
3763    pub fn quick_exit(arg1: ::std::os::raw::c_int) -> !;
3764}
3765unsafe extern "C" {
3766    pub fn rand() -> ::std::os::raw::c_int;
3767}
3768unsafe extern "C" {
3769    pub fn srand(arg1: ::std::os::raw::c_uint);
3770}
3771unsafe extern "C" {
3772    pub fn strtod(
3773        arg1: *const ::std::os::raw::c_char,
3774        arg2: *mut *mut ::std::os::raw::c_char,
3775    ) -> f64;
3776}
3777unsafe extern "C" {
3778    pub fn strtof(
3779        arg1: *const ::std::os::raw::c_char,
3780        arg2: *mut *mut ::std::os::raw::c_char,
3781    ) -> f32;
3782}
3783unsafe extern "C" {
3784    pub fn strtol(
3785        __str: *const ::std::os::raw::c_char,
3786        __endptr: *mut *mut ::std::os::raw::c_char,
3787        __base: ::std::os::raw::c_int,
3788    ) -> ::std::os::raw::c_long;
3789}
3790unsafe extern "C" {
3791    pub fn strtold(
3792        arg1: *const ::std::os::raw::c_char,
3793        arg2: *mut *mut ::std::os::raw::c_char,
3794    ) -> f64;
3795}
3796unsafe extern "C" {
3797    pub fn strtoll(
3798        __str: *const ::std::os::raw::c_char,
3799        __endptr: *mut *mut ::std::os::raw::c_char,
3800        __base: ::std::os::raw::c_int,
3801    ) -> ::std::os::raw::c_longlong;
3802}
3803unsafe extern "C" {
3804    pub fn strtoul(
3805        __str: *const ::std::os::raw::c_char,
3806        __endptr: *mut *mut ::std::os::raw::c_char,
3807        __base: ::std::os::raw::c_int,
3808    ) -> ::std::os::raw::c_ulong;
3809}
3810unsafe extern "C" {
3811    pub fn strtoull(
3812        __str: *const ::std::os::raw::c_char,
3813        __endptr: *mut *mut ::std::os::raw::c_char,
3814        __base: ::std::os::raw::c_int,
3815    ) -> ::std::os::raw::c_ulonglong;
3816}
3817unsafe extern "C" {
3818    pub fn system(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3819}
3820unsafe extern "C" {
3821    pub fn wcstombs(arg1: *mut ::std::os::raw::c_char, arg2: *const wchar_t, __n: usize) -> usize;
3822}
3823unsafe extern "C" {
3824    pub fn wctomb(arg1: *mut ::std::os::raw::c_char, arg2: wchar_t) -> ::std::os::raw::c_int;
3825}
3826unsafe extern "C" {
3827    pub fn _Exit(arg1: ::std::os::raw::c_int) -> !;
3828}
3829unsafe extern "C" {
3830    pub fn a64l(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_long;
3831}
3832unsafe extern "C" {
3833    pub fn drand48() -> f64;
3834}
3835unsafe extern "C" {
3836    pub fn ecvt(
3837        arg1: f64,
3838        arg2: ::std::os::raw::c_int,
3839        arg3: *mut ::std::os::raw::c_int,
3840        arg4: *mut ::std::os::raw::c_int,
3841    ) -> *mut ::std::os::raw::c_char;
3842}
3843unsafe extern "C" {
3844    pub fn erand48(arg1: *mut ::std::os::raw::c_ushort) -> f64;
3845}
3846unsafe extern "C" {
3847    pub fn fcvt(
3848        arg1: f64,
3849        arg2: ::std::os::raw::c_int,
3850        arg3: *mut ::std::os::raw::c_int,
3851        arg4: *mut ::std::os::raw::c_int,
3852    ) -> *mut ::std::os::raw::c_char;
3853}
3854unsafe extern "C" {
3855    pub fn gcvt(
3856        arg1: f64,
3857        arg2: ::std::os::raw::c_int,
3858        arg3: *mut ::std::os::raw::c_char,
3859    ) -> *mut ::std::os::raw::c_char;
3860}
3861unsafe extern "C" {
3862    pub fn getsubopt(
3863        arg1: *mut *mut ::std::os::raw::c_char,
3864        arg2: *const *mut ::std::os::raw::c_char,
3865        arg3: *mut *mut ::std::os::raw::c_char,
3866    ) -> ::std::os::raw::c_int;
3867}
3868unsafe extern "C" {
3869    pub fn grantpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3870}
3871unsafe extern "C" {
3872    pub fn initstate(
3873        arg1: ::std::os::raw::c_uint,
3874        arg2: *mut ::std::os::raw::c_char,
3875        __size: usize,
3876    ) -> *mut ::std::os::raw::c_char;
3877}
3878unsafe extern "C" {
3879    pub fn jrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3880}
3881unsafe extern "C" {
3882    pub fn l64a(arg1: ::std::os::raw::c_long) -> *mut ::std::os::raw::c_char;
3883}
3884unsafe extern "C" {
3885    pub fn lcong48(arg1: *mut ::std::os::raw::c_ushort);
3886}
3887unsafe extern "C" {
3888    pub fn lrand48() -> ::std::os::raw::c_long;
3889}
3890unsafe extern "C" {
3891    pub fn mktemp(arg1: *mut ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3892}
3893unsafe extern "C" {
3894    pub fn mkstemp(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3895}
3896unsafe extern "C" {
3897    pub fn mrand48() -> ::std::os::raw::c_long;
3898}
3899unsafe extern "C" {
3900    pub fn nrand48(arg1: *mut ::std::os::raw::c_ushort) -> ::std::os::raw::c_long;
3901}
3902unsafe extern "C" {
3903    pub fn posix_openpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3904}
3905unsafe extern "C" {
3906    pub fn ptsname(arg1: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
3907}
3908unsafe extern "C" {
3909    pub fn ptsname_r(
3910        fildes: ::std::os::raw::c_int,
3911        buffer: *mut ::std::os::raw::c_char,
3912        buflen: usize,
3913    ) -> ::std::os::raw::c_int;
3914}
3915unsafe extern "C" {
3916    pub fn putenv(arg1: *mut ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3917}
3918unsafe extern "C" {
3919    pub fn random() -> ::std::os::raw::c_long;
3920}
3921unsafe extern "C" {
3922    pub fn rand_r(arg1: *mut ::std::os::raw::c_uint) -> ::std::os::raw::c_int;
3923}
3924unsafe extern "C" {
3925    #[link_name = "\u{1}_realpath$DARWIN_EXTSN"]
3926    pub fn realpath(
3927        arg1: *const ::std::os::raw::c_char,
3928        arg2: *mut ::std::os::raw::c_char,
3929    ) -> *mut ::std::os::raw::c_char;
3930}
3931unsafe extern "C" {
3932    pub fn seed48(arg1: *mut ::std::os::raw::c_ushort) -> *mut ::std::os::raw::c_ushort;
3933}
3934unsafe extern "C" {
3935    pub fn setenv(
3936        __name: *const ::std::os::raw::c_char,
3937        __value: *const ::std::os::raw::c_char,
3938        __overwrite: ::std::os::raw::c_int,
3939    ) -> ::std::os::raw::c_int;
3940}
3941unsafe extern "C" {
3942    pub fn setkey(arg1: *const ::std::os::raw::c_char);
3943}
3944unsafe extern "C" {
3945    pub fn setstate(arg1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
3946}
3947unsafe extern "C" {
3948    pub fn srand48(arg1: ::std::os::raw::c_long);
3949}
3950unsafe extern "C" {
3951    pub fn srandom(arg1: ::std::os::raw::c_uint);
3952}
3953unsafe extern "C" {
3954    pub fn unlockpt(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
3955}
3956unsafe extern "C" {
3957    pub fn unsetenv(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
3958}
3959pub type dev_t = __darwin_dev_t;
3960pub type mode_t = __darwin_mode_t;
3961unsafe extern "C" {
3962    pub fn arc4random() -> u32;
3963}
3964unsafe extern "C" {
3965    pub fn arc4random_addrandom(
3966        arg1: *mut ::std::os::raw::c_uchar,
3967        __datlen: ::std::os::raw::c_int,
3968    );
3969}
3970unsafe extern "C" {
3971    pub fn arc4random_buf(__buf: *mut ::std::os::raw::c_void, __nbytes: usize);
3972}
3973unsafe extern "C" {
3974    pub fn arc4random_stir();
3975}
3976unsafe extern "C" {
3977    pub fn arc4random_uniform(__upper_bound: u32) -> u32;
3978}
3979unsafe extern "C" {
3980    pub fn atexit_b(arg1: *mut ::std::os::raw::c_void) -> ::std::os::raw::c_int;
3981}
3982unsafe extern "C" {
3983    pub fn bsearch_b(
3984        __key: *const ::std::os::raw::c_void,
3985        __base: *const ::std::os::raw::c_void,
3986        __nel: usize,
3987        __width: usize,
3988        __compar: *mut ::std::os::raw::c_void,
3989    ) -> *mut ::std::os::raw::c_void;
3990}
3991unsafe extern "C" {
3992    pub fn cgetcap(
3993        arg1: *mut ::std::os::raw::c_char,
3994        arg2: *const ::std::os::raw::c_char,
3995        arg3: ::std::os::raw::c_int,
3996    ) -> *mut ::std::os::raw::c_char;
3997}
3998unsafe extern "C" {
3999    pub fn cgetclose() -> ::std::os::raw::c_int;
4000}
4001unsafe extern "C" {
4002    pub fn cgetent(
4003        arg1: *mut *mut ::std::os::raw::c_char,
4004        arg2: *mut *mut ::std::os::raw::c_char,
4005        arg3: *const ::std::os::raw::c_char,
4006    ) -> ::std::os::raw::c_int;
4007}
4008unsafe extern "C" {
4009    pub fn cgetfirst(
4010        arg1: *mut *mut ::std::os::raw::c_char,
4011        arg2: *mut *mut ::std::os::raw::c_char,
4012    ) -> ::std::os::raw::c_int;
4013}
4014unsafe extern "C" {
4015    pub fn cgetmatch(
4016        arg1: *const ::std::os::raw::c_char,
4017        arg2: *const ::std::os::raw::c_char,
4018    ) -> ::std::os::raw::c_int;
4019}
4020unsafe extern "C" {
4021    pub fn cgetnext(
4022        arg1: *mut *mut ::std::os::raw::c_char,
4023        arg2: *mut *mut ::std::os::raw::c_char,
4024    ) -> ::std::os::raw::c_int;
4025}
4026unsafe extern "C" {
4027    pub fn cgetnum(
4028        arg1: *mut ::std::os::raw::c_char,
4029        arg2: *const ::std::os::raw::c_char,
4030        arg3: *mut ::std::os::raw::c_long,
4031    ) -> ::std::os::raw::c_int;
4032}
4033unsafe extern "C" {
4034    pub fn cgetset(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4035}
4036unsafe extern "C" {
4037    pub fn cgetstr(
4038        arg1: *mut ::std::os::raw::c_char,
4039        arg2: *const ::std::os::raw::c_char,
4040        arg3: *mut *mut ::std::os::raw::c_char,
4041    ) -> ::std::os::raw::c_int;
4042}
4043unsafe extern "C" {
4044    pub fn cgetustr(
4045        arg1: *mut ::std::os::raw::c_char,
4046        arg2: *const ::std::os::raw::c_char,
4047        arg3: *mut *mut ::std::os::raw::c_char,
4048    ) -> ::std::os::raw::c_int;
4049}
4050unsafe extern "C" {
4051    pub fn daemon(
4052        arg1: ::std::os::raw::c_int,
4053        arg2: ::std::os::raw::c_int,
4054    ) -> ::std::os::raw::c_int;
4055}
4056unsafe extern "C" {
4057    pub fn devname(arg1: dev_t, arg2: mode_t) -> *mut ::std::os::raw::c_char;
4058}
4059unsafe extern "C" {
4060    pub fn devname_r(
4061        arg1: dev_t,
4062        arg2: mode_t,
4063        buf: *mut ::std::os::raw::c_char,
4064        len: ::std::os::raw::c_int,
4065    ) -> *mut ::std::os::raw::c_char;
4066}
4067unsafe extern "C" {
4068    pub fn getbsize(
4069        arg1: *mut ::std::os::raw::c_int,
4070        arg2: *mut ::std::os::raw::c_long,
4071    ) -> *mut ::std::os::raw::c_char;
4072}
4073unsafe extern "C" {
4074    pub fn getloadavg(arg1: *mut f64, __nelem: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4075}
4076unsafe extern "C" {
4077    pub fn getprogname() -> *const ::std::os::raw::c_char;
4078}
4079unsafe extern "C" {
4080    pub fn setprogname(arg1: *const ::std::os::raw::c_char);
4081}
4082unsafe extern "C" {
4083    pub fn heapsort(
4084        __base: *mut ::std::os::raw::c_void,
4085        __nel: usize,
4086        __width: usize,
4087        __compar: ::std::option::Option<
4088            unsafe extern "C" fn(
4089                arg1: *const ::std::os::raw::c_void,
4090                arg2: *const ::std::os::raw::c_void,
4091            ) -> ::std::os::raw::c_int,
4092        >,
4093    ) -> ::std::os::raw::c_int;
4094}
4095unsafe extern "C" {
4096    pub fn heapsort_b(
4097        __base: *mut ::std::os::raw::c_void,
4098        __nel: usize,
4099        __width: usize,
4100        __compar: *mut ::std::os::raw::c_void,
4101    ) -> ::std::os::raw::c_int;
4102}
4103unsafe extern "C" {
4104    pub fn mergesort(
4105        __base: *mut ::std::os::raw::c_void,
4106        __nel: usize,
4107        __width: usize,
4108        __compar: ::std::option::Option<
4109            unsafe extern "C" fn(
4110                arg1: *const ::std::os::raw::c_void,
4111                arg2: *const ::std::os::raw::c_void,
4112            ) -> ::std::os::raw::c_int,
4113        >,
4114    ) -> ::std::os::raw::c_int;
4115}
4116unsafe extern "C" {
4117    pub fn mergesort_b(
4118        __base: *mut ::std::os::raw::c_void,
4119        __nel: usize,
4120        __width: usize,
4121        __compar: *mut ::std::os::raw::c_void,
4122    ) -> ::std::os::raw::c_int;
4123}
4124unsafe extern "C" {
4125    pub fn psort(
4126        __base: *mut ::std::os::raw::c_void,
4127        __nel: usize,
4128        __width: usize,
4129        __compar: ::std::option::Option<
4130            unsafe extern "C" fn(
4131                arg1: *const ::std::os::raw::c_void,
4132                arg2: *const ::std::os::raw::c_void,
4133            ) -> ::std::os::raw::c_int,
4134        >,
4135    );
4136}
4137unsafe extern "C" {
4138    pub fn psort_b(
4139        __base: *mut ::std::os::raw::c_void,
4140        __nel: usize,
4141        __width: usize,
4142        __compar: *mut ::std::os::raw::c_void,
4143    );
4144}
4145unsafe extern "C" {
4146    pub fn psort_r(
4147        __base: *mut ::std::os::raw::c_void,
4148        __nel: usize,
4149        __width: usize,
4150        arg1: *mut ::std::os::raw::c_void,
4151        __compar: ::std::option::Option<
4152            unsafe extern "C" fn(
4153                arg1: *mut ::std::os::raw::c_void,
4154                arg2: *const ::std::os::raw::c_void,
4155                arg3: *const ::std::os::raw::c_void,
4156            ) -> ::std::os::raw::c_int,
4157        >,
4158    );
4159}
4160unsafe extern "C" {
4161    pub fn qsort_b(
4162        __base: *mut ::std::os::raw::c_void,
4163        __nel: usize,
4164        __width: usize,
4165        __compar: *mut ::std::os::raw::c_void,
4166    );
4167}
4168unsafe extern "C" {
4169    pub fn qsort_r(
4170        __base: *mut ::std::os::raw::c_void,
4171        __nel: usize,
4172        __width: usize,
4173        arg1: *mut ::std::os::raw::c_void,
4174        __compar: ::std::option::Option<
4175            unsafe extern "C" fn(
4176                arg1: *mut ::std::os::raw::c_void,
4177                arg2: *const ::std::os::raw::c_void,
4178                arg3: *const ::std::os::raw::c_void,
4179            ) -> ::std::os::raw::c_int,
4180        >,
4181    );
4182}
4183unsafe extern "C" {
4184    pub fn radixsort(
4185        __base: *mut *const ::std::os::raw::c_uchar,
4186        __nel: ::std::os::raw::c_int,
4187        __table: *const ::std::os::raw::c_uchar,
4188        __endbyte: ::std::os::raw::c_uint,
4189    ) -> ::std::os::raw::c_int;
4190}
4191unsafe extern "C" {
4192    pub fn rpmatch(arg1: *const ::std::os::raw::c_char) -> ::std::os::raw::c_int;
4193}
4194unsafe extern "C" {
4195    pub fn sradixsort(
4196        __base: *mut *const ::std::os::raw::c_uchar,
4197        __nel: ::std::os::raw::c_int,
4198        __table: *const ::std::os::raw::c_uchar,
4199        __endbyte: ::std::os::raw::c_uint,
4200    ) -> ::std::os::raw::c_int;
4201}
4202unsafe extern "C" {
4203    pub fn sranddev();
4204}
4205unsafe extern "C" {
4206    pub fn srandomdev();
4207}
4208unsafe extern "C" {
4209    pub fn strtonum(
4210        __numstr: *const ::std::os::raw::c_char,
4211        __minval: ::std::os::raw::c_longlong,
4212        __maxval: ::std::os::raw::c_longlong,
4213        __errstrp: *mut *const ::std::os::raw::c_char,
4214    ) -> ::std::os::raw::c_longlong;
4215}
4216unsafe extern "C" {
4217    pub fn strtoq(
4218        __str: *const ::std::os::raw::c_char,
4219        __endptr: *mut *mut ::std::os::raw::c_char,
4220        __base: ::std::os::raw::c_int,
4221    ) -> ::std::os::raw::c_longlong;
4222}
4223unsafe extern "C" {
4224    pub fn strtouq(
4225        __str: *const ::std::os::raw::c_char,
4226        __endptr: *mut *mut ::std::os::raw::c_char,
4227        __base: ::std::os::raw::c_int,
4228    ) -> ::std::os::raw::c_ulonglong;
4229}
4230unsafe extern "C" {
4231    pub static mut suboptarg: *mut ::std::os::raw::c_char;
4232}
4233unsafe extern "C" {
4234    pub fn memchr(
4235        __s: *const ::std::os::raw::c_void,
4236        __c: ::std::os::raw::c_int,
4237        __n: ::std::os::raw::c_ulong,
4238    ) -> *mut ::std::os::raw::c_void;
4239}
4240unsafe extern "C" {
4241    pub fn memcmp(
4242        __s1: *const ::std::os::raw::c_void,
4243        __s2: *const ::std::os::raw::c_void,
4244        __n: ::std::os::raw::c_ulong,
4245    ) -> ::std::os::raw::c_int;
4246}
4247unsafe extern "C" {
4248    pub fn memcpy(
4249        __dst: *mut ::std::os::raw::c_void,
4250        __src: *const ::std::os::raw::c_void,
4251        __n: ::std::os::raw::c_ulong,
4252    ) -> *mut ::std::os::raw::c_void;
4253}
4254unsafe extern "C" {
4255    pub fn memmove(
4256        __dst: *mut ::std::os::raw::c_void,
4257        __src: *const ::std::os::raw::c_void,
4258        __len: ::std::os::raw::c_ulong,
4259    ) -> *mut ::std::os::raw::c_void;
4260}
4261unsafe extern "C" {
4262    pub fn memset(
4263        __b: *mut ::std::os::raw::c_void,
4264        __c: ::std::os::raw::c_int,
4265        __len: ::std::os::raw::c_ulong,
4266    ) -> *mut ::std::os::raw::c_void;
4267}
4268unsafe extern "C" {
4269    pub fn strcat(
4270        __s1: *mut ::std::os::raw::c_char,
4271        __s2: *const ::std::os::raw::c_char,
4272    ) -> *mut ::std::os::raw::c_char;
4273}
4274unsafe extern "C" {
4275    pub fn strchr(
4276        __s: *const ::std::os::raw::c_char,
4277        __c: ::std::os::raw::c_int,
4278    ) -> *mut ::std::os::raw::c_char;
4279}
4280unsafe extern "C" {
4281    pub fn strcmp(
4282        __s1: *const ::std::os::raw::c_char,
4283        __s2: *const ::std::os::raw::c_char,
4284    ) -> ::std::os::raw::c_int;
4285}
4286unsafe extern "C" {
4287    pub fn strcoll(
4288        __s1: *const ::std::os::raw::c_char,
4289        __s2: *const ::std::os::raw::c_char,
4290    ) -> ::std::os::raw::c_int;
4291}
4292unsafe extern "C" {
4293    pub fn strcpy(
4294        __dst: *mut ::std::os::raw::c_char,
4295        __src: *const ::std::os::raw::c_char,
4296    ) -> *mut ::std::os::raw::c_char;
4297}
4298unsafe extern "C" {
4299    pub fn strcspn(
4300        __s: *const ::std::os::raw::c_char,
4301        __charset: *const ::std::os::raw::c_char,
4302    ) -> ::std::os::raw::c_ulong;
4303}
4304unsafe extern "C" {
4305    pub fn strerror(__errnum: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4306}
4307unsafe extern "C" {
4308    pub fn strlen(__s: *const ::std::os::raw::c_char) -> ::std::os::raw::c_ulong;
4309}
4310unsafe extern "C" {
4311    pub fn strncat(
4312        __s1: *mut ::std::os::raw::c_char,
4313        __s2: *const ::std::os::raw::c_char,
4314        __n: ::std::os::raw::c_ulong,
4315    ) -> *mut ::std::os::raw::c_char;
4316}
4317unsafe extern "C" {
4318    pub fn strncmp(
4319        __s1: *const ::std::os::raw::c_char,
4320        __s2: *const ::std::os::raw::c_char,
4321        __n: ::std::os::raw::c_ulong,
4322    ) -> ::std::os::raw::c_int;
4323}
4324unsafe extern "C" {
4325    pub fn strncpy(
4326        __dst: *mut ::std::os::raw::c_char,
4327        __src: *const ::std::os::raw::c_char,
4328        __n: ::std::os::raw::c_ulong,
4329    ) -> *mut ::std::os::raw::c_char;
4330}
4331unsafe extern "C" {
4332    pub fn strpbrk(
4333        __s: *const ::std::os::raw::c_char,
4334        __charset: *const ::std::os::raw::c_char,
4335    ) -> *mut ::std::os::raw::c_char;
4336}
4337unsafe extern "C" {
4338    pub fn strrchr(
4339        __s: *const ::std::os::raw::c_char,
4340        __c: ::std::os::raw::c_int,
4341    ) -> *mut ::std::os::raw::c_char;
4342}
4343unsafe extern "C" {
4344    pub fn strspn(
4345        __s: *const ::std::os::raw::c_char,
4346        __charset: *const ::std::os::raw::c_char,
4347    ) -> ::std::os::raw::c_ulong;
4348}
4349unsafe extern "C" {
4350    pub fn strstr(
4351        __big: *const ::std::os::raw::c_char,
4352        __little: *const ::std::os::raw::c_char,
4353    ) -> *mut ::std::os::raw::c_char;
4354}
4355unsafe extern "C" {
4356    pub fn strtok(
4357        __str: *mut ::std::os::raw::c_char,
4358        __sep: *const ::std::os::raw::c_char,
4359    ) -> *mut ::std::os::raw::c_char;
4360}
4361unsafe extern "C" {
4362    pub fn strxfrm(
4363        __s1: *mut ::std::os::raw::c_char,
4364        __s2: *const ::std::os::raw::c_char,
4365        __n: ::std::os::raw::c_ulong,
4366    ) -> ::std::os::raw::c_ulong;
4367}
4368unsafe extern "C" {
4369    pub fn strtok_r(
4370        __str: *mut ::std::os::raw::c_char,
4371        __sep: *const ::std::os::raw::c_char,
4372        __lasts: *mut *mut ::std::os::raw::c_char,
4373    ) -> *mut ::std::os::raw::c_char;
4374}
4375unsafe extern "C" {
4376    pub fn strerror_r(
4377        __errnum: ::std::os::raw::c_int,
4378        __strerrbuf: *mut ::std::os::raw::c_char,
4379        __buflen: usize,
4380    ) -> ::std::os::raw::c_int;
4381}
4382unsafe extern "C" {
4383    pub fn strdup(__s1: *const ::std::os::raw::c_char) -> *mut ::std::os::raw::c_char;
4384}
4385unsafe extern "C" {
4386    pub fn memccpy(
4387        __dst: *mut ::std::os::raw::c_void,
4388        __src: *const ::std::os::raw::c_void,
4389        __c: ::std::os::raw::c_int,
4390        __n: ::std::os::raw::c_ulong,
4391    ) -> *mut ::std::os::raw::c_void;
4392}
4393unsafe extern "C" {
4394    pub fn stpcpy(
4395        __dst: *mut ::std::os::raw::c_char,
4396        __src: *const ::std::os::raw::c_char,
4397    ) -> *mut ::std::os::raw::c_char;
4398}
4399unsafe extern "C" {
4400    pub fn stpncpy(
4401        __dst: *mut ::std::os::raw::c_char,
4402        __src: *const ::std::os::raw::c_char,
4403        __n: ::std::os::raw::c_ulong,
4404    ) -> *mut ::std::os::raw::c_char;
4405}
4406unsafe extern "C" {
4407    pub fn strndup(
4408        __s1: *const ::std::os::raw::c_char,
4409        __n: ::std::os::raw::c_ulong,
4410    ) -> *mut ::std::os::raw::c_char;
4411}
4412unsafe extern "C" {
4413    pub fn strnlen(__s1: *const ::std::os::raw::c_char, __n: usize) -> usize;
4414}
4415unsafe extern "C" {
4416    pub fn strsignal(__sig: ::std::os::raw::c_int) -> *mut ::std::os::raw::c_char;
4417}
4418pub type rsize_t = __darwin_size_t;
4419pub type errno_t = ::std::os::raw::c_int;
4420unsafe extern "C" {
4421    pub fn memset_s(
4422        __s: *mut ::std::os::raw::c_void,
4423        __smax: rsize_t,
4424        __c: ::std::os::raw::c_int,
4425        __n: rsize_t,
4426    ) -> errno_t;
4427}
4428unsafe extern "C" {
4429    pub fn memmem(
4430        __big: *const ::std::os::raw::c_void,
4431        __big_len: usize,
4432        __little: *const ::std::os::raw::c_void,
4433        __little_len: usize,
4434    ) -> *mut ::std::os::raw::c_void;
4435}
4436unsafe extern "C" {
4437    pub fn memset_pattern4(
4438        __b: *mut ::std::os::raw::c_void,
4439        __pattern4: *const ::std::os::raw::c_void,
4440        __len: usize,
4441    );
4442}
4443unsafe extern "C" {
4444    pub fn memset_pattern8(
4445        __b: *mut ::std::os::raw::c_void,
4446        __pattern8: *const ::std::os::raw::c_void,
4447        __len: usize,
4448    );
4449}
4450unsafe extern "C" {
4451    pub fn memset_pattern16(
4452        __b: *mut ::std::os::raw::c_void,
4453        __pattern16: *const ::std::os::raw::c_void,
4454        __len: usize,
4455    );
4456}
4457unsafe extern "C" {
4458    pub fn strcasestr(
4459        __big: *const ::std::os::raw::c_char,
4460        __little: *const ::std::os::raw::c_char,
4461    ) -> *mut ::std::os::raw::c_char;
4462}
4463unsafe extern "C" {
4464    pub fn strchrnul(
4465        __s: *const ::std::os::raw::c_char,
4466        __c: ::std::os::raw::c_int,
4467    ) -> *mut ::std::os::raw::c_char;
4468}
4469unsafe extern "C" {
4470    pub fn strnstr(
4471        __big: *const ::std::os::raw::c_char,
4472        __little: *const ::std::os::raw::c_char,
4473        __len: usize,
4474    ) -> *mut ::std::os::raw::c_char;
4475}
4476unsafe extern "C" {
4477    pub fn strlcat(
4478        __dst: *mut ::std::os::raw::c_char,
4479        __source: *const ::std::os::raw::c_char,
4480        __size: ::std::os::raw::c_ulong,
4481    ) -> ::std::os::raw::c_ulong;
4482}
4483unsafe extern "C" {
4484    pub fn strlcpy(
4485        __dst: *mut ::std::os::raw::c_char,
4486        __source: *const ::std::os::raw::c_char,
4487        __size: ::std::os::raw::c_ulong,
4488    ) -> ::std::os::raw::c_ulong;
4489}
4490unsafe extern "C" {
4491    pub fn strmode(__mode: ::std::os::raw::c_int, __bp: *mut ::std::os::raw::c_char);
4492}
4493unsafe extern "C" {
4494    pub fn strsep(
4495        __stringp: *mut *mut ::std::os::raw::c_char,
4496        __delim: *const ::std::os::raw::c_char,
4497    ) -> *mut ::std::os::raw::c_char;
4498}
4499unsafe extern "C" {
4500    pub fn swab(
4501        arg1: *const ::std::os::raw::c_void,
4502        arg2: *mut ::std::os::raw::c_void,
4503        __len: isize,
4504    );
4505}
4506unsafe extern "C" {
4507    pub fn timingsafe_bcmp(
4508        __b1: *const ::std::os::raw::c_void,
4509        __b2: *const ::std::os::raw::c_void,
4510        __len: usize,
4511    ) -> ::std::os::raw::c_int;
4512}
4513unsafe extern "C" {
4514    pub fn strsignal_r(
4515        __sig: ::std::os::raw::c_int,
4516        __strsignalbuf: *mut ::std::os::raw::c_char,
4517        __buflen: usize,
4518    ) -> ::std::os::raw::c_int;
4519}
4520unsafe extern "C" {
4521    pub fn bcmp(
4522        arg1: *const ::std::os::raw::c_void,
4523        arg2: *const ::std::os::raw::c_void,
4524        __n: ::std::os::raw::c_ulong,
4525    ) -> ::std::os::raw::c_int;
4526}
4527unsafe extern "C" {
4528    pub fn bcopy(
4529        arg1: *const ::std::os::raw::c_void,
4530        arg2: *mut ::std::os::raw::c_void,
4531        __n: ::std::os::raw::c_ulong,
4532    );
4533}
4534unsafe extern "C" {
4535    pub fn bzero(arg1: *mut ::std::os::raw::c_void, __n: ::std::os::raw::c_ulong);
4536}
4537unsafe extern "C" {
4538    pub fn index(
4539        arg1: *const ::std::os::raw::c_char,
4540        arg2: ::std::os::raw::c_int,
4541    ) -> *mut ::std::os::raw::c_char;
4542}
4543unsafe extern "C" {
4544    pub fn rindex(
4545        arg1: *const ::std::os::raw::c_char,
4546        arg2: ::std::os::raw::c_int,
4547    ) -> *mut ::std::os::raw::c_char;
4548}
4549unsafe extern "C" {
4550    pub fn ffs(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4551}
4552unsafe extern "C" {
4553    pub fn strcasecmp(
4554        arg1: *const ::std::os::raw::c_char,
4555        arg2: *const ::std::os::raw::c_char,
4556    ) -> ::std::os::raw::c_int;
4557}
4558unsafe extern "C" {
4559    pub fn strncasecmp(
4560        arg1: *const ::std::os::raw::c_char,
4561        arg2: *const ::std::os::raw::c_char,
4562        arg3: ::std::os::raw::c_ulong,
4563    ) -> ::std::os::raw::c_int;
4564}
4565unsafe extern "C" {
4566    pub fn ffsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
4567}
4568unsafe extern "C" {
4569    pub fn ffsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
4570}
4571unsafe extern "C" {
4572    pub fn fls(arg1: ::std::os::raw::c_int) -> ::std::os::raw::c_int;
4573}
4574unsafe extern "C" {
4575    pub fn flsl(arg1: ::std::os::raw::c_long) -> ::std::os::raw::c_int;
4576}
4577unsafe extern "C" {
4578    pub fn flsll(arg1: ::std::os::raw::c_longlong) -> ::std::os::raw::c_int;
4579}
4580#[doc = "HAL_TIME Time related functions\n\n # "]
4581pub type nsSinceEpoch = u64;
4582pub type msSinceEpoch = u64;
4583unsafe extern "C" {
4584    #[doc = "Get the system time in milliseconds.\n\n The time value returned as 64-bit unsigned integer should represent the milliseconds\n since the UNIX epoch (1970/01/01 00:00 UTC).\n\n # Returns\n\nthe system time with millisecond resolution."]
4585    pub fn Hal_getTimeInMs() -> msSinceEpoch;
4586}
4587unsafe extern "C" {
4588    #[doc = "Get the system time in nanoseconds.\n\n The time value returned as 64-bit unsigned integer should represent the nanoseconds\n since the UNIX epoch (1970/01/01 00:00 UTC).\n\n # Returns\n\nthe system time with nanosecond resolution."]
4589    pub fn Hal_getTimeInNs() -> nsSinceEpoch;
4590}
4591unsafe extern "C" {
4592    #[doc = "Set the system time from ns time\n\n The time value returned as 64-bit unsigned integer should represent the nanoseconds\n since the UNIX epoch (1970/01/01 00:00 UTC).\n\n # Returns\n\ntrue on success, otherwise false"]
4593    pub fn Hal_setTimeInNs(nsTime: nsSinceEpoch) -> bool;
4594}
4595unsafe extern "C" {
4596    #[doc = "Get the monotonic time or system tick time in ms\n\n # Returns\n\nthe system time with millisecond resolution."]
4597    pub fn Hal_getMonotonicTimeInMs() -> msSinceEpoch;
4598}
4599unsafe extern "C" {
4600    #[doc = "Get the monotonic time or system tick in nanoseconds.\n\n # Returns\n\nthe system time with nanosecond resolution."]
4601    pub fn Hal_getMonotonicTimeInNs() -> nsSinceEpoch;
4602}
4603#[repr(C)]
4604#[derive(Debug, Copy, Clone)]
4605pub struct sThread {
4606    _unused: [u8; 0],
4607}
4608#[doc = "Opaque reference of a Thread instance"]
4609pub type Thread = *mut sThread;
4610#[doc = "Qpaque reference of a Semaphore instance"]
4611pub type Semaphore = *mut ::std::os::raw::c_void;
4612#[doc = "Reference to a function that is called when starting the thread"]
4613pub type ThreadExecutionFunction = ::std::option::Option<
4614    unsafe extern "C" fn(arg1: *mut ::std::os::raw::c_void) -> *mut ::std::os::raw::c_void,
4615>;
4616unsafe extern "C" {
4617    #[doc = "Create a new Thread instance\n\n # Arguments\n\n* `function` - the entry point of the thread\n * `parameter` - a parameter that is passed to the threads start function\n * `autodestroy` - the thread is automatically destroyed if the ThreadExecutionFunction has finished.\n\n # Returns\n\nthe newly created Thread instance"]
4618    pub fn Thread_create(
4619        function: ThreadExecutionFunction,
4620        parameter: *mut ::std::os::raw::c_void,
4621        autodestroy: bool,
4622    ) -> Thread;
4623}
4624unsafe extern "C" {
4625    #[doc = "Start a Thread.\n\n This function invokes the start function of the thread. The thread terminates when\n the start function returns.\n\n # Arguments\n\n* `thread` - the Thread instance to start"]
4626    pub fn Thread_start(thread: Thread);
4627}
4628unsafe extern "C" {
4629    #[doc = "Destroy a Thread and free all related resources.\n\n # Arguments\n\n* `thread` - the Thread instance to destroy"]
4630    pub fn Thread_destroy(thread: Thread);
4631}
4632unsafe extern "C" {
4633    #[doc = "Suspend execution of the Thread for the specified number of milliseconds"]
4634    pub fn Thread_sleep(millies: ::std::os::raw::c_int);
4635}
4636unsafe extern "C" {
4637    pub fn Semaphore_create(initialValue: ::std::os::raw::c_int) -> Semaphore;
4638}
4639unsafe extern "C" {
4640    #[doc = "Wait until semaphore value is greater than zero. Then decrease the semaphore value."]
4641    pub fn Semaphore_wait(self_: Semaphore);
4642}
4643unsafe extern "C" {
4644    pub fn Semaphore_post(self_: Semaphore);
4645}
4646unsafe extern "C" {
4647    pub fn Semaphore_destroy(self_: Semaphore);
4648}
4649#[repr(C)]
4650#[derive(Debug, Copy, Clone)]
4651pub struct sServerSocket {
4652    _unused: [u8; 0],
4653}
4654#[doc = "Opaque reference for a server socket instance"]
4655pub type ServerSocket = *mut sServerSocket;
4656#[repr(C)]
4657#[derive(Debug, Copy, Clone)]
4658pub struct sUdpSocket {
4659    _unused: [u8; 0],
4660}
4661pub type UdpSocket = *mut sUdpSocket;
4662#[repr(C)]
4663#[derive(Debug, Copy, Clone)]
4664pub struct sSocket {
4665    _unused: [u8; 0],
4666}
4667#[doc = "Opaque reference for a client or connection socket instance"]
4668pub type Socket = *mut sSocket;
4669#[repr(C)]
4670#[derive(Debug, Copy, Clone)]
4671pub struct sHandleSet {
4672    _unused: [u8; 0],
4673}
4674#[doc = "Opaque reference for a set of server and socket handles"]
4675pub type HandleSet = *mut sHandleSet;
4676pub const SocketState_SOCKET_STATE_CONNECTING: SocketState = 0;
4677pub const SocketState_SOCKET_STATE_FAILED: SocketState = 1;
4678pub const SocketState_SOCKET_STATE_CONNECTED: SocketState = 2;
4679#[doc = "State of an asynchronous connect"]
4680pub type SocketState = ::std::os::raw::c_uint;
4681unsafe extern "C" {
4682    #[doc = "Create a new connection handle set (HandleSet)\n\n # Returns\n\nnew HandleSet instance"]
4683    pub fn Handleset_new() -> HandleSet;
4684}
4685unsafe extern "C" {
4686    #[doc = "Reset the handle set for reuse"]
4687    pub fn Handleset_reset(self_: HandleSet);
4688}
4689unsafe extern "C" {
4690    #[doc = "add a socket to an existing handle set\n\n # Arguments\n\n* `self` - the HandleSet instance\n * `sock` - the socket to add"]
4691    pub fn Handleset_addSocket(self_: HandleSet, sock: Socket);
4692}
4693unsafe extern "C" {
4694    #[doc = "remove a socket from an existing handle set"]
4695    pub fn Handleset_removeSocket(self_: HandleSet, sock: Socket);
4696}
4697unsafe extern "C" {
4698    #[doc = "wait for a socket to become ready\n\n This function is corresponding to the BSD socket select function.\n It returns the number of sockets on which data is pending or 0 if no data is pending\n on any of the monitored connections. The function will return after \"timeout\" ms if no\n data is pending.\n The function shall return -1 if a socket error occures.\n\n # Arguments\n\n* `self` - the HandleSet instance\n * `timeout` - in milliseconds (ms)\n # Returns\n\nIt returns the number of sockets on which data is pending\n or 0 if no data is pending on any of the monitored connections.\n The function shall return -1 if a socket error occures."]
4699    pub fn Handleset_waitReady(
4700        self_: HandleSet,
4701        timeoutMs: ::std::os::raw::c_uint,
4702    ) -> ::std::os::raw::c_int;
4703}
4704unsafe extern "C" {
4705    #[doc = "destroy the HandleSet instance\n\n # Arguments\n\n* `self` - the HandleSet instance to destroy"]
4706    pub fn Handleset_destroy(self_: HandleSet);
4707}
4708unsafe extern "C" {
4709    #[doc = "Create a new TcpServerSocket instance\n\n Implementation of this function is MANDATORY if server functionality is required.\n\n # Arguments\n\n* `address` - ip address or hostname to listen on\n * `port` - the TCP port to listen on\n\n # Returns\n\nthe newly create TcpServerSocket instance"]
4710    pub fn TcpServerSocket_create(
4711        address: *const ::std::os::raw::c_char,
4712        port: ::std::os::raw::c_int,
4713    ) -> ServerSocket;
4714}
4715unsafe extern "C" {
4716    #[doc = "Create an IPv4 UDP socket instance\n\n # Returns\n\nnew UDP socket instance"]
4717    pub fn UdpSocket_create() -> UdpSocket;
4718}
4719unsafe extern "C" {
4720    #[doc = "Create an IPv6 UDP socket instance\n\n # Returns\n\nnew UDP socket instance"]
4721    pub fn UdpSocket_createIpV6() -> UdpSocket;
4722}
4723unsafe extern "C" {
4724    #[doc = "Add the socket to an IPv4 or IPv6 multicast group\n\n # Arguments\n\n* `self` - UDP socket instance\n * `multicastAddress` - IPv4 or IPv6 multicast address\n\n # Returns\n\ntrue on success, false otherwise"]
4725    pub fn UdpSocket_addGroupMembership(
4726        self_: UdpSocket,
4727        multicastAddress: *const ::std::os::raw::c_char,
4728    ) -> bool;
4729}
4730unsafe extern "C" {
4731    #[doc = "Sets the multicast TTL (number of hops) for this UDP socket\n\n # Arguments\n\n* `self` - UDP socket instance\n * `ttl` - number of hops for multicast messages. Default is 1 (not routable!)\n\n # Returns\n\ntrue on success, false otherwise"]
4732    pub fn UdpSocket_setMulticastTtl(self_: UdpSocket, ttl: ::std::os::raw::c_int) -> bool;
4733}
4734unsafe extern "C" {
4735    pub fn UdpSocket_bind(
4736        self_: UdpSocket,
4737        address: *const ::std::os::raw::c_char,
4738        port: ::std::os::raw::c_int,
4739    ) -> bool;
4740}
4741unsafe extern "C" {
4742    pub fn UdpSocket_sendTo(
4743        self_: UdpSocket,
4744        address: *const ::std::os::raw::c_char,
4745        port: ::std::os::raw::c_int,
4746        msg: *mut u8,
4747        msgSize: ::std::os::raw::c_int,
4748    ) -> bool;
4749}
4750unsafe extern "C" {
4751    #[doc = "Receive data from UDP socket (store data and (optionally) the IP address of the sender\n\n # Arguments\n\n* `self` - UDP socket instance\n * `address` - (optional) buffer to store the IP address as string\n * `maxAddrSize` - (optional) size of the provided buffer to store the IP address\n * `msg` - buffer to store the UDP message data\n * `msgSize` - the maximum size of the message to receive\n\n # Returns\n\nnumber of received bytes or -1 in case of an error"]
4752    pub fn UdpSocket_receiveFrom(
4753        self_: UdpSocket,
4754        address: *mut ::std::os::raw::c_char,
4755        maxAddrSize: ::std::os::raw::c_int,
4756        msg: *mut u8,
4757        msgSize: ::std::os::raw::c_int,
4758    ) -> ::std::os::raw::c_int;
4759}
4760unsafe extern "C" {
4761    pub fn ServerSocket_listen(self_: ServerSocket);
4762}
4763unsafe extern "C" {
4764    #[doc = "accept a new incoming connection (non-blocking)\n\n This function shall accept a new incoming connection. It is non-blocking and has to\n return NULL if no new connection is pending.\n\n Implementation of this function is MANDATORY if server functionality is required.\n\n NOTE: The behaviour of this function changed with version 0.8!\n\n # Arguments\n\n* `self` - server socket instance\n\n # Returns\n\nhandle of the new connection socket or NULL if no new connection is available"]
4765    pub fn ServerSocket_accept(self_: ServerSocket) -> Socket;
4766}
4767unsafe extern "C" {
4768    #[doc = "active TCP keep alive for socket and set keep alive parameters\n\n NOTE: implementation is mandatory for IEC 61850 MMS\n\n # Arguments\n\n* `self` - server socket instance\n * `idleTime` - time (in s) between last received message and first keep alive message\n * `interval` - time (in s) between subsequent keep alive messages if no ACK received\n * `count` - number of not missing keep alive ACKs until socket is considered dead"]
4769    pub fn Socket_activateTcpKeepAlive(
4770        self_: Socket,
4771        idleTime: ::std::os::raw::c_int,
4772        interval: ::std::os::raw::c_int,
4773        count: ::std::os::raw::c_int,
4774    );
4775}
4776unsafe extern "C" {
4777    #[doc = "set the maximum number of pending connections in the queue\n\n Implementation of this function is OPTIONAL.\n\n # Arguments\n\n* `self` - the server socket instance\n * `backlog` - the number of pending connections in the queue\n"]
4778    pub fn ServerSocket_setBacklog(self_: ServerSocket, backlog: ::std::os::raw::c_int);
4779}
4780unsafe extern "C" {
4781    #[doc = "destroy a server socket instance\n\n Free all resources allocated by this server socket instance.\n\n Implementation of this function is MANDATORY if server functionality is required.\n\n # Arguments\n\n* `self` - server socket instance"]
4782    pub fn ServerSocket_destroy(self_: ServerSocket);
4783}
4784unsafe extern "C" {
4785    #[doc = "create a TCP client socket\n\n Implementation of this function is MANDATORY if client functionality is required.\n\n # Returns\n\na new client socket instance."]
4786    pub fn TcpSocket_create() -> Socket;
4787}
4788unsafe extern "C" {
4789    #[doc = "set the timeout to establish a new connection\n\n # Arguments\n\n* `self` - the client socket instance\n * `timeoutInMs` - the timeout in ms"]
4790    pub fn Socket_setConnectTimeout(self_: Socket, timeoutInMs: u32);
4791}
4792unsafe extern "C" {
4793    #[doc = "bind a socket to a particular IP address and port (for TcpSocket)\n\n NOTE: Don't use the socket when this functions returns false!\n\n # Arguments\n\n* `self` - the client socket instance\n * `srcAddress` - the local IP address or hostname as C string\n * `srcPort` - the local TCP port to use. When < 1 the OS will chose the TCP port to use.\n\n # Returns\n\ntrue in case of success, false otherwise"]
4794    pub fn Socket_bind(
4795        self_: Socket,
4796        srcAddress: *const ::std::os::raw::c_char,
4797        srcPort: ::std::os::raw::c_int,
4798    ) -> bool;
4799}
4800unsafe extern "C" {
4801    #[doc = "connect to a server\n\n Connect to a server application identified by the address and port parameter.\n\n The \"address\" parameter may either be a hostname or an IP address. The IP address\n has to be provided as a C string (e.g. \"10.0.2.1\").\n\n Implementation of this function is MANDATORY if client functionality is required.\n\n NOTE: return type changed from int to bool with version 0.8\n\n # Arguments\n\n* `self` - the client socket instance\n * `address` - the IP address or hostname as C string\n * `port` - the TCP port of the application to connect to\n\n # Returns\n\ntrue if the connection was established successfully, false otherwise"]
4802    pub fn Socket_connect(
4803        self_: Socket,
4804        address: *const ::std::os::raw::c_char,
4805        port: ::std::os::raw::c_int,
4806    ) -> bool;
4807}
4808unsafe extern "C" {
4809    pub fn Socket_connectAsync(
4810        self_: Socket,
4811        address: *const ::std::os::raw::c_char,
4812        port: ::std::os::raw::c_int,
4813    ) -> bool;
4814}
4815unsafe extern "C" {
4816    pub fn Socket_checkAsyncConnectState(self_: Socket) -> SocketState;
4817}
4818unsafe extern "C" {
4819    #[doc = "read from socket to local buffer (non-blocking)\n\n The function shall return immediately if no data is available. In this case\n the function returns 0. If an error happens the function shall return -1.\n\n Implementation of this function is MANDATORY\n\n NOTE: The behaviour of this function changed with version 0.8!\n\n # Arguments\n\n* `self` - the client, connection or server socket instance\n * `buf` - the buffer where the read bytes are copied to\n * `size` - the maximum number of bytes to read (size of the provided buffer)\n\n # Returns\n\nthe number of bytes read or -1 if an error occurred"]
4820    pub fn Socket_read(
4821        self_: Socket,
4822        buf: *mut u8,
4823        size: ::std::os::raw::c_int,
4824    ) -> ::std::os::raw::c_int;
4825}
4826unsafe extern "C" {
4827    #[doc = "send a message through the socket\n\n Implementation of this function is MANDATORY\n\n # Arguments\n\n* `self` - client, connection or server socket instance\n\n # Returns\n\nnumber of bytes transmitted of -1 in case of an error"]
4828    pub fn Socket_write(
4829        self_: Socket,
4830        buf: *mut u8,
4831        size: ::std::os::raw::c_int,
4832    ) -> ::std::os::raw::c_int;
4833}
4834unsafe extern "C" {
4835    pub fn Socket_getLocalAddress(self_: Socket) -> *mut ::std::os::raw::c_char;
4836}
4837unsafe extern "C" {
4838    #[doc = "Get the address of the peer application (IP address and port number)\n\n The peer address has to be returned as null terminated string\n\n Implementation of this function is MANDATORY (libiec61850)\n\n # Arguments\n\n* `self` - the client, connection or server socket instance\n\n # Returns\n\nthe IP address and port number as strings separated by the ':' character."]
4839    pub fn Socket_getPeerAddress(self_: Socket) -> *mut ::std::os::raw::c_char;
4840}
4841unsafe extern "C" {
4842    #[doc = "Get the address of the peer application (IP address and port number)\n\n The peer address has to be returned as null terminated string\n\n Implementation of this function is MANDATORY (lib60870 and libiec61850)\n\n # Arguments\n\n* `self` - the client, connection or server socket instance\n * `peerAddressString` - a string to store the peer address (the string should have space\n for at least 60 characters)\n\n # Returns\n\nthe IP address and port number as strings separated by the ':' character. If the\n address is an IPv6 address the IP part is encapsulated in square brackets."]
4843    pub fn Socket_getPeerAddressStatic(
4844        self_: Socket,
4845        peerAddressString: *mut ::std::os::raw::c_char,
4846    ) -> *mut ::std::os::raw::c_char;
4847}
4848unsafe extern "C" {
4849    #[doc = "destroy a socket (close the socket if a connection is established)\n\n This function shall close the connection (if one is established) and free all\n resources allocated by the socket.\n\n Implementation of this function is MANDATORY\n\n # Arguments\n\n* `self` - the client, connection or server socket instance"]
4850    pub fn Socket_destroy(self_: Socket);
4851}
4852#[repr(C)]
4853#[derive(Debug, Copy, Clone)]
4854pub struct sSerialPort {
4855    _unused: [u8; 0],
4856}
4857#[doc = "HAL_SERIAL Access to serial interfaces\n\n Serial interface abstraction layer. This functions have to be implemented to\n port lib60870 to new platforms when the serial link layers are required.\n\n # "]
4858pub type SerialPort = *mut sSerialPort;
4859pub const SerialPortError_SERIAL_PORT_ERROR_NONE: SerialPortError = 0;
4860pub const SerialPortError_SERIAL_PORT_ERROR_INVALID_ARGUMENT: SerialPortError = 1;
4861pub const SerialPortError_SERIAL_PORT_ERROR_INVALID_BAUDRATE: SerialPortError = 2;
4862pub const SerialPortError_SERIAL_PORT_ERROR_OPEN_FAILED: SerialPortError = 3;
4863pub const SerialPortError_SERIAL_PORT_ERROR_UNKNOWN: SerialPortError = 99;
4864pub type SerialPortError = ::std::os::raw::c_uint;
4865unsafe extern "C" {
4866    #[doc = "Create a new SerialPort instance\n\n # Arguments\n\n* `interfaceName` - identifier or name of the serial interface (e.g. \"/dev/ttyS1\" or \"COM4\")\n * `baudRate` - the baud rate in baud (e.g. 9600)\n * `dataBits` - the number of data bits (usually 8)\n * `parity` - defines what kind of parity to use ('E' - even parity, 'O' - odd parity, 'N' - no parity)\n * `stopBits` - the number of stop buts (usually 1)\n\n # Returns\n\nthe new SerialPort instance"]
4867    pub fn SerialPort_create(
4868        interfaceName: *const ::std::os::raw::c_char,
4869        baudRate: ::std::os::raw::c_int,
4870        dataBits: u8,
4871        parity: ::std::os::raw::c_char,
4872        stopBits: u8,
4873    ) -> SerialPort;
4874}
4875unsafe extern "C" {
4876    #[doc = "Destroy the SerialPort instance and release all resources"]
4877    pub fn SerialPort_destroy(self_: SerialPort);
4878}
4879unsafe extern "C" {
4880    #[doc = "Open the serial interface\n\n # Returns\n\ntrue in case of success, false otherwise (use SerialPort_getLastError for a detailed error code)"]
4881    pub fn SerialPort_open(self_: SerialPort) -> bool;
4882}
4883unsafe extern "C" {
4884    #[doc = "Close (release) the serial interface"]
4885    pub fn SerialPort_close(self_: SerialPort);
4886}
4887unsafe extern "C" {
4888    #[doc = "Get the baudrate used by the serial interface\n\n # Returns\n\nthe baud rate in baud"]
4889    pub fn SerialPort_getBaudRate(self_: SerialPort) -> ::std::os::raw::c_int;
4890}
4891unsafe extern "C" {
4892    #[doc = "Set the timeout used for message reception\n\n # Arguments\n\n* `timeout` - the timeout value in ms."]
4893    pub fn SerialPort_setTimeout(self_: SerialPort, timeout: ::std::os::raw::c_int);
4894}
4895unsafe extern "C" {
4896    #[doc = "Discard all data in the input buffer of the serial interface"]
4897    pub fn SerialPort_discardInBuffer(self_: SerialPort);
4898}
4899unsafe extern "C" {
4900    #[doc = "Read a byte from the interface\n\n # Returns\n\nnumber of read bytes of -1 in case of an error"]
4901    pub fn SerialPort_readByte(self_: SerialPort) -> ::std::os::raw::c_int;
4902}
4903unsafe extern "C" {
4904    #[doc = "Write the number of bytes from the buffer to the serial interface\n\n # Arguments\n\n* `buffer` - the buffer containing the data to write\n * `startPos` - start position in the buffer of the data to write\n * `numberOfBytes` - number of bytes to write\n\n # Returns\n\nnumber of bytes written, or -1 in case of an error"]
4905    pub fn SerialPort_write(
4906        self_: SerialPort,
4907        buffer: *mut u8,
4908        startPos: ::std::os::raw::c_int,
4909        numberOfBytes: ::std::os::raw::c_int,
4910    ) -> ::std::os::raw::c_int;
4911}
4912unsafe extern "C" {
4913    #[doc = "Get the error code of the last operation"]
4914    pub fn SerialPort_getLastError(self_: SerialPort) -> SerialPortError;
4915}
4916#[repr(C)]
4917#[derive(Debug, Copy, Clone)]
4918pub struct sTLSConfiguration {
4919    _unused: [u8; 0],
4920}
4921#[doc = "TLS_CONFIG_API TLS configuration\n\n # "]
4922pub type TLSConfiguration = *mut sTLSConfiguration;
4923unsafe extern "C" {
4924    #[doc = "Create a new TLSConfiguration object to represent TLS configuration and certificates\n\n WARNING: Configuration cannot be changed after using for the first time.\n\n # Returns\n\nthe new TLS configuration"]
4925    pub fn TLSConfiguration_create() -> TLSConfiguration;
4926}
4927unsafe extern "C" {
4928    #[doc = "will be called by stack automatically when appropriate"]
4929    pub fn TLSConfiguration_setClientMode(self_: TLSConfiguration);
4930}
4931pub const TLSConfigVersion_TLS_VERSION_NOT_SELECTED: TLSConfigVersion = 0;
4932pub const TLSConfigVersion_TLS_VERSION_SSL_3_0: TLSConfigVersion = 3;
4933pub const TLSConfigVersion_TLS_VERSION_TLS_1_0: TLSConfigVersion = 4;
4934pub const TLSConfigVersion_TLS_VERSION_TLS_1_1: TLSConfigVersion = 5;
4935pub const TLSConfigVersion_TLS_VERSION_TLS_1_2: TLSConfigVersion = 6;
4936pub const TLSConfigVersion_TLS_VERSION_TLS_1_3: TLSConfigVersion = 7;
4937pub type TLSConfigVersion = ::std::os::raw::c_uint;
4938unsafe extern "C" {
4939    #[doc = "Convert TLS version number to string\n\n # Arguments\n\n* `version` - TLS version number\n\n # Returns\n\nthe TLS version as null terminated string"]
4940    pub fn TLSConfigVersion_toString(version: TLSConfigVersion) -> *const ::std::os::raw::c_char;
4941}
4942pub const TLSEventLevel_TLS_SEC_EVT_INFO: TLSEventLevel = 0;
4943pub const TLSEventLevel_TLS_SEC_EVT_WARNING: TLSEventLevel = 1;
4944pub const TLSEventLevel_TLS_SEC_EVT_INCIDENT: TLSEventLevel = 2;
4945pub type TLSEventLevel = ::std::os::raw::c_uint;
4946#[repr(C)]
4947#[derive(Debug, Copy, Clone)]
4948pub struct sTLSConnection {
4949    _unused: [u8; 0],
4950}
4951pub type TLSConnection = *mut sTLSConnection;
4952unsafe extern "C" {
4953    #[doc = "Get the peer address of the TLS connection\n\n # Arguments\n\n* `self` - the TLS connection instance\n * `peerAddrBuf` - user provided buffer that can hold at least 60 characters, or NULL to allow the function to allocate the memory for the buffer\n\n # Returns\n\npeer address:port as null terminated string"]
4954    pub fn TLSConnection_getPeerAddress(
4955        self_: TLSConnection,
4956        peerAddrBuf: *mut ::std::os::raw::c_char,
4957    ) -> *mut ::std::os::raw::c_char;
4958}
4959unsafe extern "C" {
4960    #[doc = "Get the TLS certificate used by the peer\n\n # Arguments\n\n* `self` - the TLS connection instance\n * `certSize[OUT]` - the certificate size in bytes\n\n # Returns\n\naddress of the certificate buffer"]
4961    pub fn TLSConnection_getPeerCertificate(
4962        self_: TLSConnection,
4963        certSize: *mut ::std::os::raw::c_int,
4964    ) -> *mut u8;
4965}
4966unsafe extern "C" {
4967    #[doc = "Get the TLS version used by the connection\n\n # Arguments\n\n* `self` - the TLS connection instance\n\n # Returns\n\nTLS version"]
4968    pub fn TLSConnection_getTLSVersion(self_: TLSConnection) -> TLSConfigVersion;
4969}
4970pub type TLSConfiguration_EventHandler = ::std::option::Option<
4971    unsafe extern "C" fn(
4972        parameter: *mut ::std::os::raw::c_void,
4973        eventLevel: TLSEventLevel,
4974        eventCode: ::std::os::raw::c_int,
4975        message: *const ::std::os::raw::c_char,
4976        con: TLSConnection,
4977    ),
4978>;
4979unsafe extern "C" {
4980    #[doc = "Set the security event handler\n\n # Arguments\n\n* `handler` - the security event callback handler\n * `parameter` - user provided parameter to be passed to the callback handler"]
4981    pub fn TLSConfiguration_setEventHandler(
4982        self_: TLSConfiguration,
4983        handler: TLSConfiguration_EventHandler,
4984        parameter: *mut ::std::os::raw::c_void,
4985    );
4986}
4987unsafe extern "C" {
4988    #[doc = "enable or disable TLS session resumption (default: enabled)\n\n NOTE: Depending on the used TLS version this is implemented by\n session IDs or by session tickets.\n\n # Arguments\n\n* `enable` - true to enable session resumption, false otherwise"]
4989    pub fn TLSConfiguration_enableSessionResumption(self_: TLSConfiguration, enable: bool);
4990}
4991unsafe extern "C" {
4992    #[doc = "Set the maximum life time of a cached TLS session for session resumption in seconds\n\n # Arguments\n\n* `intervalInSeconds` - the maximum lifetime of a cached TLS session"]
4993    pub fn TLSConfiguration_setSessionResumptionInterval(
4994        self_: TLSConfiguration,
4995        intervalInSeconds: ::std::os::raw::c_int,
4996    );
4997}
4998unsafe extern "C" {
4999    #[doc = "Enables the validation of the certificate trust chain (enabled by default)\n\n # Arguments\n\n* `value` - true to enable chain validation, false to disable"]
5000    pub fn TLSConfiguration_setChainValidation(self_: TLSConfiguration, value: bool);
5001}
5002unsafe extern "C" {
5003    #[doc = "Enabled or disables the verification of validity times for certificates and CRLs\n\n # Arguments\n\n* `value` - true to enable time validation, false to disable (enabled by default)"]
5004    pub fn TLSConfiguration_setTimeValidation(self_: TLSConfiguration, value: bool);
5005}
5006unsafe extern "C" {
5007    #[doc = "Set if only known certificates are accepted.\n\n If set to true only known certificates are accepted. Connections with unknown certificates\n are rejected even if they are signed by a trusted authority.\n\n # Arguments\n\n* `value` - true to enable setting, false otherwise"]
5008    pub fn TLSConfiguration_setAllowOnlyKnownCertificates(self_: TLSConfiguration, value: bool);
5009}
5010unsafe extern "C" {
5011    #[doc = "Set own certificate (identity) from a byte buffer\n\n # Arguments\n\n* `certificate` - the certificate buffer\n * `certLen` - the lenght of the certificate\n\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5012    pub fn TLSConfiguration_setOwnCertificate(
5013        self_: TLSConfiguration,
5014        certificate: *mut u8,
5015        certLen: ::std::os::raw::c_int,
5016    ) -> bool;
5017}
5018unsafe extern "C" {
5019    #[doc = "Set own certificate (identity) from a certificate file\n\n # Arguments\n\n* `filename` - of the certificate file\n\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5020    pub fn TLSConfiguration_setOwnCertificateFromFile(
5021        self_: TLSConfiguration,
5022        filename: *const ::std::os::raw::c_char,
5023    ) -> bool;
5024}
5025unsafe extern "C" {
5026    #[doc = "Set the own private key from a byte buffer\n\n # Arguments\n\n* `key` - the private key to use\n * `keyLen` - the length of the key\n * `password` - the password of the key or null if the key is not password protected\n\n # Returns\n\ntrue, when the key was set, false otherwise (e.g. unknown key format)"]
5027    pub fn TLSConfiguration_setOwnKey(
5028        self_: TLSConfiguration,
5029        key: *mut u8,
5030        keyLen: ::std::os::raw::c_int,
5031        keyPassword: *const ::std::os::raw::c_char,
5032    ) -> bool;
5033}
5034unsafe extern "C" {
5035    #[doc = "Set the own private key from a key file\n\n # Arguments\n\n* `filename` - filename/path of the key file\n * `password` - the password of the key or null if the key is not password protected\n\n # Returns\n\ntrue, when the key was set, false otherwise (e.g. unknown key format)"]
5036    pub fn TLSConfiguration_setOwnKeyFromFile(
5037        self_: TLSConfiguration,
5038        filename: *const ::std::os::raw::c_char,
5039        keyPassword: *const ::std::os::raw::c_char,
5040    ) -> bool;
5041}
5042unsafe extern "C" {
5043    #[doc = "Add a certificate to the list of allowed peer certificates from a byte buffer\n\n # Arguments\n\n* `certificate` - the certificate buffer\n * `certLen` - the length of the certificate buffer\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5044    pub fn TLSConfiguration_addAllowedCertificate(
5045        self_: TLSConfiguration,
5046        certificate: *mut u8,
5047        certLen: ::std::os::raw::c_int,
5048    ) -> bool;
5049}
5050unsafe extern "C" {
5051    #[doc = "Add a certificate to the list of allowed peer certificates\n\n # Arguments\n\n* `filename` - filename of the certificate file\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5052    pub fn TLSConfiguration_addAllowedCertificateFromFile(
5053        self_: TLSConfiguration,
5054        filename: *const ::std::os::raw::c_char,
5055    ) -> bool;
5056}
5057unsafe extern "C" {
5058    #[doc = "Add a CA certificate used to validate peer certificates from a byte buffer\n\n # Arguments\n\n* `certificate` - the certificate buffer\n * `certLen` - the length of the certificate buffer\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5059    pub fn TLSConfiguration_addCACertificate(
5060        self_: TLSConfiguration,
5061        certificate: *mut u8,
5062        certLen: ::std::os::raw::c_int,
5063    ) -> bool;
5064}
5065unsafe extern "C" {
5066    #[doc = "Add a CA certificate used to validate peer certificates from a file\n\n # Arguments\n\n* `filename` - filename of the certificate file\n # Returns\n\ntrue, when the certificate was set, false otherwise (e.g. unknown certificate format)"]
5067    pub fn TLSConfiguration_addCACertificateFromFile(
5068        self_: TLSConfiguration,
5069        filename: *const ::std::os::raw::c_char,
5070    ) -> bool;
5071}
5072unsafe extern "C" {
5073    #[doc = "Set the renegotiation timeout.\n\n After the timeout elapsed a TLS session renegotiation has to occur.\n\n # Arguments\n\n* `timeInMs` - session renegotiation timeout in milliseconds"]
5074    pub fn TLSConfiguration_setRenegotiationTime(
5075        self_: TLSConfiguration,
5076        timeInMs: ::std::os::raw::c_int,
5077    );
5078}
5079unsafe extern "C" {
5080    #[doc = "Set minimal allowed TLS version to use"]
5081    pub fn TLSConfiguration_setMinTlsVersion(self_: TLSConfiguration, version: TLSConfigVersion);
5082}
5083unsafe extern "C" {
5084    #[doc = "Set maximal allowed TLS version to use"]
5085    pub fn TLSConfiguration_setMaxTlsVersion(self_: TLSConfiguration, version: TLSConfigVersion);
5086}
5087unsafe extern "C" {
5088    #[doc = "Add a CRL (certificate revocation list) from buffer\n\n # Arguments\n\n* `crl` - the buffer containing the CRL\n * `crlLen` - the length of the CRL buffer\n # Returns\n\ntrue, when the CRL was imported, false otherwise (e.g. unknown format)"]
5089    pub fn TLSConfiguration_addCRL(
5090        self_: TLSConfiguration,
5091        crl: *mut u8,
5092        crlLen: ::std::os::raw::c_int,
5093    ) -> bool;
5094}
5095unsafe extern "C" {
5096    #[doc = "Add a CRL (certificate revocation list) from a file\n\n # Arguments\n\n* `filename` - filename of the CRL file\n # Returns\n\ntrue, when the CRL was imported, false otherwise (e.g. unknown format)"]
5097    pub fn TLSConfiguration_addCRLFromFile(
5098        self_: TLSConfiguration,
5099        filename: *const ::std::os::raw::c_char,
5100    ) -> bool;
5101}
5102unsafe extern "C" {
5103    #[doc = "Removes any CRL (certificate revocation list) currently in use"]
5104    pub fn TLSConfiguration_resetCRL(self_: TLSConfiguration);
5105}
5106unsafe extern "C" {
5107    #[doc = "Add an allowed ciphersuite to the list of allowed ciphersuites\n\n # Arguments\n\n* `self` - the TLS configuration instance\n * `ciphersuite` - the ciphersuite to add (IANA cipher suite ID)"]
5108    pub fn TLSConfiguration_addCipherSuite(
5109        self_: TLSConfiguration,
5110        ciphersuite: ::std::os::raw::c_int,
5111    );
5112}
5113unsafe extern "C" {
5114    #[doc = "Clear the list of allowed ciphersuites\n\n # Arguments\n\n* `self` - the TLS configuration instance"]
5115    pub fn TLSConfiguration_clearCipherSuiteList(self_: TLSConfiguration);
5116}
5117unsafe extern "C" {
5118    #[doc = "Release all resource allocated by the TLSConfiguration instance\n\n NOTE: Do not use the object after calling this function!"]
5119    pub fn TLSConfiguration_destroy(self_: TLSConfiguration);
5120}
5121#[doc = "lib60870 version information"]
5122#[repr(C)]
5123#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5124pub struct Lib60870VersionInfo {
5125    pub major: ::std::os::raw::c_int,
5126    pub minor: ::std::os::raw::c_int,
5127    pub patch: ::std::os::raw::c_int,
5128}
5129#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5130const _: () = {
5131    ["Size of Lib60870VersionInfo"][::std::mem::size_of::<Lib60870VersionInfo>() - 12usize];
5132    ["Alignment of Lib60870VersionInfo"][::std::mem::align_of::<Lib60870VersionInfo>() - 4usize];
5133    ["Offset of field: Lib60870VersionInfo::major"]
5134        [::std::mem::offset_of!(Lib60870VersionInfo, major) - 0usize];
5135    ["Offset of field: Lib60870VersionInfo::minor"]
5136        [::std::mem::offset_of!(Lib60870VersionInfo, minor) - 4usize];
5137    ["Offset of field: Lib60870VersionInfo::patch"]
5138        [::std::mem::offset_of!(Lib60870VersionInfo, patch) - 8usize];
5139};
5140pub const IEC60870_LinkLayerMode_IEC60870_LINK_LAYER_BALANCED: IEC60870_LinkLayerMode = 0;
5141pub const IEC60870_LinkLayerMode_IEC60870_LINK_LAYER_UNBALANCED: IEC60870_LinkLayerMode = 1;
5142#[doc = "link layer mode for serial link layers"]
5143pub type IEC60870_LinkLayerMode = ::std::os::raw::c_uint;
5144#[doc = "The link layer is idle, there is no communication"]
5145pub const LinkLayerState_LL_STATE_IDLE: LinkLayerState = 0;
5146#[doc = "An error has occurred at the link layer, the link may not be usable"]
5147pub const LinkLayerState_LL_STATE_ERROR: LinkLayerState = 1;
5148#[doc = "The link layer is busy and therefore no usable"]
5149pub const LinkLayerState_LL_STATE_BUSY: LinkLayerState = 2;
5150#[doc = "The link is available for user data transmission and reception"]
5151pub const LinkLayerState_LL_STATE_AVAILABLE: LinkLayerState = 3;
5152#[doc = "State of the link layer"]
5153pub type LinkLayerState = ::std::os::raw::c_uint;
5154#[doc = "Callback handler for link layer state changes\n\n # Arguments\n\n* `parameter` - user provided parameter that is passed to the handler\n * `address` - slave address used by the link layer state machine (only relevant for unbalanced master)\n * `newState` - the new link layer state"]
5155pub type IEC60870_LinkLayerStateChangedHandler = ::std::option::Option<
5156    unsafe extern "C" fn(
5157        parameter: *mut ::std::os::raw::c_void,
5158        address: ::std::os::raw::c_int,
5159        newState: LinkLayerState,
5160    ),
5161>;
5162#[doc = "Callback handler for sent and received messages\n\n This callback handler provides access to the raw message buffer of received or sent\n messages. It can be used for debugging purposes. Usually it is not used nor required\n for applications.\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `msg` - the message buffer\n * `msgSize` - size of the message\n * `sent` - indicates if the message was sent or received"]
5163pub type IEC60870_RawMessageHandler = ::std::option::Option<
5164    unsafe extern "C" fn(
5165        parameter: *mut ::std::os::raw::c_void,
5166        msg: *mut u8,
5167        msgSize: ::std::os::raw::c_int,
5168        sent: bool,
5169    ),
5170>;
5171#[doc = "Parameters for the CS101/CS104 application layer"]
5172pub type CS101_AppLayerParameters = *mut sCS101_AppLayerParameters;
5173#[repr(C)]
5174#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5175pub struct sCS101_AppLayerParameters {
5176    #[doc = "size of the type id (default = 1 - don't change)"]
5177    pub sizeOfTypeId: ::std::os::raw::c_int,
5178    #[doc = "don't change"]
5179    pub sizeOfVSQ: ::std::os::raw::c_int,
5180    #[doc = "size of COT (1/2 - default = 2 -> COT includes OA)"]
5181    pub sizeOfCOT: ::std::os::raw::c_int,
5182    #[doc = "originator address (OA) to use (0-255)"]
5183    pub originatorAddress: ::std::os::raw::c_int,
5184    #[doc = "size of common address (CA) of ASDU (1/2 - default = 2)"]
5185    pub sizeOfCA: ::std::os::raw::c_int,
5186    #[doc = "size of information object address (IOA) (1/2/3 - default = 3)"]
5187    pub sizeOfIOA: ::std::os::raw::c_int,
5188    #[doc = "maximum size of the ASDU that is generated - the maximum maximum value is 249 for IEC 104 and 254 for IEC 101"]
5189    pub maxSizeOfASDU: ::std::os::raw::c_int,
5190}
5191#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5192const _: () = {
5193    ["Size of sCS101_AppLayerParameters"]
5194        [::std::mem::size_of::<sCS101_AppLayerParameters>() - 28usize];
5195    ["Alignment of sCS101_AppLayerParameters"]
5196        [::std::mem::align_of::<sCS101_AppLayerParameters>() - 4usize];
5197    ["Offset of field: sCS101_AppLayerParameters::sizeOfTypeId"]
5198        [::std::mem::offset_of!(sCS101_AppLayerParameters, sizeOfTypeId) - 0usize];
5199    ["Offset of field: sCS101_AppLayerParameters::sizeOfVSQ"]
5200        [::std::mem::offset_of!(sCS101_AppLayerParameters, sizeOfVSQ) - 4usize];
5201    ["Offset of field: sCS101_AppLayerParameters::sizeOfCOT"]
5202        [::std::mem::offset_of!(sCS101_AppLayerParameters, sizeOfCOT) - 8usize];
5203    ["Offset of field: sCS101_AppLayerParameters::originatorAddress"]
5204        [::std::mem::offset_of!(sCS101_AppLayerParameters, originatorAddress) - 12usize];
5205    ["Offset of field: sCS101_AppLayerParameters::sizeOfCA"]
5206        [::std::mem::offset_of!(sCS101_AppLayerParameters, sizeOfCA) - 16usize];
5207    ["Offset of field: sCS101_AppLayerParameters::sizeOfIOA"]
5208        [::std::mem::offset_of!(sCS101_AppLayerParameters, sizeOfIOA) - 20usize];
5209    ["Offset of field: sCS101_AppLayerParameters::maxSizeOfASDU"]
5210        [::std::mem::offset_of!(sCS101_AppLayerParameters, maxSizeOfASDU) - 24usize];
5211};
5212pub const IEC60870_5_TypeID_M_SP_NA_1: IEC60870_5_TypeID = 1;
5213pub const IEC60870_5_TypeID_M_SP_TA_1: IEC60870_5_TypeID = 2;
5214pub const IEC60870_5_TypeID_M_DP_NA_1: IEC60870_5_TypeID = 3;
5215pub const IEC60870_5_TypeID_M_DP_TA_1: IEC60870_5_TypeID = 4;
5216pub const IEC60870_5_TypeID_M_ST_NA_1: IEC60870_5_TypeID = 5;
5217pub const IEC60870_5_TypeID_M_ST_TA_1: IEC60870_5_TypeID = 6;
5218pub const IEC60870_5_TypeID_M_BO_NA_1: IEC60870_5_TypeID = 7;
5219pub const IEC60870_5_TypeID_M_BO_TA_1: IEC60870_5_TypeID = 8;
5220pub const IEC60870_5_TypeID_M_ME_NA_1: IEC60870_5_TypeID = 9;
5221pub const IEC60870_5_TypeID_M_ME_TA_1: IEC60870_5_TypeID = 10;
5222pub const IEC60870_5_TypeID_M_ME_NB_1: IEC60870_5_TypeID = 11;
5223pub const IEC60870_5_TypeID_M_ME_TB_1: IEC60870_5_TypeID = 12;
5224pub const IEC60870_5_TypeID_M_ME_NC_1: IEC60870_5_TypeID = 13;
5225pub const IEC60870_5_TypeID_M_ME_TC_1: IEC60870_5_TypeID = 14;
5226pub const IEC60870_5_TypeID_M_IT_NA_1: IEC60870_5_TypeID = 15;
5227pub const IEC60870_5_TypeID_M_IT_TA_1: IEC60870_5_TypeID = 16;
5228pub const IEC60870_5_TypeID_M_EP_TA_1: IEC60870_5_TypeID = 17;
5229pub const IEC60870_5_TypeID_M_EP_TB_1: IEC60870_5_TypeID = 18;
5230pub const IEC60870_5_TypeID_M_EP_TC_1: IEC60870_5_TypeID = 19;
5231pub const IEC60870_5_TypeID_M_PS_NA_1: IEC60870_5_TypeID = 20;
5232pub const IEC60870_5_TypeID_M_ME_ND_1: IEC60870_5_TypeID = 21;
5233pub const IEC60870_5_TypeID_M_SP_TB_1: IEC60870_5_TypeID = 30;
5234pub const IEC60870_5_TypeID_M_DP_TB_1: IEC60870_5_TypeID = 31;
5235pub const IEC60870_5_TypeID_M_ST_TB_1: IEC60870_5_TypeID = 32;
5236pub const IEC60870_5_TypeID_M_BO_TB_1: IEC60870_5_TypeID = 33;
5237pub const IEC60870_5_TypeID_M_ME_TD_1: IEC60870_5_TypeID = 34;
5238pub const IEC60870_5_TypeID_M_ME_TE_1: IEC60870_5_TypeID = 35;
5239pub const IEC60870_5_TypeID_M_ME_TF_1: IEC60870_5_TypeID = 36;
5240pub const IEC60870_5_TypeID_M_IT_TB_1: IEC60870_5_TypeID = 37;
5241pub const IEC60870_5_TypeID_M_EP_TD_1: IEC60870_5_TypeID = 38;
5242pub const IEC60870_5_TypeID_M_EP_TE_1: IEC60870_5_TypeID = 39;
5243pub const IEC60870_5_TypeID_M_EP_TF_1: IEC60870_5_TypeID = 40;
5244pub const IEC60870_5_TypeID_S_IT_TC_1: IEC60870_5_TypeID = 41;
5245pub const IEC60870_5_TypeID_C_SC_NA_1: IEC60870_5_TypeID = 45;
5246pub const IEC60870_5_TypeID_C_DC_NA_1: IEC60870_5_TypeID = 46;
5247pub const IEC60870_5_TypeID_C_RC_NA_1: IEC60870_5_TypeID = 47;
5248pub const IEC60870_5_TypeID_C_SE_NA_1: IEC60870_5_TypeID = 48;
5249pub const IEC60870_5_TypeID_C_SE_NB_1: IEC60870_5_TypeID = 49;
5250pub const IEC60870_5_TypeID_C_SE_NC_1: IEC60870_5_TypeID = 50;
5251pub const IEC60870_5_TypeID_C_BO_NA_1: IEC60870_5_TypeID = 51;
5252pub const IEC60870_5_TypeID_C_SC_TA_1: IEC60870_5_TypeID = 58;
5253pub const IEC60870_5_TypeID_C_DC_TA_1: IEC60870_5_TypeID = 59;
5254pub const IEC60870_5_TypeID_C_RC_TA_1: IEC60870_5_TypeID = 60;
5255pub const IEC60870_5_TypeID_C_SE_TA_1: IEC60870_5_TypeID = 61;
5256pub const IEC60870_5_TypeID_C_SE_TB_1: IEC60870_5_TypeID = 62;
5257pub const IEC60870_5_TypeID_C_SE_TC_1: IEC60870_5_TypeID = 63;
5258pub const IEC60870_5_TypeID_C_BO_TA_1: IEC60870_5_TypeID = 64;
5259pub const IEC60870_5_TypeID_M_EI_NA_1: IEC60870_5_TypeID = 70;
5260pub const IEC60870_5_TypeID_S_CH_NA_1: IEC60870_5_TypeID = 81;
5261pub const IEC60870_5_TypeID_S_RP_NA_1: IEC60870_5_TypeID = 82;
5262pub const IEC60870_5_TypeID_S_AR_NA_1: IEC60870_5_TypeID = 83;
5263pub const IEC60870_5_TypeID_S_KR_NA_1: IEC60870_5_TypeID = 84;
5264pub const IEC60870_5_TypeID_S_KS_NA_1: IEC60870_5_TypeID = 85;
5265pub const IEC60870_5_TypeID_S_KC_NA_1: IEC60870_5_TypeID = 86;
5266pub const IEC60870_5_TypeID_S_ER_NA_1: IEC60870_5_TypeID = 87;
5267pub const IEC60870_5_TypeID_S_US_NA_1: IEC60870_5_TypeID = 90;
5268pub const IEC60870_5_TypeID_S_UQ_NA_1: IEC60870_5_TypeID = 91;
5269pub const IEC60870_5_TypeID_S_UR_NA_1: IEC60870_5_TypeID = 92;
5270pub const IEC60870_5_TypeID_S_UK_NA_1: IEC60870_5_TypeID = 93;
5271pub const IEC60870_5_TypeID_S_UA_NA_1: IEC60870_5_TypeID = 94;
5272pub const IEC60870_5_TypeID_S_UC_NA_1: IEC60870_5_TypeID = 95;
5273pub const IEC60870_5_TypeID_C_IC_NA_1: IEC60870_5_TypeID = 100;
5274pub const IEC60870_5_TypeID_C_CI_NA_1: IEC60870_5_TypeID = 101;
5275pub const IEC60870_5_TypeID_C_RD_NA_1: IEC60870_5_TypeID = 102;
5276pub const IEC60870_5_TypeID_C_CS_NA_1: IEC60870_5_TypeID = 103;
5277pub const IEC60870_5_TypeID_C_TS_NA_1: IEC60870_5_TypeID = 104;
5278pub const IEC60870_5_TypeID_C_RP_NA_1: IEC60870_5_TypeID = 105;
5279pub const IEC60870_5_TypeID_C_CD_NA_1: IEC60870_5_TypeID = 106;
5280pub const IEC60870_5_TypeID_C_TS_TA_1: IEC60870_5_TypeID = 107;
5281pub const IEC60870_5_TypeID_P_ME_NA_1: IEC60870_5_TypeID = 110;
5282pub const IEC60870_5_TypeID_P_ME_NB_1: IEC60870_5_TypeID = 111;
5283pub const IEC60870_5_TypeID_P_ME_NC_1: IEC60870_5_TypeID = 112;
5284pub const IEC60870_5_TypeID_P_AC_NA_1: IEC60870_5_TypeID = 113;
5285pub const IEC60870_5_TypeID_F_FR_NA_1: IEC60870_5_TypeID = 120;
5286pub const IEC60870_5_TypeID_F_SR_NA_1: IEC60870_5_TypeID = 121;
5287pub const IEC60870_5_TypeID_F_SC_NA_1: IEC60870_5_TypeID = 122;
5288pub const IEC60870_5_TypeID_F_LS_NA_1: IEC60870_5_TypeID = 123;
5289pub const IEC60870_5_TypeID_F_AF_NA_1: IEC60870_5_TypeID = 124;
5290pub const IEC60870_5_TypeID_F_SG_NA_1: IEC60870_5_TypeID = 125;
5291pub const IEC60870_5_TypeID_F_DR_TA_1: IEC60870_5_TypeID = 126;
5292pub const IEC60870_5_TypeID_F_SC_NB_1: IEC60870_5_TypeID = 127;
5293#[doc = "Message type IDs"]
5294pub type IEC60870_5_TypeID = ::std::os::raw::c_uint;
5295#[doc = "Message type IDs"]
5296pub use self::IEC60870_5_TypeID as TypeID;
5297#[repr(C)]
5298#[derive(Debug, Copy, Clone)]
5299pub struct sInformationObject {
5300    _unused: [u8; 0],
5301}
5302pub type InformationObject = *mut sInformationObject;
5303#[repr(C)]
5304#[derive(Debug, Copy, Clone)]
5305pub struct sCS101_ASDU {
5306    _unused: [u8; 0],
5307}
5308#[doc = "Application Service Data Unit (ASDU) for the CS101/CS104 application layer"]
5309pub type CS101_ASDU = *mut sCS101_ASDU;
5310#[repr(C)]
5311#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
5312pub struct sCS101_StaticASDU {
5313    pub parameters: CS101_AppLayerParameters,
5314    pub asdu: *mut u8,
5315    pub asduHeaderLength: ::std::os::raw::c_int,
5316    pub payload: *mut u8,
5317    pub payloadSize: ::std::os::raw::c_int,
5318    pub encodedData: [u8; 256usize],
5319}
5320#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5321const _: () = {
5322    ["Size of sCS101_StaticASDU"][::std::mem::size_of::<sCS101_StaticASDU>() - 296usize];
5323    ["Alignment of sCS101_StaticASDU"][::std::mem::align_of::<sCS101_StaticASDU>() - 8usize];
5324    ["Offset of field: sCS101_StaticASDU::parameters"]
5325        [::std::mem::offset_of!(sCS101_StaticASDU, parameters) - 0usize];
5326    ["Offset of field: sCS101_StaticASDU::asdu"]
5327        [::std::mem::offset_of!(sCS101_StaticASDU, asdu) - 8usize];
5328    ["Offset of field: sCS101_StaticASDU::asduHeaderLength"]
5329        [::std::mem::offset_of!(sCS101_StaticASDU, asduHeaderLength) - 16usize];
5330    ["Offset of field: sCS101_StaticASDU::payload"]
5331        [::std::mem::offset_of!(sCS101_StaticASDU, payload) - 24usize];
5332    ["Offset of field: sCS101_StaticASDU::payloadSize"]
5333        [::std::mem::offset_of!(sCS101_StaticASDU, payloadSize) - 32usize];
5334    ["Offset of field: sCS101_StaticASDU::encodedData"]
5335        [::std::mem::offset_of!(sCS101_StaticASDU, encodedData) - 36usize];
5336};
5337impl Default for sCS101_StaticASDU {
5338    fn default() -> Self {
5339        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
5340        unsafe {
5341            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
5342            s.assume_init()
5343        }
5344    }
5345}
5346pub type CS101_StaticASDU = *mut sCS101_StaticASDU;
5347pub type CP16Time2a = *mut sCP16Time2a;
5348#[repr(C)]
5349#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5350pub struct sCP16Time2a {
5351    pub encodedValue: [u8; 2usize],
5352}
5353#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5354const _: () = {
5355    ["Size of sCP16Time2a"][::std::mem::size_of::<sCP16Time2a>() - 2usize];
5356    ["Alignment of sCP16Time2a"][::std::mem::align_of::<sCP16Time2a>() - 1usize];
5357    ["Offset of field: sCP16Time2a::encodedValue"]
5358        [::std::mem::offset_of!(sCP16Time2a, encodedValue) - 0usize];
5359};
5360pub type CP24Time2a = *mut sCP24Time2a;
5361#[repr(C)]
5362#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5363pub struct sCP24Time2a {
5364    pub encodedValue: [u8; 3usize],
5365}
5366#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5367const _: () = {
5368    ["Size of sCP24Time2a"][::std::mem::size_of::<sCP24Time2a>() - 3usize];
5369    ["Alignment of sCP24Time2a"][::std::mem::align_of::<sCP24Time2a>() - 1usize];
5370    ["Offset of field: sCP24Time2a::encodedValue"]
5371        [::std::mem::offset_of!(sCP24Time2a, encodedValue) - 0usize];
5372};
5373pub type CP32Time2a = *mut sCP32Time2a;
5374#[doc = "4 byte binary time"]
5375#[repr(C)]
5376#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5377pub struct sCP32Time2a {
5378    pub encodedValue: [u8; 4usize],
5379}
5380#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5381const _: () = {
5382    ["Size of sCP32Time2a"][::std::mem::size_of::<sCP32Time2a>() - 4usize];
5383    ["Alignment of sCP32Time2a"][::std::mem::align_of::<sCP32Time2a>() - 1usize];
5384    ["Offset of field: sCP32Time2a::encodedValue"]
5385        [::std::mem::offset_of!(sCP32Time2a, encodedValue) - 0usize];
5386};
5387#[doc = "7 byte binary time"]
5388pub type CP56Time2a = *mut sCP56Time2a;
5389#[repr(C)]
5390#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5391pub struct sCP56Time2a {
5392    pub encodedValue: [u8; 7usize],
5393}
5394#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5395const _: () = {
5396    ["Size of sCP56Time2a"][::std::mem::size_of::<sCP56Time2a>() - 7usize];
5397    ["Alignment of sCP56Time2a"][::std::mem::align_of::<sCP56Time2a>() - 1usize];
5398    ["Offset of field: sCP56Time2a::encodedValue"]
5399        [::std::mem::offset_of!(sCP56Time2a, encodedValue) - 0usize];
5400};
5401#[doc = "Base type for counter readings"]
5402pub type BinaryCounterReading = *mut sBinaryCounterReading;
5403#[repr(C)]
5404#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5405pub struct sBinaryCounterReading {
5406    pub encodedValue: [u8; 5usize],
5407}
5408#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5409const _: () = {
5410    ["Size of sBinaryCounterReading"][::std::mem::size_of::<sBinaryCounterReading>() - 5usize];
5411    ["Alignment of sBinaryCounterReading"]
5412        [::std::mem::align_of::<sBinaryCounterReading>() - 1usize];
5413    ["Offset of field: sBinaryCounterReading::encodedValue"]
5414        [::std::mem::offset_of!(sBinaryCounterReading, encodedValue) - 0usize];
5415};
5416#[doc = "Parameters for CS104 connections - APCI (application protocol control information)"]
5417pub type CS104_APCIParameters = *mut sCS104_APCIParameters;
5418#[repr(C)]
5419#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5420pub struct sCS104_APCIParameters {
5421    pub k: ::std::os::raw::c_int,
5422    pub w: ::std::os::raw::c_int,
5423    pub t0: ::std::os::raw::c_int,
5424    pub t1: ::std::os::raw::c_int,
5425    pub t2: ::std::os::raw::c_int,
5426    pub t3: ::std::os::raw::c_int,
5427}
5428#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5429const _: () = {
5430    ["Size of sCS104_APCIParameters"][::std::mem::size_of::<sCS104_APCIParameters>() - 24usize];
5431    ["Alignment of sCS104_APCIParameters"]
5432        [::std::mem::align_of::<sCS104_APCIParameters>() - 4usize];
5433    ["Offset of field: sCS104_APCIParameters::k"]
5434        [::std::mem::offset_of!(sCS104_APCIParameters, k) - 0usize];
5435    ["Offset of field: sCS104_APCIParameters::w"]
5436        [::std::mem::offset_of!(sCS104_APCIParameters, w) - 4usize];
5437    ["Offset of field: sCS104_APCIParameters::t0"]
5438        [::std::mem::offset_of!(sCS104_APCIParameters, t0) - 8usize];
5439    ["Offset of field: sCS104_APCIParameters::t1"]
5440        [::std::mem::offset_of!(sCS104_APCIParameters, t1) - 12usize];
5441    ["Offset of field: sCS104_APCIParameters::t2"]
5442        [::std::mem::offset_of!(sCS104_APCIParameters, t2) - 16usize];
5443    ["Offset of field: sCS104_APCIParameters::t3"]
5444        [::std::mem::offset_of!(sCS104_APCIParameters, t3) - 20usize];
5445};
5446unsafe extern "C" {
5447    #[doc = "COMMON Common API functions\n\n # "]
5448    pub fn TypeID_toString(self_: TypeID) -> *const ::std::os::raw::c_char;
5449}
5450pub type QualityDescriptor = u8;
5451#[doc = "QDP - Quality descriptor for events of protection equipment according to IEC 60870-5-101:2003 7.2.6.4"]
5452pub type QualityDescriptorP = u8;
5453#[doc = "SPE - Start events of protection equipment according to IEC 60870-5-101:2003 7.2.6.11"]
5454pub type StartEvent = u8;
5455#[doc = "Output circuit information (OCI) of protection equipment according to IEC 60870-5-101:2003 7.2.6.12"]
5456pub type OutputCircuitInfo = u8;
5457#[doc = "Qualifier of parameter of measured values (QPM) according to IEC 60870-5-101:2003 7.2.6.24\n\n Possible values:\n 0 = not used\n 1 = threshold value\n 2 = smoothing factor (filter time constant)\n 3 = low limit for transmission of measured values\n 4 = high limit for transmission of measured values\n 5..31 = reserved for standard definitions of CS101 (compatible range)\n 32..63 = reserved for special use (private range)"]
5458pub type QualifierOfParameterMV = u8;
5459#[doc = "Cause of Initialization (COI) according to IEC 60870-5-101:2003 7.2.6.21"]
5460pub type CauseOfInitialization = u8;
5461#[doc = "Qualifier Of Command (QOC) according to IEC 60870-5-101:2003 7.2.6.26"]
5462pub type QualifierOfCommand = u8;
5463#[doc = "Select And Call Qualifier (SCQ) according to IEC 60870-5-101:2003 7.2.6.30"]
5464pub type SelectAndCallQualifier = u8;
5465#[doc = "Qualifier of interrogation (QUI) according to IEC 60870-5-101:2003 7.2.6.22"]
5466pub type QualifierOfInterrogation = u8;
5467#[doc = "QCC (Qualifier of counter interrogation command) according to IEC 60870-5-101:2003 7.2.6.23\n\n The QCC is composed by the RQT(request) and the FRZ(Freeze) part\n\n QCC = RQT + FRZ\n\n E.g.\n\n to read the the values from counter group one use:\n\n QCC = IEC60870_QCC_RQT_GROUP_1 + IEC60870_QCC_FRZ_READ\n\n to reset all counters use:\n\n QCC = IEC60870_QCC_RQT_GENERAL + IEC60870_QCC_FRZ_COUNTER_RESET\n"]
5468pub type QualifierOfCIC = u8;
5469#[doc = "QRP (Qualifier of reset process command) according to IEC 60870-5-101:2003 7.2.6.27"]
5470pub type QualifierOfRPC = u8;
5471#[doc = "Qualifier of parameter activation (QPA) according to IEC 60870-5-101:2003 7.2.6.25"]
5472pub type QualifierOfParameterActivation = u8;
5473pub type SetpointCommandQualifier = u8;
5474pub const DoublePointValue_IEC60870_DOUBLE_POINT_INTERMEDIATE: DoublePointValue = 0;
5475pub const DoublePointValue_IEC60870_DOUBLE_POINT_OFF: DoublePointValue = 1;
5476pub const DoublePointValue_IEC60870_DOUBLE_POINT_ON: DoublePointValue = 2;
5477pub const DoublePointValue_IEC60870_DOUBLE_POINT_INDETERMINATE: DoublePointValue = 3;
5478pub type DoublePointValue = ::std::os::raw::c_uint;
5479pub const EventState_IEC60870_EVENTSTATE_INDETERMINATE_0: EventState = 0;
5480pub const EventState_IEC60870_EVENTSTATE_OFF: EventState = 1;
5481pub const EventState_IEC60870_EVENTSTATE_ON: EventState = 2;
5482pub const EventState_IEC60870_EVENTSTATE_INDETERMINATE_3: EventState = 3;
5483pub type EventState = ::std::os::raw::c_uint;
5484pub const StepCommandValue_IEC60870_STEP_INVALID_0: StepCommandValue = 0;
5485pub const StepCommandValue_IEC60870_STEP_LOWER: StepCommandValue = 1;
5486pub const StepCommandValue_IEC60870_STEP_HIGHER: StepCommandValue = 2;
5487pub const StepCommandValue_IEC60870_STEP_INVALID_3: StepCommandValue = 3;
5488#[doc = "Regulating step command state (RCS) according to IEC 60870-5-101:2003 7.2.6.17"]
5489pub type StepCommandValue = ::std::os::raw::c_uint;
5490pub type tSingleEvent = u8;
5491pub type SingleEvent = *mut tSingleEvent;
5492unsafe extern "C" {
5493    pub fn SingleEvent_setEventState(self_: SingleEvent, eventState: EventState);
5494}
5495unsafe extern "C" {
5496    pub fn SingleEvent_getEventState(self_: SingleEvent) -> EventState;
5497}
5498unsafe extern "C" {
5499    pub fn SingleEvent_setQDP(self_: SingleEvent, qdp: QualityDescriptorP);
5500}
5501unsafe extern "C" {
5502    pub fn SingleEvent_getQDP(self_: SingleEvent) -> QualityDescriptorP;
5503}
5504pub type tStatusAndStatusChangeDetection = sStatusAndStatusChangeDetection;
5505pub type StatusAndStatusChangeDetection = *mut tStatusAndStatusChangeDetection;
5506#[repr(C)]
5507#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
5508pub struct sStatusAndStatusChangeDetection {
5509    pub encodedValue: [u8; 4usize],
5510}
5511#[allow(clippy::unnecessary_operation, clippy::identity_op)]
5512const _: () = {
5513    ["Size of sStatusAndStatusChangeDetection"]
5514        [::std::mem::size_of::<sStatusAndStatusChangeDetection>() - 4usize];
5515    ["Alignment of sStatusAndStatusChangeDetection"]
5516        [::std::mem::align_of::<sStatusAndStatusChangeDetection>() - 1usize];
5517    ["Offset of field: sStatusAndStatusChangeDetection::encodedValue"]
5518        [::std::mem::offset_of!(sStatusAndStatusChangeDetection, encodedValue) - 0usize];
5519};
5520unsafe extern "C" {
5521    pub fn StatusAndStatusChangeDetection_getSTn(self_: StatusAndStatusChangeDetection) -> u16;
5522}
5523unsafe extern "C" {
5524    pub fn StatusAndStatusChangeDetection_getCDn(self_: StatusAndStatusChangeDetection) -> u16;
5525}
5526unsafe extern "C" {
5527    pub fn StatusAndStatusChangeDetection_setSTn(self_: StatusAndStatusChangeDetection, value: u16);
5528}
5529unsafe extern "C" {
5530    pub fn StatusAndStatusChangeDetection_getST(
5531        self_: StatusAndStatusChangeDetection,
5532        index: ::std::os::raw::c_int,
5533    ) -> bool;
5534}
5535unsafe extern "C" {
5536    pub fn StatusAndStatusChangeDetection_getCD(
5537        self_: StatusAndStatusChangeDetection,
5538        index: ::std::os::raw::c_int,
5539    ) -> bool;
5540}
5541unsafe extern "C" {
5542    pub fn NormalizedValue_fromScaled(scaledValue: ::std::os::raw::c_int) -> f32;
5543}
5544unsafe extern "C" {
5545    pub fn NormalizedValue_toScaled(normalizedValue: f32) -> ::std::os::raw::c_int;
5546}
5547unsafe extern "C" {
5548    #[doc = "return the size in memory of a generic InformationObject instance\n\n This function can be used to determine the required memory for malloc"]
5549    pub fn InformationObject_getMaxSizeInMemory() -> ::std::os::raw::c_int;
5550}
5551unsafe extern "C" {
5552    pub fn InformationObject_getObjectAddress(self_: InformationObject) -> ::std::os::raw::c_int;
5553}
5554unsafe extern "C" {
5555    pub fn InformationObject_getType(self_: InformationObject) -> TypeID;
5556}
5557unsafe extern "C" {
5558    #[doc = "Destroy object - free all related resources\n\n This is a virtual function that calls the destructor from the implementation class\n\n the InformationObject instance"]
5559    pub fn InformationObject_destroy(self_: InformationObject);
5560}
5561#[repr(C)]
5562#[derive(Debug, Copy, Clone)]
5563pub struct sSinglePointInformation {
5564    _unused: [u8; 0],
5565}
5566#[doc = "SinglePointInformation (:InformationObject)"]
5567pub type SinglePointInformation = *mut sSinglePointInformation;
5568unsafe extern "C" {
5569    pub fn SinglePointInformation_create(
5570        self_: SinglePointInformation,
5571        ioa: ::std::os::raw::c_int,
5572        value: bool,
5573        quality: QualityDescriptor,
5574    ) -> SinglePointInformation;
5575}
5576unsafe extern "C" {
5577    pub fn SinglePointInformation_getValue(self_: SinglePointInformation) -> bool;
5578}
5579unsafe extern "C" {
5580    pub fn SinglePointInformation_getQuality(self_: SinglePointInformation) -> QualityDescriptor;
5581}
5582unsafe extern "C" {
5583    pub fn SinglePointInformation_destroy(self_: SinglePointInformation);
5584}
5585#[repr(C)]
5586#[derive(Debug, Copy, Clone)]
5587pub struct sSinglePointWithCP24Time2a {
5588    _unused: [u8; 0],
5589}
5590#[doc = "SinglePointWithCP24Time2a (:SinglePointInformation)"]
5591pub type SinglePointWithCP24Time2a = *mut sSinglePointWithCP24Time2a;
5592unsafe extern "C" {
5593    pub fn SinglePointWithCP24Time2a_create(
5594        self_: SinglePointWithCP24Time2a,
5595        ioa: ::std::os::raw::c_int,
5596        value: bool,
5597        quality: QualityDescriptor,
5598        timestamp: CP24Time2a,
5599    ) -> SinglePointWithCP24Time2a;
5600}
5601unsafe extern "C" {
5602    pub fn SinglePointWithCP24Time2a_destroy(self_: SinglePointWithCP24Time2a);
5603}
5604unsafe extern "C" {
5605    pub fn SinglePointWithCP24Time2a_getTimestamp(self_: SinglePointWithCP24Time2a) -> CP24Time2a;
5606}
5607#[repr(C)]
5608#[derive(Debug, Copy, Clone)]
5609pub struct sSinglePointWithCP56Time2a {
5610    _unused: [u8; 0],
5611}
5612#[doc = "SinglePointWithCP56Time2a (:SinglePointInformation)"]
5613pub type SinglePointWithCP56Time2a = *mut sSinglePointWithCP56Time2a;
5614unsafe extern "C" {
5615    pub fn SinglePointWithCP56Time2a_create(
5616        self_: SinglePointWithCP56Time2a,
5617        ioa: ::std::os::raw::c_int,
5618        value: bool,
5619        quality: QualityDescriptor,
5620        timestamp: CP56Time2a,
5621    ) -> SinglePointWithCP56Time2a;
5622}
5623unsafe extern "C" {
5624    pub fn SinglePointWithCP56Time2a_destroy(self_: SinglePointWithCP56Time2a);
5625}
5626unsafe extern "C" {
5627    pub fn SinglePointWithCP56Time2a_getTimestamp(self_: SinglePointWithCP56Time2a) -> CP56Time2a;
5628}
5629#[repr(C)]
5630#[derive(Debug, Copy, Clone)]
5631pub struct sDoublePointInformation {
5632    _unused: [u8; 0],
5633}
5634#[doc = "DoublePointInformation (:InformationObject)"]
5635pub type DoublePointInformation = *mut sDoublePointInformation;
5636unsafe extern "C" {
5637    pub fn DoublePointInformation_destroy(self_: DoublePointInformation);
5638}
5639unsafe extern "C" {
5640    pub fn DoublePointInformation_create(
5641        self_: DoublePointInformation,
5642        ioa: ::std::os::raw::c_int,
5643        value: DoublePointValue,
5644        quality: QualityDescriptor,
5645    ) -> DoublePointInformation;
5646}
5647unsafe extern "C" {
5648    pub fn DoublePointInformation_getValue(self_: DoublePointInformation) -> DoublePointValue;
5649}
5650unsafe extern "C" {
5651    pub fn DoublePointInformation_getQuality(self_: DoublePointInformation) -> QualityDescriptor;
5652}
5653#[repr(C)]
5654#[derive(Debug, Copy, Clone)]
5655pub struct sDoublePointWithCP24Time2a {
5656    _unused: [u8; 0],
5657}
5658#[doc = "DoublePointWithCP24Time2a (:DoublePointInformation)"]
5659pub type DoublePointWithCP24Time2a = *mut sDoublePointWithCP24Time2a;
5660unsafe extern "C" {
5661    pub fn DoublePointWithCP24Time2a_destroy(self_: DoublePointWithCP24Time2a);
5662}
5663unsafe extern "C" {
5664    pub fn DoublePointWithCP24Time2a_create(
5665        self_: DoublePointWithCP24Time2a,
5666        ioa: ::std::os::raw::c_int,
5667        value: DoublePointValue,
5668        quality: QualityDescriptor,
5669        timestamp: CP24Time2a,
5670    ) -> DoublePointWithCP24Time2a;
5671}
5672unsafe extern "C" {
5673    pub fn DoublePointWithCP24Time2a_getTimestamp(self_: DoublePointWithCP24Time2a) -> CP24Time2a;
5674}
5675#[repr(C)]
5676#[derive(Debug, Copy, Clone)]
5677pub struct sDoublePointWithCP56Time2a {
5678    _unused: [u8; 0],
5679}
5680#[doc = "DoublePointWithCP56Time2a (:DoublePointInformation)"]
5681pub type DoublePointWithCP56Time2a = *mut sDoublePointWithCP56Time2a;
5682unsafe extern "C" {
5683    pub fn DoublePointWithCP56Time2a_create(
5684        self_: DoublePointWithCP56Time2a,
5685        ioa: ::std::os::raw::c_int,
5686        value: DoublePointValue,
5687        quality: QualityDescriptor,
5688        timestamp: CP56Time2a,
5689    ) -> DoublePointWithCP56Time2a;
5690}
5691unsafe extern "C" {
5692    pub fn DoublePointWithCP56Time2a_destroy(self_: DoublePointWithCP56Time2a);
5693}
5694unsafe extern "C" {
5695    pub fn DoublePointWithCP56Time2a_getTimestamp(self_: DoublePointWithCP56Time2a) -> CP56Time2a;
5696}
5697#[repr(C)]
5698#[derive(Debug, Copy, Clone)]
5699pub struct sStepPositionInformation {
5700    _unused: [u8; 0],
5701}
5702#[doc = "StepPositionInformation (:InformationObject)"]
5703pub type StepPositionInformation = *mut sStepPositionInformation;
5704unsafe extern "C" {
5705    #[doc = "Create a new instance of StepPositionInformation information object\n\n # Arguments\n\n* `self` - Reference to an existing instance to reuse, if NULL a new instance will we dynamically allocated\n * `ioa` - Information object address\n * `value` - Step position (range -64 ... +63)\n * `isTransient` - true if position is transient, false otherwise\n * `quality` - quality descriptor (according to IEC 60870-5-101:2003 7.2.6.3)\n\n # Returns\n\nReference to the new instance"]
5706    pub fn StepPositionInformation_create(
5707        self_: StepPositionInformation,
5708        ioa: ::std::os::raw::c_int,
5709        value: ::std::os::raw::c_int,
5710        isTransient: bool,
5711        quality: QualityDescriptor,
5712    ) -> StepPositionInformation;
5713}
5714unsafe extern "C" {
5715    pub fn StepPositionInformation_destroy(self_: StepPositionInformation);
5716}
5717unsafe extern "C" {
5718    pub fn StepPositionInformation_getObjectAddress(
5719        self_: StepPositionInformation,
5720    ) -> ::std::os::raw::c_int;
5721}
5722unsafe extern "C" {
5723    #[doc = "Step position (range -64 ... +63)"]
5724    pub fn StepPositionInformation_getValue(
5725        self_: StepPositionInformation,
5726    ) -> ::std::os::raw::c_int;
5727}
5728unsafe extern "C" {
5729    pub fn StepPositionInformation_isTransient(self_: StepPositionInformation) -> bool;
5730}
5731unsafe extern "C" {
5732    pub fn StepPositionInformation_getQuality(self_: StepPositionInformation) -> QualityDescriptor;
5733}
5734#[repr(C)]
5735#[derive(Debug, Copy, Clone)]
5736pub struct sStepPositionWithCP24Time2a {
5737    _unused: [u8; 0],
5738}
5739#[doc = "StepPositionWithCP24Time2a (:StepPositionInformation)"]
5740pub type StepPositionWithCP24Time2a = *mut sStepPositionWithCP24Time2a;
5741unsafe extern "C" {
5742    pub fn StepPositionWithCP24Time2a_destroy(self_: StepPositionWithCP24Time2a);
5743}
5744unsafe extern "C" {
5745    pub fn StepPositionWithCP24Time2a_create(
5746        self_: StepPositionWithCP24Time2a,
5747        ioa: ::std::os::raw::c_int,
5748        value: ::std::os::raw::c_int,
5749        isTransient: bool,
5750        quality: QualityDescriptor,
5751        timestamp: CP24Time2a,
5752    ) -> StepPositionWithCP24Time2a;
5753}
5754unsafe extern "C" {
5755    pub fn StepPositionWithCP24Time2a_getTimestamp(self_: StepPositionWithCP24Time2a)
5756    -> CP24Time2a;
5757}
5758#[repr(C)]
5759#[derive(Debug, Copy, Clone)]
5760pub struct sStepPositionWithCP56Time2a {
5761    _unused: [u8; 0],
5762}
5763#[doc = "StepPositionWithCP56Time2a (:StepPositionInformation)"]
5764pub type StepPositionWithCP56Time2a = *mut sStepPositionWithCP56Time2a;
5765unsafe extern "C" {
5766    pub fn StepPositionWithCP56Time2a_destroy(self_: StepPositionWithCP56Time2a);
5767}
5768unsafe extern "C" {
5769    pub fn StepPositionWithCP56Time2a_create(
5770        self_: StepPositionWithCP56Time2a,
5771        ioa: ::std::os::raw::c_int,
5772        value: ::std::os::raw::c_int,
5773        isTransient: bool,
5774        quality: QualityDescriptor,
5775        timestamp: CP56Time2a,
5776    ) -> StepPositionWithCP56Time2a;
5777}
5778unsafe extern "C" {
5779    pub fn StepPositionWithCP56Time2a_getTimestamp(self_: StepPositionWithCP56Time2a)
5780    -> CP56Time2a;
5781}
5782#[repr(C)]
5783#[derive(Debug, Copy, Clone)]
5784pub struct sBitString32 {
5785    _unused: [u8; 0],
5786}
5787#[doc = "BitString32 (:InformationObject)"]
5788pub type BitString32 = *mut sBitString32;
5789unsafe extern "C" {
5790    pub fn BitString32_destroy(self_: BitString32);
5791}
5792unsafe extern "C" {
5793    pub fn BitString32_create(
5794        self_: BitString32,
5795        ioa: ::std::os::raw::c_int,
5796        value: u32,
5797    ) -> BitString32;
5798}
5799unsafe extern "C" {
5800    pub fn BitString32_createEx(
5801        self_: BitString32,
5802        ioa: ::std::os::raw::c_int,
5803        value: u32,
5804        quality: QualityDescriptor,
5805    ) -> BitString32;
5806}
5807unsafe extern "C" {
5808    pub fn BitString32_getValue(self_: BitString32) -> u32;
5809}
5810unsafe extern "C" {
5811    pub fn BitString32_getQuality(self_: BitString32) -> QualityDescriptor;
5812}
5813#[repr(C)]
5814#[derive(Debug, Copy, Clone)]
5815pub struct sBitstring32WithCP24Time2a {
5816    _unused: [u8; 0],
5817}
5818#[doc = "Bitstring32WithCP24Time2a (:BitString32)"]
5819pub type Bitstring32WithCP24Time2a = *mut sBitstring32WithCP24Time2a;
5820unsafe extern "C" {
5821    pub fn Bitstring32WithCP24Time2a_destroy(self_: Bitstring32WithCP24Time2a);
5822}
5823unsafe extern "C" {
5824    pub fn Bitstring32WithCP24Time2a_create(
5825        self_: Bitstring32WithCP24Time2a,
5826        ioa: ::std::os::raw::c_int,
5827        value: u32,
5828        timestamp: CP24Time2a,
5829    ) -> Bitstring32WithCP24Time2a;
5830}
5831unsafe extern "C" {
5832    pub fn Bitstring32WithCP24Time2a_createEx(
5833        self_: Bitstring32WithCP24Time2a,
5834        ioa: ::std::os::raw::c_int,
5835        value: u32,
5836        quality: QualityDescriptor,
5837        timestamp: CP24Time2a,
5838    ) -> Bitstring32WithCP24Time2a;
5839}
5840unsafe extern "C" {
5841    pub fn Bitstring32WithCP24Time2a_getTimestamp(self_: Bitstring32WithCP24Time2a) -> CP24Time2a;
5842}
5843#[repr(C)]
5844#[derive(Debug, Copy, Clone)]
5845pub struct sBitstring32WithCP56Time2a {
5846    _unused: [u8; 0],
5847}
5848#[doc = "Bitstring32WithCP56Time2a (:BitString32)"]
5849pub type Bitstring32WithCP56Time2a = *mut sBitstring32WithCP56Time2a;
5850unsafe extern "C" {
5851    pub fn Bitstring32WithCP56Time2a_destroy(self_: Bitstring32WithCP56Time2a);
5852}
5853unsafe extern "C" {
5854    pub fn Bitstring32WithCP56Time2a_create(
5855        self_: Bitstring32WithCP56Time2a,
5856        ioa: ::std::os::raw::c_int,
5857        value: u32,
5858        timestamp: CP56Time2a,
5859    ) -> Bitstring32WithCP56Time2a;
5860}
5861unsafe extern "C" {
5862    pub fn Bitstring32WithCP56Time2a_createEx(
5863        self_: Bitstring32WithCP56Time2a,
5864        ioa: ::std::os::raw::c_int,
5865        value: u32,
5866        quality: QualityDescriptor,
5867        timestamp: CP56Time2a,
5868    ) -> Bitstring32WithCP56Time2a;
5869}
5870unsafe extern "C" {
5871    pub fn Bitstring32WithCP56Time2a_getTimestamp(self_: Bitstring32WithCP56Time2a) -> CP56Time2a;
5872}
5873#[repr(C)]
5874#[derive(Debug, Copy, Clone)]
5875pub struct sMeasuredValueNormalizedWithoutQuality {
5876    _unused: [u8; 0],
5877}
5878#[doc = "MeasuredValueNormalizedWithoutQuality : InformationObject"]
5879pub type MeasuredValueNormalizedWithoutQuality = *mut sMeasuredValueNormalizedWithoutQuality;
5880unsafe extern "C" {
5881    pub fn MeasuredValueNormalizedWithoutQuality_destroy(
5882        self_: MeasuredValueNormalizedWithoutQuality,
5883    );
5884}
5885unsafe extern "C" {
5886    pub fn MeasuredValueNormalizedWithoutQuality_create(
5887        self_: MeasuredValueNormalizedWithoutQuality,
5888        ioa: ::std::os::raw::c_int,
5889        value: f32,
5890    ) -> MeasuredValueNormalizedWithoutQuality;
5891}
5892unsafe extern "C" {
5893    pub fn MeasuredValueNormalizedWithoutQuality_getValue(
5894        self_: MeasuredValueNormalizedWithoutQuality,
5895    ) -> f32;
5896}
5897unsafe extern "C" {
5898    pub fn MeasuredValueNormalizedWithoutQuality_setValue(
5899        self_: MeasuredValueNormalizedWithoutQuality,
5900        value: f32,
5901    );
5902}
5903#[repr(C)]
5904#[derive(Debug, Copy, Clone)]
5905pub struct sMeasuredValueNormalized {
5906    _unused: [u8; 0],
5907}
5908#[doc = "MeasuredValueNormalized"]
5909pub type MeasuredValueNormalized = *mut sMeasuredValueNormalized;
5910unsafe extern "C" {
5911    pub fn MeasuredValueNormalized_destroy(self_: MeasuredValueNormalized);
5912}
5913unsafe extern "C" {
5914    pub fn MeasuredValueNormalized_create(
5915        self_: MeasuredValueNormalized,
5916        ioa: ::std::os::raw::c_int,
5917        value: f32,
5918        quality: QualityDescriptor,
5919    ) -> MeasuredValueNormalized;
5920}
5921unsafe extern "C" {
5922    pub fn MeasuredValueNormalized_getValue(self_: MeasuredValueNormalized) -> f32;
5923}
5924unsafe extern "C" {
5925    pub fn MeasuredValueNormalized_setValue(self_: MeasuredValueNormalized, value: f32);
5926}
5927unsafe extern "C" {
5928    pub fn MeasuredValueNormalized_getQuality(self_: MeasuredValueNormalized) -> QualityDescriptor;
5929}
5930#[repr(C)]
5931#[derive(Debug, Copy, Clone)]
5932pub struct sMeasuredValueNormalizedWithCP24Time2a {
5933    _unused: [u8; 0],
5934}
5935#[doc = "MeasuredValueNormalizedWithCP24Time2a : MeasuredValueNormalized"]
5936pub type MeasuredValueNormalizedWithCP24Time2a = *mut sMeasuredValueNormalizedWithCP24Time2a;
5937unsafe extern "C" {
5938    pub fn MeasuredValueNormalizedWithCP24Time2a_destroy(
5939        self_: MeasuredValueNormalizedWithCP24Time2a,
5940    );
5941}
5942unsafe extern "C" {
5943    pub fn MeasuredValueNormalizedWithCP24Time2a_create(
5944        self_: MeasuredValueNormalizedWithCP24Time2a,
5945        ioa: ::std::os::raw::c_int,
5946        value: f32,
5947        quality: QualityDescriptor,
5948        timestamp: CP24Time2a,
5949    ) -> MeasuredValueNormalizedWithCP24Time2a;
5950}
5951unsafe extern "C" {
5952    pub fn MeasuredValueNormalizedWithCP24Time2a_getTimestamp(
5953        self_: MeasuredValueNormalizedWithCP24Time2a,
5954    ) -> CP24Time2a;
5955}
5956unsafe extern "C" {
5957    pub fn MeasuredValueNormalizedWithCP24Time2a_setTimestamp(
5958        self_: MeasuredValueNormalizedWithCP24Time2a,
5959        value: CP24Time2a,
5960    );
5961}
5962#[repr(C)]
5963#[derive(Debug, Copy, Clone)]
5964pub struct sMeasuredValueNormalizedWithCP56Time2a {
5965    _unused: [u8; 0],
5966}
5967#[doc = "MeasuredValueNormalizedWithCP56Time2a : MeasuredValueNormalized"]
5968pub type MeasuredValueNormalizedWithCP56Time2a = *mut sMeasuredValueNormalizedWithCP56Time2a;
5969unsafe extern "C" {
5970    pub fn MeasuredValueNormalizedWithCP56Time2a_destroy(
5971        self_: MeasuredValueNormalizedWithCP56Time2a,
5972    );
5973}
5974unsafe extern "C" {
5975    pub fn MeasuredValueNormalizedWithCP56Time2a_create(
5976        self_: MeasuredValueNormalizedWithCP56Time2a,
5977        ioa: ::std::os::raw::c_int,
5978        value: f32,
5979        quality: QualityDescriptor,
5980        timestamp: CP56Time2a,
5981    ) -> MeasuredValueNormalizedWithCP56Time2a;
5982}
5983unsafe extern "C" {
5984    pub fn MeasuredValueNormalizedWithCP56Time2a_getTimestamp(
5985        self_: MeasuredValueNormalizedWithCP56Time2a,
5986    ) -> CP56Time2a;
5987}
5988unsafe extern "C" {
5989    pub fn MeasuredValueNormalizedWithCP56Time2a_setTimestamp(
5990        self_: MeasuredValueNormalizedWithCP56Time2a,
5991        value: CP56Time2a,
5992    );
5993}
5994#[repr(C)]
5995#[derive(Debug, Copy, Clone)]
5996pub struct sMeasuredValueScaled {
5997    _unused: [u8; 0],
5998}
5999#[doc = "MeasuredValueScaled : InformationObject"]
6000pub type MeasuredValueScaled = *mut sMeasuredValueScaled;
6001unsafe extern "C" {
6002    #[doc = "Create a new instance of MeasuredValueScaled information object\n\n # Arguments\n\n* `self` - Reference to an existing instance to reuse, if NULL a new instance will we dynamically allocated\n * `ioa` - Information object address\n * `value` - scaled value (range -32768 - 32767)\n * `quality` - quality descriptor (according to IEC 60870-5-101:2003 7.2.6.3)\n\n # Returns\n\nReference to the new instance"]
6003    pub fn MeasuredValueScaled_create(
6004        self_: MeasuredValueScaled,
6005        ioa: ::std::os::raw::c_int,
6006        value: ::std::os::raw::c_int,
6007        quality: QualityDescriptor,
6008    ) -> MeasuredValueScaled;
6009}
6010unsafe extern "C" {
6011    pub fn MeasuredValueScaled_destroy(self_: MeasuredValueScaled);
6012}
6013unsafe extern "C" {
6014    pub fn MeasuredValueScaled_getValue(self_: MeasuredValueScaled) -> ::std::os::raw::c_int;
6015}
6016unsafe extern "C" {
6017    pub fn MeasuredValueScaled_setValue(self_: MeasuredValueScaled, value: ::std::os::raw::c_int);
6018}
6019unsafe extern "C" {
6020    pub fn MeasuredValueScaled_getQuality(self_: MeasuredValueScaled) -> QualityDescriptor;
6021}
6022unsafe extern "C" {
6023    pub fn MeasuredValueScaled_setQuality(self_: MeasuredValueScaled, quality: QualityDescriptor);
6024}
6025#[repr(C)]
6026#[derive(Debug, Copy, Clone)]
6027pub struct sMeasuredValueScaledWithCP24Time2a {
6028    _unused: [u8; 0],
6029}
6030#[doc = "MeasuredValueScaledWithCP24Time2a : MeasuredValueScaled"]
6031pub type MeasuredValueScaledWithCP24Time2a = *mut sMeasuredValueScaledWithCP24Time2a;
6032unsafe extern "C" {
6033    pub fn MeasuredValueScaledWithCP24Time2a_destroy(self_: MeasuredValueScaledWithCP24Time2a);
6034}
6035unsafe extern "C" {
6036    pub fn MeasuredValueScaledWithCP24Time2a_create(
6037        self_: MeasuredValueScaledWithCP24Time2a,
6038        ioa: ::std::os::raw::c_int,
6039        value: ::std::os::raw::c_int,
6040        quality: QualityDescriptor,
6041        timestamp: CP24Time2a,
6042    ) -> MeasuredValueScaledWithCP24Time2a;
6043}
6044unsafe extern "C" {
6045    pub fn MeasuredValueScaledWithCP24Time2a_getTimestamp(
6046        self_: MeasuredValueScaledWithCP24Time2a,
6047    ) -> CP24Time2a;
6048}
6049unsafe extern "C" {
6050    pub fn MeasuredValueScaledWithCP24Time2a_setTimestamp(
6051        self_: MeasuredValueScaledWithCP24Time2a,
6052        value: CP24Time2a,
6053    );
6054}
6055#[repr(C)]
6056#[derive(Debug, Copy, Clone)]
6057pub struct sMeasuredValueScaledWithCP56Time2a {
6058    _unused: [u8; 0],
6059}
6060#[doc = "MeasuredValueScaledWithCP56Time2a : MeasuredValueScaled"]
6061pub type MeasuredValueScaledWithCP56Time2a = *mut sMeasuredValueScaledWithCP56Time2a;
6062unsafe extern "C" {
6063    pub fn MeasuredValueScaledWithCP56Time2a_destroy(self_: MeasuredValueScaledWithCP56Time2a);
6064}
6065unsafe extern "C" {
6066    pub fn MeasuredValueScaledWithCP56Time2a_create(
6067        self_: MeasuredValueScaledWithCP56Time2a,
6068        ioa: ::std::os::raw::c_int,
6069        value: ::std::os::raw::c_int,
6070        quality: QualityDescriptor,
6071        timestamp: CP56Time2a,
6072    ) -> MeasuredValueScaledWithCP56Time2a;
6073}
6074unsafe extern "C" {
6075    pub fn MeasuredValueScaledWithCP56Time2a_getTimestamp(
6076        self_: MeasuredValueScaledWithCP56Time2a,
6077    ) -> CP56Time2a;
6078}
6079unsafe extern "C" {
6080    pub fn MeasuredValueScaledWithCP56Time2a_setTimestamp(
6081        self_: MeasuredValueScaledWithCP56Time2a,
6082        value: CP56Time2a,
6083    );
6084}
6085#[repr(C)]
6086#[derive(Debug, Copy, Clone)]
6087pub struct sMeasuredValueShort {
6088    _unused: [u8; 0],
6089}
6090#[doc = "MeasuredValueShort : InformationObject"]
6091pub type MeasuredValueShort = *mut sMeasuredValueShort;
6092unsafe extern "C" {
6093    pub fn MeasuredValueShort_destroy(self_: MeasuredValueShort);
6094}
6095unsafe extern "C" {
6096    pub fn MeasuredValueShort_create(
6097        self_: MeasuredValueShort,
6098        ioa: ::std::os::raw::c_int,
6099        value: f32,
6100        quality: QualityDescriptor,
6101    ) -> MeasuredValueShort;
6102}
6103unsafe extern "C" {
6104    pub fn MeasuredValueShort_getValue(self_: MeasuredValueShort) -> f32;
6105}
6106unsafe extern "C" {
6107    pub fn MeasuredValueShort_setValue(self_: MeasuredValueShort, value: f32);
6108}
6109unsafe extern "C" {
6110    pub fn MeasuredValueShort_getQuality(self_: MeasuredValueShort) -> QualityDescriptor;
6111}
6112#[repr(C)]
6113#[derive(Debug, Copy, Clone)]
6114pub struct sMeasuredValueShortWithCP24Time2a {
6115    _unused: [u8; 0],
6116}
6117#[doc = "MeasuredValueShortWithCP24Time2a : MeasuredValueShort"]
6118pub type MeasuredValueShortWithCP24Time2a = *mut sMeasuredValueShortWithCP24Time2a;
6119unsafe extern "C" {
6120    pub fn MeasuredValueShortWithCP24Time2a_destroy(self_: MeasuredValueShortWithCP24Time2a);
6121}
6122unsafe extern "C" {
6123    pub fn MeasuredValueShortWithCP24Time2a_create(
6124        self_: MeasuredValueShortWithCP24Time2a,
6125        ioa: ::std::os::raw::c_int,
6126        value: f32,
6127        quality: QualityDescriptor,
6128        timestamp: CP24Time2a,
6129    ) -> MeasuredValueShortWithCP24Time2a;
6130}
6131unsafe extern "C" {
6132    pub fn MeasuredValueShortWithCP24Time2a_getTimestamp(
6133        self_: MeasuredValueShortWithCP24Time2a,
6134    ) -> CP24Time2a;
6135}
6136unsafe extern "C" {
6137    pub fn MeasuredValueShortWithCP24Time2a_setTimestamp(
6138        self_: MeasuredValueShortWithCP24Time2a,
6139        value: CP24Time2a,
6140    );
6141}
6142#[repr(C)]
6143#[derive(Debug, Copy, Clone)]
6144pub struct sMeasuredValueShortWithCP56Time2a {
6145    _unused: [u8; 0],
6146}
6147#[doc = "MeasuredValueShortWithCP56Time2a : MeasuredValueShort"]
6148pub type MeasuredValueShortWithCP56Time2a = *mut sMeasuredValueShortWithCP56Time2a;
6149unsafe extern "C" {
6150    pub fn MeasuredValueShortWithCP56Time2a_destroy(self_: MeasuredValueShortWithCP56Time2a);
6151}
6152unsafe extern "C" {
6153    pub fn MeasuredValueShortWithCP56Time2a_create(
6154        self_: MeasuredValueShortWithCP56Time2a,
6155        ioa: ::std::os::raw::c_int,
6156        value: f32,
6157        quality: QualityDescriptor,
6158        timestamp: CP56Time2a,
6159    ) -> MeasuredValueShortWithCP56Time2a;
6160}
6161unsafe extern "C" {
6162    pub fn MeasuredValueShortWithCP56Time2a_getTimestamp(
6163        self_: MeasuredValueShortWithCP56Time2a,
6164    ) -> CP56Time2a;
6165}
6166unsafe extern "C" {
6167    pub fn MeasuredValueShortWithCP56Time2a_setTimestamp(
6168        self_: MeasuredValueShortWithCP56Time2a,
6169        value: CP56Time2a,
6170    );
6171}
6172#[repr(C)]
6173#[derive(Debug, Copy, Clone)]
6174pub struct sIntegratedTotals {
6175    _unused: [u8; 0],
6176}
6177#[doc = "IntegratedTotals : InformationObject"]
6178pub type IntegratedTotals = *mut sIntegratedTotals;
6179unsafe extern "C" {
6180    pub fn IntegratedTotals_destroy(self_: IntegratedTotals);
6181}
6182unsafe extern "C" {
6183    #[doc = "Create a new instance of IntegratedTotals information object\n\n For message type: M_IT_NA_1 (15)\n\n # Arguments\n\n* `self` - Reference to an existing instance to reuse, if NULL a new instance will we dynamically allocated\n * `ioa` - Information object address\n * `value` - binary counter reading value and state\n\n # Returns\n\nReference to the new instance"]
6184    pub fn IntegratedTotals_create(
6185        self_: IntegratedTotals,
6186        ioa: ::std::os::raw::c_int,
6187        value: BinaryCounterReading,
6188    ) -> IntegratedTotals;
6189}
6190unsafe extern "C" {
6191    pub fn IntegratedTotals_getBCR(self_: IntegratedTotals) -> BinaryCounterReading;
6192}
6193unsafe extern "C" {
6194    pub fn IntegratedTotals_setBCR(self_: IntegratedTotals, value: BinaryCounterReading);
6195}
6196#[repr(C)]
6197#[derive(Debug, Copy, Clone)]
6198pub struct sIntegratedTotalsWithCP24Time2a {
6199    _unused: [u8; 0],
6200}
6201#[doc = "IntegratedTotalsWithCP24Time2a : IntegratedTotals"]
6202pub type IntegratedTotalsWithCP24Time2a = *mut sIntegratedTotalsWithCP24Time2a;
6203unsafe extern "C" {
6204    #[doc = "Create a new instance of IntegratedTotalsWithCP24Time2a information object\n\n For message type: M_IT_TA_1 (16)\n\n # Arguments\n\n* `self` - Reference to an existing instance to reuse, if NULL a new instance will we dynamically allocated\n * `ioa` - Information object address\n * `value` - binary counter reading value and state\n * `timestamp` - timestamp of the reading\n\n # Returns\n\nReference to the new instance"]
6205    pub fn IntegratedTotalsWithCP24Time2a_create(
6206        self_: IntegratedTotalsWithCP24Time2a,
6207        ioa: ::std::os::raw::c_int,
6208        value: BinaryCounterReading,
6209        timestamp: CP24Time2a,
6210    ) -> IntegratedTotalsWithCP24Time2a;
6211}
6212unsafe extern "C" {
6213    pub fn IntegratedTotalsWithCP24Time2a_destroy(self_: IntegratedTotalsWithCP24Time2a);
6214}
6215unsafe extern "C" {
6216    pub fn IntegratedTotalsWithCP24Time2a_getTimestamp(
6217        self_: IntegratedTotalsWithCP24Time2a,
6218    ) -> CP24Time2a;
6219}
6220unsafe extern "C" {
6221    pub fn IntegratedTotalsWithCP24Time2a_setTimestamp(
6222        self_: IntegratedTotalsWithCP24Time2a,
6223        value: CP24Time2a,
6224    );
6225}
6226#[repr(C)]
6227#[derive(Debug, Copy, Clone)]
6228pub struct sIntegratedTotalsWithCP56Time2a {
6229    _unused: [u8; 0],
6230}
6231#[doc = "IntegratedTotalsWithCP56Time2a : IntegratedTotals"]
6232pub type IntegratedTotalsWithCP56Time2a = *mut sIntegratedTotalsWithCP56Time2a;
6233unsafe extern "C" {
6234    #[doc = "Create a new instance of IntegratedTotalsWithCP56Time2a information object\n\n For message type: M_IT_TB_1 (37)\n\n # Arguments\n\n* `self` - Reference to an existing instance to reuse, if NULL a new instance will we dynamically allocated\n * `ioa` - Information object address\n * `value` - binary counter reading value and state\n * `timestamp` - timestamp of the reading\n\n # Returns\n\nReference to the new instance"]
6235    pub fn IntegratedTotalsWithCP56Time2a_create(
6236        self_: IntegratedTotalsWithCP56Time2a,
6237        ioa: ::std::os::raw::c_int,
6238        value: BinaryCounterReading,
6239        timestamp: CP56Time2a,
6240    ) -> IntegratedTotalsWithCP56Time2a;
6241}
6242unsafe extern "C" {
6243    pub fn IntegratedTotalsWithCP56Time2a_destroy(self_: IntegratedTotalsWithCP56Time2a);
6244}
6245unsafe extern "C" {
6246    pub fn IntegratedTotalsWithCP56Time2a_getTimestamp(
6247        self_: IntegratedTotalsWithCP56Time2a,
6248    ) -> CP56Time2a;
6249}
6250unsafe extern "C" {
6251    pub fn IntegratedTotalsWithCP56Time2a_setTimestamp(
6252        self_: IntegratedTotalsWithCP56Time2a,
6253        value: CP56Time2a,
6254    );
6255}
6256#[repr(C)]
6257#[derive(Debug, Copy, Clone)]
6258pub struct sEventOfProtectionEquipment {
6259    _unused: [u8; 0],
6260}
6261#[doc = "EventOfProtectionEquipment : InformationObject"]
6262pub type EventOfProtectionEquipment = *mut sEventOfProtectionEquipment;
6263unsafe extern "C" {
6264    pub fn EventOfProtectionEquipment_destroy(self_: EventOfProtectionEquipment);
6265}
6266unsafe extern "C" {
6267    pub fn EventOfProtectionEquipment_create(
6268        self_: EventOfProtectionEquipment,
6269        ioa: ::std::os::raw::c_int,
6270        event: SingleEvent,
6271        elapsedTime: CP16Time2a,
6272        timestamp: CP24Time2a,
6273    ) -> EventOfProtectionEquipment;
6274}
6275unsafe extern "C" {
6276    pub fn EventOfProtectionEquipment_getEvent(self_: EventOfProtectionEquipment) -> SingleEvent;
6277}
6278unsafe extern "C" {
6279    pub fn EventOfProtectionEquipment_getElapsedTime(
6280        self_: EventOfProtectionEquipment,
6281    ) -> CP16Time2a;
6282}
6283unsafe extern "C" {
6284    pub fn EventOfProtectionEquipment_getTimestamp(self_: EventOfProtectionEquipment)
6285    -> CP24Time2a;
6286}
6287#[repr(C)]
6288#[derive(Debug, Copy, Clone)]
6289pub struct sPackedStartEventsOfProtectionEquipment {
6290    _unused: [u8; 0],
6291}
6292#[doc = "PackedStartEventsOfProtectionEquipment : InformationObject"]
6293pub type PackedStartEventsOfProtectionEquipment = *mut sPackedStartEventsOfProtectionEquipment;
6294unsafe extern "C" {
6295    pub fn PackedStartEventsOfProtectionEquipment_create(
6296        self_: PackedStartEventsOfProtectionEquipment,
6297        ioa: ::std::os::raw::c_int,
6298        event: StartEvent,
6299        qdp: QualityDescriptorP,
6300        elapsedTime: CP16Time2a,
6301        timestamp: CP24Time2a,
6302    ) -> PackedStartEventsOfProtectionEquipment;
6303}
6304unsafe extern "C" {
6305    pub fn PackedStartEventsOfProtectionEquipment_destroy(
6306        self_: PackedStartEventsOfProtectionEquipment,
6307    );
6308}
6309unsafe extern "C" {
6310    pub fn PackedStartEventsOfProtectionEquipment_getEvent(
6311        self_: PackedStartEventsOfProtectionEquipment,
6312    ) -> StartEvent;
6313}
6314unsafe extern "C" {
6315    pub fn PackedStartEventsOfProtectionEquipment_getQuality(
6316        self_: PackedStartEventsOfProtectionEquipment,
6317    ) -> QualityDescriptorP;
6318}
6319unsafe extern "C" {
6320    pub fn PackedStartEventsOfProtectionEquipment_getElapsedTime(
6321        self_: PackedStartEventsOfProtectionEquipment,
6322    ) -> CP16Time2a;
6323}
6324unsafe extern "C" {
6325    pub fn PackedStartEventsOfProtectionEquipment_getTimestamp(
6326        self_: PackedStartEventsOfProtectionEquipment,
6327    ) -> CP24Time2a;
6328}
6329#[repr(C)]
6330#[derive(Debug, Copy, Clone)]
6331pub struct sPackedOutputCircuitInfo {
6332    _unused: [u8; 0],
6333}
6334#[doc = "PacketOutputCircuitInfo : InformationObject"]
6335pub type PackedOutputCircuitInfo = *mut sPackedOutputCircuitInfo;
6336unsafe extern "C" {
6337    pub fn PackedOutputCircuitInfo_destroy(self_: PackedOutputCircuitInfo);
6338}
6339unsafe extern "C" {
6340    pub fn PackedOutputCircuitInfo_create(
6341        self_: PackedOutputCircuitInfo,
6342        ioa: ::std::os::raw::c_int,
6343        oci: OutputCircuitInfo,
6344        qdp: QualityDescriptorP,
6345        operatingTime: CP16Time2a,
6346        timestamp: CP24Time2a,
6347    ) -> PackedOutputCircuitInfo;
6348}
6349unsafe extern "C" {
6350    pub fn PackedOutputCircuitInfo_getOCI(self_: PackedOutputCircuitInfo) -> OutputCircuitInfo;
6351}
6352unsafe extern "C" {
6353    pub fn PackedOutputCircuitInfo_getQuality(self_: PackedOutputCircuitInfo)
6354    -> QualityDescriptorP;
6355}
6356unsafe extern "C" {
6357    pub fn PackedOutputCircuitInfo_getOperatingTime(self_: PackedOutputCircuitInfo) -> CP16Time2a;
6358}
6359unsafe extern "C" {
6360    pub fn PackedOutputCircuitInfo_getTimestamp(self_: PackedOutputCircuitInfo) -> CP24Time2a;
6361}
6362#[repr(C)]
6363#[derive(Debug, Copy, Clone)]
6364pub struct sPackedSinglePointWithSCD {
6365    _unused: [u8; 0],
6366}
6367#[doc = "PackedSinglePointWithSCD : InformationObject"]
6368pub type PackedSinglePointWithSCD = *mut sPackedSinglePointWithSCD;
6369unsafe extern "C" {
6370    pub fn PackedSinglePointWithSCD_destroy(self_: PackedSinglePointWithSCD);
6371}
6372unsafe extern "C" {
6373    pub fn PackedSinglePointWithSCD_create(
6374        self_: PackedSinglePointWithSCD,
6375        ioa: ::std::os::raw::c_int,
6376        scd: StatusAndStatusChangeDetection,
6377        qds: QualityDescriptor,
6378    ) -> PackedSinglePointWithSCD;
6379}
6380unsafe extern "C" {
6381    pub fn PackedSinglePointWithSCD_getQuality(
6382        self_: PackedSinglePointWithSCD,
6383    ) -> QualityDescriptor;
6384}
6385unsafe extern "C" {
6386    pub fn PackedSinglePointWithSCD_getSCD(
6387        self_: PackedSinglePointWithSCD,
6388    ) -> StatusAndStatusChangeDetection;
6389}
6390#[repr(C)]
6391#[derive(Debug, Copy, Clone)]
6392pub struct sSingleCommand {
6393    _unused: [u8; 0],
6394}
6395#[doc = "SingleCommand"]
6396pub type SingleCommand = *mut sSingleCommand;
6397unsafe extern "C" {
6398    #[doc = "Create a single point command information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `command` (direction in) - the command value\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `qu` (direction in) - qualifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)\n\n # Returns\n\nthe initialized instance"]
6399    pub fn SingleCommand_create(
6400        self_: SingleCommand,
6401        ioa: ::std::os::raw::c_int,
6402        command: bool,
6403        selectCommand: bool,
6404        qu: ::std::os::raw::c_int,
6405    ) -> SingleCommand;
6406}
6407unsafe extern "C" {
6408    pub fn SingleCommand_destroy(self_: SingleCommand);
6409}
6410unsafe extern "C" {
6411    #[doc = "Get the qualifier of command QU value\n\n # Returns\n\nthe QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)"]
6412    pub fn SingleCommand_getQU(self_: SingleCommand) -> ::std::os::raw::c_int;
6413}
6414unsafe extern "C" {
6415    #[doc = "Get the state (command) value"]
6416    pub fn SingleCommand_getState(self_: SingleCommand) -> bool;
6417}
6418unsafe extern "C" {
6419    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6420    pub fn SingleCommand_isSelect(self_: SingleCommand) -> bool;
6421}
6422#[repr(C)]
6423#[derive(Debug, Copy, Clone)]
6424pub struct sSingleCommandWithCP56Time2a {
6425    _unused: [u8; 0],
6426}
6427#[doc = "SingleCommandWithCP56Time2a : SingleCommand"]
6428pub type SingleCommandWithCP56Time2a = *mut sSingleCommandWithCP56Time2a;
6429unsafe extern "C" {
6430    pub fn SingleCommandWithCP56Time2a_destroy(self_: SingleCommandWithCP56Time2a);
6431}
6432unsafe extern "C" {
6433    #[doc = "Create a single command with CP56Time2a time stamp information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `command` (direction in) - the command value\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `qu` (direction in) - qualifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)\n * `timestamp` (direction in) - the time stamp value\n\n # Returns\n\nthe initialized instance"]
6434    pub fn SingleCommandWithCP56Time2a_create(
6435        self_: SingleCommandWithCP56Time2a,
6436        ioa: ::std::os::raw::c_int,
6437        command: bool,
6438        selectCommand: bool,
6439        qu: ::std::os::raw::c_int,
6440        timestamp: CP56Time2a,
6441    ) -> SingleCommandWithCP56Time2a;
6442}
6443unsafe extern "C" {
6444    #[doc = "Get the time stamp of the command.\n\n NOTE: according to the specification the command shall not be accepted when the time stamp differs too much\n from the time of the receiving system. In this case the command has to be discarded silently.\n\n # Returns\n\nthe time stamp of the command"]
6445    pub fn SingleCommandWithCP56Time2a_getTimestamp(
6446        self_: SingleCommandWithCP56Time2a,
6447    ) -> CP56Time2a;
6448}
6449#[repr(C)]
6450#[derive(Debug, Copy, Clone)]
6451pub struct sDoubleCommand {
6452    _unused: [u8; 0],
6453}
6454#[doc = "DoubleCommand : InformationObject"]
6455pub type DoubleCommand = *mut sDoubleCommand;
6456unsafe extern "C" {
6457    pub fn DoubleCommand_destroy(self_: DoubleCommand);
6458}
6459unsafe extern "C" {
6460    #[doc = "Create a double command information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `command` (direction in) - the double command state (0 = not permitted, 1 = off, 2 = on, 3 = not permitted)\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `qu` (direction in) - qualifier of command QU parameter(0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output)\n\n # Returns\n\nthe initialized instance"]
6461    pub fn DoubleCommand_create(
6462        self_: DoubleCommand,
6463        ioa: ::std::os::raw::c_int,
6464        command: ::std::os::raw::c_int,
6465        selectCommand: bool,
6466        qu: ::std::os::raw::c_int,
6467    ) -> DoubleCommand;
6468}
6469unsafe extern "C" {
6470    #[doc = "Get the qualifier of command QU value\n\n # Returns\n\nthe QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)"]
6471    pub fn DoubleCommand_getQU(self_: DoubleCommand) -> ::std::os::raw::c_int;
6472}
6473unsafe extern "C" {
6474    #[doc = "Get the state (command) value\n\n # Returns\n\n0 = not permitted, 1 = off, 2 = on, 3 = not permitted"]
6475    pub fn DoubleCommand_getState(self_: DoubleCommand) -> ::std::os::raw::c_int;
6476}
6477unsafe extern "C" {
6478    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6479    pub fn DoubleCommand_isSelect(self_: DoubleCommand) -> bool;
6480}
6481#[repr(C)]
6482#[derive(Debug, Copy, Clone)]
6483pub struct sStepCommand {
6484    _unused: [u8; 0],
6485}
6486#[doc = "StepCommand : InformationObject"]
6487pub type StepCommand = *mut sStepCommand;
6488unsafe extern "C" {
6489    pub fn StepCommand_destroy(self_: StepCommand);
6490}
6491unsafe extern "C" {
6492    pub fn StepCommand_create(
6493        self_: StepCommand,
6494        ioa: ::std::os::raw::c_int,
6495        command: StepCommandValue,
6496        selectCommand: bool,
6497        qu: ::std::os::raw::c_int,
6498    ) -> StepCommand;
6499}
6500unsafe extern "C" {
6501    #[doc = "Get the qualifier of command QU value\n\n # Returns\n\nthe QU value (0 = no additional definition, 1 = short pulse, 2 = long pulse, 3 = persistent output, > 3 = reserved)"]
6502    pub fn StepCommand_getQU(self_: StepCommand) -> ::std::os::raw::c_int;
6503}
6504unsafe extern "C" {
6505    pub fn StepCommand_getState(self_: StepCommand) -> StepCommandValue;
6506}
6507unsafe extern "C" {
6508    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6509    pub fn StepCommand_isSelect(self_: StepCommand) -> bool;
6510}
6511#[repr(C)]
6512#[derive(Debug, Copy, Clone)]
6513pub struct sSetpointCommandNormalized {
6514    _unused: [u8; 0],
6515}
6516#[doc = "SetpointCommandNormalized : InformationObject"]
6517pub type SetpointCommandNormalized = *mut sSetpointCommandNormalized;
6518unsafe extern "C" {
6519    pub fn SetpointCommandNormalized_destroy(self_: SetpointCommandNormalized);
6520}
6521unsafe extern "C" {
6522    #[doc = "Create a normalized set point command information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - normalized value between -1 and 1\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `ql` (direction in) - qualifier of set point command (0 = standard, 1..127 = reserved)\n\n # Returns\n\nthe initialized instance"]
6523    pub fn SetpointCommandNormalized_create(
6524        self_: SetpointCommandNormalized,
6525        ioa: ::std::os::raw::c_int,
6526        value: f32,
6527        selectCommand: bool,
6528        ql: ::std::os::raw::c_int,
6529    ) -> SetpointCommandNormalized;
6530}
6531unsafe extern "C" {
6532    pub fn SetpointCommandNormalized_getValue(self_: SetpointCommandNormalized) -> f32;
6533}
6534unsafe extern "C" {
6535    pub fn SetpointCommandNormalized_getQL(
6536        self_: SetpointCommandNormalized,
6537    ) -> ::std::os::raw::c_int;
6538}
6539unsafe extern "C" {
6540    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6541    pub fn SetpointCommandNormalized_isSelect(self_: SetpointCommandNormalized) -> bool;
6542}
6543#[repr(C)]
6544#[derive(Debug, Copy, Clone)]
6545pub struct sSetpointCommandScaled {
6546    _unused: [u8; 0],
6547}
6548#[doc = "SetpointCommandScaled : InformationObject"]
6549pub type SetpointCommandScaled = *mut sSetpointCommandScaled;
6550unsafe extern "C" {
6551    pub fn SetpointCommandScaled_destroy(self_: SetpointCommandScaled);
6552}
6553unsafe extern "C" {
6554    #[doc = "Create a scaled set point command information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - the scaled value (–32.768 .. 32.767)\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `ql` (direction in) - qualifier of set point command (0 = standard, 1..127 = reserved)\n\n # Returns\n\nthe initialized instance"]
6555    pub fn SetpointCommandScaled_create(
6556        self_: SetpointCommandScaled,
6557        ioa: ::std::os::raw::c_int,
6558        value: ::std::os::raw::c_int,
6559        selectCommand: bool,
6560        ql: ::std::os::raw::c_int,
6561    ) -> SetpointCommandScaled;
6562}
6563unsafe extern "C" {
6564    pub fn SetpointCommandScaled_getValue(self_: SetpointCommandScaled) -> ::std::os::raw::c_int;
6565}
6566unsafe extern "C" {
6567    pub fn SetpointCommandScaled_getQL(self_: SetpointCommandScaled) -> ::std::os::raw::c_int;
6568}
6569unsafe extern "C" {
6570    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6571    pub fn SetpointCommandScaled_isSelect(self_: SetpointCommandScaled) -> bool;
6572}
6573#[repr(C)]
6574#[derive(Debug, Copy, Clone)]
6575pub struct sSetpointCommandShort {
6576    _unused: [u8; 0],
6577}
6578#[doc = "SetpointCommandShort: InformationObject"]
6579pub type SetpointCommandShort = *mut sSetpointCommandShort;
6580unsafe extern "C" {
6581    pub fn SetpointCommandShort_destroy(self_: SetpointCommandShort);
6582}
6583unsafe extern "C" {
6584    #[doc = "Create a short floating point set point command information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - short floating point number\n * `selectCommand` (direction in) - (S/E bit) if true send \"select\", otherwise \"execute\"\n * `ql` (direction in) - qualifier of set point command (0 = standard, 1..127 = reserved)\n\n # Returns\n\nthe initialized instance"]
6585    pub fn SetpointCommandShort_create(
6586        self_: SetpointCommandShort,
6587        ioa: ::std::os::raw::c_int,
6588        value: f32,
6589        selectCommand: bool,
6590        ql: ::std::os::raw::c_int,
6591    ) -> SetpointCommandShort;
6592}
6593unsafe extern "C" {
6594    pub fn SetpointCommandShort_getValue(self_: SetpointCommandShort) -> f32;
6595}
6596unsafe extern "C" {
6597    pub fn SetpointCommandShort_getQL(self_: SetpointCommandShort) -> ::std::os::raw::c_int;
6598}
6599unsafe extern "C" {
6600    #[doc = "Return the value of the S/E bit of the qualifier of command\n\n # Returns\n\nS/E bit, true = select, false = execute"]
6601    pub fn SetpointCommandShort_isSelect(self_: SetpointCommandShort) -> bool;
6602}
6603#[repr(C)]
6604#[derive(Debug, Copy, Clone)]
6605pub struct sBitstring32Command {
6606    _unused: [u8; 0],
6607}
6608#[doc = "Bitstring32Command : InformationObject"]
6609pub type Bitstring32Command = *mut sBitstring32Command;
6610unsafe extern "C" {
6611    pub fn Bitstring32Command_create(
6612        self_: Bitstring32Command,
6613        ioa: ::std::os::raw::c_int,
6614        value: u32,
6615    ) -> Bitstring32Command;
6616}
6617unsafe extern "C" {
6618    pub fn Bitstring32Command_destroy(self_: Bitstring32Command);
6619}
6620unsafe extern "C" {
6621    pub fn Bitstring32Command_getValue(self_: Bitstring32Command) -> u32;
6622}
6623#[repr(C)]
6624#[derive(Debug, Copy, Clone)]
6625pub struct sInterrogationCommand {
6626    _unused: [u8; 0],
6627}
6628#[doc = "InterrogationCommand : InformationObject"]
6629pub type InterrogationCommand = *mut sInterrogationCommand;
6630unsafe extern "C" {
6631    pub fn InterrogationCommand_create(
6632        self_: InterrogationCommand,
6633        ioa: ::std::os::raw::c_int,
6634        qoi: u8,
6635    ) -> InterrogationCommand;
6636}
6637unsafe extern "C" {
6638    pub fn InterrogationCommand_destroy(self_: InterrogationCommand);
6639}
6640unsafe extern "C" {
6641    pub fn InterrogationCommand_getQOI(self_: InterrogationCommand) -> u8;
6642}
6643#[repr(C)]
6644#[derive(Debug, Copy, Clone)]
6645pub struct sReadCommand {
6646    _unused: [u8; 0],
6647}
6648#[doc = "ReadCommand : InformationObject"]
6649pub type ReadCommand = *mut sReadCommand;
6650unsafe extern "C" {
6651    pub fn ReadCommand_create(self_: ReadCommand, ioa: ::std::os::raw::c_int) -> ReadCommand;
6652}
6653unsafe extern "C" {
6654    pub fn ReadCommand_destroy(self_: ReadCommand);
6655}
6656#[repr(C)]
6657#[derive(Debug, Copy, Clone)]
6658pub struct sClockSynchronizationCommand {
6659    _unused: [u8; 0],
6660}
6661#[doc = "ClockSynchronizationCommand : InformationObject"]
6662pub type ClockSynchronizationCommand = *mut sClockSynchronizationCommand;
6663unsafe extern "C" {
6664    pub fn ClockSynchronizationCommand_create(
6665        self_: ClockSynchronizationCommand,
6666        ioa: ::std::os::raw::c_int,
6667        timestamp: CP56Time2a,
6668    ) -> ClockSynchronizationCommand;
6669}
6670unsafe extern "C" {
6671    pub fn ClockSynchronizationCommand_destroy(self_: ClockSynchronizationCommand);
6672}
6673unsafe extern "C" {
6674    pub fn ClockSynchronizationCommand_getTime(self_: ClockSynchronizationCommand) -> CP56Time2a;
6675}
6676#[doc = "ParameterNormalizedValue : MeasuredValueNormalized"]
6677pub type ParameterNormalizedValue = *mut sMeasuredValueNormalized;
6678unsafe extern "C" {
6679    pub fn ParameterNormalizedValue_destroy(self_: ParameterNormalizedValue);
6680}
6681unsafe extern "C" {
6682    #[doc = "Create a parameter measured values, normalized (P_ME_NA_1) information object\n\n NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring\n direction as a response of an interrogation request (with COT=INTERROGATED_BY...).\n\n Possible values of qpm:\n 0 = not used\n 1 = threshold value\n 2 = smoothing factor (filter time constant)\n 3 = low limit for transmission of measured values\n 4 = high limit for transmission of measured values\n 5..31 = reserved for standard definitions of CS101 (compatible range)\n 32..63 = reserved for special use (private range)\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - the normalized value (-1 .. 1)\n * `qpm` (direction in) - qualifier of measured values (QualifierOfParameterMV)\n\n # Returns\n\nthe initialized instance"]
6683    pub fn ParameterNormalizedValue_create(
6684        self_: ParameterNormalizedValue,
6685        ioa: ::std::os::raw::c_int,
6686        value: f32,
6687        qpm: QualifierOfParameterMV,
6688    ) -> ParameterNormalizedValue;
6689}
6690unsafe extern "C" {
6691    pub fn ParameterNormalizedValue_getValue(self_: ParameterNormalizedValue) -> f32;
6692}
6693unsafe extern "C" {
6694    pub fn ParameterNormalizedValue_setValue(self_: ParameterNormalizedValue, value: f32);
6695}
6696unsafe extern "C" {
6697    #[doc = "Returns the qualifier of measured values (QPM)\n\n # Returns\n\nthe QPM value (QualifierOfParameterMV)"]
6698    pub fn ParameterNormalizedValue_getQPM(
6699        self_: ParameterNormalizedValue,
6700    ) -> QualifierOfParameterMV;
6701}
6702#[doc = "ParameterScaledValue : MeasuredValueScaled"]
6703pub type ParameterScaledValue = *mut sMeasuredValueScaled;
6704unsafe extern "C" {
6705    pub fn ParameterScaledValue_destroy(self_: ParameterScaledValue);
6706}
6707unsafe extern "C" {
6708    #[doc = "Create a parameter measured values, scaled (P_ME_NB_1) information object\n\n NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring\n direction as a response of an interrogation request (with COT=INTERROGATED_BY...).\n\n Possible values of qpm:\n 0 = not used\n 1 = threshold value\n 2 = smoothing factor (filter time constant)\n 3 = low limit for transmission of measured values\n 4 = high limit for transmission of measured values\n 5..31 = reserved for standard definitions of CS101 (compatible range)\n 32..63 = reserved for special use (private range)\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - the scaled value (–32.768 .. 32.767)\n * `qpm` (direction in) - qualifier of measured values (QualifierOfParameterMV)\n\n # Returns\n\nthe initialized instance"]
6709    pub fn ParameterScaledValue_create(
6710        self_: ParameterScaledValue,
6711        ioa: ::std::os::raw::c_int,
6712        value: ::std::os::raw::c_int,
6713        qpm: QualifierOfParameterMV,
6714    ) -> ParameterScaledValue;
6715}
6716unsafe extern "C" {
6717    pub fn ParameterScaledValue_getValue(self_: ParameterScaledValue) -> ::std::os::raw::c_int;
6718}
6719unsafe extern "C" {
6720    pub fn ParameterScaledValue_setValue(self_: ParameterScaledValue, value: ::std::os::raw::c_int);
6721}
6722unsafe extern "C" {
6723    #[doc = "Returns the qualifier of measured values (QPM)\n\n # Returns\n\nthe QPM value (QualifierOfParameterMV)"]
6724    pub fn ParameterScaledValue_getQPM(self_: ParameterScaledValue) -> QualifierOfParameterMV;
6725}
6726#[doc = "ParameterFloatValue : MeasuredValueShort"]
6727pub type ParameterFloatValue = *mut sMeasuredValueShort;
6728unsafe extern "C" {
6729    pub fn ParameterFloatValue_destroy(self_: ParameterFloatValue);
6730}
6731unsafe extern "C" {
6732    #[doc = "Create a parameter measured values, short floating point (P_ME_NC_1) information object\n\n NOTE: Can only be used in control direction (with COT=ACTIVATION) or in monitoring\n direction as a response of an interrogation request (with COT=INTERROGATED_BY...).\n\n Possible values of qpm:\n 0 = not used\n 1 = threshold value\n 2 = smoothing factor (filter time constant)\n 3 = low limit for transmission of measured values\n 4 = high limit for transmission of measured values\n 5..31 = reserved for standard definitions of CS101 (compatible range)\n 32..63 = reserved for special use (private range)\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `value` (direction in) - short floating point number\n * `qpm` (direction in) - qualifier of measured values (QPM - QualifierOfParameterMV)\n\n # Returns\n\nthe initialized instance"]
6733    pub fn ParameterFloatValue_create(
6734        self_: ParameterFloatValue,
6735        ioa: ::std::os::raw::c_int,
6736        value: f32,
6737        qpm: QualifierOfParameterMV,
6738    ) -> ParameterFloatValue;
6739}
6740unsafe extern "C" {
6741    pub fn ParameterFloatValue_getValue(self_: ParameterFloatValue) -> f32;
6742}
6743unsafe extern "C" {
6744    pub fn ParameterFloatValue_setValue(self_: ParameterFloatValue, value: f32);
6745}
6746unsafe extern "C" {
6747    #[doc = "Returns the qualifier of measured values (QPM)\n\n # Returns\n\nthe QPM value (QualifierOfParameterMV)"]
6748    pub fn ParameterFloatValue_getQPM(self_: ParameterFloatValue) -> QualifierOfParameterMV;
6749}
6750#[repr(C)]
6751#[derive(Debug, Copy, Clone)]
6752pub struct sParameterActivation {
6753    _unused: [u8; 0],
6754}
6755#[doc = "ParameterActivation : InformationObject"]
6756pub type ParameterActivation = *mut sParameterActivation;
6757unsafe extern "C" {
6758    pub fn ParameterActivation_destroy(self_: ParameterActivation);
6759}
6760unsafe extern "C" {
6761    #[doc = "Create a parameter activation (P_AC_NA_1) information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to reuse or NULL to create a new instance\n * `ioa` (direction in) - information object address\n * `qpa` (direction in) - qualifier of parameter activation (3 = act/deact of persistent cyclic or periodic transmission)\n\n # Returns\n\nthe initialized instance"]
6762    pub fn ParameterActivation_create(
6763        self_: ParameterActivation,
6764        ioa: ::std::os::raw::c_int,
6765        qpa: QualifierOfParameterActivation,
6766    ) -> ParameterActivation;
6767}
6768unsafe extern "C" {
6769    #[doc = "Get the qualifier of parameter activation (QPA) value\n\n # Returns\n\n3 = act/deact of persistent cyclic or periodic transmission"]
6770    pub fn ParameterActivation_getQuality(
6771        self_: ParameterActivation,
6772    ) -> QualifierOfParameterActivation;
6773}
6774#[repr(C)]
6775#[derive(Debug, Copy, Clone)]
6776pub struct sEventOfProtectionEquipmentWithCP56Time2a {
6777    _unused: [u8; 0],
6778}
6779#[doc = "EventOfProtectionEquipmentWithCP56Time2a : InformationObject"]
6780pub type EventOfProtectionEquipmentWithCP56Time2a = *mut sEventOfProtectionEquipmentWithCP56Time2a;
6781unsafe extern "C" {
6782    pub fn EventOfProtectionEquipmentWithCP56Time2a_destroy(
6783        self_: EventOfProtectionEquipmentWithCP56Time2a,
6784    );
6785}
6786unsafe extern "C" {
6787    pub fn EventOfProtectionEquipmentWithCP56Time2a_create(
6788        self_: EventOfProtectionEquipmentWithCP56Time2a,
6789        ioa: ::std::os::raw::c_int,
6790        event: SingleEvent,
6791        elapsedTime: CP16Time2a,
6792        timestamp: CP56Time2a,
6793    ) -> EventOfProtectionEquipmentWithCP56Time2a;
6794}
6795unsafe extern "C" {
6796    pub fn EventOfProtectionEquipmentWithCP56Time2a_getEvent(
6797        self_: EventOfProtectionEquipmentWithCP56Time2a,
6798    ) -> SingleEvent;
6799}
6800unsafe extern "C" {
6801    pub fn EventOfProtectionEquipmentWithCP56Time2a_getElapsedTime(
6802        self_: EventOfProtectionEquipmentWithCP56Time2a,
6803    ) -> CP16Time2a;
6804}
6805unsafe extern "C" {
6806    pub fn EventOfProtectionEquipmentWithCP56Time2a_getTimestamp(
6807        self_: EventOfProtectionEquipmentWithCP56Time2a,
6808    ) -> CP56Time2a;
6809}
6810#[repr(C)]
6811#[derive(Debug, Copy, Clone)]
6812pub struct sPackedStartEventsOfProtectionEquipmentWithCP56Time2a {
6813    _unused: [u8; 0],
6814}
6815#[doc = "PackedStartEventsOfProtectionEquipmentWithCP56Time2a : InformationObject"]
6816pub type PackedStartEventsOfProtectionEquipmentWithCP56Time2a =
6817    *mut sPackedStartEventsOfProtectionEquipmentWithCP56Time2a;
6818unsafe extern "C" {
6819    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_destroy(
6820        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6821    );
6822}
6823unsafe extern "C" {
6824    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_create(
6825        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6826        ioa: ::std::os::raw::c_int,
6827        event: StartEvent,
6828        qdp: QualityDescriptorP,
6829        elapsedTime: CP16Time2a,
6830        timestamp: CP56Time2a,
6831    ) -> PackedStartEventsOfProtectionEquipmentWithCP56Time2a;
6832}
6833unsafe extern "C" {
6834    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getEvent(
6835        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6836    ) -> StartEvent;
6837}
6838unsafe extern "C" {
6839    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getQuality(
6840        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6841    ) -> QualityDescriptorP;
6842}
6843unsafe extern "C" {
6844    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getElapsedTime(
6845        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6846    ) -> CP16Time2a;
6847}
6848unsafe extern "C" {
6849    pub fn PackedStartEventsOfProtectionEquipmentWithCP56Time2a_getTimestamp(
6850        self_: PackedStartEventsOfProtectionEquipmentWithCP56Time2a,
6851    ) -> CP56Time2a;
6852}
6853#[repr(C)]
6854#[derive(Debug, Copy, Clone)]
6855pub struct sPackedOutputCircuitInfoWithCP56Time2a {
6856    _unused: [u8; 0],
6857}
6858#[doc = "PackedOutputCircuitInfoWithCP56Time2a : InformationObject"]
6859pub type PackedOutputCircuitInfoWithCP56Time2a = *mut sPackedOutputCircuitInfoWithCP56Time2a;
6860unsafe extern "C" {
6861    pub fn PackedOutputCircuitInfoWithCP56Time2a_destroy(
6862        self_: PackedOutputCircuitInfoWithCP56Time2a,
6863    );
6864}
6865unsafe extern "C" {
6866    pub fn PackedOutputCircuitInfoWithCP56Time2a_create(
6867        self_: PackedOutputCircuitInfoWithCP56Time2a,
6868        ioa: ::std::os::raw::c_int,
6869        oci: OutputCircuitInfo,
6870        qdp: QualityDescriptorP,
6871        operatingTime: CP16Time2a,
6872        timestamp: CP56Time2a,
6873    ) -> PackedOutputCircuitInfoWithCP56Time2a;
6874}
6875unsafe extern "C" {
6876    pub fn PackedOutputCircuitInfoWithCP56Time2a_getOCI(
6877        self_: PackedOutputCircuitInfoWithCP56Time2a,
6878    ) -> OutputCircuitInfo;
6879}
6880unsafe extern "C" {
6881    pub fn PackedOutputCircuitInfoWithCP56Time2a_getQuality(
6882        self_: PackedOutputCircuitInfoWithCP56Time2a,
6883    ) -> QualityDescriptorP;
6884}
6885unsafe extern "C" {
6886    pub fn PackedOutputCircuitInfoWithCP56Time2a_getOperatingTime(
6887        self_: PackedOutputCircuitInfoWithCP56Time2a,
6888    ) -> CP16Time2a;
6889}
6890unsafe extern "C" {
6891    pub fn PackedOutputCircuitInfoWithCP56Time2a_getTimestamp(
6892        self_: PackedOutputCircuitInfoWithCP56Time2a,
6893    ) -> CP56Time2a;
6894}
6895#[repr(C)]
6896#[derive(Debug, Copy, Clone)]
6897pub struct sDoubleCommandWithCP56Time2a {
6898    _unused: [u8; 0],
6899}
6900#[doc = "DoubleCommandWithCP56Time2a : DoubleCommand"]
6901pub type DoubleCommandWithCP56Time2a = *mut sDoubleCommandWithCP56Time2a;
6902unsafe extern "C" {
6903    pub fn DoubleCommandWithCP56Time2a_destroy(self_: DoubleCommandWithCP56Time2a);
6904}
6905unsafe extern "C" {
6906    pub fn DoubleCommandWithCP56Time2a_create(
6907        self_: DoubleCommandWithCP56Time2a,
6908        ioa: ::std::os::raw::c_int,
6909        command: ::std::os::raw::c_int,
6910        selectCommand: bool,
6911        qu: ::std::os::raw::c_int,
6912        timestamp: CP56Time2a,
6913    ) -> DoubleCommandWithCP56Time2a;
6914}
6915unsafe extern "C" {
6916    pub fn DoubleCommandWithCP56Time2a_getQU(
6917        self_: DoubleCommandWithCP56Time2a,
6918    ) -> ::std::os::raw::c_int;
6919}
6920unsafe extern "C" {
6921    pub fn DoubleCommandWithCP56Time2a_getState(
6922        self_: DoubleCommandWithCP56Time2a,
6923    ) -> ::std::os::raw::c_int;
6924}
6925unsafe extern "C" {
6926    pub fn DoubleCommandWithCP56Time2a_isSelect(self_: DoubleCommandWithCP56Time2a) -> bool;
6927}
6928unsafe extern "C" {
6929    pub fn DoubleCommandWithCP56Time2a_getTimestamp(
6930        self_: DoubleCommandWithCP56Time2a,
6931    ) -> CP56Time2a;
6932}
6933#[repr(C)]
6934#[derive(Debug, Copy, Clone)]
6935pub struct sStepCommandWithCP56Time2a {
6936    _unused: [u8; 0],
6937}
6938#[doc = "StepCommandWithCP56Time2a : InformationObject"]
6939pub type StepCommandWithCP56Time2a = *mut sStepCommandWithCP56Time2a;
6940unsafe extern "C" {
6941    pub fn StepCommandWithCP56Time2a_destroy(self_: StepCommandWithCP56Time2a);
6942}
6943unsafe extern "C" {
6944    pub fn StepCommandWithCP56Time2a_create(
6945        self_: StepCommandWithCP56Time2a,
6946        ioa: ::std::os::raw::c_int,
6947        command: StepCommandValue,
6948        selectCommand: bool,
6949        qu: ::std::os::raw::c_int,
6950        timestamp: CP56Time2a,
6951    ) -> StepCommandWithCP56Time2a;
6952}
6953unsafe extern "C" {
6954    pub fn StepCommandWithCP56Time2a_getQU(
6955        self_: StepCommandWithCP56Time2a,
6956    ) -> ::std::os::raw::c_int;
6957}
6958unsafe extern "C" {
6959    pub fn StepCommandWithCP56Time2a_getState(self_: StepCommandWithCP56Time2a)
6960    -> StepCommandValue;
6961}
6962unsafe extern "C" {
6963    pub fn StepCommandWithCP56Time2a_isSelect(self_: StepCommandWithCP56Time2a) -> bool;
6964}
6965unsafe extern "C" {
6966    pub fn StepCommandWithCP56Time2a_getTimestamp(self_: StepCommandWithCP56Time2a) -> CP56Time2a;
6967}
6968#[repr(C)]
6969#[derive(Debug, Copy, Clone)]
6970pub struct sSetpointCommandNormalizedWithCP56Time2a {
6971    _unused: [u8; 0],
6972}
6973#[doc = "SetpointCommandNormalizedWithCP56Time2a : SetpointCommandNormalized"]
6974pub type SetpointCommandNormalizedWithCP56Time2a = *mut sSetpointCommandNormalizedWithCP56Time2a;
6975unsafe extern "C" {
6976    pub fn SetpointCommandNormalizedWithCP56Time2a_destroy(
6977        self_: SetpointCommandNormalizedWithCP56Time2a,
6978    );
6979}
6980unsafe extern "C" {
6981    pub fn SetpointCommandNormalizedWithCP56Time2a_create(
6982        self_: SetpointCommandNormalizedWithCP56Time2a,
6983        ioa: ::std::os::raw::c_int,
6984        value: f32,
6985        selectCommand: bool,
6986        ql: ::std::os::raw::c_int,
6987        timestamp: CP56Time2a,
6988    ) -> SetpointCommandNormalizedWithCP56Time2a;
6989}
6990unsafe extern "C" {
6991    pub fn SetpointCommandNormalizedWithCP56Time2a_getValue(
6992        self_: SetpointCommandNormalizedWithCP56Time2a,
6993    ) -> f32;
6994}
6995unsafe extern "C" {
6996    pub fn SetpointCommandNormalizedWithCP56Time2a_getQL(
6997        self_: SetpointCommandNormalizedWithCP56Time2a,
6998    ) -> ::std::os::raw::c_int;
6999}
7000unsafe extern "C" {
7001    pub fn SetpointCommandNormalizedWithCP56Time2a_isSelect(
7002        self_: SetpointCommandNormalizedWithCP56Time2a,
7003    ) -> bool;
7004}
7005unsafe extern "C" {
7006    pub fn SetpointCommandNormalizedWithCP56Time2a_getTimestamp(
7007        self_: SetpointCommandNormalizedWithCP56Time2a,
7008    ) -> CP56Time2a;
7009}
7010#[repr(C)]
7011#[derive(Debug, Copy, Clone)]
7012pub struct sSetpointCommandScaledWithCP56Time2a {
7013    _unused: [u8; 0],
7014}
7015#[doc = "SetpointCommandScaledWithCP56Time2a : SetpointCommandScaled"]
7016pub type SetpointCommandScaledWithCP56Time2a = *mut sSetpointCommandScaledWithCP56Time2a;
7017unsafe extern "C" {
7018    pub fn SetpointCommandScaledWithCP56Time2a_destroy(self_: SetpointCommandScaledWithCP56Time2a);
7019}
7020unsafe extern "C" {
7021    pub fn SetpointCommandScaledWithCP56Time2a_create(
7022        self_: SetpointCommandScaledWithCP56Time2a,
7023        ioa: ::std::os::raw::c_int,
7024        value: ::std::os::raw::c_int,
7025        selectCommand: bool,
7026        ql: ::std::os::raw::c_int,
7027        timestamp: CP56Time2a,
7028    ) -> SetpointCommandScaledWithCP56Time2a;
7029}
7030unsafe extern "C" {
7031    pub fn SetpointCommandScaledWithCP56Time2a_getValue(
7032        self_: SetpointCommandScaledWithCP56Time2a,
7033    ) -> ::std::os::raw::c_int;
7034}
7035unsafe extern "C" {
7036    pub fn SetpointCommandScaledWithCP56Time2a_getQL(
7037        self_: SetpointCommandScaledWithCP56Time2a,
7038    ) -> ::std::os::raw::c_int;
7039}
7040unsafe extern "C" {
7041    pub fn SetpointCommandScaledWithCP56Time2a_isSelect(
7042        self_: SetpointCommandScaledWithCP56Time2a,
7043    ) -> bool;
7044}
7045unsafe extern "C" {
7046    pub fn SetpointCommandScaledWithCP56Time2a_getTimestamp(
7047        self_: SetpointCommandScaledWithCP56Time2a,
7048    ) -> CP56Time2a;
7049}
7050#[repr(C)]
7051#[derive(Debug, Copy, Clone)]
7052pub struct sSetpointCommandShortWithCP56Time2a {
7053    _unused: [u8; 0],
7054}
7055#[doc = "SetpointCommandShortWithCP56Time2a : SetpointCommandShort"]
7056pub type SetpointCommandShortWithCP56Time2a = *mut sSetpointCommandShortWithCP56Time2a;
7057unsafe extern "C" {
7058    pub fn SetpointCommandShortWithCP56Time2a_destroy(self_: SetpointCommandShortWithCP56Time2a);
7059}
7060unsafe extern "C" {
7061    pub fn SetpointCommandShortWithCP56Time2a_create(
7062        self_: SetpointCommandShortWithCP56Time2a,
7063        ioa: ::std::os::raw::c_int,
7064        value: f32,
7065        selectCommand: bool,
7066        ql: ::std::os::raw::c_int,
7067        timestamp: CP56Time2a,
7068    ) -> SetpointCommandShortWithCP56Time2a;
7069}
7070unsafe extern "C" {
7071    pub fn SetpointCommandShortWithCP56Time2a_getValue(
7072        self_: SetpointCommandShortWithCP56Time2a,
7073    ) -> f32;
7074}
7075unsafe extern "C" {
7076    pub fn SetpointCommandShortWithCP56Time2a_getQL(
7077        self_: SetpointCommandShortWithCP56Time2a,
7078    ) -> ::std::os::raw::c_int;
7079}
7080unsafe extern "C" {
7081    pub fn SetpointCommandShortWithCP56Time2a_isSelect(
7082        self_: SetpointCommandShortWithCP56Time2a,
7083    ) -> bool;
7084}
7085unsafe extern "C" {
7086    pub fn SetpointCommandShortWithCP56Time2a_getTimestamp(
7087        self_: SetpointCommandShortWithCP56Time2a,
7088    ) -> CP56Time2a;
7089}
7090#[repr(C)]
7091#[derive(Debug, Copy, Clone)]
7092pub struct sBitstring32CommandWithCP56Time2a {
7093    _unused: [u8; 0],
7094}
7095#[doc = "Bitstring32CommandWithCP56Time2a: Bitstring32Command"]
7096pub type Bitstring32CommandWithCP56Time2a = *mut sBitstring32CommandWithCP56Time2a;
7097unsafe extern "C" {
7098    pub fn Bitstring32CommandWithCP56Time2a_create(
7099        self_: Bitstring32CommandWithCP56Time2a,
7100        ioa: ::std::os::raw::c_int,
7101        value: u32,
7102        timestamp: CP56Time2a,
7103    ) -> Bitstring32CommandWithCP56Time2a;
7104}
7105unsafe extern "C" {
7106    pub fn Bitstring32CommandWithCP56Time2a_destroy(self_: Bitstring32CommandWithCP56Time2a);
7107}
7108unsafe extern "C" {
7109    pub fn Bitstring32CommandWithCP56Time2a_getValue(
7110        self_: Bitstring32CommandWithCP56Time2a,
7111    ) -> u32;
7112}
7113unsafe extern "C" {
7114    pub fn Bitstring32CommandWithCP56Time2a_getTimestamp(
7115        self_: Bitstring32CommandWithCP56Time2a,
7116    ) -> CP56Time2a;
7117}
7118#[repr(C)]
7119#[derive(Debug, Copy, Clone)]
7120pub struct sCounterInterrogationCommand {
7121    _unused: [u8; 0],
7122}
7123#[doc = "CounterInterrogationCommand : InformationObject"]
7124pub type CounterInterrogationCommand = *mut sCounterInterrogationCommand;
7125unsafe extern "C" {
7126    pub fn CounterInterrogationCommand_create(
7127        self_: CounterInterrogationCommand,
7128        ioa: ::std::os::raw::c_int,
7129        qcc: QualifierOfCIC,
7130    ) -> CounterInterrogationCommand;
7131}
7132unsafe extern "C" {
7133    pub fn CounterInterrogationCommand_destroy(self_: CounterInterrogationCommand);
7134}
7135unsafe extern "C" {
7136    pub fn CounterInterrogationCommand_getQCC(self_: CounterInterrogationCommand)
7137    -> QualifierOfCIC;
7138}
7139#[repr(C)]
7140#[derive(Debug, Copy, Clone)]
7141pub struct sTestCommand {
7142    _unused: [u8; 0],
7143}
7144#[doc = "TestCommand : InformationObject"]
7145pub type TestCommand = *mut sTestCommand;
7146unsafe extern "C" {
7147    pub fn TestCommand_create(self_: TestCommand) -> TestCommand;
7148}
7149unsafe extern "C" {
7150    pub fn TestCommand_destroy(self_: TestCommand);
7151}
7152unsafe extern "C" {
7153    pub fn TestCommand_isValid(self_: TestCommand) -> bool;
7154}
7155#[repr(C)]
7156#[derive(Debug, Copy, Clone)]
7157pub struct sTestCommandWithCP56Time2a {
7158    _unused: [u8; 0],
7159}
7160#[doc = "TestCommandWithCP56Time2a : InformationObject"]
7161pub type TestCommandWithCP56Time2a = *mut sTestCommandWithCP56Time2a;
7162unsafe extern "C" {
7163    #[doc = "Create a test command with CP56Time2a timestamp information object\n\n # Arguments\n\n* `self` (direction in) - existing instance to use or NULL to create a new instance\n * `tsc` (direction in) - test sequence counter\n * `timestamp` (direction in) -\n\n # Returns\n\nthe new or initialized instance"]
7164    pub fn TestCommandWithCP56Time2a_create(
7165        self_: TestCommandWithCP56Time2a,
7166        tsc: u16,
7167        timestamp: CP56Time2a,
7168    ) -> TestCommandWithCP56Time2a;
7169}
7170unsafe extern "C" {
7171    pub fn TestCommandWithCP56Time2a_destroy(self_: TestCommandWithCP56Time2a);
7172}
7173unsafe extern "C" {
7174    pub fn TestCommandWithCP56Time2a_getCounter(self_: TestCommandWithCP56Time2a) -> u16;
7175}
7176unsafe extern "C" {
7177    pub fn TestCommandWithCP56Time2a_getTimestamp(self_: TestCommandWithCP56Time2a) -> CP56Time2a;
7178}
7179#[repr(C)]
7180#[derive(Debug, Copy, Clone)]
7181pub struct sResetProcessCommand {
7182    _unused: [u8; 0],
7183}
7184#[doc = "ResetProcessCommand : InformationObject"]
7185pub type ResetProcessCommand = *mut sResetProcessCommand;
7186unsafe extern "C" {
7187    pub fn ResetProcessCommand_create(
7188        self_: ResetProcessCommand,
7189        ioa: ::std::os::raw::c_int,
7190        qrp: QualifierOfRPC,
7191    ) -> ResetProcessCommand;
7192}
7193unsafe extern "C" {
7194    pub fn ResetProcessCommand_destroy(self_: ResetProcessCommand);
7195}
7196unsafe extern "C" {
7197    pub fn ResetProcessCommand_getQRP(self_: ResetProcessCommand) -> QualifierOfRPC;
7198}
7199#[repr(C)]
7200#[derive(Debug, Copy, Clone)]
7201pub struct sDelayAcquisitionCommand {
7202    _unused: [u8; 0],
7203}
7204#[doc = "DelayAcquisitionCommand : InformationObject"]
7205pub type DelayAcquisitionCommand = *mut sDelayAcquisitionCommand;
7206unsafe extern "C" {
7207    pub fn DelayAcquisitionCommand_create(
7208        self_: DelayAcquisitionCommand,
7209        ioa: ::std::os::raw::c_int,
7210        delay: CP16Time2a,
7211    ) -> DelayAcquisitionCommand;
7212}
7213unsafe extern "C" {
7214    pub fn DelayAcquisitionCommand_destroy(self_: DelayAcquisitionCommand);
7215}
7216unsafe extern "C" {
7217    pub fn DelayAcquisitionCommand_getDelay(self_: DelayAcquisitionCommand) -> CP16Time2a;
7218}
7219#[repr(C)]
7220#[derive(Debug, Copy, Clone)]
7221pub struct sEndOfInitialization {
7222    _unused: [u8; 0],
7223}
7224#[doc = "EndOfInitialization : InformationObject"]
7225pub type EndOfInitialization = *mut sEndOfInitialization;
7226unsafe extern "C" {
7227    pub fn EndOfInitialization_create(self_: EndOfInitialization, coi: u8) -> EndOfInitialization;
7228}
7229unsafe extern "C" {
7230    pub fn EndOfInitialization_destroy(self_: EndOfInitialization);
7231}
7232unsafe extern "C" {
7233    pub fn EndOfInitialization_getCOI(self_: EndOfInitialization) -> u8;
7234}
7235#[repr(C)]
7236#[derive(Debug, Copy, Clone)]
7237pub struct sFileReady {
7238    _unused: [u8; 0],
7239}
7240pub type FileReady = *mut sFileReady;
7241unsafe extern "C" {
7242    #[doc = "Create a new instance of FileReady information object\n\n For message type: F_FR_NA_1 (120)\n\n # Arguments\n\n* `self` -\n * `ioa` -\n * `nof` - name of file (1 for transparent file)\n * `lengthOfFile` -\n * `positive` - when true file is ready to transmit"]
7243    pub fn FileReady_create(
7244        self_: FileReady,
7245        ioa: ::std::os::raw::c_int,
7246        nof: u16,
7247        lengthOfFile: u32,
7248        positive: bool,
7249    ) -> FileReady;
7250}
7251unsafe extern "C" {
7252    pub fn FileReady_getFRQ(self_: FileReady) -> u8;
7253}
7254unsafe extern "C" {
7255    pub fn FileReady_setFRQ(self_: FileReady, frq: u8);
7256}
7257unsafe extern "C" {
7258    pub fn FileReady_isPositive(self_: FileReady) -> bool;
7259}
7260unsafe extern "C" {
7261    pub fn FileReady_getNOF(self_: FileReady) -> u16;
7262}
7263unsafe extern "C" {
7264    pub fn FileReady_getLengthOfFile(self_: FileReady) -> u32;
7265}
7266unsafe extern "C" {
7267    pub fn FileReady_destroy(self_: FileReady);
7268}
7269#[repr(C)]
7270#[derive(Debug, Copy, Clone)]
7271pub struct sSectionReady {
7272    _unused: [u8; 0],
7273}
7274#[doc = "SectionReady : InformationObject"]
7275pub type SectionReady = *mut sSectionReady;
7276unsafe extern "C" {
7277    pub fn SectionReady_create(
7278        self_: SectionReady,
7279        ioa: ::std::os::raw::c_int,
7280        nof: u16,
7281        nos: u8,
7282        lengthOfSection: u32,
7283        notReady: bool,
7284    ) -> SectionReady;
7285}
7286unsafe extern "C" {
7287    pub fn SectionReady_isNotReady(self_: SectionReady) -> bool;
7288}
7289unsafe extern "C" {
7290    pub fn SectionReady_getSRQ(self_: SectionReady) -> u8;
7291}
7292unsafe extern "C" {
7293    pub fn SectionReady_setSRQ(self_: SectionReady, srq: u8);
7294}
7295unsafe extern "C" {
7296    pub fn SectionReady_getNOF(self_: SectionReady) -> u16;
7297}
7298unsafe extern "C" {
7299    pub fn SectionReady_getNameOfSection(self_: SectionReady) -> u8;
7300}
7301unsafe extern "C" {
7302    pub fn SectionReady_getLengthOfSection(self_: SectionReady) -> u32;
7303}
7304unsafe extern "C" {
7305    pub fn SectionReady_destroy(self_: SectionReady);
7306}
7307#[repr(C)]
7308#[derive(Debug, Copy, Clone)]
7309pub struct sFileCallOrSelect {
7310    _unused: [u8; 0],
7311}
7312#[doc = "FileCallOrSelect : InformationObject"]
7313pub type FileCallOrSelect = *mut sFileCallOrSelect;
7314unsafe extern "C" {
7315    pub fn FileCallOrSelect_create(
7316        self_: FileCallOrSelect,
7317        ioa: ::std::os::raw::c_int,
7318        nof: u16,
7319        nos: u8,
7320        scq: u8,
7321    ) -> FileCallOrSelect;
7322}
7323unsafe extern "C" {
7324    pub fn FileCallOrSelect_getNOF(self_: FileCallOrSelect) -> u16;
7325}
7326unsafe extern "C" {
7327    pub fn FileCallOrSelect_getNameOfSection(self_: FileCallOrSelect) -> u8;
7328}
7329unsafe extern "C" {
7330    pub fn FileCallOrSelect_getSCQ(self_: FileCallOrSelect) -> u8;
7331}
7332unsafe extern "C" {
7333    pub fn FileCallOrSelect_destroy(self_: FileCallOrSelect);
7334}
7335#[repr(C)]
7336#[derive(Debug, Copy, Clone)]
7337pub struct sFileLastSegmentOrSection {
7338    _unused: [u8; 0],
7339}
7340#[doc = "FileLastSegmentOrSection : InformationObject"]
7341pub type FileLastSegmentOrSection = *mut sFileLastSegmentOrSection;
7342unsafe extern "C" {
7343    pub fn FileLastSegmentOrSection_create(
7344        self_: FileLastSegmentOrSection,
7345        ioa: ::std::os::raw::c_int,
7346        nof: u16,
7347        nos: u8,
7348        lsq: u8,
7349        chs: u8,
7350    ) -> FileLastSegmentOrSection;
7351}
7352unsafe extern "C" {
7353    pub fn FileLastSegmentOrSection_getNOF(self_: FileLastSegmentOrSection) -> u16;
7354}
7355unsafe extern "C" {
7356    pub fn FileLastSegmentOrSection_getNameOfSection(self_: FileLastSegmentOrSection) -> u8;
7357}
7358unsafe extern "C" {
7359    pub fn FileLastSegmentOrSection_getLSQ(self_: FileLastSegmentOrSection) -> u8;
7360}
7361unsafe extern "C" {
7362    pub fn FileLastSegmentOrSection_getCHS(self_: FileLastSegmentOrSection) -> u8;
7363}
7364unsafe extern "C" {
7365    pub fn FileLastSegmentOrSection_destroy(self_: FileLastSegmentOrSection);
7366}
7367#[repr(C)]
7368#[derive(Debug, Copy, Clone)]
7369pub struct sFileACK {
7370    _unused: [u8; 0],
7371}
7372#[doc = "FileACK : InformationObject"]
7373pub type FileACK = *mut sFileACK;
7374unsafe extern "C" {
7375    pub fn FileACK_create(
7376        self_: FileACK,
7377        ioa: ::std::os::raw::c_int,
7378        nof: u16,
7379        nos: u8,
7380        afq: u8,
7381    ) -> FileACK;
7382}
7383unsafe extern "C" {
7384    pub fn FileACK_getNOF(self_: FileACK) -> u16;
7385}
7386unsafe extern "C" {
7387    pub fn FileACK_getNameOfSection(self_: FileACK) -> u8;
7388}
7389unsafe extern "C" {
7390    pub fn FileACK_getAFQ(self_: FileACK) -> u8;
7391}
7392unsafe extern "C" {
7393    pub fn FileACK_destroy(self_: FileACK);
7394}
7395#[repr(C)]
7396#[derive(Debug, Copy, Clone)]
7397pub struct sFileSegment {
7398    _unused: [u8; 0],
7399}
7400#[doc = "FileSegment : InformationObject"]
7401pub type FileSegment = *mut sFileSegment;
7402unsafe extern "C" {
7403    pub fn FileSegment_create(
7404        self_: FileSegment,
7405        ioa: ::std::os::raw::c_int,
7406        nof: u16,
7407        nos: u8,
7408        data: *mut u8,
7409        los: u8,
7410    ) -> FileSegment;
7411}
7412unsafe extern "C" {
7413    pub fn FileSegment_getNOF(self_: FileSegment) -> u16;
7414}
7415unsafe extern "C" {
7416    pub fn FileSegment_getNameOfSection(self_: FileSegment) -> u8;
7417}
7418unsafe extern "C" {
7419    pub fn FileSegment_getLengthOfSegment(self_: FileSegment) -> u8;
7420}
7421unsafe extern "C" {
7422    pub fn FileSegment_getSegmentData(self_: FileSegment) -> *mut u8;
7423}
7424unsafe extern "C" {
7425    pub fn FileSegment_GetMaxDataSize(
7426        parameters: CS101_AppLayerParameters,
7427    ) -> ::std::os::raw::c_int;
7428}
7429unsafe extern "C" {
7430    pub fn FileSegment_destroy(self_: FileSegment);
7431}
7432#[repr(C)]
7433#[derive(Debug, Copy, Clone)]
7434pub struct sFileDirectory {
7435    _unused: [u8; 0],
7436}
7437#[doc = "FileDirectory: InformationObject"]
7438pub type FileDirectory = *mut sFileDirectory;
7439unsafe extern "C" {
7440    pub fn FileDirectory_create(
7441        self_: FileDirectory,
7442        ioa: ::std::os::raw::c_int,
7443        nof: u16,
7444        lengthOfFile: u32,
7445        sof: u8,
7446        creationTime: CP56Time2a,
7447    ) -> FileDirectory;
7448}
7449unsafe extern "C" {
7450    pub fn FileDirectory_getNOF(self_: FileDirectory) -> u16;
7451}
7452unsafe extern "C" {
7453    pub fn FileDirectory_getSOF(self_: FileDirectory) -> u8;
7454}
7455unsafe extern "C" {
7456    pub fn FileDirectory_getSTATUS(self_: FileDirectory) -> ::std::os::raw::c_int;
7457}
7458unsafe extern "C" {
7459    pub fn FileDirectory_getLFD(self_: FileDirectory) -> bool;
7460}
7461unsafe extern "C" {
7462    pub fn FileDirectory_getFOR(self_: FileDirectory) -> bool;
7463}
7464unsafe extern "C" {
7465    pub fn FileDirectory_getFA(self_: FileDirectory) -> bool;
7466}
7467unsafe extern "C" {
7468    pub fn FileDirectory_getLengthOfFile(self_: FileDirectory) -> u32;
7469}
7470unsafe extern "C" {
7471    pub fn FileDirectory_getCreationTime(self_: FileDirectory) -> CP56Time2a;
7472}
7473unsafe extern "C" {
7474    pub fn FileDirectory_destroy(self_: FileDirectory);
7475}
7476#[repr(C)]
7477#[derive(Debug, Copy, Clone)]
7478pub struct sQueryLog {
7479    _unused: [u8; 0],
7480}
7481#[doc = "QueryLog: InformationObject"]
7482pub type QueryLog = *mut sQueryLog;
7483unsafe extern "C" {
7484    pub fn QueryLog_create(
7485        self_: QueryLog,
7486        ioa: ::std::os::raw::c_int,
7487        nof: u16,
7488        rangeStartTime: CP56Time2a,
7489        rangeStopTime: CP56Time2a,
7490    ) -> QueryLog;
7491}
7492unsafe extern "C" {
7493    pub fn QueryLog_getNOF(self_: QueryLog) -> u16;
7494}
7495unsafe extern "C" {
7496    pub fn QueryLog_getRangeStartTime(self_: QueryLog) -> CP56Time2a;
7497}
7498unsafe extern "C" {
7499    pub fn QueryLog_getRangeStopTime(self_: QueryLog) -> CP56Time2a;
7500}
7501unsafe extern "C" {
7502    pub fn QueryLog_destroy(self_: QueryLog);
7503}
7504pub const CS101_CauseOfTransmission_CS101_COT_PERIODIC: CS101_CauseOfTransmission = 1;
7505pub const CS101_CauseOfTransmission_CS101_COT_BACKGROUND_SCAN: CS101_CauseOfTransmission = 2;
7506pub const CS101_CauseOfTransmission_CS101_COT_SPONTANEOUS: CS101_CauseOfTransmission = 3;
7507pub const CS101_CauseOfTransmission_CS101_COT_INITIALIZED: CS101_CauseOfTransmission = 4;
7508pub const CS101_CauseOfTransmission_CS101_COT_REQUEST: CS101_CauseOfTransmission = 5;
7509pub const CS101_CauseOfTransmission_CS101_COT_ACTIVATION: CS101_CauseOfTransmission = 6;
7510pub const CS101_CauseOfTransmission_CS101_COT_ACTIVATION_CON: CS101_CauseOfTransmission = 7;
7511pub const CS101_CauseOfTransmission_CS101_COT_DEACTIVATION: CS101_CauseOfTransmission = 8;
7512pub const CS101_CauseOfTransmission_CS101_COT_DEACTIVATION_CON: CS101_CauseOfTransmission = 9;
7513pub const CS101_CauseOfTransmission_CS101_COT_ACTIVATION_TERMINATION: CS101_CauseOfTransmission =
7514    10;
7515pub const CS101_CauseOfTransmission_CS101_COT_RETURN_INFO_REMOTE: CS101_CauseOfTransmission = 11;
7516pub const CS101_CauseOfTransmission_CS101_COT_RETURN_INFO_LOCAL: CS101_CauseOfTransmission = 12;
7517pub const CS101_CauseOfTransmission_CS101_COT_FILE_TRANSFER: CS101_CauseOfTransmission = 13;
7518pub const CS101_CauseOfTransmission_CS101_COT_AUTHENTICATION: CS101_CauseOfTransmission = 14;
7519pub const CS101_CauseOfTransmission_CS101_COT_MAINTENANCE_OF_AUTH_SESSION_KEY:
7520    CS101_CauseOfTransmission = 15;
7521pub const CS101_CauseOfTransmission_CS101_COT_MAINTENANCE_OF_USER_ROLE_AND_UPDATE_KEY:
7522    CS101_CauseOfTransmission = 16;
7523pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_STATION: CS101_CauseOfTransmission =
7524    20;
7525pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_1: CS101_CauseOfTransmission =
7526    21;
7527pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_2: CS101_CauseOfTransmission =
7528    22;
7529pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_3: CS101_CauseOfTransmission =
7530    23;
7531pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_4: CS101_CauseOfTransmission =
7532    24;
7533pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_5: CS101_CauseOfTransmission =
7534    25;
7535pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_6: CS101_CauseOfTransmission =
7536    26;
7537pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_7: CS101_CauseOfTransmission =
7538    27;
7539pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_8: CS101_CauseOfTransmission =
7540    28;
7541pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_9: CS101_CauseOfTransmission =
7542    29;
7543pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_10: CS101_CauseOfTransmission =
7544    30;
7545pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_11: CS101_CauseOfTransmission =
7546    31;
7547pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_12: CS101_CauseOfTransmission =
7548    32;
7549pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_13: CS101_CauseOfTransmission =
7550    33;
7551pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_14: CS101_CauseOfTransmission =
7552    34;
7553pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_15: CS101_CauseOfTransmission =
7554    35;
7555pub const CS101_CauseOfTransmission_CS101_COT_INTERROGATED_BY_GROUP_16: CS101_CauseOfTransmission =
7556    36;
7557pub const CS101_CauseOfTransmission_CS101_COT_REQUESTED_BY_GENERAL_COUNTER:
7558    CS101_CauseOfTransmission = 37;
7559pub const CS101_CauseOfTransmission_CS101_COT_REQUESTED_BY_GROUP_1_COUNTER:
7560    CS101_CauseOfTransmission = 38;
7561pub const CS101_CauseOfTransmission_CS101_COT_REQUESTED_BY_GROUP_2_COUNTER:
7562    CS101_CauseOfTransmission = 39;
7563pub const CS101_CauseOfTransmission_CS101_COT_REQUESTED_BY_GROUP_3_COUNTER:
7564    CS101_CauseOfTransmission = 40;
7565pub const CS101_CauseOfTransmission_CS101_COT_REQUESTED_BY_GROUP_4_COUNTER:
7566    CS101_CauseOfTransmission = 41;
7567pub const CS101_CauseOfTransmission_CS101_COT_UNKNOWN_TYPE_ID: CS101_CauseOfTransmission = 44;
7568pub const CS101_CauseOfTransmission_CS101_COT_UNKNOWN_COT: CS101_CauseOfTransmission = 45;
7569pub const CS101_CauseOfTransmission_CS101_COT_UNKNOWN_CA: CS101_CauseOfTransmission = 46;
7570pub const CS101_CauseOfTransmission_CS101_COT_UNKNOWN_IOA: CS101_CauseOfTransmission = 47;
7571pub type CS101_CauseOfTransmission = ::std::os::raw::c_uint;
7572unsafe extern "C" {
7573    pub fn CS101_CauseOfTransmission_toString(
7574        self_: CS101_CauseOfTransmission,
7575    ) -> *const ::std::os::raw::c_char;
7576}
7577unsafe extern "C" {
7578    pub fn Lib60870_enableDebugOutput(value: bool);
7579}
7580unsafe extern "C" {
7581    pub fn Lib60870_getLibraryVersionInfo() -> Lib60870VersionInfo;
7582}
7583unsafe extern "C" {
7584    #[doc = "Check if the test flag of the ASDU is set"]
7585    pub fn CS101_ASDU_isTest(self_: CS101_ASDU) -> bool;
7586}
7587unsafe extern "C" {
7588    #[doc = "Set the test flag of the ASDU"]
7589    pub fn CS101_ASDU_setTest(self_: CS101_ASDU, value: bool);
7590}
7591unsafe extern "C" {
7592    #[doc = "Check if the negative flag of the ASDU is set"]
7593    pub fn CS101_ASDU_isNegative(self_: CS101_ASDU) -> bool;
7594}
7595unsafe extern "C" {
7596    #[doc = "Set the negative flag of the ASDU"]
7597    pub fn CS101_ASDU_setNegative(self_: CS101_ASDU, value: bool);
7598}
7599unsafe extern "C" {
7600    #[doc = "get the OA (originator address) of the ASDU."]
7601    pub fn CS101_ASDU_getOA(self_: CS101_ASDU) -> ::std::os::raw::c_int;
7602}
7603unsafe extern "C" {
7604    #[doc = "Get the cause of transmission (COT) of the ASDU"]
7605    pub fn CS101_ASDU_getCOT(self_: CS101_ASDU) -> CS101_CauseOfTransmission;
7606}
7607unsafe extern "C" {
7608    #[doc = "Set the cause of transmission (COT) of the ASDU"]
7609    pub fn CS101_ASDU_setCOT(self_: CS101_ASDU, value: CS101_CauseOfTransmission);
7610}
7611unsafe extern "C" {
7612    #[doc = "Get the common address (CA) of the ASDU"]
7613    pub fn CS101_ASDU_getCA(self_: CS101_ASDU) -> ::std::os::raw::c_int;
7614}
7615unsafe extern "C" {
7616    #[doc = "Set the common address (CA) of the ASDU\n\n # Arguments\n\n* `ca` - the ca in unstructured form"]
7617    pub fn CS101_ASDU_setCA(self_: CS101_ASDU, ca: ::std::os::raw::c_int);
7618}
7619unsafe extern "C" {
7620    #[doc = "Get the type ID of the ASDU\n\n # Returns\n\nthe type ID to identify the ASDU type"]
7621    pub fn CS101_ASDU_getTypeID(self_: CS101_ASDU) -> IEC60870_5_TypeID;
7622}
7623unsafe extern "C" {
7624    #[doc = "Set the type ID of the ASDU\n\n NOTE: Usually it is not required to call this function as the type is determined when the\n ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject\n The function is intended to be used by library extensions of for creating private ASDU types.\n\n # Arguments\n\n* `typeId` - the type ID to identify the ASDU type"]
7625    pub fn CS101_ASDU_setTypeID(self_: CS101_ASDU, typeId: IEC60870_5_TypeID);
7626}
7627unsafe extern "C" {
7628    #[doc = "Check if the ASDU contains a sequence of consecutive information objects\n\n NOTE: in a sequence of consecutive information objects only the first information object address\n is encoded. The following information objects ahve consecutive information object addresses.\n\n # Returns\n\ntrue when the ASDU represents a sequence of consecutive information objects, false otherwise"]
7629    pub fn CS101_ASDU_isSequence(self_: CS101_ASDU) -> bool;
7630}
7631unsafe extern "C" {
7632    #[doc = "Set the ASDU to represent a sequence of consecutive information objects\n\n NOTE: It is not required to use this function when constructing ASDUs as this information is\n already provided when calling one of the constructors CS101_ASDU_create or CS101_ASDU_initializeStatic\n\n # Arguments\n\n* `isSequence` - specify if the ASDU represents a sequence of consecutive information objects"]
7633    pub fn CS101_ASDU_setSequence(self_: CS101_ASDU, isSequence: bool);
7634}
7635unsafe extern "C" {
7636    #[doc = "Get the number of information objects (elements) in the ASDU\n\n # Returns\n\nthe number of information objects/element (valid range 0 - 127)"]
7637    pub fn CS101_ASDU_getNumberOfElements(self_: CS101_ASDU) -> ::std::os::raw::c_int;
7638}
7639unsafe extern "C" {
7640    #[doc = "Set the number of information objects (elements) in the ASDU\n\n NOTE: Usually it is not required to call this function as the number of elements is set when the\n ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject\n The function is intended to be used by library extensions of for creating private ASDU types.\n\n # Arguments\n\n* `numberOfElements` - the number of information objects/element (valid range 0 - 127)"]
7641    pub fn CS101_ASDU_setNumberOfElements(
7642        self_: CS101_ASDU,
7643        numberOfElements: ::std::os::raw::c_int,
7644    );
7645}
7646unsafe extern "C" {
7647    #[doc = "Get the information object with the given index\n\n # Arguments\n\n* `index` - the index of the information object (starting with 0)\n\n # Returns\n\nthe information object, or NULL if there is no information object with the given index"]
7648    pub fn CS101_ASDU_getElement(
7649        self_: CS101_ASDU,
7650        index: ::std::os::raw::c_int,
7651    ) -> InformationObject;
7652}
7653unsafe extern "C" {
7654    #[doc = "Get the information object with the given index and store it in the provided information object instance\n\n # Arguments\n\n* `io` - if not NULL use the provided information object instance to store the information, has to be of correct type.\n * `index` - the index of the information object (starting with 0)\n\n # Returns\n\nthe information object, or NULL if there is no information object with the given index"]
7655    pub fn CS101_ASDU_getElementEx(
7656        self_: CS101_ASDU,
7657        io: InformationObject,
7658        index: ::std::os::raw::c_int,
7659    ) -> InformationObject;
7660}
7661unsafe extern "C" {
7662    #[doc = "Create a new ASDU. The type ID will be derived from the first InformationObject that will be added\n\n # Arguments\n\n* `parameters` - the application layer parameters used to encode the ASDU\n * `isSequence` - if the information objects will be encoded as a compact sequence of information objects with subsequent IOA values\n * `cot` - cause of transmission (COT)\n * `oa` - originator address (OA) to be used\n * `ca` - the common address (CA) of the ASDU\n * `isTest` - if the test flag will be set or not\n * `isNegative` - if the negative falg will be set or not\n\n # Returns\n\nthe new CS101_ASDU instance"]
7663    pub fn CS101_ASDU_create(
7664        parameters: CS101_AppLayerParameters,
7665        isSequence: bool,
7666        cot: CS101_CauseOfTransmission,
7667        oa: ::std::os::raw::c_int,
7668        ca: ::std::os::raw::c_int,
7669        isTest: bool,
7670        isNegative: bool,
7671    ) -> CS101_ASDU;
7672}
7673unsafe extern "C" {
7674    #[doc = "Create a new ASDU instance from a buffer containing the raw ASDU message bytes\n\n NOTE: Do not try to append information objects to the instance!\n\n # Arguments\n\n* `parameters` - the application layer parameters used to encode the ASDU\n * `msg` - the buffer containing the raw ASDU message bytes\n * `msgLength` - the length of the message\n\n # Returns\n\nthe new CS101_ASDU instance"]
7675    pub fn CS101_ASDU_createFromBuffer(
7676        parameters: CS101_AppLayerParameters,
7677        msg: *mut u8,
7678        msgLength: ::std::os::raw::c_int,
7679    ) -> CS101_ASDU;
7680}
7681unsafe extern "C" {
7682    #[doc = "Create a new ASDU and store it in the provided static ASDU structure.\n\n NOTE: The type ID will be derived from the first InformationObject that will be added.\n\n # Arguments\n\n* `self` - pointer to the statically allocated data structure\n * `parameters` - the application layer parameters used to encode the ASDU\n * `isSequence` - if the information objects will be encoded as a compact sequence of information objects with subsequent IOA values\n * `cot` - cause of transmission (COT)\n * `oa` - originator address (OA) to be used\n * `ca` - the common address (CA) of the ASDU\n * `isTest` - if the test flag will be set or not\n * `isNegative` - if the negative falg will be set or not\n\n # Returns\n\nthe new CS101_ASDU instance"]
7683    pub fn CS101_ASDU_initializeStatic(
7684        self_: CS101_StaticASDU,
7685        parameters: CS101_AppLayerParameters,
7686        isSequence: bool,
7687        cot: CS101_CauseOfTransmission,
7688        oa: ::std::os::raw::c_int,
7689        ca: ::std::os::raw::c_int,
7690        isTest: bool,
7691        isNegative: bool,
7692    ) -> CS101_ASDU;
7693}
7694unsafe extern "C" {
7695    #[doc = "Create a new ASDU that is an exact copy of the ASDU\n\n # Arguments\n\n* `self` - ASDU instance to be copied\n * `clone` - static ASDU instance where to store the cloned ASDU or NULL. When this parameter is NULL the function will allocate the memory for the clone\n\n # Returns\n\nthe cloned ASDU instance"]
7696    pub fn CS101_ASDU_clone(self_: CS101_ASDU, clone: CS101_StaticASDU) -> CS101_ASDU;
7697}
7698unsafe extern "C" {
7699    #[doc = "Get the ASDU payload\n\n The payload is the ASDU message part after the ASDU header (type ID, VSQ, COT, CASDU)\n\n # Returns\n\nthe ASDU payload buffer"]
7700    pub fn CS101_ASDU_getPayload(self_: CS101_ASDU) -> *mut u8;
7701}
7702unsafe extern "C" {
7703    #[doc = "Append the provided data to the ASDU payload\n\n NOTE: Usually it is not required to call this function as the payload is set when the\n ASDU is parsed or when a new information object is added with CS101_ASDU_addInformationObject\n The function is intended to be only used by library extensions of for creating private ASDU types.\n\n # Arguments\n\n* `buffer` - pointer to the payload data to add\n * `size` - number of bytes to append to the payload\n\n # Returns\n\ntrue when data has been added, false otherwise"]
7704    pub fn CS101_ASDU_addPayload(
7705        self_: CS101_ASDU,
7706        buffer: *mut u8,
7707        size: ::std::os::raw::c_int,
7708    ) -> bool;
7709}
7710unsafe extern "C" {
7711    #[doc = "Get the ASDU payload buffer size\n\n The payload is the ASDU message part after the ASDU header (type ID, VSQ, COT, CASDU)\n\n # Returns\n\nthe ASDU payload buffer size"]
7712    pub fn CS101_ASDU_getPayloadSize(self_: CS101_ASDU) -> ::std::os::raw::c_int;
7713}
7714unsafe extern "C" {
7715    #[doc = "Destroy the ASDU object (release all resources)"]
7716    pub fn CS101_ASDU_destroy(self_: CS101_ASDU);
7717}
7718unsafe extern "C" {
7719    #[doc = "add an information object to the ASDU\n\n NOTE: Only information objects of the exact same type can be added to a single ASDU!\n\n # Arguments\n\n* `self` - ASDU object instance\n * `io` - information object to be added\n\n # Returns\n\ntrue when added, false when there not enough space left in the ASDU or IO cannot be added to the sequence because of wrong IOA, or wrong type."]
7720    pub fn CS101_ASDU_addInformationObject(self_: CS101_ASDU, io: InformationObject) -> bool;
7721}
7722unsafe extern "C" {
7723    #[doc = "remove all information elements from the ASDU object\n\n # Arguments\n\n* `self` - ASDU object instance"]
7724    pub fn CS101_ASDU_removeAllElements(self_: CS101_ASDU);
7725}
7726unsafe extern "C" {
7727    #[doc = "Get the elapsed time in ms"]
7728    pub fn CP16Time2a_getEplapsedTimeInMs(self_: CP16Time2a) -> ::std::os::raw::c_int;
7729}
7730unsafe extern "C" {
7731    #[doc = "set the elapsed time in ms"]
7732    pub fn CP16Time2a_setEplapsedTimeInMs(self_: CP16Time2a, value: ::std::os::raw::c_int);
7733}
7734unsafe extern "C" {
7735    #[doc = "Get the millisecond part of the time value"]
7736    pub fn CP24Time2a_getMillisecond(self_: CP24Time2a) -> ::std::os::raw::c_int;
7737}
7738unsafe extern "C" {
7739    #[doc = "Set the millisecond part of the time value"]
7740    pub fn CP24Time2a_setMillisecond(self_: CP24Time2a, value: ::std::os::raw::c_int);
7741}
7742unsafe extern "C" {
7743    #[doc = "Get the second part of the time value"]
7744    pub fn CP24Time2a_getSecond(self_: CP24Time2a) -> ::std::os::raw::c_int;
7745}
7746unsafe extern "C" {
7747    #[doc = "Set the second part of the time value"]
7748    pub fn CP24Time2a_setSecond(self_: CP24Time2a, value: ::std::os::raw::c_int);
7749}
7750unsafe extern "C" {
7751    #[doc = "Get the minute part of the time value"]
7752    pub fn CP24Time2a_getMinute(self_: CP24Time2a) -> ::std::os::raw::c_int;
7753}
7754unsafe extern "C" {
7755    #[doc = "Set the minute part of the time value"]
7756    pub fn CP24Time2a_setMinute(self_: CP24Time2a, value: ::std::os::raw::c_int);
7757}
7758unsafe extern "C" {
7759    #[doc = "Check if the invalid flag of the time value is set"]
7760    pub fn CP24Time2a_isInvalid(self_: CP24Time2a) -> bool;
7761}
7762unsafe extern "C" {
7763    #[doc = "Set the invalid flag of the time value"]
7764    pub fn CP24Time2a_setInvalid(self_: CP24Time2a, value: bool);
7765}
7766unsafe extern "C" {
7767    #[doc = "Check if the substituted flag of the time value is set"]
7768    pub fn CP24Time2a_isSubstituted(self_: CP24Time2a) -> bool;
7769}
7770unsafe extern "C" {
7771    #[doc = "Set the substituted flag of the time value"]
7772    pub fn CP24Time2a_setSubstituted(self_: CP24Time2a, value: bool);
7773}
7774unsafe extern "C" {
7775    #[doc = "Create a 7 byte time from a UTC ms timestamp"]
7776    pub fn CP56Time2a_createFromMsTimestamp(self_: CP56Time2a, timestamp: u64) -> CP56Time2a;
7777}
7778unsafe extern "C" {
7779    pub fn CP32Time2a_create(self_: CP32Time2a) -> CP32Time2a;
7780}
7781unsafe extern "C" {
7782    pub fn CP32Time2a_setFromMsTimestamp(self_: CP32Time2a, timestamp: u64);
7783}
7784unsafe extern "C" {
7785    pub fn CP32Time2a_getMillisecond(self_: CP32Time2a) -> ::std::os::raw::c_int;
7786}
7787unsafe extern "C" {
7788    pub fn CP32Time2a_setMillisecond(self_: CP32Time2a, value: ::std::os::raw::c_int);
7789}
7790unsafe extern "C" {
7791    pub fn CP32Time2a_getSecond(self_: CP32Time2a) -> ::std::os::raw::c_int;
7792}
7793unsafe extern "C" {
7794    pub fn CP32Time2a_setSecond(self_: CP32Time2a, value: ::std::os::raw::c_int);
7795}
7796unsafe extern "C" {
7797    pub fn CP32Time2a_getMinute(self_: CP32Time2a) -> ::std::os::raw::c_int;
7798}
7799unsafe extern "C" {
7800    pub fn CP32Time2a_setMinute(self_: CP32Time2a, value: ::std::os::raw::c_int);
7801}
7802unsafe extern "C" {
7803    pub fn CP32Time2a_isInvalid(self_: CP32Time2a) -> bool;
7804}
7805unsafe extern "C" {
7806    pub fn CP32Time2a_setInvalid(self_: CP32Time2a, value: bool);
7807}
7808unsafe extern "C" {
7809    pub fn CP32Time2a_isSubstituted(self_: CP32Time2a) -> bool;
7810}
7811unsafe extern "C" {
7812    pub fn CP32Time2a_setSubstituted(self_: CP32Time2a, value: bool);
7813}
7814unsafe extern "C" {
7815    pub fn CP32Time2a_getHour(self_: CP32Time2a) -> ::std::os::raw::c_int;
7816}
7817unsafe extern "C" {
7818    pub fn CP32Time2a_setHour(self_: CP32Time2a, value: ::std::os::raw::c_int);
7819}
7820unsafe extern "C" {
7821    pub fn CP32Time2a_isSummerTime(self_: CP32Time2a) -> bool;
7822}
7823unsafe extern "C" {
7824    pub fn CP32Time2a_setSummerTime(self_: CP32Time2a, value: bool);
7825}
7826unsafe extern "C" {
7827    #[doc = "Set the time value of a 7 byte time from a UTC ms timestamp"]
7828    pub fn CP56Time2a_setFromMsTimestamp(self_: CP56Time2a, timestamp: u64);
7829}
7830unsafe extern "C" {
7831    #[doc = "Convert a 7 byte time to a ms timestamp"]
7832    pub fn CP56Time2a_toMsTimestamp(self_: CP56Time2a) -> u64;
7833}
7834unsafe extern "C" {
7835    #[doc = "Get the ms part of a time value"]
7836    pub fn CP56Time2a_getMillisecond(self_: CP56Time2a) -> ::std::os::raw::c_int;
7837}
7838unsafe extern "C" {
7839    #[doc = "Set the ms part of a time value"]
7840    pub fn CP56Time2a_setMillisecond(self_: CP56Time2a, value: ::std::os::raw::c_int);
7841}
7842unsafe extern "C" {
7843    pub fn CP56Time2a_getSecond(self_: CP56Time2a) -> ::std::os::raw::c_int;
7844}
7845unsafe extern "C" {
7846    pub fn CP56Time2a_setSecond(self_: CP56Time2a, value: ::std::os::raw::c_int);
7847}
7848unsafe extern "C" {
7849    pub fn CP56Time2a_getMinute(self_: CP56Time2a) -> ::std::os::raw::c_int;
7850}
7851unsafe extern "C" {
7852    pub fn CP56Time2a_setMinute(self_: CP56Time2a, value: ::std::os::raw::c_int);
7853}
7854unsafe extern "C" {
7855    pub fn CP56Time2a_getHour(self_: CP56Time2a) -> ::std::os::raw::c_int;
7856}
7857unsafe extern "C" {
7858    pub fn CP56Time2a_setHour(self_: CP56Time2a, value: ::std::os::raw::c_int);
7859}
7860unsafe extern "C" {
7861    pub fn CP56Time2a_getDayOfWeek(self_: CP56Time2a) -> ::std::os::raw::c_int;
7862}
7863unsafe extern "C" {
7864    pub fn CP56Time2a_setDayOfWeek(self_: CP56Time2a, value: ::std::os::raw::c_int);
7865}
7866unsafe extern "C" {
7867    pub fn CP56Time2a_getDayOfMonth(self_: CP56Time2a) -> ::std::os::raw::c_int;
7868}
7869unsafe extern "C" {
7870    pub fn CP56Time2a_setDayOfMonth(self_: CP56Time2a, value: ::std::os::raw::c_int);
7871}
7872unsafe extern "C" {
7873    #[doc = "Get the month field of the time\n\n # Returns\n\nvalue the month (1..12)"]
7874    pub fn CP56Time2a_getMonth(self_: CP56Time2a) -> ::std::os::raw::c_int;
7875}
7876unsafe extern "C" {
7877    #[doc = "Set the month field of the time\n\n # Arguments\n\n* `value` - the month (1..12)"]
7878    pub fn CP56Time2a_setMonth(self_: CP56Time2a, value: ::std::os::raw::c_int);
7879}
7880unsafe extern "C" {
7881    #[doc = "Get the year (range 0..99)\n\n # Arguments\n\n* `value` - the year (0..99)"]
7882    pub fn CP56Time2a_getYear(self_: CP56Time2a) -> ::std::os::raw::c_int;
7883}
7884unsafe extern "C" {
7885    #[doc = "Set the year\n\n # Arguments\n\n* `value` - the year"]
7886    pub fn CP56Time2a_setYear(self_: CP56Time2a, value: ::std::os::raw::c_int);
7887}
7888unsafe extern "C" {
7889    pub fn CP56Time2a_isSummerTime(self_: CP56Time2a) -> bool;
7890}
7891unsafe extern "C" {
7892    pub fn CP56Time2a_setSummerTime(self_: CP56Time2a, value: bool);
7893}
7894unsafe extern "C" {
7895    pub fn CP56Time2a_isInvalid(self_: CP56Time2a) -> bool;
7896}
7897unsafe extern "C" {
7898    pub fn CP56Time2a_setInvalid(self_: CP56Time2a, value: bool);
7899}
7900unsafe extern "C" {
7901    pub fn CP56Time2a_isSubstituted(self_: CP56Time2a) -> bool;
7902}
7903unsafe extern "C" {
7904    pub fn CP56Time2a_setSubstituted(self_: CP56Time2a, value: bool);
7905}
7906unsafe extern "C" {
7907    pub fn BinaryCounterReading_create(
7908        self_: BinaryCounterReading,
7909        value: i32,
7910        seqNumber: ::std::os::raw::c_int,
7911        hasCarry: bool,
7912        isAdjusted: bool,
7913        isInvalid: bool,
7914    ) -> BinaryCounterReading;
7915}
7916unsafe extern "C" {
7917    pub fn BinaryCounterReading_destroy(self_: BinaryCounterReading);
7918}
7919unsafe extern "C" {
7920    pub fn BinaryCounterReading_getValue(self_: BinaryCounterReading) -> i32;
7921}
7922unsafe extern "C" {
7923    pub fn BinaryCounterReading_setValue(self_: BinaryCounterReading, value: i32);
7924}
7925unsafe extern "C" {
7926    pub fn BinaryCounterReading_getSequenceNumber(
7927        self_: BinaryCounterReading,
7928    ) -> ::std::os::raw::c_int;
7929}
7930unsafe extern "C" {
7931    pub fn BinaryCounterReading_hasCarry(self_: BinaryCounterReading) -> bool;
7932}
7933unsafe extern "C" {
7934    pub fn BinaryCounterReading_isAdjusted(self_: BinaryCounterReading) -> bool;
7935}
7936unsafe extern "C" {
7937    pub fn BinaryCounterReading_isInvalid(self_: BinaryCounterReading) -> bool;
7938}
7939unsafe extern "C" {
7940    pub fn BinaryCounterReading_setSequenceNumber(
7941        self_: BinaryCounterReading,
7942        value: ::std::os::raw::c_int,
7943    );
7944}
7945unsafe extern "C" {
7946    pub fn BinaryCounterReading_setCarry(self_: BinaryCounterReading, value: bool);
7947}
7948unsafe extern "C" {
7949    pub fn BinaryCounterReading_setAdjusted(self_: BinaryCounterReading, value: bool);
7950}
7951unsafe extern "C" {
7952    pub fn BinaryCounterReading_setInvalid(self_: BinaryCounterReading, value: bool);
7953}
7954#[repr(C)]
7955#[derive(Debug, Copy, Clone)]
7956pub struct sFrame {
7957    _unused: [u8; 0],
7958}
7959pub type Frame = *mut sFrame;
7960unsafe extern "C" {
7961    pub fn Frame_destroy(self_: Frame);
7962}
7963unsafe extern "C" {
7964    pub fn Frame_resetFrame(self_: Frame);
7965}
7966unsafe extern "C" {
7967    pub fn Frame_setNextByte(self_: Frame, byte: u8);
7968}
7969unsafe extern "C" {
7970    pub fn Frame_appendBytes(self_: Frame, bytes: *mut u8, numberOfBytes: ::std::os::raw::c_int);
7971}
7972unsafe extern "C" {
7973    pub fn Frame_getMsgSize(self_: Frame) -> ::std::os::raw::c_int;
7974}
7975unsafe extern "C" {
7976    pub fn Frame_getBuffer(self_: Frame) -> *mut u8;
7977}
7978unsafe extern "C" {
7979    pub fn Frame_getSpaceLeft(self_: Frame) -> ::std::os::raw::c_int;
7980}
7981#[doc = "Callback handler for received ASDUs\n\n This callback handler will be called for each received ASDU.\n The CS101_ASDU object that is passed is only valid in the context\n of the callback function.\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `address` - address of the sender (slave/other station) - undefined for CS 104\n * `asdu` - object representing the received ASDU\n\n # Returns\n\ntrue if the ASDU has been handled by the callback, false otherwise"]
7982pub type CS101_ASDUReceivedHandler = ::std::option::Option<
7983    unsafe extern "C" fn(
7984        parameter: *mut ::std::os::raw::c_void,
7985        address: ::std::os::raw::c_int,
7986        asdu: CS101_ASDU,
7987    ) -> bool,
7988>;
7989#[repr(C)]
7990#[derive(Debug, Copy, Clone)]
7991pub struct sCS104_Connection {
7992    _unused: [u8; 0],
7993}
7994#[doc = "CS104_MASTER CS 104 master related functions\n\n # "]
7995pub type CS104_Connection = *mut sCS104_Connection;
7996unsafe extern "C" {
7997    #[doc = "Create a new connection object\n\n # Arguments\n\n* `hostname` - host name of IP address of the server to connect\n * `tcpPort` - tcp port of the server to connect. If set to -1 use default port (2404)\n\n # Returns\n\nthe new connection object"]
7998    pub fn CS104_Connection_create(
7999        hostname: *const ::std::os::raw::c_char,
8000        tcpPort: ::std::os::raw::c_int,
8001    ) -> CS104_Connection;
8002}
8003unsafe extern "C" {
8004    #[doc = "Create a new secure connection object (uses TLS)\n\n # Arguments\n\n* `hostname` - host name of IP address of the server to connect\n * `tcpPort` - tcp port of the server to connect. If set to -1 use default port (19998)\n * `tlcConfig` - the TLS configuration (certificates, keys, and parameters)\n\n # Returns\n\nthe new connection object"]
8005    pub fn CS104_Connection_createSecure(
8006        hostname: *const ::std::os::raw::c_char,
8007        tcpPort: ::std::os::raw::c_int,
8008        tlsConfig: TLSConfiguration,
8009    ) -> CS104_Connection;
8010}
8011unsafe extern "C" {
8012    #[doc = "Set the local IP address and port to be used by the client\n\n NOTE: This function is optional. When not used the OS decides what IP address and TCP port to use.\n\n # Arguments\n\n* `self` - CS104_Connection instance\n * `localIpAddress` - the local IP address or hostname as C string\n * `localPort` - the local TCP port to use. When < 1 the OS will chose the TCP port to use."]
8013    pub fn CS104_Connection_setLocalAddress(
8014        self_: CS104_Connection,
8015        localIpAddress: *const ::std::os::raw::c_char,
8016        localPort: ::std::os::raw::c_int,
8017    );
8018}
8019unsafe extern "C" {
8020    #[doc = "Set the CS104 specific APCI parameters.\n\n If not set the default parameters are used. This function must be called before the\n CS104_Connection_connect function is called! If the function is called after the connect\n the behavior is undefined.\n\n # Arguments\n\n* `self` - CS104_Connection instance\n * `parameters` - the APCI layer parameters"]
8021    pub fn CS104_Connection_setAPCIParameters(
8022        self_: CS104_Connection,
8023        parameters: CS104_APCIParameters,
8024    );
8025}
8026unsafe extern "C" {
8027    #[doc = "Get the currently used CS104 specific APCI parameters"]
8028    pub fn CS104_Connection_getAPCIParameters(self_: CS104_Connection) -> CS104_APCIParameters;
8029}
8030unsafe extern "C" {
8031    #[doc = "Set the CS101 application layer parameters\n\n If not set the default parameters are used. This function must be called before the\n CS104_Connection_connect function is called! If the function is called after the connect\n the behavior is undefined.\n\n # Arguments\n\n* `self` - CS104_Connection instance\n * `parameters` - the application layer parameters"]
8032    pub fn CS104_Connection_setAppLayerParameters(
8033        self_: CS104_Connection,
8034        parameters: CS101_AppLayerParameters,
8035    );
8036}
8037unsafe extern "C" {
8038    #[doc = "Return the currently used application layer parameter\n\n NOTE: The application layer parameters are required to create CS101_ASDU objects.\n\n # Arguments\n\n* `self` - CS104_Connection instance\n\n # Returns\n\nthe currently used CS101_AppLayerParameters object"]
8039    pub fn CS104_Connection_getAppLayerParameters(
8040        self_: CS104_Connection,
8041    ) -> CS101_AppLayerParameters;
8042}
8043unsafe extern "C" {
8044    #[doc = "Sets the timeout for connecting to the server (in ms)\n\n > **Deprecated** Function has no effect! Set T0 parameter instead.\n\n # Arguments\n\n* `self` -\n * `millies` - timeout value in ms"]
8045    pub fn CS104_Connection_setConnectTimeout(
8046        self_: CS104_Connection,
8047        millies: ::std::os::raw::c_int,
8048    );
8049}
8050unsafe extern "C" {
8051    #[doc = "non-blocking connect.\n\n Invokes a connection establishment to the server and returns immediately.\n\n # Arguments\n\n* `self` - CS104_Connection instance"]
8052    pub fn CS104_Connection_connectAsync(self_: CS104_Connection);
8053}
8054unsafe extern "C" {
8055    #[doc = "blocking connect\n\n Establishes a connection to a server. This function is blocking and will return\n after the connection is established or the connect timeout elapsed.\n\n # Arguments\n\n* `self` - CS104_Connection instance\n # Returns\n\ntrue when connected, false otherwise"]
8056    pub fn CS104_Connection_connect(self_: CS104_Connection) -> bool;
8057}
8058unsafe extern "C" {
8059    #[doc = "start data transmission on this connection\n\n After issuing this command the client (master) will receive spontaneous\n (unsolicited) messages from the server (slave)."]
8060    pub fn CS104_Connection_sendStartDT(self_: CS104_Connection);
8061}
8062unsafe extern "C" {
8063    #[doc = "stop data transmission on this connection"]
8064    pub fn CS104_Connection_sendStopDT(self_: CS104_Connection);
8065}
8066unsafe extern "C" {
8067    #[doc = "Check if the transmit (send) buffer is full. If true the next send command will fail.\n\n The transmit buffer is full when the slave/server didn't confirm the last k sent messages.\n In this case the next message can only be sent after the next confirmation (by I or S messages)\n that frees part of the sent messages buffer."]
8068    pub fn CS104_Connection_isTransmitBufferFull(self_: CS104_Connection) -> bool;
8069}
8070unsafe extern "C" {
8071    #[doc = "send an interrogation command\n\n # Arguments\n\n* `cot` - cause of transmission\n * `ca` - Common address of the slave/server\n * `qoi` - qualifier of interrogation (20 for station interrogation)\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8072    pub fn CS104_Connection_sendInterrogationCommand(
8073        self_: CS104_Connection,
8074        cot: CS101_CauseOfTransmission,
8075        ca: ::std::os::raw::c_int,
8076        qoi: QualifierOfInterrogation,
8077    ) -> bool;
8078}
8079unsafe extern "C" {
8080    #[doc = "send a counter interrogation command\n\n # Arguments\n\n* `cot` - cause of transmission\n * `ca` - Common address of the slave/server\n * `qcc` -\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8081    pub fn CS104_Connection_sendCounterInterrogationCommand(
8082        self_: CS104_Connection,
8083        cot: CS101_CauseOfTransmission,
8084        ca: ::std::os::raw::c_int,
8085        qcc: u8,
8086    ) -> bool;
8087}
8088unsafe extern "C" {
8089    #[doc = "Sends a read command (C_RD_NA_1 typeID: 102)\n\n This will send a read command C_RC_NA_1 (102) to the slave/outstation. The COT is always REQUEST (5).\n It is used to implement the cyclical polling of data application function.\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n * `ioa` - Information object address of the data point to read\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8090    pub fn CS104_Connection_sendReadCommand(
8091        self_: CS104_Connection,
8092        ca: ::std::os::raw::c_int,
8093        ioa: ::std::os::raw::c_int,
8094    ) -> bool;
8095}
8096unsafe extern "C" {
8097    #[doc = "Sends a clock synchronization command (C_CS_NA_1 typeID: 103)\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n * `newTime` - new system time for the slave/server\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8098    pub fn CS104_Connection_sendClockSyncCommand(
8099        self_: CS104_Connection,
8100        ca: ::std::os::raw::c_int,
8101        newTime: CP56Time2a,
8102    ) -> bool;
8103}
8104unsafe extern "C" {
8105    #[doc = "Send a test command (C_TS_NA_1 typeID: 104)\n\n Note: This command is not supported by IEC 60870-5-104\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8106    pub fn CS104_Connection_sendTestCommand(
8107        self_: CS104_Connection,
8108        ca: ::std::os::raw::c_int,
8109    ) -> bool;
8110}
8111unsafe extern "C" {
8112    #[doc = "Send a test command with timestamp (C_TS_TA_1 typeID: 107)\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n * `tsc` - test sequence counter\n * `timestamp` - CP56Time2a timestamp\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8113    pub fn CS104_Connection_sendTestCommandWithTimestamp(
8114        self_: CS104_Connection,
8115        ca: ::std::os::raw::c_int,
8116        tsc: u16,
8117        timestamp: CP56Time2a,
8118    ) -> bool;
8119}
8120unsafe extern "C" {
8121    #[doc = "Send a process command to the controlled (or other) station\n\n > **Deprecated** Use CS104_Connection_sendProcessCommandEx instead\n\n # Arguments\n\n* `typeId` - the type ID of the command message to send or 0 to use the type ID of the information object\n * `cot` - the cause of transmission (should be ACTIVATION to select/execute or ACT_TERM to cancel the command)\n * `ca` - the common address of the information object\n * `command` - the command information object (e.g. SingleCommand or DoubleCommand)\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8122    pub fn CS104_Connection_sendProcessCommand(
8123        self_: CS104_Connection,
8124        typeId: TypeID,
8125        cot: CS101_CauseOfTransmission,
8126        ca: ::std::os::raw::c_int,
8127        command: InformationObject,
8128    ) -> bool;
8129}
8130unsafe extern "C" {
8131    #[doc = "Send a process command to the controlled (or other) station\n\n # Arguments\n\n* `cot` - the cause of transmission (should be ACTIVATION to select/execute or ACT_TERM to cancel the command)\n * `ca` - the common address of the information object\n * `command` - the command information object (e.g. SingleCommand or DoubleCommand)\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8132    pub fn CS104_Connection_sendProcessCommandEx(
8133        self_: CS104_Connection,
8134        cot: CS101_CauseOfTransmission,
8135        ca: ::std::os::raw::c_int,
8136        sc: InformationObject,
8137    ) -> bool;
8138}
8139unsafe extern "C" {
8140    #[doc = "Send a user specified ASDU\n\n # Arguments\n\n* `asdu` - the ASDU to send\n\n # Returns\n\ntrue if message was sent, false otherwise"]
8141    pub fn CS104_Connection_sendASDU(self_: CS104_Connection, asdu: CS101_ASDU) -> bool;
8142}
8143unsafe extern "C" {
8144    #[doc = "Register a callback handler for received ASDUs\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8145    pub fn CS104_Connection_setASDUReceivedHandler(
8146        self_: CS104_Connection,
8147        handler: CS101_ASDUReceivedHandler,
8148        parameter: *mut ::std::os::raw::c_void,
8149    );
8150}
8151pub const CS104_ConnectionEvent_CS104_CONNECTION_OPENED: CS104_ConnectionEvent = 0;
8152pub const CS104_ConnectionEvent_CS104_CONNECTION_CLOSED: CS104_ConnectionEvent = 1;
8153pub const CS104_ConnectionEvent_CS104_CONNECTION_STARTDT_CON_RECEIVED: CS104_ConnectionEvent = 2;
8154pub const CS104_ConnectionEvent_CS104_CONNECTION_STOPDT_CON_RECEIVED: CS104_ConnectionEvent = 3;
8155pub const CS104_ConnectionEvent_CS104_CONNECTION_FAILED: CS104_ConnectionEvent = 4;
8156pub type CS104_ConnectionEvent = ::std::os::raw::c_uint;
8157#[doc = "Handler that is called when the connection is established or closed\n\n > **Note:** Calling CS104_Connection_destroy or CS104_Connection_close inside\n of the callback causes a memory leak!\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `connection` - the connection object\n * `event` - event type"]
8158pub type CS104_ConnectionHandler = ::std::option::Option<
8159    unsafe extern "C" fn(
8160        parameter: *mut ::std::os::raw::c_void,
8161        connection: CS104_Connection,
8162        event: CS104_ConnectionEvent,
8163    ),
8164>;
8165unsafe extern "C" {
8166    #[doc = "Set the connection event handler\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8167    pub fn CS104_Connection_setConnectionHandler(
8168        self_: CS104_Connection,
8169        handler: CS104_ConnectionHandler,
8170        parameter: *mut ::std::os::raw::c_void,
8171    );
8172}
8173unsafe extern "C" {
8174    #[doc = "Set the raw message callback (called when a message is sent or received)\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8175    pub fn CS104_Connection_setRawMessageHandler(
8176        self_: CS104_Connection,
8177        handler: IEC60870_RawMessageHandler,
8178        parameter: *mut ::std::os::raw::c_void,
8179    );
8180}
8181unsafe extern "C" {
8182    #[doc = "Close the connection"]
8183    pub fn CS104_Connection_close(self_: CS104_Connection);
8184}
8185unsafe extern "C" {
8186    #[doc = "Close the connection and free all related resources"]
8187    pub fn CS104_Connection_destroy(self_: CS104_Connection);
8188}
8189unsafe extern "C" {
8190    #[doc = "this function is only intended to be used by test cases and is not part of the API!\n"]
8191    pub fn CS104_Connection_sendMessage(
8192        self_: CS104_Connection,
8193        message: *mut u8,
8194        messageSize: ::std::os::raw::c_int,
8195    ) -> ::std::os::raw::c_int;
8196}
8197#[doc = "Interface to send messages to the master (used by slave)"]
8198pub type IMasterConnection = *mut sIMasterConnection;
8199#[repr(C)]
8200#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8201pub struct sIMasterConnection {
8202    pub isReady: ::std::option::Option<unsafe extern "C" fn(self_: IMasterConnection) -> bool>,
8203    pub sendASDU: ::std::option::Option<
8204        unsafe extern "C" fn(self_: IMasterConnection, asdu: CS101_ASDU) -> bool,
8205    >,
8206    pub sendACT_CON: ::std::option::Option<
8207        unsafe extern "C" fn(self_: IMasterConnection, asdu: CS101_ASDU, negative: bool) -> bool,
8208    >,
8209    pub sendACT_TERM: ::std::option::Option<
8210        unsafe extern "C" fn(self_: IMasterConnection, asdu: CS101_ASDU) -> bool,
8211    >,
8212    pub close: ::std::option::Option<unsafe extern "C" fn(self_: IMasterConnection)>,
8213    pub getPeerAddress: ::std::option::Option<
8214        unsafe extern "C" fn(
8215            self_: IMasterConnection,
8216            addrBuf: *mut ::std::os::raw::c_char,
8217            addrBufSize: ::std::os::raw::c_int,
8218        ) -> ::std::os::raw::c_int,
8219    >,
8220    pub getApplicationLayerParameters: ::std::option::Option<
8221        unsafe extern "C" fn(self_: IMasterConnection) -> CS101_AppLayerParameters,
8222    >,
8223    pub object: *mut ::std::os::raw::c_void,
8224}
8225#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8226const _: () = {
8227    ["Size of sIMasterConnection"][::std::mem::size_of::<sIMasterConnection>() - 64usize];
8228    ["Alignment of sIMasterConnection"][::std::mem::align_of::<sIMasterConnection>() - 8usize];
8229    ["Offset of field: sIMasterConnection::isReady"]
8230        [::std::mem::offset_of!(sIMasterConnection, isReady) - 0usize];
8231    ["Offset of field: sIMasterConnection::sendASDU"]
8232        [::std::mem::offset_of!(sIMasterConnection, sendASDU) - 8usize];
8233    ["Offset of field: sIMasterConnection::sendACT_CON"]
8234        [::std::mem::offset_of!(sIMasterConnection, sendACT_CON) - 16usize];
8235    ["Offset of field: sIMasterConnection::sendACT_TERM"]
8236        [::std::mem::offset_of!(sIMasterConnection, sendACT_TERM) - 24usize];
8237    ["Offset of field: sIMasterConnection::close"]
8238        [::std::mem::offset_of!(sIMasterConnection, close) - 32usize];
8239    ["Offset of field: sIMasterConnection::getPeerAddress"]
8240        [::std::mem::offset_of!(sIMasterConnection, getPeerAddress) - 40usize];
8241    ["Offset of field: sIMasterConnection::getApplicationLayerParameters"]
8242        [::std::mem::offset_of!(sIMasterConnection, getApplicationLayerParameters) - 48usize];
8243    ["Offset of field: sIMasterConnection::object"]
8244        [::std::mem::offset_of!(sIMasterConnection, object) - 56usize];
8245};
8246impl Default for sIMasterConnection {
8247    fn default() -> Self {
8248        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8249        unsafe {
8250            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8251            s.assume_init()
8252        }
8253    }
8254}
8255unsafe extern "C" {
8256    #[doc = "Check if the connection is ready to send an ASDU.\n\n > **Deprecated** Use one of the send functions (e.g. IMasterConnection_sendASDU) and evaluate\n the return value.\n\n NOTE: The functions returns true when the connection is activated, the ASDU can be immediately sent,\n or the queue has enough space to store another ASDU.\n\n # Arguments\n\n* `self` - the connection object (this is usually received as a parameter of a callback function)\n\n # Returns\n\ntrue if the connection is ready to send an ASDU, false otherwise"]
8257    pub fn IMasterConnection_isReady(self_: IMasterConnection) -> bool;
8258}
8259unsafe extern "C" {
8260    #[doc = "Send an ASDU to the client/master\n\n NOTE: ASDU instance has to be released by the caller!\n\n # Arguments\n\n* `self` - the connection object (this is usually received as a parameter of a callback function)\n * `asdu` - the ASDU to send to the client/master\n\n # Returns\n\ntrue when the ASDU has been sent or queued for transmission, false otherwise"]
8261    pub fn IMasterConnection_sendASDU(self_: IMasterConnection, asdu: CS101_ASDU) -> bool;
8262}
8263unsafe extern "C" {
8264    #[doc = "Send an ACT_CON ASDU to the client/master\n\n ACT_CON is used for a command confirmation (positive or negative)\n\n # Arguments\n\n* `asdu` - the ASDU to send to the client/master\n * `negative` - value of the negative flag\n\n # Returns\n\ntrue when the ASDU has been sent or queued for transmission, false otherwise"]
8265    pub fn IMasterConnection_sendACT_CON(
8266        self_: IMasterConnection,
8267        asdu: CS101_ASDU,
8268        negative: bool,
8269    ) -> bool;
8270}
8271unsafe extern "C" {
8272    #[doc = "Send an ACT_TERM ASDU to the client/master\n\n ACT_TERM is used to indicate that the command execution is complete.\n\n # Arguments\n\n* `asdu` - the ASDU to send to the client/master\n\n # Returns\n\ntrue when the ASDU has been sent or queued for transmission, false otherwise"]
8273    pub fn IMasterConnection_sendACT_TERM(self_: IMasterConnection, asdu: CS101_ASDU) -> bool;
8274}
8275unsafe extern "C" {
8276    #[doc = "Get the peer address of the master (only for CS 104)\n\n # Arguments\n\n* `addrBuf` - buffer where to store the IP address as string\n * `addrBufSize` - the size of the buffer where to store the IP address\n\n # Returns\n\nthe number of bytes written to the buffer, 0 if function not supported"]
8277    pub fn IMasterConnection_getPeerAddress(
8278        self_: IMasterConnection,
8279        addrBuf: *mut ::std::os::raw::c_char,
8280        addrBufSize: ::std::os::raw::c_int,
8281    ) -> ::std::os::raw::c_int;
8282}
8283unsafe extern "C" {
8284    #[doc = "Close the master connection (only for CS 104)\n\n Allows the slave to actively close a master connection (e.g. when some exception occurs)"]
8285    pub fn IMasterConnection_close(self_: IMasterConnection);
8286}
8287unsafe extern "C" {
8288    #[doc = "Get the application layer parameters used by this connection"]
8289    pub fn IMasterConnection_getApplicationLayerParameters(
8290        self_: IMasterConnection,
8291    ) -> CS101_AppLayerParameters;
8292}
8293pub const CS101_SlavePlugin_Result_CS101_PLUGIN_RESULT_NOT_HANDLED: CS101_SlavePlugin_Result = 0;
8294pub const CS101_SlavePlugin_Result_CS101_PLUGIN_RESULT_HANDLED: CS101_SlavePlugin_Result = 1;
8295pub const CS101_SlavePlugin_Result_CS101_PLUGIN_RESULT_INVALID_ASDU: CS101_SlavePlugin_Result = 2;
8296#[doc = "SLAVE_PLUGIN Slave plugin interface\n\n Plugin interface to add functionality to the slave (e.g. file server)"]
8297pub type CS101_SlavePlugin_Result = ::std::os::raw::c_uint;
8298#[doc = "Plugin interface for CS101 or CS104 slaves"]
8299pub type CS101_SlavePlugin = *mut sCS101_SlavePlugin;
8300#[repr(C)]
8301#[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]
8302pub struct sCS101_SlavePlugin {
8303    pub handleAsdu: ::std::option::Option<
8304        unsafe extern "C" fn(
8305            parameter: *mut ::std::os::raw::c_void,
8306            connection: IMasterConnection,
8307            asdu: CS101_ASDU,
8308        ) -> CS101_SlavePlugin_Result,
8309    >,
8310    pub runTask: ::std::option::Option<
8311        unsafe extern "C" fn(parameter: *mut ::std::os::raw::c_void, connection: IMasterConnection),
8312    >,
8313    pub parameter: *mut ::std::os::raw::c_void,
8314}
8315#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8316const _: () = {
8317    ["Size of sCS101_SlavePlugin"][::std::mem::size_of::<sCS101_SlavePlugin>() - 24usize];
8318    ["Alignment of sCS101_SlavePlugin"][::std::mem::align_of::<sCS101_SlavePlugin>() - 8usize];
8319    ["Offset of field: sCS101_SlavePlugin::handleAsdu"]
8320        [::std::mem::offset_of!(sCS101_SlavePlugin, handleAsdu) - 0usize];
8321    ["Offset of field: sCS101_SlavePlugin::runTask"]
8322        [::std::mem::offset_of!(sCS101_SlavePlugin, runTask) - 8usize];
8323    ["Offset of field: sCS101_SlavePlugin::parameter"]
8324        [::std::mem::offset_of!(sCS101_SlavePlugin, parameter) - 16usize];
8325};
8326impl Default for sCS101_SlavePlugin {
8327    fn default() -> Self {
8328        let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
8329        unsafe {
8330            ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
8331            s.assume_init()
8332        }
8333    }
8334}
8335#[doc = "Handler will be called when a link layer reset CU (communication unit) message is received\n\n NOTE: Can be used to empty the ASDU queues\n\n # Arguments\n\n* `parameter` - a user provided parameter"]
8336pub type CS101_ResetCUHandler =
8337    ::std::option::Option<unsafe extern "C" fn(parameter: *mut ::std::os::raw::c_void)>;
8338#[doc = "Handler for interrogation command (C_IC_NA_1 - 100)."]
8339pub type CS101_InterrogationHandler = ::std::option::Option<
8340    unsafe extern "C" fn(
8341        parameter: *mut ::std::os::raw::c_void,
8342        connection: IMasterConnection,
8343        asdu: CS101_ASDU,
8344        qoi: u8,
8345    ) -> bool,
8346>;
8347#[doc = "Handler for counter interrogation command (C_CI_NA_1 - 101)."]
8348pub type CS101_CounterInterrogationHandler = ::std::option::Option<
8349    unsafe extern "C" fn(
8350        parameter: *mut ::std::os::raw::c_void,
8351        connection: IMasterConnection,
8352        asdu: CS101_ASDU,
8353        qcc: QualifierOfCIC,
8354    ) -> bool,
8355>;
8356#[doc = "Handler for read command (C_RD_NA_1 - 102)"]
8357pub type CS101_ReadHandler = ::std::option::Option<
8358    unsafe extern "C" fn(
8359        parameter: *mut ::std::os::raw::c_void,
8360        connection: IMasterConnection,
8361        asdu: CS101_ASDU,
8362        ioa: ::std::os::raw::c_int,
8363    ) -> bool,
8364>;
8365#[doc = "Handler for clock synchronization command (C_CS_NA_1 - 103)\n\n This handler will be called whenever a time synchronization command is received.\n NOTE: The CS104_Slave instance will automatically send an ACT-CON message for the received time sync command.\n\n # Arguments\n\n* `parameter` (direction in) - user provided parameter\n * `connection` (direction in) - represents the (TCP) connection that received the time sync command\n * `asdu` (direction in) - the received ASDU\n * `the` (direction in, out) - time received with the time sync message. The user can update this time for the ACT-CON message\n\n # Returns\n\ntrue when time synchronization has been successful, false otherwise"]
8366pub type CS101_ClockSynchronizationHandler = ::std::option::Option<
8367    unsafe extern "C" fn(
8368        parameter: *mut ::std::os::raw::c_void,
8369        connection: IMasterConnection,
8370        asdu: CS101_ASDU,
8371        newTime: CP56Time2a,
8372    ) -> bool,
8373>;
8374#[doc = "Handler for reset process command (C_RP_NA_1 - 105)"]
8375pub type CS101_ResetProcessHandler = ::std::option::Option<
8376    unsafe extern "C" fn(
8377        parameter: *mut ::std::os::raw::c_void,
8378        connection: IMasterConnection,
8379        asdu: CS101_ASDU,
8380        qrp: u8,
8381    ) -> bool,
8382>;
8383#[doc = "Handler for delay acquisition command (C_CD_NA:1 - 106)"]
8384pub type CS101_DelayAcquisitionHandler = ::std::option::Option<
8385    unsafe extern "C" fn(
8386        parameter: *mut ::std::os::raw::c_void,
8387        connection: IMasterConnection,
8388        asdu: CS101_ASDU,
8389        delayTime: CP16Time2a,
8390    ) -> bool,
8391>;
8392#[doc = "Handler for ASDUs that are not handled by other handlers (default handler)"]
8393pub type CS101_ASDUHandler = ::std::option::Option<
8394    unsafe extern "C" fn(
8395        parameter: *mut ::std::os::raw::c_void,
8396        connection: IMasterConnection,
8397        asdu: CS101_ASDU,
8398    ) -> bool,
8399>;
8400#[repr(C)]
8401#[derive(Debug, Copy, Clone)]
8402pub struct sCS104_Slave {
8403    _unused: [u8; 0],
8404}
8405#[doc = "CS104_SLAVE CS 104 slave (TCP/IP server) related functions\n\n # "]
8406pub type CS104_Slave = *mut sCS104_Slave;
8407pub const CS104_ServerMode_CS104_MODE_SINGLE_REDUNDANCY_GROUP: CS104_ServerMode = 0;
8408pub const CS104_ServerMode_CS104_MODE_CONNECTION_IS_REDUNDANCY_GROUP: CS104_ServerMode = 1;
8409pub const CS104_ServerMode_CS104_MODE_MULTIPLE_REDUNDANCY_GROUPS: CS104_ServerMode = 2;
8410pub type CS104_ServerMode = ::std::os::raw::c_uint;
8411pub const eCS104_IPAddressType_IP_ADDRESS_TYPE_IPV4: eCS104_IPAddressType = 0;
8412pub const eCS104_IPAddressType_IP_ADDRESS_TYPE_IPV6: eCS104_IPAddressType = 1;
8413pub type eCS104_IPAddressType = ::std::os::raw::c_uint;
8414#[repr(C)]
8415#[derive(Debug, Copy, Clone)]
8416pub struct sCS104_RedundancyGroup {
8417    _unused: [u8; 0],
8418}
8419pub type CS104_RedundancyGroup = *mut sCS104_RedundancyGroup;
8420#[doc = "Connection request handler is called when a client tries to connect to the server.\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `ipAddress` - string containing IP address and TCP port number (e.g. \"192.168.1.1:34521\")\n\n # Returns\n\ntrue to accept the connection request, false to deny"]
8421pub type CS104_ConnectionRequestHandler = ::std::option::Option<
8422    unsafe extern "C" fn(
8423        parameter: *mut ::std::os::raw::c_void,
8424        ipAddress: *const ::std::os::raw::c_char,
8425    ) -> bool,
8426>;
8427pub const CS104_PeerConnectionEvent_CS104_CON_EVENT_CONNECTION_OPENED: CS104_PeerConnectionEvent =
8428    0;
8429pub const CS104_PeerConnectionEvent_CS104_CON_EVENT_CONNECTION_CLOSED: CS104_PeerConnectionEvent =
8430    1;
8431pub const CS104_PeerConnectionEvent_CS104_CON_EVENT_ACTIVATED: CS104_PeerConnectionEvent = 2;
8432pub const CS104_PeerConnectionEvent_CS104_CON_EVENT_DEACTIVATED: CS104_PeerConnectionEvent = 3;
8433pub type CS104_PeerConnectionEvent = ::std::os::raw::c_uint;
8434#[doc = "Handler that is called when a peer connection is established or closed, or START_DT/STOP_DT is issued\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `connection` - the connection object\n * `event` - event type"]
8435pub type CS104_ConnectionEventHandler = ::std::option::Option<
8436    unsafe extern "C" fn(
8437        parameter: *mut ::std::os::raw::c_void,
8438        connection: IMasterConnection,
8439        event: CS104_PeerConnectionEvent,
8440    ),
8441>;
8442#[doc = "Callback handler for sent and received messages\n\n This callback handler provides access to the raw message buffer of received or sent\n messages. It can be used for debugging purposes. Usually it is not used nor required\n for applications.\n\n # Arguments\n\n* `parameter` - user provided parameter\n * `connection` - the connection that sent or received the message\n * `msg` - the message buffer\n * `msgSize` - size of the message\n * `sent` - indicates if the message was sent or received"]
8443pub type CS104_SlaveRawMessageHandler = ::std::option::Option<
8444    unsafe extern "C" fn(
8445        parameter: *mut ::std::os::raw::c_void,
8446        connection: IMasterConnection,
8447        msg: *mut u8,
8448        msgSize: ::std::os::raw::c_int,
8449        send: bool,
8450    ),
8451>;
8452unsafe extern "C" {
8453    #[doc = "Create a new instance of a CS104 slave (server)\n\n # Arguments\n\n* `maxLowPrioQueueSize` - the maximum size of the event queue\n * `maxHighPrioQueueSize` - the maximum size of the high-priority queue\n\n # Returns\n\nthe new slave instance"]
8454    pub fn CS104_Slave_create(
8455        maxLowPrioQueueSize: ::std::os::raw::c_int,
8456        maxHighPrioQueueSize: ::std::os::raw::c_int,
8457    ) -> CS104_Slave;
8458}
8459unsafe extern "C" {
8460    #[doc = "Create a new instance of a CS104 slave (server) with TLS enabled\n\n # Arguments\n\n* `maxLowPrioQueueSize` - the maximum size of the event queue\n * `maxHighPrioQueueSize` - the maximum size of the high-priority queue\n * `tlsConfig` - the TLS configuration object (containing configuration parameters, keys, and certificates)\n\n # Returns\n\nthe new slave instance"]
8461    pub fn CS104_Slave_createSecure(
8462        maxLowPrioQueueSize: ::std::os::raw::c_int,
8463        maxHighPrioQueueSize: ::std::os::raw::c_int,
8464        tlsConfig: TLSConfiguration,
8465    ) -> CS104_Slave;
8466}
8467unsafe extern "C" {
8468    pub fn CS104_Slave_addPlugin(self_: CS104_Slave, plugin: CS101_SlavePlugin);
8469}
8470unsafe extern "C" {
8471    #[doc = "Set the local IP address to bind the server\n use \"0.0.0.0\" to bind to all interfaces\n\n # Arguments\n\n* `self` - the slave instance\n * `ipAddress` - the IP address string or hostname"]
8472    pub fn CS104_Slave_setLocalAddress(
8473        self_: CS104_Slave,
8474        ipAddress: *const ::std::os::raw::c_char,
8475    );
8476}
8477unsafe extern "C" {
8478    #[doc = "Set the local TCP port to bind the server\n\n # Arguments\n\n* `self` - the slave instance\n * `tcpPort` - the TCP port to use (default is 2404)"]
8479    pub fn CS104_Slave_setLocalPort(self_: CS104_Slave, tcpPort: ::std::os::raw::c_int);
8480}
8481unsafe extern "C" {
8482    #[doc = "Get the number of connected clients\n\n # Arguments\n\n* `self` - the slave instance"]
8483    pub fn CS104_Slave_getOpenConnections(self_: CS104_Slave) -> ::std::os::raw::c_int;
8484}
8485unsafe extern "C" {
8486    #[doc = "set the maximum number of open client connections allowed\n\n NOTE: the number cannot be larger than the static maximum defined in\n\n # Arguments\n\n* `self` - the slave instance\n * `maxOpenConnections` - the maximum number of open client connections allowed"]
8487    pub fn CS104_Slave_setMaxOpenConnections(
8488        self_: CS104_Slave,
8489        maxOpenConnections: ::std::os::raw::c_int,
8490    );
8491}
8492unsafe extern "C" {
8493    #[doc = "Set one of the server modes\n\n # Arguments\n\n* `self` - the slave instance\n * `serverMode` - the server mode (see CS104_ServerMode) to use"]
8494    pub fn CS104_Slave_setServerMode(self_: CS104_Slave, serverMode: CS104_ServerMode);
8495}
8496unsafe extern "C" {
8497    #[doc = "Set the connection request handler\n\n The connection request handler is called whenever a client/master is trying to connect.\n This handler can be used to implement access control mechanisms as it allows the user to decide\n if the new connection is accepted or not.\n\n # Arguments\n\n* `self` - the slave instance\n * `handler` - the callback function to be used\n * `parameter` - user provided context parameter that will be passed to the callback function (or NULL if not required)."]
8498    pub fn CS104_Slave_setConnectionRequestHandler(
8499        self_: CS104_Slave,
8500        handler: CS104_ConnectionRequestHandler,
8501        parameter: *mut ::std::os::raw::c_void,
8502    );
8503}
8504unsafe extern "C" {
8505    #[doc = "Set the connection event handler\n\n The connection request handler is called whenever a connection event happens. A connection event\n can be when a client connects or disconnects, or when a START_DT or STOP_DT message is received.\n\n # Arguments\n\n* `self` - the slave instance\n * `handler` - the callback function to be used\n * `parameter` - user provided context parameter that will be passed to the callback function (or NULL if not required)."]
8506    pub fn CS104_Slave_setConnectionEventHandler(
8507        self_: CS104_Slave,
8508        handler: CS104_ConnectionEventHandler,
8509        parameter: *mut ::std::os::raw::c_void,
8510    );
8511}
8512unsafe extern "C" {
8513    pub fn CS104_Slave_setInterrogationHandler(
8514        self_: CS104_Slave,
8515        handler: CS101_InterrogationHandler,
8516        parameter: *mut ::std::os::raw::c_void,
8517    );
8518}
8519unsafe extern "C" {
8520    pub fn CS104_Slave_setCounterInterrogationHandler(
8521        self_: CS104_Slave,
8522        handler: CS101_CounterInterrogationHandler,
8523        parameter: *mut ::std::os::raw::c_void,
8524    );
8525}
8526unsafe extern "C" {
8527    #[doc = "set handler for read request (C_RD_NA_1 - 102)"]
8528    pub fn CS104_Slave_setReadHandler(
8529        self_: CS104_Slave,
8530        handler: CS101_ReadHandler,
8531        parameter: *mut ::std::os::raw::c_void,
8532    );
8533}
8534unsafe extern "C" {
8535    pub fn CS104_Slave_setASDUHandler(
8536        self_: CS104_Slave,
8537        handler: CS101_ASDUHandler,
8538        parameter: *mut ::std::os::raw::c_void,
8539    );
8540}
8541unsafe extern "C" {
8542    pub fn CS104_Slave_setClockSyncHandler(
8543        self_: CS104_Slave,
8544        handler: CS101_ClockSynchronizationHandler,
8545        parameter: *mut ::std::os::raw::c_void,
8546    );
8547}
8548unsafe extern "C" {
8549    #[doc = "Set the raw message callback (called when a message is sent or received)\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8550    pub fn CS104_Slave_setRawMessageHandler(
8551        self_: CS104_Slave,
8552        handler: CS104_SlaveRawMessageHandler,
8553        parameter: *mut ::std::os::raw::c_void,
8554    );
8555}
8556unsafe extern "C" {
8557    #[doc = "Get the APCI parameters instance. APCI parameters are CS 104 specific parameters."]
8558    pub fn CS104_Slave_getConnectionParameters(self_: CS104_Slave) -> CS104_APCIParameters;
8559}
8560unsafe extern "C" {
8561    #[doc = "Get the application layer parameters instance.."]
8562    pub fn CS104_Slave_getAppLayerParameters(self_: CS104_Slave) -> CS101_AppLayerParameters;
8563}
8564unsafe extern "C" {
8565    #[doc = "Start the CS 104 slave. The slave (server) will listen on the configured TCP/IP port\n\n NOTE: This function will start a thread that handles the incoming client connections.\n This function requires CONFIG_USE_THREADS = 1 and CONFIG_USE_SEMAPHORES == 1 in lib60870_config.h\n\n # Arguments\n\n* `self` - CS104_Slave instance"]
8566    pub fn CS104_Slave_start(self_: CS104_Slave);
8567}
8568unsafe extern "C" {
8569    #[doc = "Check if slave is running\n\n # Arguments\n\n* `self` - CS104_Slave instance\n\n # Returns\n\ntrue when slave is running, false otherwise"]
8570    pub fn CS104_Slave_isRunning(self_: CS104_Slave) -> bool;
8571}
8572unsafe extern "C" {
8573    #[doc = "Stop the server.\n\n Stop listening to incoming TCP/IP connections and close all open connections.\n Event buffers will be deactivated."]
8574    pub fn CS104_Slave_stop(self_: CS104_Slave);
8575}
8576unsafe extern "C" {
8577    #[doc = "Start the slave (server) in non-threaded mode.\n\n Start listening to incoming TCP/IP connections.\n\n NOTE: Server should only be started after all configuration is done."]
8578    pub fn CS104_Slave_startThreadless(self_: CS104_Slave);
8579}
8580unsafe extern "C" {
8581    #[doc = "Stop the server in non-threaded mode\n\n Stop listening to incoming TCP/IP connections and close all open connections.\n Event buffers will be deactivated."]
8582    pub fn CS104_Slave_stopThreadless(self_: CS104_Slave);
8583}
8584unsafe extern "C" {
8585    #[doc = "Protocol stack tick function for non-threaded mode.\n\n Handle incoming connection requests and messages, send buffered events, and\n handle periodic tasks.\n\n NOTE: This function has to be called periodically by the application."]
8586    pub fn CS104_Slave_tick(self_: CS104_Slave);
8587}
8588unsafe extern "C" {
8589    #[doc = "Gets the number of ASDU in the low-priority queue\n\n NOTE: Mode CS104_MODE_CONNECTION_IS_REDUNDANCY_GROUP is not supported by this function.\n\n # Arguments\n\n* `redGroup` - the redundancy group to use or NULL for single redundancy mode\n\n # Returns\n\nthe number of ASDU in the low-priority queue"]
8590    pub fn CS104_Slave_getNumberOfQueueEntries(
8591        self_: CS104_Slave,
8592        redGroup: CS104_RedundancyGroup,
8593    ) -> ::std::os::raw::c_int;
8594}
8595unsafe extern "C" {
8596    #[doc = "Add an ASDU to the low-priority queue of the slave (use for periodic and spontaneous messages)\n\n # Arguments\n\n* `asdu` - the ASDU to add"]
8597    pub fn CS104_Slave_enqueueASDU(self_: CS104_Slave, asdu: CS101_ASDU);
8598}
8599unsafe extern "C" {
8600    #[doc = "Add a new redundancy group to the server.\n\n A redundancy group is a group of clients that share the same event queue. This function can\n only be used with server mode CS104_MODE_MULTIPLE_REDUNDANCY_GROUPS.\n\n NOTE: Has to be called before the server is started!\n\n # Arguments\n\n* `redundancyGroup` - the new redundancy group"]
8601    pub fn CS104_Slave_addRedundancyGroup(
8602        self_: CS104_Slave,
8603        redundancyGroup: CS104_RedundancyGroup,
8604    );
8605}
8606unsafe extern "C" {
8607    #[doc = "Delete the slave instance. Release all resources."]
8608    pub fn CS104_Slave_destroy(self_: CS104_Slave);
8609}
8610unsafe extern "C" {
8611    #[doc = "Create a new redundancy group.\n\n A redundancy group is a group of clients that share the same event queue. Redundancy groups can\n only be used with server mode CS104_MODE_MULTIPLE_REDUNDANCY_GROUPS."]
8612    pub fn CS104_RedundancyGroup_create(
8613        name: *const ::std::os::raw::c_char,
8614    ) -> CS104_RedundancyGroup;
8615}
8616unsafe extern "C" {
8617    #[doc = "Add an allowed client to the redundancy group\n\n # Arguments\n\n* `ipAddress` - the IP address of the client as C string (can be IPv4 or IPv6 address)."]
8618    pub fn CS104_RedundancyGroup_addAllowedClient(
8619        self_: CS104_RedundancyGroup,
8620        ipAddress: *const ::std::os::raw::c_char,
8621    );
8622}
8623unsafe extern "C" {
8624    #[doc = "Add an allowed client to the redundancy group\n\n # Arguments\n\n* `ipAddress` - the IP address as byte buffer (4 byte for IPv4, 16 byte for IPv6)\n * `addressType` - type of the IP address (either IP_ADDRESS_TYPE_IPV4 or IP_ADDRESS_TYPE_IPV6)"]
8625    pub fn CS104_RedundancyGroup_addAllowedClientEx(
8626        self_: CS104_RedundancyGroup,
8627        ipAddress: *const u8,
8628        addressType: eCS104_IPAddressType,
8629    );
8630}
8631unsafe extern "C" {
8632    #[doc = "Destroy the instance and release all resources.\n\n NOTE: This function will be called by CS104_Slave_destroy. After using\n the CS104_Slave_addRedundancyGroup function the redundancy group object must\n not be destroyed manually."]
8633    pub fn CS104_RedundancyGroup_destroy(self_: CS104_RedundancyGroup);
8634}
8635#[doc = "Parameters for the IEC 60870-5 link layer"]
8636pub type LinkLayerParameters = *mut sLinkLayerParameters;
8637#[repr(C)]
8638#[derive(Debug, Default, Copy, Clone, Hash, PartialEq, Eq)]
8639pub struct sLinkLayerParameters {
8640    pub addressLength: ::std::os::raw::c_int,
8641    #[doc = "Length of link layer address (1 or 2 byte)"]
8642    pub timeoutForAck: ::std::os::raw::c_int,
8643    #[doc = "timeout for link layer ACK in ms"]
8644    pub timeoutRepeat: ::std::os::raw::c_int,
8645    #[doc = "timeout for repeated message transmission when no ACK received in ms"]
8646    pub useSingleCharACK: bool,
8647    #[doc = "use single char ACK for ACK (FC=0) or RESP_NO_USER_DATA (FC=9)"]
8648    pub timeoutLinkState: ::std::os::raw::c_int,
8649}
8650#[allow(clippy::unnecessary_operation, clippy::identity_op)]
8651const _: () = {
8652    ["Size of sLinkLayerParameters"][::std::mem::size_of::<sLinkLayerParameters>() - 20usize];
8653    ["Alignment of sLinkLayerParameters"][::std::mem::align_of::<sLinkLayerParameters>() - 4usize];
8654    ["Offset of field: sLinkLayerParameters::addressLength"]
8655        [::std::mem::offset_of!(sLinkLayerParameters, addressLength) - 0usize];
8656    ["Offset of field: sLinkLayerParameters::timeoutForAck"]
8657        [::std::mem::offset_of!(sLinkLayerParameters, timeoutForAck) - 4usize];
8658    ["Offset of field: sLinkLayerParameters::timeoutRepeat"]
8659        [::std::mem::offset_of!(sLinkLayerParameters, timeoutRepeat) - 8usize];
8660    ["Offset of field: sLinkLayerParameters::useSingleCharACK"]
8661        [::std::mem::offset_of!(sLinkLayerParameters, useSingleCharACK) - 12usize];
8662    ["Offset of field: sLinkLayerParameters::timeoutLinkState"]
8663        [::std::mem::offset_of!(sLinkLayerParameters, timeoutLinkState) - 16usize];
8664};
8665#[repr(C)]
8666#[derive(Debug, Copy, Clone)]
8667pub struct sCS101_Master {
8668    _unused: [u8; 0],
8669}
8670#[doc = "CS101_Master type"]
8671pub type CS101_Master = *mut sCS101_Master;
8672unsafe extern "C" {
8673    #[doc = "Create a new master instance\n\n # Arguments\n\n* `port` - the serial port to use\n * `llParameters` - the link layer parameters to use\n * `alParameters` - the application layer parameters to use\n * `mode` - the link layer mode (either IEC60870_LINK_LAYER_BALANCED or IEC60870_LINK_LAYER_UNBALANCED)\n\n # Returns\n\nthe new CS101_Master instance"]
8674    pub fn CS101_Master_create(
8675        port: SerialPort,
8676        llParameters: LinkLayerParameters,
8677        alParameters: CS101_AppLayerParameters,
8678        mode: IEC60870_LinkLayerMode,
8679    ) -> CS101_Master;
8680}
8681unsafe extern "C" {
8682    #[doc = "Create a new master instance and specify message queue size (for balanced mode)\n\n # Arguments\n\n* `port` - the serial port to use\n * `llParameters` - the link layer parameters to use\n * `alParameters` - the application layer parameters to use\n * `mode` - the link layer mode (either IEC60870_LINK_LAYER_BALANCED or IEC60870_LINK_LAYER_UNBALANCED)\n * `queueSize` - set the message queue size (only for balanced mode)\n\n # Returns\n\nthe new CS101_Master instance"]
8683    pub fn CS101_Master_createEx(
8684        serialPort: SerialPort,
8685        llParameters: LinkLayerParameters,
8686        alParameters: CS101_AppLayerParameters,
8687        linkLayerMode: IEC60870_LinkLayerMode,
8688        queueSize: ::std::os::raw::c_int,
8689    ) -> CS101_Master;
8690}
8691unsafe extern "C" {
8692    #[doc = "Receive a new message and run the protocol state machine(s).\n\n NOTE: This function has to be called frequently in order to send and\n receive messages to and from slaves."]
8693    pub fn CS101_Master_run(self_: CS101_Master);
8694}
8695unsafe extern "C" {
8696    #[doc = "Start a background thread that handles the link layer connections\n\n NOTE: This requires threads. If you don't want to use a separate thread\n for the master instance you have to call the CS101_Master_run function\n periodically.\n\n # Arguments\n\n* `self` - CS101_Master instance"]
8697    pub fn CS101_Master_start(self_: CS101_Master);
8698}
8699unsafe extern "C" {
8700    #[doc = "Stops the background thread that handles the link layer connections\n\n # Arguments\n\n* `self` - CS101_Master instance"]
8701    pub fn CS101_Master_stop(self_: CS101_Master);
8702}
8703unsafe extern "C" {
8704    #[doc = "Add a new slave connection\n\n This function creates and starts a new link layer state machine\n to be used for communication with the slave. It has to be called\n before any application data can be send/received to/from the slave.\n\n # Arguments\n\n* `address` - link layer address of the slave"]
8705    pub fn CS101_Master_addSlave(self_: CS101_Master, address: ::std::os::raw::c_int);
8706}
8707unsafe extern "C" {
8708    #[doc = "Poll a slave (only unbalanced mode)\n\n NOTE: This command will instruct the unbalanced link layer to send a\n request for class 2 data. It is required to frequently call this\n message for each slave in order to receive application layer data from\n the slave\n\n # Arguments\n\n* `address` - the link layer address of the slave"]
8709    pub fn CS101_Master_pollSingleSlave(self_: CS101_Master, address: ::std::os::raw::c_int);
8710}
8711unsafe extern "C" {
8712    #[doc = "Destroy the master instance and release all resources"]
8713    pub fn CS101_Master_destroy(self_: CS101_Master);
8714}
8715unsafe extern "C" {
8716    #[doc = "Set the value of the DIR bit when sending messages (only balanced mode)\n\n NOTE: Default value is true (controlling station). In the case of two equivalent stations\n the value is defined by agreement.\n\n # Arguments\n\n* `dir` - the value of the DIR bit when sending messages"]
8717    pub fn CS101_Master_setDIR(self_: CS101_Master, dir: bool);
8718}
8719unsafe extern "C" {
8720    #[doc = "Set the own link layer address (only balanced mode)\n\n # Arguments\n\n* `address` - the link layer address to use"]
8721    pub fn CS101_Master_setOwnAddress(self_: CS101_Master, address: ::std::os::raw::c_int);
8722}
8723unsafe extern "C" {
8724    #[doc = "Set the slave address for the following send functions\n\n NOTE: This is always required in unbalanced mode. Some balanced slaves\n also check the link layer address. In this case the slave address\n has also to be set in balanced mode.\n\n # Arguments\n\n* `address` - the link layer address of the slave to address"]
8725    pub fn CS101_Master_useSlaveAddress(self_: CS101_Master, address: ::std::os::raw::c_int);
8726}
8727unsafe extern "C" {
8728    #[doc = "Returns the application layer parameters object of this master instance\n\n # Returns\n\nthe CS101_AppLayerParameters instance used by this master"]
8729    pub fn CS101_Master_getAppLayerParameters(self_: CS101_Master) -> CS101_AppLayerParameters;
8730}
8731unsafe extern "C" {
8732    #[doc = "Returns the link layer parameters object of this master instance\n\n # Returns\n\nthe LinkLayerParameters instance used by this master"]
8733    pub fn CS101_Master_getLinkLayerParameters(self_: CS101_Master) -> LinkLayerParameters;
8734}
8735unsafe extern "C" {
8736    #[doc = "Is the channel ready to transmit an ASDU (only unbalanced mode)\n\n The function will return true when the channel (slave) transmit buffer\n is empty.\n\n # Arguments\n\n* `address` - slave address of the recipient\n\n # Returns\n\ntrue, if channel ready to send a new ASDU, false otherwise"]
8737    pub fn CS101_Master_isChannelReady(self_: CS101_Master, address: ::std::os::raw::c_int)
8738    -> bool;
8739}
8740unsafe extern "C" {
8741    #[doc = "Manually send link layer test function.\n\n Together with the IEC60870_LinkLayerStateChangedHandler this function can\n be used to ensure that the link is working correctly"]
8742    pub fn CS101_Master_sendLinkLayerTestFunction(self_: CS101_Master);
8743}
8744unsafe extern "C" {
8745    #[doc = "send an interrogation command\n\n # Arguments\n\n* `cot` - cause of transmission\n * `ca` - Common address of the slave/server\n * `qoi` - qualifier of interrogation (20 for station interrogation)"]
8746    pub fn CS101_Master_sendInterrogationCommand(
8747        self_: CS101_Master,
8748        cot: CS101_CauseOfTransmission,
8749        ca: ::std::os::raw::c_int,
8750        qoi: QualifierOfInterrogation,
8751    );
8752}
8753unsafe extern "C" {
8754    #[doc = "send a counter interrogation command\n\n # Arguments\n\n* `cot` - cause of transmission\n * `ca` - Common address of the slave/server\n * `qcc` -"]
8755    pub fn CS101_Master_sendCounterInterrogationCommand(
8756        self_: CS101_Master,
8757        cot: CS101_CauseOfTransmission,
8758        ca: ::std::os::raw::c_int,
8759        qcc: u8,
8760    );
8761}
8762unsafe extern "C" {
8763    #[doc = "Sends a read command (C_RD_NA_1 typeID: 102)\n\n This will send a read command C_RC_NA_1 (102) to the slave/outstation. The COT is always REQUEST (5).\n It is used to implement the cyclical polling of data application function.\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n * `ioa` - Information object address of the data point to read"]
8764    pub fn CS101_Master_sendReadCommand(
8765        self_: CS101_Master,
8766        ca: ::std::os::raw::c_int,
8767        ioa: ::std::os::raw::c_int,
8768    );
8769}
8770unsafe extern "C" {
8771    #[doc = "Sends a clock synchronization command (C_CS_NA_1 typeID: 103)\n\n # Arguments\n\n* `ca` - Common address of the slave/server\n * `time` - new system time for the slave/server"]
8772    pub fn CS101_Master_sendClockSyncCommand(
8773        self_: CS101_Master,
8774        ca: ::std::os::raw::c_int,
8775        time: CP56Time2a,
8776    );
8777}
8778unsafe extern "C" {
8779    #[doc = "Send a test command (C_TS_NA_1 typeID: 104)\n\n Note: This command is not supported by IEC 60870-5-104\n\n # Arguments\n\n* `ca` - Common address of the slave/server"]
8780    pub fn CS101_Master_sendTestCommand(self_: CS101_Master, ca: ::std::os::raw::c_int);
8781}
8782unsafe extern "C" {
8783    #[doc = "Send a process command to the controlled (or other) station\n\n # Arguments\n\n* `cot` - the cause of transmission (should be ACTIVATION to select/execute or ACT_TERM to cancel the command)\n * `ca` - the common address of the information object\n * `command` - the command information object (e.g. SingleCommand or DoubleCommand)\n"]
8784    pub fn CS101_Master_sendProcessCommand(
8785        self_: CS101_Master,
8786        cot: CS101_CauseOfTransmission,
8787        ca: ::std::os::raw::c_int,
8788        command: InformationObject,
8789    );
8790}
8791unsafe extern "C" {
8792    #[doc = "Send a user specified ASDU\n\n This function can be used for any kind of ASDU types. It can\n also be used for monitoring messages in reverse direction.\n\n NOTE: The ASDU is put into a message queue and will be sent whenever\n the link layer state machine is able to transmit the ASDU. The ASDUs will\n be sent in the order they are put into the queue.\n\n # Arguments\n\n* `asdu` - the ASDU to send"]
8793    pub fn CS101_Master_sendASDU(self_: CS101_Master, asdu: CS101_ASDU);
8794}
8795unsafe extern "C" {
8796    #[doc = "Register a callback handler for received ASDUs\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8797    pub fn CS101_Master_setASDUReceivedHandler(
8798        self_: CS101_Master,
8799        handler: CS101_ASDUReceivedHandler,
8800        parameter: *mut ::std::os::raw::c_void,
8801    );
8802}
8803unsafe extern "C" {
8804    #[doc = "Set a callback handler for link layer state changes"]
8805    pub fn CS101_Master_setLinkLayerStateChanged(
8806        self_: CS101_Master,
8807        handler: IEC60870_LinkLayerStateChangedHandler,
8808        parameter: *mut ::std::os::raw::c_void,
8809    );
8810}
8811unsafe extern "C" {
8812    #[doc = "Set the raw message callback (called when a message is sent or received)\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8813    pub fn CS101_Master_setRawMessageHandler(
8814        self_: CS101_Master,
8815        handler: IEC60870_RawMessageHandler,
8816        parameter: *mut ::std::os::raw::c_void,
8817    );
8818}
8819unsafe extern "C" {
8820    #[doc = "Set the idle timeout (only for balanced mode)\n\n Time with no activity after which the connection is considered\n in idle (LL_STATE_IDLE) state.\n\n # Arguments\n\n* `timeoutInMs` - the timeout value in milliseconds"]
8821    pub fn CS101_Master_setIdleTimeout(self_: CS101_Master, timeoutInMs: ::std::os::raw::c_int);
8822}
8823#[repr(C)]
8824#[derive(Debug, Copy, Clone)]
8825pub struct sCS101_Slave {
8826    _unused: [u8; 0],
8827}
8828#[doc = "CS101_Slave type"]
8829pub type CS101_Slave = *mut sCS101_Slave;
8830unsafe extern "C" {
8831    #[doc = "Create a new balanced or unbalanced CS101 slave\n\n NOTE: The CS101_Slave instance has two separate data queues for class 1 and class 2 data.\n This constructor uses the default max queue size for both queues.\n\n # Arguments\n\n* `serialPort` - the serial port to be used\n * `llParameters` - the link layer parameters to be used\n * `alParameters` - the CS101 application layer parameters\n * `linkLayerMode` - the link layer mode (either BALANCED or UNBALANCED)\n\n # Returns\n\nthe new slave instance"]
8832    pub fn CS101_Slave_create(
8833        serialPort: SerialPort,
8834        llParameters: LinkLayerParameters,
8835        alParameters: CS101_AppLayerParameters,
8836        linkLayerMode: IEC60870_LinkLayerMode,
8837    ) -> CS101_Slave;
8838}
8839unsafe extern "C" {
8840    #[doc = "Create a new balanced or unbalanced CS101 slave\n\n NOTE: The CS101_Slave instance has two separate data queues for class 1 and class 2 data.\n\n # Arguments\n\n* `serialPort` - the serial port to be used\n * `llParameters` - the link layer parameters to be used\n * `alParameters` - the CS101 application layer parameters\n * `linkLayerMode` - the link layer mode (either BALANCED or UNBALANCED)\n * `class1QueueSize` - size of the class1 data queue\n * `class2QueueSize` - size of the class2 data queue\n\n # Returns\n\nthe new slave instance"]
8841    pub fn CS101_Slave_createEx(
8842        serialPort: SerialPort,
8843        llParameters: LinkLayerParameters,
8844        alParameters: CS101_AppLayerParameters,
8845        linkLayerMode: IEC60870_LinkLayerMode,
8846        class1QueueSize: ::std::os::raw::c_int,
8847        class2QueueSize: ::std::os::raw::c_int,
8848    ) -> CS101_Slave;
8849}
8850unsafe extern "C" {
8851    #[doc = "Destroy the slave instance and cleanup all resources\n\n # Arguments\n\n* `self` - CS101_Slave instance"]
8852    pub fn CS101_Slave_destroy(self_: CS101_Slave);
8853}
8854unsafe extern "C" {
8855    #[doc = "Set the value of the DIR bit when sending messages (only balanced mode)\n\n NOTE: Default value is false (controlled station). In the case of two equivalent stations\n the value is defined by agreement.\n\n # Arguments\n\n* `dir` - the value of the DIR bit when sending messages"]
8856    pub fn CS101_Slave_setDIR(self_: CS101_Slave, dir: bool);
8857}
8858unsafe extern "C" {
8859    #[doc = "Register a plugin instance with this slave instance\n\n # Arguments\n\n* `the` - plugin instance."]
8860    pub fn CS101_Slave_addPlugin(self_: CS101_Slave, plugin: CS101_SlavePlugin);
8861}
8862unsafe extern "C" {
8863    #[doc = "Set the idle timeout\n\n Time with no activity after which the connection is considered\n in idle (LL_STATE_IDLE) state.\n\n # Arguments\n\n* `timeoutInMs` - the timeout value in milliseconds"]
8864    pub fn CS101_Slave_setIdleTimeout(self_: CS101_Slave, timeoutInMs: ::std::os::raw::c_int);
8865}
8866unsafe extern "C" {
8867    #[doc = "Set a callback handler for link layer state changes"]
8868    pub fn CS101_Slave_setLinkLayerStateChanged(
8869        self_: CS101_Slave,
8870        handler: IEC60870_LinkLayerStateChangedHandler,
8871        parameter: *mut ::std::os::raw::c_void,
8872    );
8873}
8874unsafe extern "C" {
8875    #[doc = "Set the local link layer address\n\n # Arguments\n\n* `self` - CS101_Slave instance\n * `address` - the link layer address (can be either 1 or 2 byte wide)."]
8876    pub fn CS101_Slave_setLinkLayerAddress(self_: CS101_Slave, address: ::std::os::raw::c_int);
8877}
8878unsafe extern "C" {
8879    #[doc = "Set the link layer address of the remote station\n\n # Arguments\n\n* `self` - CS101_Slave instance\n * `address` - the link layer address (can be either 1 or 2 byte wide)."]
8880    pub fn CS101_Slave_setLinkLayerAddressOtherStation(
8881        self_: CS101_Slave,
8882        address: ::std::os::raw::c_int,
8883    );
8884}
8885unsafe extern "C" {
8886    #[doc = "Check if the class 1 ASDU is full\n\n # Arguments\n\n* `self` - CS101_Slave instance\n\n # Returns\n\ntrue when the queue is full, false otherwise"]
8887    pub fn CS101_Slave_isClass1QueueFull(self_: CS101_Slave) -> bool;
8888}
8889unsafe extern "C" {
8890    #[doc = "Enqueue an ASDU into the class 1 data queue\n\n # Arguments\n\n* `self` - CS101_Slave instance\n * `asdu` - the ASDU instance to enqueue"]
8891    pub fn CS101_Slave_enqueueUserDataClass1(self_: CS101_Slave, asdu: CS101_ASDU);
8892}
8893unsafe extern "C" {
8894    #[doc = "Check if the class 2 ASDU is full\n\n # Arguments\n\n* `self` - CS101_Slave instance\n\n # Returns\n\ntrue when the queue is full, false otherwise"]
8895    pub fn CS101_Slave_isClass2QueueFull(self_: CS101_Slave) -> bool;
8896}
8897unsafe extern "C" {
8898    #[doc = "Enqueue an ASDU into the class 2 data queue\n\n # Arguments\n\n* `self` - CS101_Slave instance\n * `asdu` - the ASDU instance to enqueue"]
8899    pub fn CS101_Slave_enqueueUserDataClass2(self_: CS101_Slave, asdu: CS101_ASDU);
8900}
8901unsafe extern "C" {
8902    #[doc = "Remove all ASDUs from the class 1/2 data queues\n\n # Arguments\n\n* `self` - CS101_Slave instance"]
8903    pub fn CS101_Slave_flushQueues(self_: CS101_Slave);
8904}
8905unsafe extern "C" {
8906    #[doc = "Receive a new message and run the link layer state machines\n\n NOTE: Has to be called frequently, when the start/stop functions are\n not used. Otherwise it will be called by the background thread.\n\n # Arguments\n\n* `self` - CS101_Slave instance"]
8907    pub fn CS101_Slave_run(self_: CS101_Slave);
8908}
8909unsafe extern "C" {
8910    #[doc = "Start a background thread that handles the link layer connections\n\n NOTE: This requires threads. If you don't want to use a separate thread\n for the slave instance you have to call the CS101_Slave_run function\n periodically.\n\n # Arguments\n\n* `self` - CS101_Slave instance"]
8911    pub fn CS101_Slave_start(self_: CS101_Slave);
8912}
8913unsafe extern "C" {
8914    #[doc = "Stops the background thread that handles the link layer connections\n\n # Arguments\n\n* `self` - CS101_Slave instance"]
8915    pub fn CS101_Slave_stop(self_: CS101_Slave);
8916}
8917unsafe extern "C" {
8918    #[doc = "Returns the application layer parameters object of this slave instance\n\n # Arguments\n\n* `self` - CS101_Slave instance\n\n # Returns\n\nthe CS101_AppLayerParameters instance used by this slave"]
8919    pub fn CS101_Slave_getAppLayerParameters(self_: CS101_Slave) -> CS101_AppLayerParameters;
8920}
8921unsafe extern "C" {
8922    #[doc = "Returns the link layer parameters object of this slave instance\n\n # Arguments\n\n* `self` - CS101_Slave instance\n\n # Returns\n\nthe LinkLayerParameters instance used by this slave"]
8923    pub fn CS101_Slave_getLinkLayerParameters(self_: CS101_Slave) -> LinkLayerParameters;
8924}
8925unsafe extern "C" {
8926    #[doc = "Set the handler for the reset CU (communication unit) message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8927    pub fn CS101_Slave_setResetCUHandler(
8928        self_: CS101_Slave,
8929        handler: CS101_ResetCUHandler,
8930        parameter: *mut ::std::os::raw::c_void,
8931    );
8932}
8933unsafe extern "C" {
8934    #[doc = "Set the handler for the general interrogation message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8935    pub fn CS101_Slave_setInterrogationHandler(
8936        self_: CS101_Slave,
8937        handler: CS101_InterrogationHandler,
8938        parameter: *mut ::std::os::raw::c_void,
8939    );
8940}
8941unsafe extern "C" {
8942    #[doc = "Set the handler for the counter interrogation message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8943    pub fn CS101_Slave_setCounterInterrogationHandler(
8944        self_: CS101_Slave,
8945        handler: CS101_CounterInterrogationHandler,
8946        parameter: *mut ::std::os::raw::c_void,
8947    );
8948}
8949unsafe extern "C" {
8950    #[doc = "Set the handler for the read message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8951    pub fn CS101_Slave_setReadHandler(
8952        self_: CS101_Slave,
8953        handler: CS101_ReadHandler,
8954        parameter: *mut ::std::os::raw::c_void,
8955    );
8956}
8957unsafe extern "C" {
8958    #[doc = "Set the handler for the clock synchronization message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8959    pub fn CS101_Slave_setClockSyncHandler(
8960        self_: CS101_Slave,
8961        handler: CS101_ClockSynchronizationHandler,
8962        parameter: *mut ::std::os::raw::c_void,
8963    );
8964}
8965unsafe extern "C" {
8966    #[doc = "Set the handler for the reset process message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8967    pub fn CS101_Slave_setResetProcessHandler(
8968        self_: CS101_Slave,
8969        handler: CS101_ResetProcessHandler,
8970        parameter: *mut ::std::os::raw::c_void,
8971    );
8972}
8973unsafe extern "C" {
8974    #[doc = "Set the handler for the delay acquisition message\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8975    pub fn CS101_Slave_setDelayAcquisitionHandler(
8976        self_: CS101_Slave,
8977        handler: CS101_DelayAcquisitionHandler,
8978        parameter: *mut ::std::os::raw::c_void,
8979    );
8980}
8981unsafe extern "C" {
8982    #[doc = "Set the handler for a received ASDU\n\n NOTE: This a generic handler that will only be called when the ASDU has not been handled by\n one of the other callback handlers.\n\n # Arguments\n\n* `handler` - the callback handler function\n * `parameter` - user provided parameter to be passed to the callback handler"]
8983    pub fn CS101_Slave_setASDUHandler(
8984        self_: CS101_Slave,
8985        handler: CS101_ASDUHandler,
8986        parameter: *mut ::std::os::raw::c_void,
8987    );
8988}
8989unsafe extern "C" {
8990    #[doc = "Set the raw message callback (called when a message is sent or received)\n\n # Arguments\n\n* `handler` - user provided callback handler function\n * `parameter` - user provided parameter that is passed to the callback handler"]
8991    pub fn CS101_Slave_setRawMessageHandler(
8992        self_: CS101_Slave,
8993        handler: IEC60870_RawMessageHandler,
8994        parameter: *mut ::std::os::raw::c_void,
8995    );
8996}
8997pub type __uint128_t = u128;