Skip to main content

bux_e2fs/
bindings.rs

1/* automatically generated by rust-bindgen 0.72.1 */
2
3pub const EXT2_ROOT_INO: u32 = 2;
4pub const EXT2_GOOD_OLD_FIRST_INO: u32 = 11;
5pub const EXT2_GOOD_OLD_REV: u32 = 0;
6pub const EXT2_DYNAMIC_REV: u32 = 1;
7pub const EXT2_GOOD_OLD_INODE_SIZE: u32 = 128;
8pub const EXT2_FT_UNKNOWN: u32 = 0;
9pub const EXT2_FT_REG_FILE: u32 = 1;
10pub const EXT2_FT_DIR: u32 = 2;
11pub const EXT2_FT_CHRDEV: u32 = 3;
12pub const EXT2_FT_BLKDEV: u32 = 4;
13pub const EXT2_FT_FIFO: u32 = 5;
14pub const EXT2_FT_SOCK: u32 = 6;
15pub const EXT2_FT_SYMLINK: u32 = 7;
16pub const EXT2_FT_MAX: u32 = 8;
17pub const EXT2_FLAG_RW: u32 = 1;
18pub const EXT2_FLAG_CHANGED: u32 = 2;
19pub const EXT2_FLAG_DIRTY: u32 = 4;
20pub const EXT2_FLAG_VALID: u32 = 8;
21pub const EXT2_FLAG_IB_DIRTY: u32 = 16;
22pub const EXT2_FLAG_BB_DIRTY: u32 = 32;
23pub const EXT2_FLAG_SWAP_BYTES: u32 = 64;
24pub const EXT2_FLAG_SWAP_BYTES_READ: u32 = 128;
25pub const EXT2_FLAG_SWAP_BYTES_WRITE: u32 = 256;
26pub const EXT2_FLAG_MASTER_SB_ONLY: u32 = 512;
27pub const EXT2_FLAG_FORCE: u32 = 1024;
28pub const EXT2_FLAG_SUPER_ONLY: u32 = 2048;
29pub const EXT2_FLAG_JOURNAL_DEV_OK: u32 = 4096;
30pub const EXT2_FLAG_IMAGE_FILE: u32 = 8192;
31pub const EXT2_FLAG_EXCLUSIVE: u32 = 16384;
32pub const EXT2_FLAG_SOFTSUPP_FEATURES: u32 = 32768;
33pub const EXT2_FLAG_NOFREE_ON_ERROR: u32 = 65536;
34pub const EXT2_FLAG_64BITS: u32 = 131072;
35pub const EXT2_FLAG_PRINT_PROGRESS: u32 = 262144;
36pub const EXT2_FLAG_DIRECT_IO: u32 = 524288;
37pub const EXT2_FLAG_SKIP_MMP: u32 = 1048576;
38pub const EXT2_FLAG_IGNORE_CSUM_ERRORS: u32 = 2097152;
39pub const EXT2_FLAG_SHARE_DUP: u32 = 4194304;
40pub const EXT2_FLAG_IGNORE_SB_ERRORS: u32 = 8388608;
41pub const EXT2_FLAG_BBITMAP_TAIL_PROBLEM: u32 = 16777216;
42pub const EXT2_FLAG_IBITMAP_TAIL_PROBLEM: u32 = 33554432;
43pub const EXT2_FLAG_THREADS: u32 = 67108864;
44pub const EXT2_FLAG_IGNORE_SWAP_DIRENT: u32 = 134217728;
45pub const LINUX_S_IFMT: u32 = 61440;
46pub const LINUX_S_IFSOCK: u32 = 49152;
47pub const LINUX_S_IFLNK: u32 = 40960;
48pub const LINUX_S_IFREG: u32 = 32768;
49pub const LINUX_S_IFBLK: u32 = 24576;
50pub const LINUX_S_IFDIR: u32 = 16384;
51pub const LINUX_S_IFCHR: u32 = 8192;
52pub const LINUX_S_IFIFO: u32 = 4096;
53pub const EXT2_FLAG_FLUSH_NO_SYNC: u32 = 1;
54pub type __dev_t = ::core::ffi::c_ulong;
55pub type __uid_t = ::core::ffi::c_uint;
56pub type __gid_t = ::core::ffi::c_uint;
57pub type __ino_t = ::core::ffi::c_ulong;
58pub type __mode_t = ::core::ffi::c_uint;
59pub type __nlink_t = ::core::ffi::c_ulong;
60pub type __off_t = ::core::ffi::c_long;
61pub type __time_t = ::core::ffi::c_long;
62pub type __blksize_t = ::core::ffi::c_long;
63pub type __blkcnt_t = ::core::ffi::c_long;
64pub type __syscall_slong_t = ::core::ffi::c_long;
65pub type ino_t = __ino_t;
66pub type dev_t = __dev_t;
67pub type mode_t = __mode_t;
68pub type time_t = __time_t;
69#[repr(C)]
70#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
71pub struct timespec {
72    pub tv_sec: __time_t,
73    pub tv_nsec: __syscall_slong_t,
74}
75#[allow(clippy::unnecessary_operation, clippy::identity_op)]
76const _: () = {
77    ["Size of timespec"][::core::mem::size_of::<timespec>() - 16usize];
78    ["Alignment of timespec"][::core::mem::align_of::<timespec>() - 8usize];
79    ["Offset of field: timespec::tv_sec"][::core::mem::offset_of!(timespec, tv_sec) - 0usize];
80    ["Offset of field: timespec::tv_nsec"][::core::mem::offset_of!(timespec, tv_nsec) - 8usize];
81};
82pub type __u8 = ::core::ffi::c_uchar;
83pub type __u16 = ::core::ffi::c_ushort;
84pub type __s16 = ::core::ffi::c_short;
85pub type __u32 = ::core::ffi::c_uint;
86pub type __u64 = ::core::ffi::c_ulonglong;
87pub type __le16 = __u16;
88pub type __le32 = __u32;
89#[repr(C)]
90#[derive(Copy, Clone)]
91pub struct ext2_inode {
92    pub i_mode: __u16,
93    pub i_uid: __u16,
94    pub i_size: __u32,
95    pub i_atime: __u32,
96    pub i_ctime: __u32,
97    pub i_mtime: __u32,
98    pub i_dtime: __u32,
99    pub i_gid: __u16,
100    pub i_links_count: __u16,
101    pub i_blocks: __u32,
102    pub i_flags: __u32,
103    pub osd1: ext2_inode__bindgen_ty_1,
104    pub i_block: [__u32; 15usize],
105    pub i_generation: __u32,
106    pub i_file_acl: __u32,
107    pub i_size_high: __u32,
108    pub i_faddr: __u32,
109    pub osd2: ext2_inode__bindgen_ty_2,
110}
111#[repr(C)]
112#[derive(Copy, Clone)]
113pub union ext2_inode__bindgen_ty_1 {
114    pub linux1: ext2_inode__bindgen_ty_1__bindgen_ty_1,
115    pub hurd1: ext2_inode__bindgen_ty_1__bindgen_ty_2,
116}
117#[repr(C)]
118#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
119pub struct ext2_inode__bindgen_ty_1__bindgen_ty_1 {
120    pub l_i_version: __u32,
121}
122#[allow(clippy::unnecessary_operation, clippy::identity_op)]
123const _: () = {
124    ["Size of ext2_inode__bindgen_ty_1__bindgen_ty_1"]
125        [::core::mem::size_of::<ext2_inode__bindgen_ty_1__bindgen_ty_1>() - 4usize];
126    ["Alignment of ext2_inode__bindgen_ty_1__bindgen_ty_1"]
127        [::core::mem::align_of::<ext2_inode__bindgen_ty_1__bindgen_ty_1>() - 4usize];
128    ["Offset of field: ext2_inode__bindgen_ty_1__bindgen_ty_1::l_i_version"]
129        [::core::mem::offset_of!(ext2_inode__bindgen_ty_1__bindgen_ty_1, l_i_version) - 0usize];
130};
131#[repr(C)]
132#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
133pub struct ext2_inode__bindgen_ty_1__bindgen_ty_2 {
134    pub h_i_translator: __u32,
135}
136#[allow(clippy::unnecessary_operation, clippy::identity_op)]
137const _: () = {
138    ["Size of ext2_inode__bindgen_ty_1__bindgen_ty_2"]
139        [::core::mem::size_of::<ext2_inode__bindgen_ty_1__bindgen_ty_2>() - 4usize];
140    ["Alignment of ext2_inode__bindgen_ty_1__bindgen_ty_2"]
141        [::core::mem::align_of::<ext2_inode__bindgen_ty_1__bindgen_ty_2>() - 4usize];
142    ["Offset of field: ext2_inode__bindgen_ty_1__bindgen_ty_2::h_i_translator"]
143        [::core::mem::offset_of!(ext2_inode__bindgen_ty_1__bindgen_ty_2, h_i_translator) - 0usize];
144};
145#[allow(clippy::unnecessary_operation, clippy::identity_op)]
146const _: () = {
147    ["Size of ext2_inode__bindgen_ty_1"]
148        [::core::mem::size_of::<ext2_inode__bindgen_ty_1>() - 4usize];
149    ["Alignment of ext2_inode__bindgen_ty_1"]
150        [::core::mem::align_of::<ext2_inode__bindgen_ty_1>() - 4usize];
151    ["Offset of field: ext2_inode__bindgen_ty_1::linux1"]
152        [::core::mem::offset_of!(ext2_inode__bindgen_ty_1, linux1) - 0usize];
153    ["Offset of field: ext2_inode__bindgen_ty_1::hurd1"]
154        [::core::mem::offset_of!(ext2_inode__bindgen_ty_1, hurd1) - 0usize];
155};
156impl Default for ext2_inode__bindgen_ty_1 {
157    fn default() -> Self {
158        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
159        unsafe {
160            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
161            s.assume_init()
162        }
163    }
164}
165#[repr(C)]
166#[derive(Copy, Clone)]
167pub union ext2_inode__bindgen_ty_2 {
168    pub linux2: ext2_inode__bindgen_ty_2__bindgen_ty_1,
169    pub hurd2: ext2_inode__bindgen_ty_2__bindgen_ty_2,
170}
171#[repr(C)]
172#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
173pub struct ext2_inode__bindgen_ty_2__bindgen_ty_1 {
174    pub l_i_blocks_hi: __u16,
175    pub l_i_file_acl_high: __u16,
176    pub l_i_uid_high: __u16,
177    pub l_i_gid_high: __u16,
178    pub l_i_checksum_lo: __u16,
179    pub l_i_reserved: __u16,
180}
181#[allow(clippy::unnecessary_operation, clippy::identity_op)]
182const _: () = {
183    ["Size of ext2_inode__bindgen_ty_2__bindgen_ty_1"]
184        [::core::mem::size_of::<ext2_inode__bindgen_ty_2__bindgen_ty_1>() - 12usize];
185    ["Alignment of ext2_inode__bindgen_ty_2__bindgen_ty_1"]
186        [::core::mem::align_of::<ext2_inode__bindgen_ty_2__bindgen_ty_1>() - 2usize];
187    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_blocks_hi"]
188        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_1, l_i_blocks_hi) - 0usize];
189    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_file_acl_high"][::core::mem::offset_of!(
190        ext2_inode__bindgen_ty_2__bindgen_ty_1,
191        l_i_file_acl_high
192    ) - 2usize];
193    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_uid_high"]
194        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_1, l_i_uid_high) - 4usize];
195    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_gid_high"]
196        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_1, l_i_gid_high) - 6usize];
197    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_checksum_lo"]
198        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_1, l_i_checksum_lo) - 8usize];
199    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_1::l_i_reserved"]
200        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_1, l_i_reserved) - 10usize];
201};
202#[repr(C)]
203#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
204pub struct ext2_inode__bindgen_ty_2__bindgen_ty_2 {
205    pub h_i_frag: __u8,
206    pub h_i_fsize: __u8,
207    pub h_i_mode_high: __u16,
208    pub h_i_uid_high: __u16,
209    pub h_i_gid_high: __u16,
210    pub h_i_author: __u32,
211}
212#[allow(clippy::unnecessary_operation, clippy::identity_op)]
213const _: () = {
214    ["Size of ext2_inode__bindgen_ty_2__bindgen_ty_2"]
215        [::core::mem::size_of::<ext2_inode__bindgen_ty_2__bindgen_ty_2>() - 12usize];
216    ["Alignment of ext2_inode__bindgen_ty_2__bindgen_ty_2"]
217        [::core::mem::align_of::<ext2_inode__bindgen_ty_2__bindgen_ty_2>() - 4usize];
218    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_frag"]
219        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_frag) - 0usize];
220    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_fsize"]
221        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_fsize) - 1usize];
222    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_mode_high"]
223        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_mode_high) - 2usize];
224    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_uid_high"]
225        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_uid_high) - 4usize];
226    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_gid_high"]
227        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_gid_high) - 6usize];
228    ["Offset of field: ext2_inode__bindgen_ty_2__bindgen_ty_2::h_i_author"]
229        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2__bindgen_ty_2, h_i_author) - 8usize];
230};
231#[allow(clippy::unnecessary_operation, clippy::identity_op)]
232const _: () = {
233    ["Size of ext2_inode__bindgen_ty_2"]
234        [::core::mem::size_of::<ext2_inode__bindgen_ty_2>() - 12usize];
235    ["Alignment of ext2_inode__bindgen_ty_2"]
236        [::core::mem::align_of::<ext2_inode__bindgen_ty_2>() - 4usize];
237    ["Offset of field: ext2_inode__bindgen_ty_2::linux2"]
238        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2, linux2) - 0usize];
239    ["Offset of field: ext2_inode__bindgen_ty_2::hurd2"]
240        [::core::mem::offset_of!(ext2_inode__bindgen_ty_2, hurd2) - 0usize];
241};
242impl Default for ext2_inode__bindgen_ty_2 {
243    fn default() -> Self {
244        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
245        unsafe {
246            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
247            s.assume_init()
248        }
249    }
250}
251#[allow(clippy::unnecessary_operation, clippy::identity_op)]
252const _: () = {
253    ["Size of ext2_inode"][::core::mem::size_of::<ext2_inode>() - 128usize];
254    ["Alignment of ext2_inode"][::core::mem::align_of::<ext2_inode>() - 4usize];
255    ["Offset of field: ext2_inode::i_mode"][::core::mem::offset_of!(ext2_inode, i_mode) - 0usize];
256    ["Offset of field: ext2_inode::i_uid"][::core::mem::offset_of!(ext2_inode, i_uid) - 2usize];
257    ["Offset of field: ext2_inode::i_size"][::core::mem::offset_of!(ext2_inode, i_size) - 4usize];
258    ["Offset of field: ext2_inode::i_atime"][::core::mem::offset_of!(ext2_inode, i_atime) - 8usize];
259    ["Offset of field: ext2_inode::i_ctime"]
260        [::core::mem::offset_of!(ext2_inode, i_ctime) - 12usize];
261    ["Offset of field: ext2_inode::i_mtime"]
262        [::core::mem::offset_of!(ext2_inode, i_mtime) - 16usize];
263    ["Offset of field: ext2_inode::i_dtime"]
264        [::core::mem::offset_of!(ext2_inode, i_dtime) - 20usize];
265    ["Offset of field: ext2_inode::i_gid"][::core::mem::offset_of!(ext2_inode, i_gid) - 24usize];
266    ["Offset of field: ext2_inode::i_links_count"]
267        [::core::mem::offset_of!(ext2_inode, i_links_count) - 26usize];
268    ["Offset of field: ext2_inode::i_blocks"]
269        [::core::mem::offset_of!(ext2_inode, i_blocks) - 28usize];
270    ["Offset of field: ext2_inode::i_flags"]
271        [::core::mem::offset_of!(ext2_inode, i_flags) - 32usize];
272    ["Offset of field: ext2_inode::osd1"][::core::mem::offset_of!(ext2_inode, osd1) - 36usize];
273    ["Offset of field: ext2_inode::i_block"]
274        [::core::mem::offset_of!(ext2_inode, i_block) - 40usize];
275    ["Offset of field: ext2_inode::i_generation"]
276        [::core::mem::offset_of!(ext2_inode, i_generation) - 100usize];
277    ["Offset of field: ext2_inode::i_file_acl"]
278        [::core::mem::offset_of!(ext2_inode, i_file_acl) - 104usize];
279    ["Offset of field: ext2_inode::i_size_high"]
280        [::core::mem::offset_of!(ext2_inode, i_size_high) - 108usize];
281    ["Offset of field: ext2_inode::i_faddr"]
282        [::core::mem::offset_of!(ext2_inode, i_faddr) - 112usize];
283    ["Offset of field: ext2_inode::osd2"][::core::mem::offset_of!(ext2_inode, osd2) - 116usize];
284};
285impl Default for ext2_inode {
286    fn default() -> Self {
287        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
288        unsafe {
289            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
290            s.assume_init()
291        }
292    }
293}
294#[repr(C)]
295#[derive(Copy, Clone)]
296pub struct ext2_inode_large {
297    pub i_mode: __u16,
298    pub i_uid: __u16,
299    pub i_size: __u32,
300    pub i_atime: __u32,
301    pub i_ctime: __u32,
302    pub i_mtime: __u32,
303    pub i_dtime: __u32,
304    pub i_gid: __u16,
305    pub i_links_count: __u16,
306    pub i_blocks: __u32,
307    pub i_flags: __u32,
308    pub osd1: ext2_inode_large__bindgen_ty_1,
309    pub i_block: [__u32; 15usize],
310    pub i_generation: __u32,
311    pub i_file_acl: __u32,
312    pub i_size_high: __u32,
313    pub i_faddr: __u32,
314    pub osd2: ext2_inode_large__bindgen_ty_2,
315    pub i_extra_isize: __u16,
316    pub i_checksum_hi: __u16,
317    pub i_ctime_extra: __u32,
318    pub i_mtime_extra: __u32,
319    pub i_atime_extra: __u32,
320    pub i_crtime: __u32,
321    pub i_crtime_extra: __u32,
322    pub i_version_hi: __u32,
323    pub i_projid: __u32,
324}
325#[repr(C)]
326#[derive(Copy, Clone)]
327pub union ext2_inode_large__bindgen_ty_1 {
328    pub linux1: ext2_inode_large__bindgen_ty_1__bindgen_ty_1,
329    pub hurd1: ext2_inode_large__bindgen_ty_1__bindgen_ty_2,
330}
331#[repr(C)]
332#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
333pub struct ext2_inode_large__bindgen_ty_1__bindgen_ty_1 {
334    pub l_i_version: __u32,
335}
336#[allow(clippy::unnecessary_operation, clippy::identity_op)]
337const _: () = {
338    ["Size of ext2_inode_large__bindgen_ty_1__bindgen_ty_1"]
339        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_1__bindgen_ty_1>() - 4usize];
340    ["Alignment of ext2_inode_large__bindgen_ty_1__bindgen_ty_1"]
341        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_1__bindgen_ty_1>() - 4usize];
342    ["Offset of field: ext2_inode_large__bindgen_ty_1__bindgen_ty_1::l_i_version"][::core::mem::offset_of!(
343        ext2_inode_large__bindgen_ty_1__bindgen_ty_1,
344        l_i_version
345    ) - 0usize];
346};
347#[repr(C)]
348#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
349pub struct ext2_inode_large__bindgen_ty_1__bindgen_ty_2 {
350    pub h_i_translator: __u32,
351}
352#[allow(clippy::unnecessary_operation, clippy::identity_op)]
353const _: () = {
354    ["Size of ext2_inode_large__bindgen_ty_1__bindgen_ty_2"]
355        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_1__bindgen_ty_2>() - 4usize];
356    ["Alignment of ext2_inode_large__bindgen_ty_1__bindgen_ty_2"]
357        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_1__bindgen_ty_2>() - 4usize];
358    ["Offset of field: ext2_inode_large__bindgen_ty_1__bindgen_ty_2::h_i_translator"][::core::mem::offset_of!(
359        ext2_inode_large__bindgen_ty_1__bindgen_ty_2,
360        h_i_translator
361    ) - 0usize];
362};
363#[allow(clippy::unnecessary_operation, clippy::identity_op)]
364const _: () = {
365    ["Size of ext2_inode_large__bindgen_ty_1"]
366        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_1>() - 4usize];
367    ["Alignment of ext2_inode_large__bindgen_ty_1"]
368        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_1>() - 4usize];
369    ["Offset of field: ext2_inode_large__bindgen_ty_1::linux1"]
370        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_1, linux1) - 0usize];
371    ["Offset of field: ext2_inode_large__bindgen_ty_1::hurd1"]
372        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_1, hurd1) - 0usize];
373};
374impl Default for ext2_inode_large__bindgen_ty_1 {
375    fn default() -> Self {
376        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
377        unsafe {
378            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
379            s.assume_init()
380        }
381    }
382}
383#[repr(C)]
384#[derive(Copy, Clone)]
385pub union ext2_inode_large__bindgen_ty_2 {
386    pub linux2: ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
387    pub hurd2: ext2_inode_large__bindgen_ty_2__bindgen_ty_2,
388}
389#[repr(C)]
390#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
391pub struct ext2_inode_large__bindgen_ty_2__bindgen_ty_1 {
392    pub l_i_blocks_hi: __u16,
393    pub l_i_file_acl_high: __u16,
394    pub l_i_uid_high: __u16,
395    pub l_i_gid_high: __u16,
396    pub l_i_checksum_lo: __u16,
397    pub l_i_reserved: __u16,
398}
399#[allow(clippy::unnecessary_operation, clippy::identity_op)]
400const _: () = {
401    ["Size of ext2_inode_large__bindgen_ty_2__bindgen_ty_1"]
402        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_2__bindgen_ty_1>() - 12usize];
403    ["Alignment of ext2_inode_large__bindgen_ty_2__bindgen_ty_1"]
404        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_2__bindgen_ty_1>() - 2usize];
405    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_blocks_hi"][::core::mem::offset_of!(
406        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
407        l_i_blocks_hi
408    ) - 0usize];
409    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_file_acl_high"][::core::mem::offset_of!(
410        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
411        l_i_file_acl_high
412    )
413        - 2usize];
414    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_uid_high"][::core::mem::offset_of!(
415        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
416        l_i_uid_high
417    ) - 4usize];
418    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_gid_high"][::core::mem::offset_of!(
419        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
420        l_i_gid_high
421    ) - 6usize];
422    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_checksum_lo"][::core::mem::offset_of!(
423        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
424        l_i_checksum_lo
425    ) - 8usize];
426    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_1::l_i_reserved"][::core::mem::offset_of!(
427        ext2_inode_large__bindgen_ty_2__bindgen_ty_1,
428        l_i_reserved
429    ) - 10usize];
430};
431#[repr(C)]
432#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
433pub struct ext2_inode_large__bindgen_ty_2__bindgen_ty_2 {
434    pub h_i_frag: __u8,
435    pub h_i_fsize: __u8,
436    pub h_i_mode_high: __u16,
437    pub h_i_uid_high: __u16,
438    pub h_i_gid_high: __u16,
439    pub h_i_author: __u32,
440}
441#[allow(clippy::unnecessary_operation, clippy::identity_op)]
442const _: () = {
443    ["Size of ext2_inode_large__bindgen_ty_2__bindgen_ty_2"]
444        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_2__bindgen_ty_2>() - 12usize];
445    ["Alignment of ext2_inode_large__bindgen_ty_2__bindgen_ty_2"]
446        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_2__bindgen_ty_2>() - 4usize];
447    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_frag"]
448        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_2__bindgen_ty_2, h_i_frag) - 0usize];
449    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_fsize"]
450        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_2__bindgen_ty_2, h_i_fsize) - 1usize];
451    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_mode_high"][::core::mem::offset_of!(
452        ext2_inode_large__bindgen_ty_2__bindgen_ty_2,
453        h_i_mode_high
454    ) - 2usize];
455    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_uid_high"][::core::mem::offset_of!(
456        ext2_inode_large__bindgen_ty_2__bindgen_ty_2,
457        h_i_uid_high
458    ) - 4usize];
459    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_gid_high"][::core::mem::offset_of!(
460        ext2_inode_large__bindgen_ty_2__bindgen_ty_2,
461        h_i_gid_high
462    ) - 6usize];
463    ["Offset of field: ext2_inode_large__bindgen_ty_2__bindgen_ty_2::h_i_author"][::core::mem::offset_of!(
464        ext2_inode_large__bindgen_ty_2__bindgen_ty_2,
465        h_i_author
466    ) - 8usize];
467};
468#[allow(clippy::unnecessary_operation, clippy::identity_op)]
469const _: () = {
470    ["Size of ext2_inode_large__bindgen_ty_2"]
471        [::core::mem::size_of::<ext2_inode_large__bindgen_ty_2>() - 12usize];
472    ["Alignment of ext2_inode_large__bindgen_ty_2"]
473        [::core::mem::align_of::<ext2_inode_large__bindgen_ty_2>() - 4usize];
474    ["Offset of field: ext2_inode_large__bindgen_ty_2::linux2"]
475        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_2, linux2) - 0usize];
476    ["Offset of field: ext2_inode_large__bindgen_ty_2::hurd2"]
477        [::core::mem::offset_of!(ext2_inode_large__bindgen_ty_2, hurd2) - 0usize];
478};
479impl Default for ext2_inode_large__bindgen_ty_2 {
480    fn default() -> Self {
481        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
482        unsafe {
483            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
484            s.assume_init()
485        }
486    }
487}
488#[allow(clippy::unnecessary_operation, clippy::identity_op)]
489const _: () = {
490    ["Size of ext2_inode_large"][::core::mem::size_of::<ext2_inode_large>() - 160usize];
491    ["Alignment of ext2_inode_large"][::core::mem::align_of::<ext2_inode_large>() - 4usize];
492    ["Offset of field: ext2_inode_large::i_mode"]
493        [::core::mem::offset_of!(ext2_inode_large, i_mode) - 0usize];
494    ["Offset of field: ext2_inode_large::i_uid"]
495        [::core::mem::offset_of!(ext2_inode_large, i_uid) - 2usize];
496    ["Offset of field: ext2_inode_large::i_size"]
497        [::core::mem::offset_of!(ext2_inode_large, i_size) - 4usize];
498    ["Offset of field: ext2_inode_large::i_atime"]
499        [::core::mem::offset_of!(ext2_inode_large, i_atime) - 8usize];
500    ["Offset of field: ext2_inode_large::i_ctime"]
501        [::core::mem::offset_of!(ext2_inode_large, i_ctime) - 12usize];
502    ["Offset of field: ext2_inode_large::i_mtime"]
503        [::core::mem::offset_of!(ext2_inode_large, i_mtime) - 16usize];
504    ["Offset of field: ext2_inode_large::i_dtime"]
505        [::core::mem::offset_of!(ext2_inode_large, i_dtime) - 20usize];
506    ["Offset of field: ext2_inode_large::i_gid"]
507        [::core::mem::offset_of!(ext2_inode_large, i_gid) - 24usize];
508    ["Offset of field: ext2_inode_large::i_links_count"]
509        [::core::mem::offset_of!(ext2_inode_large, i_links_count) - 26usize];
510    ["Offset of field: ext2_inode_large::i_blocks"]
511        [::core::mem::offset_of!(ext2_inode_large, i_blocks) - 28usize];
512    ["Offset of field: ext2_inode_large::i_flags"]
513        [::core::mem::offset_of!(ext2_inode_large, i_flags) - 32usize];
514    ["Offset of field: ext2_inode_large::osd1"]
515        [::core::mem::offset_of!(ext2_inode_large, osd1) - 36usize];
516    ["Offset of field: ext2_inode_large::i_block"]
517        [::core::mem::offset_of!(ext2_inode_large, i_block) - 40usize];
518    ["Offset of field: ext2_inode_large::i_generation"]
519        [::core::mem::offset_of!(ext2_inode_large, i_generation) - 100usize];
520    ["Offset of field: ext2_inode_large::i_file_acl"]
521        [::core::mem::offset_of!(ext2_inode_large, i_file_acl) - 104usize];
522    ["Offset of field: ext2_inode_large::i_size_high"]
523        [::core::mem::offset_of!(ext2_inode_large, i_size_high) - 108usize];
524    ["Offset of field: ext2_inode_large::i_faddr"]
525        [::core::mem::offset_of!(ext2_inode_large, i_faddr) - 112usize];
526    ["Offset of field: ext2_inode_large::osd2"]
527        [::core::mem::offset_of!(ext2_inode_large, osd2) - 116usize];
528    ["Offset of field: ext2_inode_large::i_extra_isize"]
529        [::core::mem::offset_of!(ext2_inode_large, i_extra_isize) - 128usize];
530    ["Offset of field: ext2_inode_large::i_checksum_hi"]
531        [::core::mem::offset_of!(ext2_inode_large, i_checksum_hi) - 130usize];
532    ["Offset of field: ext2_inode_large::i_ctime_extra"]
533        [::core::mem::offset_of!(ext2_inode_large, i_ctime_extra) - 132usize];
534    ["Offset of field: ext2_inode_large::i_mtime_extra"]
535        [::core::mem::offset_of!(ext2_inode_large, i_mtime_extra) - 136usize];
536    ["Offset of field: ext2_inode_large::i_atime_extra"]
537        [::core::mem::offset_of!(ext2_inode_large, i_atime_extra) - 140usize];
538    ["Offset of field: ext2_inode_large::i_crtime"]
539        [::core::mem::offset_of!(ext2_inode_large, i_crtime) - 144usize];
540    ["Offset of field: ext2_inode_large::i_crtime_extra"]
541        [::core::mem::offset_of!(ext2_inode_large, i_crtime_extra) - 148usize];
542    ["Offset of field: ext2_inode_large::i_version_hi"]
543        [::core::mem::offset_of!(ext2_inode_large, i_version_hi) - 152usize];
544    ["Offset of field: ext2_inode_large::i_projid"]
545        [::core::mem::offset_of!(ext2_inode_large, i_projid) - 156usize];
546};
547impl Default for ext2_inode_large {
548    fn default() -> Self {
549        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
550        unsafe {
551            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
552            s.assume_init()
553        }
554    }
555}
556#[repr(C)]
557#[derive(Debug, Copy, Clone, PartialEq, Eq)]
558pub struct ext2_super_block {
559    pub s_inodes_count: __u32,
560    pub s_blocks_count: __u32,
561    pub s_r_blocks_count: __u32,
562    pub s_free_blocks_count: __u32,
563    pub s_free_inodes_count: __u32,
564    pub s_first_data_block: __u32,
565    pub s_log_block_size: __u32,
566    pub s_log_cluster_size: __u32,
567    pub s_blocks_per_group: __u32,
568    pub s_clusters_per_group: __u32,
569    pub s_inodes_per_group: __u32,
570    pub s_mtime: __u32,
571    pub s_wtime: __u32,
572    pub s_mnt_count: __u16,
573    pub s_max_mnt_count: __s16,
574    pub s_magic: __u16,
575    pub s_state: __u16,
576    pub s_errors: __u16,
577    pub s_minor_rev_level: __u16,
578    pub s_lastcheck: __u32,
579    pub s_checkinterval: __u32,
580    pub s_creator_os: __u32,
581    pub s_rev_level: __u32,
582    pub s_def_resuid: __u16,
583    pub s_def_resgid: __u16,
584    pub s_first_ino: __u32,
585    pub s_inode_size: __u16,
586    pub s_block_group_nr: __u16,
587    pub s_feature_compat: __u32,
588    pub s_feature_incompat: __u32,
589    pub s_feature_ro_compat: __u32,
590    pub s_uuid: [__u8; 16usize],
591    pub s_volume_name: [__u8; 16usize],
592    pub s_last_mounted: [__u8; 64usize],
593    pub s_algorithm_usage_bitmap: __u32,
594    pub s_prealloc_blocks: __u8,
595    pub s_prealloc_dir_blocks: __u8,
596    pub s_reserved_gdt_blocks: __u16,
597    pub s_journal_uuid: [__u8; 16usize],
598    pub s_journal_inum: __u32,
599    pub s_journal_dev: __u32,
600    pub s_last_orphan: __u32,
601    pub s_hash_seed: [__u32; 4usize],
602    pub s_def_hash_version: __u8,
603    pub s_jnl_backup_type: __u8,
604    pub s_desc_size: __u16,
605    pub s_default_mount_opts: __u32,
606    pub s_first_meta_bg: __u32,
607    pub s_mkfs_time: __u32,
608    pub s_jnl_blocks: [__u32; 17usize],
609    pub s_blocks_count_hi: __u32,
610    pub s_r_blocks_count_hi: __u32,
611    pub s_free_blocks_hi: __u32,
612    pub s_min_extra_isize: __u16,
613    pub s_want_extra_isize: __u16,
614    pub s_flags: __u32,
615    pub s_raid_stride: __u16,
616    pub s_mmp_update_interval: __u16,
617    pub s_mmp_block: __u64,
618    pub s_raid_stripe_width: __u32,
619    pub s_log_groups_per_flex: __u8,
620    pub s_checksum_type: __u8,
621    pub s_encryption_level: __u8,
622    pub s_reserved_pad: __u8,
623    pub s_kbytes_written: __u64,
624    pub s_snapshot_inum: __u32,
625    pub s_snapshot_id: __u32,
626    pub s_snapshot_r_blocks_count: __u64,
627    pub s_snapshot_list: __u32,
628    pub s_error_count: __u32,
629    pub s_first_error_time: __u32,
630    pub s_first_error_ino: __u32,
631    pub s_first_error_block: __u64,
632    pub s_first_error_func: [__u8; 32usize],
633    pub s_first_error_line: __u32,
634    pub s_last_error_time: __u32,
635    pub s_last_error_ino: __u32,
636    pub s_last_error_line: __u32,
637    pub s_last_error_block: __u64,
638    pub s_last_error_func: [__u8; 32usize],
639    pub s_mount_opts: [__u8; 64usize],
640    pub s_usr_quota_inum: __u32,
641    pub s_grp_quota_inum: __u32,
642    pub s_overhead_clusters: __u32,
643    pub s_backup_bgs: [__u32; 2usize],
644    pub s_encrypt_algos: [__u8; 4usize],
645    pub s_encrypt_pw_salt: [__u8; 16usize],
646    pub s_lpf_ino: __le32,
647    pub s_prj_quota_inum: __le32,
648    pub s_checksum_seed: __le32,
649    pub s_wtime_hi: __u8,
650    pub s_mtime_hi: __u8,
651    pub s_mkfs_time_hi: __u8,
652    pub s_lastcheck_hi: __u8,
653    pub s_first_error_time_hi: __u8,
654    pub s_last_error_time_hi: __u8,
655    pub s_first_error_errcode: __u8,
656    pub s_last_error_errcode: __u8,
657    pub s_encoding: __le16,
658    pub s_encoding_flags: __le16,
659    pub s_orphan_file_inum: __le32,
660    pub s_reserved: [__le32; 94usize],
661    pub s_checksum: __u32,
662}
663#[allow(clippy::unnecessary_operation, clippy::identity_op)]
664const _: () = {
665    ["Size of ext2_super_block"][::core::mem::size_of::<ext2_super_block>() - 1024usize];
666    ["Alignment of ext2_super_block"][::core::mem::align_of::<ext2_super_block>() - 8usize];
667    ["Offset of field: ext2_super_block::s_inodes_count"]
668        [::core::mem::offset_of!(ext2_super_block, s_inodes_count) - 0usize];
669    ["Offset of field: ext2_super_block::s_blocks_count"]
670        [::core::mem::offset_of!(ext2_super_block, s_blocks_count) - 4usize];
671    ["Offset of field: ext2_super_block::s_r_blocks_count"]
672        [::core::mem::offset_of!(ext2_super_block, s_r_blocks_count) - 8usize];
673    ["Offset of field: ext2_super_block::s_free_blocks_count"]
674        [::core::mem::offset_of!(ext2_super_block, s_free_blocks_count) - 12usize];
675    ["Offset of field: ext2_super_block::s_free_inodes_count"]
676        [::core::mem::offset_of!(ext2_super_block, s_free_inodes_count) - 16usize];
677    ["Offset of field: ext2_super_block::s_first_data_block"]
678        [::core::mem::offset_of!(ext2_super_block, s_first_data_block) - 20usize];
679    ["Offset of field: ext2_super_block::s_log_block_size"]
680        [::core::mem::offset_of!(ext2_super_block, s_log_block_size) - 24usize];
681    ["Offset of field: ext2_super_block::s_log_cluster_size"]
682        [::core::mem::offset_of!(ext2_super_block, s_log_cluster_size) - 28usize];
683    ["Offset of field: ext2_super_block::s_blocks_per_group"]
684        [::core::mem::offset_of!(ext2_super_block, s_blocks_per_group) - 32usize];
685    ["Offset of field: ext2_super_block::s_clusters_per_group"]
686        [::core::mem::offset_of!(ext2_super_block, s_clusters_per_group) - 36usize];
687    ["Offset of field: ext2_super_block::s_inodes_per_group"]
688        [::core::mem::offset_of!(ext2_super_block, s_inodes_per_group) - 40usize];
689    ["Offset of field: ext2_super_block::s_mtime"]
690        [::core::mem::offset_of!(ext2_super_block, s_mtime) - 44usize];
691    ["Offset of field: ext2_super_block::s_wtime"]
692        [::core::mem::offset_of!(ext2_super_block, s_wtime) - 48usize];
693    ["Offset of field: ext2_super_block::s_mnt_count"]
694        [::core::mem::offset_of!(ext2_super_block, s_mnt_count) - 52usize];
695    ["Offset of field: ext2_super_block::s_max_mnt_count"]
696        [::core::mem::offset_of!(ext2_super_block, s_max_mnt_count) - 54usize];
697    ["Offset of field: ext2_super_block::s_magic"]
698        [::core::mem::offset_of!(ext2_super_block, s_magic) - 56usize];
699    ["Offset of field: ext2_super_block::s_state"]
700        [::core::mem::offset_of!(ext2_super_block, s_state) - 58usize];
701    ["Offset of field: ext2_super_block::s_errors"]
702        [::core::mem::offset_of!(ext2_super_block, s_errors) - 60usize];
703    ["Offset of field: ext2_super_block::s_minor_rev_level"]
704        [::core::mem::offset_of!(ext2_super_block, s_minor_rev_level) - 62usize];
705    ["Offset of field: ext2_super_block::s_lastcheck"]
706        [::core::mem::offset_of!(ext2_super_block, s_lastcheck) - 64usize];
707    ["Offset of field: ext2_super_block::s_checkinterval"]
708        [::core::mem::offset_of!(ext2_super_block, s_checkinterval) - 68usize];
709    ["Offset of field: ext2_super_block::s_creator_os"]
710        [::core::mem::offset_of!(ext2_super_block, s_creator_os) - 72usize];
711    ["Offset of field: ext2_super_block::s_rev_level"]
712        [::core::mem::offset_of!(ext2_super_block, s_rev_level) - 76usize];
713    ["Offset of field: ext2_super_block::s_def_resuid"]
714        [::core::mem::offset_of!(ext2_super_block, s_def_resuid) - 80usize];
715    ["Offset of field: ext2_super_block::s_def_resgid"]
716        [::core::mem::offset_of!(ext2_super_block, s_def_resgid) - 82usize];
717    ["Offset of field: ext2_super_block::s_first_ino"]
718        [::core::mem::offset_of!(ext2_super_block, s_first_ino) - 84usize];
719    ["Offset of field: ext2_super_block::s_inode_size"]
720        [::core::mem::offset_of!(ext2_super_block, s_inode_size) - 88usize];
721    ["Offset of field: ext2_super_block::s_block_group_nr"]
722        [::core::mem::offset_of!(ext2_super_block, s_block_group_nr) - 90usize];
723    ["Offset of field: ext2_super_block::s_feature_compat"]
724        [::core::mem::offset_of!(ext2_super_block, s_feature_compat) - 92usize];
725    ["Offset of field: ext2_super_block::s_feature_incompat"]
726        [::core::mem::offset_of!(ext2_super_block, s_feature_incompat) - 96usize];
727    ["Offset of field: ext2_super_block::s_feature_ro_compat"]
728        [::core::mem::offset_of!(ext2_super_block, s_feature_ro_compat) - 100usize];
729    ["Offset of field: ext2_super_block::s_uuid"]
730        [::core::mem::offset_of!(ext2_super_block, s_uuid) - 104usize];
731    ["Offset of field: ext2_super_block::s_volume_name"]
732        [::core::mem::offset_of!(ext2_super_block, s_volume_name) - 120usize];
733    ["Offset of field: ext2_super_block::s_last_mounted"]
734        [::core::mem::offset_of!(ext2_super_block, s_last_mounted) - 136usize];
735    ["Offset of field: ext2_super_block::s_algorithm_usage_bitmap"]
736        [::core::mem::offset_of!(ext2_super_block, s_algorithm_usage_bitmap) - 200usize];
737    ["Offset of field: ext2_super_block::s_prealloc_blocks"]
738        [::core::mem::offset_of!(ext2_super_block, s_prealloc_blocks) - 204usize];
739    ["Offset of field: ext2_super_block::s_prealloc_dir_blocks"]
740        [::core::mem::offset_of!(ext2_super_block, s_prealloc_dir_blocks) - 205usize];
741    ["Offset of field: ext2_super_block::s_reserved_gdt_blocks"]
742        [::core::mem::offset_of!(ext2_super_block, s_reserved_gdt_blocks) - 206usize];
743    ["Offset of field: ext2_super_block::s_journal_uuid"]
744        [::core::mem::offset_of!(ext2_super_block, s_journal_uuid) - 208usize];
745    ["Offset of field: ext2_super_block::s_journal_inum"]
746        [::core::mem::offset_of!(ext2_super_block, s_journal_inum) - 224usize];
747    ["Offset of field: ext2_super_block::s_journal_dev"]
748        [::core::mem::offset_of!(ext2_super_block, s_journal_dev) - 228usize];
749    ["Offset of field: ext2_super_block::s_last_orphan"]
750        [::core::mem::offset_of!(ext2_super_block, s_last_orphan) - 232usize];
751    ["Offset of field: ext2_super_block::s_hash_seed"]
752        [::core::mem::offset_of!(ext2_super_block, s_hash_seed) - 236usize];
753    ["Offset of field: ext2_super_block::s_def_hash_version"]
754        [::core::mem::offset_of!(ext2_super_block, s_def_hash_version) - 252usize];
755    ["Offset of field: ext2_super_block::s_jnl_backup_type"]
756        [::core::mem::offset_of!(ext2_super_block, s_jnl_backup_type) - 253usize];
757    ["Offset of field: ext2_super_block::s_desc_size"]
758        [::core::mem::offset_of!(ext2_super_block, s_desc_size) - 254usize];
759    ["Offset of field: ext2_super_block::s_default_mount_opts"]
760        [::core::mem::offset_of!(ext2_super_block, s_default_mount_opts) - 256usize];
761    ["Offset of field: ext2_super_block::s_first_meta_bg"]
762        [::core::mem::offset_of!(ext2_super_block, s_first_meta_bg) - 260usize];
763    ["Offset of field: ext2_super_block::s_mkfs_time"]
764        [::core::mem::offset_of!(ext2_super_block, s_mkfs_time) - 264usize];
765    ["Offset of field: ext2_super_block::s_jnl_blocks"]
766        [::core::mem::offset_of!(ext2_super_block, s_jnl_blocks) - 268usize];
767    ["Offset of field: ext2_super_block::s_blocks_count_hi"]
768        [::core::mem::offset_of!(ext2_super_block, s_blocks_count_hi) - 336usize];
769    ["Offset of field: ext2_super_block::s_r_blocks_count_hi"]
770        [::core::mem::offset_of!(ext2_super_block, s_r_blocks_count_hi) - 340usize];
771    ["Offset of field: ext2_super_block::s_free_blocks_hi"]
772        [::core::mem::offset_of!(ext2_super_block, s_free_blocks_hi) - 344usize];
773    ["Offset of field: ext2_super_block::s_min_extra_isize"]
774        [::core::mem::offset_of!(ext2_super_block, s_min_extra_isize) - 348usize];
775    ["Offset of field: ext2_super_block::s_want_extra_isize"]
776        [::core::mem::offset_of!(ext2_super_block, s_want_extra_isize) - 350usize];
777    ["Offset of field: ext2_super_block::s_flags"]
778        [::core::mem::offset_of!(ext2_super_block, s_flags) - 352usize];
779    ["Offset of field: ext2_super_block::s_raid_stride"]
780        [::core::mem::offset_of!(ext2_super_block, s_raid_stride) - 356usize];
781    ["Offset of field: ext2_super_block::s_mmp_update_interval"]
782        [::core::mem::offset_of!(ext2_super_block, s_mmp_update_interval) - 358usize];
783    ["Offset of field: ext2_super_block::s_mmp_block"]
784        [::core::mem::offset_of!(ext2_super_block, s_mmp_block) - 360usize];
785    ["Offset of field: ext2_super_block::s_raid_stripe_width"]
786        [::core::mem::offset_of!(ext2_super_block, s_raid_stripe_width) - 368usize];
787    ["Offset of field: ext2_super_block::s_log_groups_per_flex"]
788        [::core::mem::offset_of!(ext2_super_block, s_log_groups_per_flex) - 372usize];
789    ["Offset of field: ext2_super_block::s_checksum_type"]
790        [::core::mem::offset_of!(ext2_super_block, s_checksum_type) - 373usize];
791    ["Offset of field: ext2_super_block::s_encryption_level"]
792        [::core::mem::offset_of!(ext2_super_block, s_encryption_level) - 374usize];
793    ["Offset of field: ext2_super_block::s_reserved_pad"]
794        [::core::mem::offset_of!(ext2_super_block, s_reserved_pad) - 375usize];
795    ["Offset of field: ext2_super_block::s_kbytes_written"]
796        [::core::mem::offset_of!(ext2_super_block, s_kbytes_written) - 376usize];
797    ["Offset of field: ext2_super_block::s_snapshot_inum"]
798        [::core::mem::offset_of!(ext2_super_block, s_snapshot_inum) - 384usize];
799    ["Offset of field: ext2_super_block::s_snapshot_id"]
800        [::core::mem::offset_of!(ext2_super_block, s_snapshot_id) - 388usize];
801    ["Offset of field: ext2_super_block::s_snapshot_r_blocks_count"]
802        [::core::mem::offset_of!(ext2_super_block, s_snapshot_r_blocks_count) - 392usize];
803    ["Offset of field: ext2_super_block::s_snapshot_list"]
804        [::core::mem::offset_of!(ext2_super_block, s_snapshot_list) - 400usize];
805    ["Offset of field: ext2_super_block::s_error_count"]
806        [::core::mem::offset_of!(ext2_super_block, s_error_count) - 404usize];
807    ["Offset of field: ext2_super_block::s_first_error_time"]
808        [::core::mem::offset_of!(ext2_super_block, s_first_error_time) - 408usize];
809    ["Offset of field: ext2_super_block::s_first_error_ino"]
810        [::core::mem::offset_of!(ext2_super_block, s_first_error_ino) - 412usize];
811    ["Offset of field: ext2_super_block::s_first_error_block"]
812        [::core::mem::offset_of!(ext2_super_block, s_first_error_block) - 416usize];
813    ["Offset of field: ext2_super_block::s_first_error_func"]
814        [::core::mem::offset_of!(ext2_super_block, s_first_error_func) - 424usize];
815    ["Offset of field: ext2_super_block::s_first_error_line"]
816        [::core::mem::offset_of!(ext2_super_block, s_first_error_line) - 456usize];
817    ["Offset of field: ext2_super_block::s_last_error_time"]
818        [::core::mem::offset_of!(ext2_super_block, s_last_error_time) - 460usize];
819    ["Offset of field: ext2_super_block::s_last_error_ino"]
820        [::core::mem::offset_of!(ext2_super_block, s_last_error_ino) - 464usize];
821    ["Offset of field: ext2_super_block::s_last_error_line"]
822        [::core::mem::offset_of!(ext2_super_block, s_last_error_line) - 468usize];
823    ["Offset of field: ext2_super_block::s_last_error_block"]
824        [::core::mem::offset_of!(ext2_super_block, s_last_error_block) - 472usize];
825    ["Offset of field: ext2_super_block::s_last_error_func"]
826        [::core::mem::offset_of!(ext2_super_block, s_last_error_func) - 480usize];
827    ["Offset of field: ext2_super_block::s_mount_opts"]
828        [::core::mem::offset_of!(ext2_super_block, s_mount_opts) - 512usize];
829    ["Offset of field: ext2_super_block::s_usr_quota_inum"]
830        [::core::mem::offset_of!(ext2_super_block, s_usr_quota_inum) - 576usize];
831    ["Offset of field: ext2_super_block::s_grp_quota_inum"]
832        [::core::mem::offset_of!(ext2_super_block, s_grp_quota_inum) - 580usize];
833    ["Offset of field: ext2_super_block::s_overhead_clusters"]
834        [::core::mem::offset_of!(ext2_super_block, s_overhead_clusters) - 584usize];
835    ["Offset of field: ext2_super_block::s_backup_bgs"]
836        [::core::mem::offset_of!(ext2_super_block, s_backup_bgs) - 588usize];
837    ["Offset of field: ext2_super_block::s_encrypt_algos"]
838        [::core::mem::offset_of!(ext2_super_block, s_encrypt_algos) - 596usize];
839    ["Offset of field: ext2_super_block::s_encrypt_pw_salt"]
840        [::core::mem::offset_of!(ext2_super_block, s_encrypt_pw_salt) - 600usize];
841    ["Offset of field: ext2_super_block::s_lpf_ino"]
842        [::core::mem::offset_of!(ext2_super_block, s_lpf_ino) - 616usize];
843    ["Offset of field: ext2_super_block::s_prj_quota_inum"]
844        [::core::mem::offset_of!(ext2_super_block, s_prj_quota_inum) - 620usize];
845    ["Offset of field: ext2_super_block::s_checksum_seed"]
846        [::core::mem::offset_of!(ext2_super_block, s_checksum_seed) - 624usize];
847    ["Offset of field: ext2_super_block::s_wtime_hi"]
848        [::core::mem::offset_of!(ext2_super_block, s_wtime_hi) - 628usize];
849    ["Offset of field: ext2_super_block::s_mtime_hi"]
850        [::core::mem::offset_of!(ext2_super_block, s_mtime_hi) - 629usize];
851    ["Offset of field: ext2_super_block::s_mkfs_time_hi"]
852        [::core::mem::offset_of!(ext2_super_block, s_mkfs_time_hi) - 630usize];
853    ["Offset of field: ext2_super_block::s_lastcheck_hi"]
854        [::core::mem::offset_of!(ext2_super_block, s_lastcheck_hi) - 631usize];
855    ["Offset of field: ext2_super_block::s_first_error_time_hi"]
856        [::core::mem::offset_of!(ext2_super_block, s_first_error_time_hi) - 632usize];
857    ["Offset of field: ext2_super_block::s_last_error_time_hi"]
858        [::core::mem::offset_of!(ext2_super_block, s_last_error_time_hi) - 633usize];
859    ["Offset of field: ext2_super_block::s_first_error_errcode"]
860        [::core::mem::offset_of!(ext2_super_block, s_first_error_errcode) - 634usize];
861    ["Offset of field: ext2_super_block::s_last_error_errcode"]
862        [::core::mem::offset_of!(ext2_super_block, s_last_error_errcode) - 635usize];
863    ["Offset of field: ext2_super_block::s_encoding"]
864        [::core::mem::offset_of!(ext2_super_block, s_encoding) - 636usize];
865    ["Offset of field: ext2_super_block::s_encoding_flags"]
866        [::core::mem::offset_of!(ext2_super_block, s_encoding_flags) - 638usize];
867    ["Offset of field: ext2_super_block::s_orphan_file_inum"]
868        [::core::mem::offset_of!(ext2_super_block, s_orphan_file_inum) - 640usize];
869    ["Offset of field: ext2_super_block::s_reserved"]
870        [::core::mem::offset_of!(ext2_super_block, s_reserved) - 644usize];
871    ["Offset of field: ext2_super_block::s_checksum"]
872        [::core::mem::offset_of!(ext2_super_block, s_checksum) - 1020usize];
873};
874impl Default for ext2_super_block {
875    fn default() -> Self {
876        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
877        unsafe {
878            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
879            s.assume_init()
880        }
881    }
882}
883pub type ext2_ino_t = __u32;
884pub type blk_t = __u32;
885pub type blk64_t = __u64;
886pub type dgrp_t = __u32;
887pub type errcode_t = ::core::ffi::c_long;
888pub type io_manager = *mut struct_io_manager;
889pub type io_channel = *mut struct_io_channel;
890pub type io_stats = *mut struct_io_stats;
891#[repr(C)]
892#[derive(Debug, Copy, Clone, PartialEq, Eq)]
893pub struct struct_io_channel {
894    pub magic: errcode_t,
895    pub manager: io_manager,
896    pub name: *mut ::core::ffi::c_char,
897    pub block_size: ::core::ffi::c_int,
898    pub read_error: ::core::option::Option<
899        unsafe extern "C" fn(
900            channel: io_channel,
901            block: ::core::ffi::c_ulong,
902            count: ::core::ffi::c_int,
903            data: *mut ::core::ffi::c_void,
904            size: usize,
905            actual_bytes_read: ::core::ffi::c_int,
906            error: errcode_t,
907        ) -> errcode_t,
908    >,
909    pub write_error: ::core::option::Option<
910        unsafe extern "C" fn(
911            channel: io_channel,
912            block: ::core::ffi::c_ulong,
913            count: ::core::ffi::c_int,
914            data: *const ::core::ffi::c_void,
915            size: usize,
916            actual_bytes_written: ::core::ffi::c_int,
917            error: errcode_t,
918        ) -> errcode_t,
919    >,
920    pub refcount: ::core::ffi::c_int,
921    pub flags: ::core::ffi::c_uint,
922    pub reserved: [::core::ffi::c_long; 14usize],
923    pub private_data: *mut ::core::ffi::c_void,
924    pub app_data: *mut ::core::ffi::c_void,
925    pub align: ::core::ffi::c_int,
926}
927#[allow(clippy::unnecessary_operation, clippy::identity_op)]
928const _: () = {
929    ["Size of struct_io_channel"][::core::mem::size_of::<struct_io_channel>() - 192usize];
930    ["Alignment of struct_io_channel"][::core::mem::align_of::<struct_io_channel>() - 8usize];
931    ["Offset of field: struct_io_channel::magic"]
932        [::core::mem::offset_of!(struct_io_channel, magic) - 0usize];
933    ["Offset of field: struct_io_channel::manager"]
934        [::core::mem::offset_of!(struct_io_channel, manager) - 8usize];
935    ["Offset of field: struct_io_channel::name"]
936        [::core::mem::offset_of!(struct_io_channel, name) - 16usize];
937    ["Offset of field: struct_io_channel::block_size"]
938        [::core::mem::offset_of!(struct_io_channel, block_size) - 24usize];
939    ["Offset of field: struct_io_channel::read_error"]
940        [::core::mem::offset_of!(struct_io_channel, read_error) - 32usize];
941    ["Offset of field: struct_io_channel::write_error"]
942        [::core::mem::offset_of!(struct_io_channel, write_error) - 40usize];
943    ["Offset of field: struct_io_channel::refcount"]
944        [::core::mem::offset_of!(struct_io_channel, refcount) - 48usize];
945    ["Offset of field: struct_io_channel::flags"]
946        [::core::mem::offset_of!(struct_io_channel, flags) - 52usize];
947    ["Offset of field: struct_io_channel::reserved"]
948        [::core::mem::offset_of!(struct_io_channel, reserved) - 56usize];
949    ["Offset of field: struct_io_channel::private_data"]
950        [::core::mem::offset_of!(struct_io_channel, private_data) - 168usize];
951    ["Offset of field: struct_io_channel::app_data"]
952        [::core::mem::offset_of!(struct_io_channel, app_data) - 176usize];
953    ["Offset of field: struct_io_channel::align"]
954        [::core::mem::offset_of!(struct_io_channel, align) - 184usize];
955};
956impl Default for struct_io_channel {
957    fn default() -> Self {
958        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
959        unsafe {
960            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
961            s.assume_init()
962        }
963    }
964}
965#[repr(C)]
966#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
967pub struct struct_io_stats {
968    pub num_fields: ::core::ffi::c_int,
969    pub reserved: ::core::ffi::c_int,
970    pub bytes_read: ::core::ffi::c_ulonglong,
971    pub bytes_written: ::core::ffi::c_ulonglong,
972}
973#[allow(clippy::unnecessary_operation, clippy::identity_op)]
974const _: () = {
975    ["Size of struct_io_stats"][::core::mem::size_of::<struct_io_stats>() - 24usize];
976    ["Alignment of struct_io_stats"][::core::mem::align_of::<struct_io_stats>() - 8usize];
977    ["Offset of field: struct_io_stats::num_fields"]
978        [::core::mem::offset_of!(struct_io_stats, num_fields) - 0usize];
979    ["Offset of field: struct_io_stats::reserved"]
980        [::core::mem::offset_of!(struct_io_stats, reserved) - 4usize];
981    ["Offset of field: struct_io_stats::bytes_read"]
982        [::core::mem::offset_of!(struct_io_stats, bytes_read) - 8usize];
983    ["Offset of field: struct_io_stats::bytes_written"]
984        [::core::mem::offset_of!(struct_io_stats, bytes_written) - 16usize];
985};
986#[repr(C)]
987#[derive(Debug, Copy, Clone, PartialEq, Eq)]
988pub struct struct_io_manager {
989    pub magic: errcode_t,
990    pub name: *const ::core::ffi::c_char,
991    pub open: ::core::option::Option<
992        unsafe extern "C" fn(
993            name: *const ::core::ffi::c_char,
994            flags: ::core::ffi::c_int,
995            channel: *mut io_channel,
996        ) -> errcode_t,
997    >,
998    pub close: ::core::option::Option<unsafe extern "C" fn(channel: io_channel) -> errcode_t>,
999    pub set_blksize: ::core::option::Option<
1000        unsafe extern "C" fn(channel: io_channel, blksize: ::core::ffi::c_int) -> errcode_t,
1001    >,
1002    pub read_blk: ::core::option::Option<
1003        unsafe extern "C" fn(
1004            channel: io_channel,
1005            block: ::core::ffi::c_ulong,
1006            count: ::core::ffi::c_int,
1007            data: *mut ::core::ffi::c_void,
1008        ) -> errcode_t,
1009    >,
1010    pub write_blk: ::core::option::Option<
1011        unsafe extern "C" fn(
1012            channel: io_channel,
1013            block: ::core::ffi::c_ulong,
1014            count: ::core::ffi::c_int,
1015            data: *const ::core::ffi::c_void,
1016        ) -> errcode_t,
1017    >,
1018    pub flush: ::core::option::Option<unsafe extern "C" fn(channel: io_channel) -> errcode_t>,
1019    pub write_byte: ::core::option::Option<
1020        unsafe extern "C" fn(
1021            channel: io_channel,
1022            offset: ::core::ffi::c_ulong,
1023            count: ::core::ffi::c_int,
1024            data: *const ::core::ffi::c_void,
1025        ) -> errcode_t,
1026    >,
1027    pub set_option: ::core::option::Option<
1028        unsafe extern "C" fn(
1029            channel: io_channel,
1030            option: *const ::core::ffi::c_char,
1031            arg: *const ::core::ffi::c_char,
1032        ) -> errcode_t,
1033    >,
1034    pub get_stats: ::core::option::Option<
1035        unsafe extern "C" fn(channel: io_channel, io_stats: *mut io_stats) -> errcode_t,
1036    >,
1037    pub read_blk64: ::core::option::Option<
1038        unsafe extern "C" fn(
1039            channel: io_channel,
1040            block: ::core::ffi::c_ulonglong,
1041            count: ::core::ffi::c_int,
1042            data: *mut ::core::ffi::c_void,
1043        ) -> errcode_t,
1044    >,
1045    pub write_blk64: ::core::option::Option<
1046        unsafe extern "C" fn(
1047            channel: io_channel,
1048            block: ::core::ffi::c_ulonglong,
1049            count: ::core::ffi::c_int,
1050            data: *const ::core::ffi::c_void,
1051        ) -> errcode_t,
1052    >,
1053    pub discard: ::core::option::Option<
1054        unsafe extern "C" fn(
1055            channel: io_channel,
1056            block: ::core::ffi::c_ulonglong,
1057            count: ::core::ffi::c_ulonglong,
1058        ) -> errcode_t,
1059    >,
1060    pub cache_readahead: ::core::option::Option<
1061        unsafe extern "C" fn(
1062            channel: io_channel,
1063            block: ::core::ffi::c_ulonglong,
1064            count: ::core::ffi::c_ulonglong,
1065        ) -> errcode_t,
1066    >,
1067    pub zeroout: ::core::option::Option<
1068        unsafe extern "C" fn(
1069            channel: io_channel,
1070            block: ::core::ffi::c_ulonglong,
1071            count: ::core::ffi::c_ulonglong,
1072        ) -> errcode_t,
1073    >,
1074    pub reserved: [::core::ffi::c_long; 14usize],
1075}
1076#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1077const _: () = {
1078    ["Size of struct_io_manager"][::core::mem::size_of::<struct_io_manager>() - 240usize];
1079    ["Alignment of struct_io_manager"][::core::mem::align_of::<struct_io_manager>() - 8usize];
1080    ["Offset of field: struct_io_manager::magic"]
1081        [::core::mem::offset_of!(struct_io_manager, magic) - 0usize];
1082    ["Offset of field: struct_io_manager::name"]
1083        [::core::mem::offset_of!(struct_io_manager, name) - 8usize];
1084    ["Offset of field: struct_io_manager::open"]
1085        [::core::mem::offset_of!(struct_io_manager, open) - 16usize];
1086    ["Offset of field: struct_io_manager::close"]
1087        [::core::mem::offset_of!(struct_io_manager, close) - 24usize];
1088    ["Offset of field: struct_io_manager::set_blksize"]
1089        [::core::mem::offset_of!(struct_io_manager, set_blksize) - 32usize];
1090    ["Offset of field: struct_io_manager::read_blk"]
1091        [::core::mem::offset_of!(struct_io_manager, read_blk) - 40usize];
1092    ["Offset of field: struct_io_manager::write_blk"]
1093        [::core::mem::offset_of!(struct_io_manager, write_blk) - 48usize];
1094    ["Offset of field: struct_io_manager::flush"]
1095        [::core::mem::offset_of!(struct_io_manager, flush) - 56usize];
1096    ["Offset of field: struct_io_manager::write_byte"]
1097        [::core::mem::offset_of!(struct_io_manager, write_byte) - 64usize];
1098    ["Offset of field: struct_io_manager::set_option"]
1099        [::core::mem::offset_of!(struct_io_manager, set_option) - 72usize];
1100    ["Offset of field: struct_io_manager::get_stats"]
1101        [::core::mem::offset_of!(struct_io_manager, get_stats) - 80usize];
1102    ["Offset of field: struct_io_manager::read_blk64"]
1103        [::core::mem::offset_of!(struct_io_manager, read_blk64) - 88usize];
1104    ["Offset of field: struct_io_manager::write_blk64"]
1105        [::core::mem::offset_of!(struct_io_manager, write_blk64) - 96usize];
1106    ["Offset of field: struct_io_manager::discard"]
1107        [::core::mem::offset_of!(struct_io_manager, discard) - 104usize];
1108    ["Offset of field: struct_io_manager::cache_readahead"]
1109        [::core::mem::offset_of!(struct_io_manager, cache_readahead) - 112usize];
1110    ["Offset of field: struct_io_manager::zeroout"]
1111        [::core::mem::offset_of!(struct_io_manager, zeroout) - 120usize];
1112    ["Offset of field: struct_io_manager::reserved"]
1113        [::core::mem::offset_of!(struct_io_manager, reserved) - 128usize];
1114};
1115impl Default for struct_io_manager {
1116    fn default() -> Self {
1117        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1118        unsafe {
1119            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1120            s.assume_init()
1121        }
1122    }
1123}
1124unsafe extern "C" {
1125    pub static mut unix_io_manager: io_manager;
1126}
1127#[repr(C)]
1128#[derive(Debug, Copy, Clone)]
1129pub struct ext2fs_hashmap {
1130    _unused: [u8; 0],
1131}
1132pub type ext2_filsys = *mut struct_ext2_filsys;
1133#[repr(C)]
1134#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1135pub struct ext2fs_struct_generic_bitmap_base {
1136    pub magic: errcode_t,
1137    pub fs: ext2_filsys,
1138}
1139#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1140const _: () = {
1141    ["Size of ext2fs_struct_generic_bitmap_base"]
1142        [::core::mem::size_of::<ext2fs_struct_generic_bitmap_base>() - 16usize];
1143    ["Alignment of ext2fs_struct_generic_bitmap_base"]
1144        [::core::mem::align_of::<ext2fs_struct_generic_bitmap_base>() - 8usize];
1145    ["Offset of field: ext2fs_struct_generic_bitmap_base::magic"]
1146        [::core::mem::offset_of!(ext2fs_struct_generic_bitmap_base, magic) - 0usize];
1147    ["Offset of field: ext2fs_struct_generic_bitmap_base::fs"]
1148        [::core::mem::offset_of!(ext2fs_struct_generic_bitmap_base, fs) - 8usize];
1149};
1150impl Default for ext2fs_struct_generic_bitmap_base {
1151    fn default() -> Self {
1152        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1153        unsafe {
1154            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1155            s.assume_init()
1156        }
1157    }
1158}
1159pub type ext2fs_inode_bitmap = *mut ext2fs_struct_generic_bitmap_base;
1160pub type ext2fs_block_bitmap = *mut ext2fs_struct_generic_bitmap_base;
1161#[repr(C)]
1162#[derive(Debug, Copy, Clone)]
1163pub struct ext2_struct_u32_list {
1164    _unused: [u8; 0],
1165}
1166pub type ext2_badblocks_list = *mut ext2_struct_u32_list;
1167#[repr(C)]
1168#[derive(Debug, Copy, Clone)]
1169pub struct ext2_struct_dblist {
1170    _unused: [u8; 0],
1171}
1172pub type ext2_dblist = *mut ext2_struct_dblist;
1173#[repr(C)]
1174#[derive(Debug, Copy, Clone)]
1175pub struct opaque_ext2_group_desc {
1176    _unused: [u8; 0],
1177}
1178#[repr(C)]
1179#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1180pub struct struct_ext2_filsys {
1181    pub magic: errcode_t,
1182    pub io: io_channel,
1183    pub flags: ::core::ffi::c_int,
1184    pub device_name: *mut ::core::ffi::c_char,
1185    pub super_: *mut ext2_super_block,
1186    pub blocksize: ::core::ffi::c_uint,
1187    pub fragsize: ::core::ffi::c_int,
1188    pub group_desc_count: dgrp_t,
1189    pub desc_blocks: ::core::ffi::c_ulong,
1190    pub group_desc: *mut opaque_ext2_group_desc,
1191    pub inode_blocks_per_group: ::core::ffi::c_uint,
1192    pub inode_map: ext2fs_inode_bitmap,
1193    pub block_map: ext2fs_block_bitmap,
1194    pub get_blocks: ::core::option::Option<
1195        unsafe extern "C" fn(fs: ext2_filsys, ino: ext2_ino_t, blocks: *mut blk_t) -> errcode_t,
1196    >,
1197    pub check_directory:
1198        ::core::option::Option<unsafe extern "C" fn(fs: ext2_filsys, ino: ext2_ino_t) -> errcode_t>,
1199    pub write_bitmaps: ::core::option::Option<unsafe extern "C" fn(fs: ext2_filsys) -> errcode_t>,
1200    pub read_inode: ::core::option::Option<
1201        unsafe extern "C" fn(fs: ext2_filsys, ino: ext2_ino_t, inode: *mut ext2_inode) -> errcode_t,
1202    >,
1203    pub write_inode: ::core::option::Option<
1204        unsafe extern "C" fn(fs: ext2_filsys, ino: ext2_ino_t, inode: *mut ext2_inode) -> errcode_t,
1205    >,
1206    pub badblocks: ext2_badblocks_list,
1207    pub dblist: ext2_dblist,
1208    pub stride: __u32,
1209    pub orig_super: *mut ext2_super_block,
1210    pub image_header: *mut ext2_image_hdr,
1211    pub umask: __u32,
1212    pub now: time_t,
1213    pub cluster_ratio_bits: ::core::ffi::c_int,
1214    pub default_bitmap_type: __u16,
1215    pub pad: __u16,
1216    pub flags2: __u32,
1217    pub reserved: [__u32; 4usize],
1218    pub priv_data: *mut ::core::ffi::c_void,
1219    pub icache: *mut ext2_inode_cache,
1220    pub image_io: io_channel,
1221    pub get_alloc_block: ::core::option::Option<
1222        unsafe extern "C" fn(fs: ext2_filsys, goal: blk64_t, ret: *mut blk64_t) -> errcode_t,
1223    >,
1224    pub get_alloc_block2: ::core::option::Option<
1225        unsafe extern "C" fn(
1226            fs: ext2_filsys,
1227            goal: blk64_t,
1228            ret: *mut blk64_t,
1229            ctx: *mut blk_alloc_ctx,
1230        ) -> errcode_t,
1231    >,
1232    pub block_alloc_stats: ::core::option::Option<
1233        unsafe extern "C" fn(fs: ext2_filsys, blk: blk64_t, inuse: ::core::ffi::c_int),
1234    >,
1235    pub mmp_buf: *mut ::core::ffi::c_void,
1236    pub mmp_cmp: *mut ::core::ffi::c_void,
1237    pub mmp_fd: ::core::ffi::c_int,
1238    pub mmp_last_written: ::core::ffi::c_long,
1239    pub progress_ops: *mut ext2fs_progress_ops,
1240    pub csum_seed: __u32,
1241    pub journal_io: io_channel,
1242    pub journal_name: *mut ::core::ffi::c_char,
1243    pub new_range: ::core::option::Option<
1244        unsafe extern "C" fn(
1245            fs: ext2_filsys,
1246            flags: ::core::ffi::c_int,
1247            goal: blk64_t,
1248            len: blk64_t,
1249            pblk: *mut blk64_t,
1250            plen: *mut blk64_t,
1251        ) -> errcode_t,
1252    >,
1253    pub block_alloc_stats_range: ::core::option::Option<
1254        unsafe extern "C" fn(fs: ext2_filsys, blk: blk64_t, num: blk_t, inuse: ::core::ffi::c_int),
1255    >,
1256    pub block_sha_map: *mut ext2fs_hashmap,
1257    pub encoding: *mut ext2fs_nls_table,
1258}
1259#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1260const _: () = {
1261    ["Size of struct_ext2_filsys"][::core::mem::size_of::<struct_ext2_filsys>() - 368usize];
1262    ["Alignment of struct_ext2_filsys"][::core::mem::align_of::<struct_ext2_filsys>() - 8usize];
1263    ["Offset of field: struct_ext2_filsys::magic"]
1264        [::core::mem::offset_of!(struct_ext2_filsys, magic) - 0usize];
1265    ["Offset of field: struct_ext2_filsys::io"]
1266        [::core::mem::offset_of!(struct_ext2_filsys, io) - 8usize];
1267    ["Offset of field: struct_ext2_filsys::flags"]
1268        [::core::mem::offset_of!(struct_ext2_filsys, flags) - 16usize];
1269    ["Offset of field: struct_ext2_filsys::device_name"]
1270        [::core::mem::offset_of!(struct_ext2_filsys, device_name) - 24usize];
1271    ["Offset of field: struct_ext2_filsys::super_"]
1272        [::core::mem::offset_of!(struct_ext2_filsys, super_) - 32usize];
1273    ["Offset of field: struct_ext2_filsys::blocksize"]
1274        [::core::mem::offset_of!(struct_ext2_filsys, blocksize) - 40usize];
1275    ["Offset of field: struct_ext2_filsys::fragsize"]
1276        [::core::mem::offset_of!(struct_ext2_filsys, fragsize) - 44usize];
1277    ["Offset of field: struct_ext2_filsys::group_desc_count"]
1278        [::core::mem::offset_of!(struct_ext2_filsys, group_desc_count) - 48usize];
1279    ["Offset of field: struct_ext2_filsys::desc_blocks"]
1280        [::core::mem::offset_of!(struct_ext2_filsys, desc_blocks) - 56usize];
1281    ["Offset of field: struct_ext2_filsys::group_desc"]
1282        [::core::mem::offset_of!(struct_ext2_filsys, group_desc) - 64usize];
1283    ["Offset of field: struct_ext2_filsys::inode_blocks_per_group"]
1284        [::core::mem::offset_of!(struct_ext2_filsys, inode_blocks_per_group) - 72usize];
1285    ["Offset of field: struct_ext2_filsys::inode_map"]
1286        [::core::mem::offset_of!(struct_ext2_filsys, inode_map) - 80usize];
1287    ["Offset of field: struct_ext2_filsys::block_map"]
1288        [::core::mem::offset_of!(struct_ext2_filsys, block_map) - 88usize];
1289    ["Offset of field: struct_ext2_filsys::get_blocks"]
1290        [::core::mem::offset_of!(struct_ext2_filsys, get_blocks) - 96usize];
1291    ["Offset of field: struct_ext2_filsys::check_directory"]
1292        [::core::mem::offset_of!(struct_ext2_filsys, check_directory) - 104usize];
1293    ["Offset of field: struct_ext2_filsys::write_bitmaps"]
1294        [::core::mem::offset_of!(struct_ext2_filsys, write_bitmaps) - 112usize];
1295    ["Offset of field: struct_ext2_filsys::read_inode"]
1296        [::core::mem::offset_of!(struct_ext2_filsys, read_inode) - 120usize];
1297    ["Offset of field: struct_ext2_filsys::write_inode"]
1298        [::core::mem::offset_of!(struct_ext2_filsys, write_inode) - 128usize];
1299    ["Offset of field: struct_ext2_filsys::badblocks"]
1300        [::core::mem::offset_of!(struct_ext2_filsys, badblocks) - 136usize];
1301    ["Offset of field: struct_ext2_filsys::dblist"]
1302        [::core::mem::offset_of!(struct_ext2_filsys, dblist) - 144usize];
1303    ["Offset of field: struct_ext2_filsys::stride"]
1304        [::core::mem::offset_of!(struct_ext2_filsys, stride) - 152usize];
1305    ["Offset of field: struct_ext2_filsys::orig_super"]
1306        [::core::mem::offset_of!(struct_ext2_filsys, orig_super) - 160usize];
1307    ["Offset of field: struct_ext2_filsys::image_header"]
1308        [::core::mem::offset_of!(struct_ext2_filsys, image_header) - 168usize];
1309    ["Offset of field: struct_ext2_filsys::umask"]
1310        [::core::mem::offset_of!(struct_ext2_filsys, umask) - 176usize];
1311    ["Offset of field: struct_ext2_filsys::now"]
1312        [::core::mem::offset_of!(struct_ext2_filsys, now) - 184usize];
1313    ["Offset of field: struct_ext2_filsys::cluster_ratio_bits"]
1314        [::core::mem::offset_of!(struct_ext2_filsys, cluster_ratio_bits) - 192usize];
1315    ["Offset of field: struct_ext2_filsys::default_bitmap_type"]
1316        [::core::mem::offset_of!(struct_ext2_filsys, default_bitmap_type) - 196usize];
1317    ["Offset of field: struct_ext2_filsys::pad"]
1318        [::core::mem::offset_of!(struct_ext2_filsys, pad) - 198usize];
1319    ["Offset of field: struct_ext2_filsys::flags2"]
1320        [::core::mem::offset_of!(struct_ext2_filsys, flags2) - 200usize];
1321    ["Offset of field: struct_ext2_filsys::reserved"]
1322        [::core::mem::offset_of!(struct_ext2_filsys, reserved) - 204usize];
1323    ["Offset of field: struct_ext2_filsys::priv_data"]
1324        [::core::mem::offset_of!(struct_ext2_filsys, priv_data) - 224usize];
1325    ["Offset of field: struct_ext2_filsys::icache"]
1326        [::core::mem::offset_of!(struct_ext2_filsys, icache) - 232usize];
1327    ["Offset of field: struct_ext2_filsys::image_io"]
1328        [::core::mem::offset_of!(struct_ext2_filsys, image_io) - 240usize];
1329    ["Offset of field: struct_ext2_filsys::get_alloc_block"]
1330        [::core::mem::offset_of!(struct_ext2_filsys, get_alloc_block) - 248usize];
1331    ["Offset of field: struct_ext2_filsys::get_alloc_block2"]
1332        [::core::mem::offset_of!(struct_ext2_filsys, get_alloc_block2) - 256usize];
1333    ["Offset of field: struct_ext2_filsys::block_alloc_stats"]
1334        [::core::mem::offset_of!(struct_ext2_filsys, block_alloc_stats) - 264usize];
1335    ["Offset of field: struct_ext2_filsys::mmp_buf"]
1336        [::core::mem::offset_of!(struct_ext2_filsys, mmp_buf) - 272usize];
1337    ["Offset of field: struct_ext2_filsys::mmp_cmp"]
1338        [::core::mem::offset_of!(struct_ext2_filsys, mmp_cmp) - 280usize];
1339    ["Offset of field: struct_ext2_filsys::mmp_fd"]
1340        [::core::mem::offset_of!(struct_ext2_filsys, mmp_fd) - 288usize];
1341    ["Offset of field: struct_ext2_filsys::mmp_last_written"]
1342        [::core::mem::offset_of!(struct_ext2_filsys, mmp_last_written) - 296usize];
1343    ["Offset of field: struct_ext2_filsys::progress_ops"]
1344        [::core::mem::offset_of!(struct_ext2_filsys, progress_ops) - 304usize];
1345    ["Offset of field: struct_ext2_filsys::csum_seed"]
1346        [::core::mem::offset_of!(struct_ext2_filsys, csum_seed) - 312usize];
1347    ["Offset of field: struct_ext2_filsys::journal_io"]
1348        [::core::mem::offset_of!(struct_ext2_filsys, journal_io) - 320usize];
1349    ["Offset of field: struct_ext2_filsys::journal_name"]
1350        [::core::mem::offset_of!(struct_ext2_filsys, journal_name) - 328usize];
1351    ["Offset of field: struct_ext2_filsys::new_range"]
1352        [::core::mem::offset_of!(struct_ext2_filsys, new_range) - 336usize];
1353    ["Offset of field: struct_ext2_filsys::block_alloc_stats_range"]
1354        [::core::mem::offset_of!(struct_ext2_filsys, block_alloc_stats_range) - 344usize];
1355    ["Offset of field: struct_ext2_filsys::block_sha_map"]
1356        [::core::mem::offset_of!(struct_ext2_filsys, block_sha_map) - 352usize];
1357    ["Offset of field: struct_ext2_filsys::encoding"]
1358        [::core::mem::offset_of!(struct_ext2_filsys, encoding) - 360usize];
1359};
1360impl Default for struct_ext2_filsys {
1361    fn default() -> Self {
1362        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1363        unsafe {
1364            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1365            s.assume_init()
1366        }
1367    }
1368}
1369#[repr(C)]
1370#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1371pub struct blk_alloc_ctx {
1372    pub ino: ext2_ino_t,
1373    pub inode: *mut ext2_inode,
1374    pub lblk: blk64_t,
1375    pub flags: ::core::ffi::c_int,
1376}
1377#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1378const _: () = {
1379    ["Size of blk_alloc_ctx"][::core::mem::size_of::<blk_alloc_ctx>() - 32usize];
1380    ["Alignment of blk_alloc_ctx"][::core::mem::align_of::<blk_alloc_ctx>() - 8usize];
1381    ["Offset of field: blk_alloc_ctx::ino"][::core::mem::offset_of!(blk_alloc_ctx, ino) - 0usize];
1382    ["Offset of field: blk_alloc_ctx::inode"]
1383        [::core::mem::offset_of!(blk_alloc_ctx, inode) - 8usize];
1384    ["Offset of field: blk_alloc_ctx::lblk"]
1385        [::core::mem::offset_of!(blk_alloc_ctx, lblk) - 16usize];
1386    ["Offset of field: blk_alloc_ctx::flags"]
1387        [::core::mem::offset_of!(blk_alloc_ctx, flags) - 24usize];
1388};
1389impl Default for blk_alloc_ctx {
1390    fn default() -> Self {
1391        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1392        unsafe {
1393            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1394            s.assume_init()
1395        }
1396    }
1397}
1398unsafe extern "C" {
1399    pub fn ext2fs_new_inode(
1400        fs: ext2_filsys,
1401        dir: ext2_ino_t,
1402        mode: ::core::ffi::c_int,
1403        map: ext2fs_inode_bitmap,
1404        ret: *mut ext2_ino_t,
1405    ) -> errcode_t;
1406}
1407unsafe extern "C" {
1408    pub fn ext2fs_new_block2(
1409        fs: ext2_filsys,
1410        goal: blk64_t,
1411        map: ext2fs_block_bitmap,
1412        ret: *mut blk64_t,
1413    ) -> errcode_t;
1414}
1415unsafe extern "C" {
1416    pub fn ext2fs_inode_alloc_stats2(
1417        fs: ext2_filsys,
1418        ino: ext2_ino_t,
1419        inuse: ::core::ffi::c_int,
1420        isdir: ::core::ffi::c_int,
1421    );
1422}
1423unsafe extern "C" {
1424    pub fn ext2fs_block_alloc_stats2(fs: ext2_filsys, blk: blk64_t, inuse: ::core::ffi::c_int);
1425}
1426unsafe extern "C" {
1427    pub fn ext2fs_allocate_tables(fs: ext2_filsys) -> errcode_t;
1428}
1429unsafe extern "C" {
1430    pub fn ext2fs_close(fs: ext2_filsys) -> errcode_t;
1431}
1432unsafe extern "C" {
1433    pub fn ext2fs_flush(fs: ext2_filsys) -> errcode_t;
1434}
1435unsafe extern "C" {
1436    pub fn ext2fs_initialize(
1437        name: *const ::core::ffi::c_char,
1438        flags: ::core::ffi::c_int,
1439        param: *mut ext2_super_block,
1440        manager: io_manager,
1441        ret_fs: *mut ext2_filsys,
1442    ) -> errcode_t;
1443}
1444unsafe extern "C" {
1445    pub fn ext2fs_read_inode_full(
1446        fs: ext2_filsys,
1447        ino: ext2_ino_t,
1448        inode: *mut ext2_inode,
1449        bufsize: ::core::ffi::c_int,
1450    ) -> errcode_t;
1451}
1452unsafe extern "C" {
1453    pub fn ext2fs_read_inode(fs: ext2_filsys, ino: ext2_ino_t, inode: *mut ext2_inode)
1454    -> errcode_t;
1455}
1456unsafe extern "C" {
1457    pub fn ext2fs_write_inode_full(
1458        fs: ext2_filsys,
1459        ino: ext2_ino_t,
1460        inode: *mut ext2_inode,
1461        bufsize: ::core::ffi::c_int,
1462    ) -> errcode_t;
1463}
1464unsafe extern "C" {
1465    pub fn ext2fs_write_inode(
1466        fs: ext2_filsys,
1467        ino: ext2_ino_t,
1468        inode: *mut ext2_inode,
1469    ) -> errcode_t;
1470}
1471unsafe extern "C" {
1472    pub fn ext2fs_write_new_inode(
1473        fs: ext2_filsys,
1474        ino: ext2_ino_t,
1475        inode: *mut ext2_inode,
1476    ) -> errcode_t;
1477}
1478unsafe extern "C" {
1479    pub fn ext2fs_mkdir(
1480        fs: ext2_filsys,
1481        parent: ext2_ino_t,
1482        inum: ext2_ino_t,
1483        name: *const ::core::ffi::c_char,
1484    ) -> errcode_t;
1485}
1486unsafe extern "C" {
1487    pub fn ext2fs_add_journal_inode(
1488        fs: ext2_filsys,
1489        num_blocks: blk_t,
1490        flags: ::core::ffi::c_int,
1491    ) -> errcode_t;
1492}
1493unsafe extern "C" {
1494    pub fn ext2fs_open(
1495        name: *const ::core::ffi::c_char,
1496        flags: ::core::ffi::c_int,
1497        superblock: ::core::ffi::c_int,
1498        block_size: ::core::ffi::c_uint,
1499        manager: io_manager,
1500        ret_fs: *mut ext2_filsys,
1501    ) -> errcode_t;
1502}
1503unsafe extern "C" {
1504    pub fn ext2fs_link(
1505        fs: ext2_filsys,
1506        dir: ext2_ino_t,
1507        name: *const ::core::ffi::c_char,
1508        ino: ext2_ino_t,
1509        flags: ::core::ffi::c_int,
1510    ) -> errcode_t;
1511}
1512#[repr(C)]
1513#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1514pub struct stat {
1515    pub st_dev: __dev_t,
1516    pub st_ino: __ino_t,
1517    pub st_nlink: __nlink_t,
1518    pub st_mode: __mode_t,
1519    pub st_uid: __uid_t,
1520    pub st_gid: __gid_t,
1521    pub __pad0: ::core::ffi::c_int,
1522    pub st_rdev: __dev_t,
1523    pub st_size: __off_t,
1524    pub st_blksize: __blksize_t,
1525    pub st_blocks: __blkcnt_t,
1526    pub st_atim: timespec,
1527    pub st_mtim: timespec,
1528    pub st_ctim: timespec,
1529    pub __glibc_reserved: [__syscall_slong_t; 3usize],
1530}
1531#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1532const _: () = {
1533    ["Size of stat"][::core::mem::size_of::<stat>() - 144usize];
1534    ["Alignment of stat"][::core::mem::align_of::<stat>() - 8usize];
1535    ["Offset of field: stat::st_dev"][::core::mem::offset_of!(stat, st_dev) - 0usize];
1536    ["Offset of field: stat::st_ino"][::core::mem::offset_of!(stat, st_ino) - 8usize];
1537    ["Offset of field: stat::st_nlink"][::core::mem::offset_of!(stat, st_nlink) - 16usize];
1538    ["Offset of field: stat::st_mode"][::core::mem::offset_of!(stat, st_mode) - 24usize];
1539    ["Offset of field: stat::st_uid"][::core::mem::offset_of!(stat, st_uid) - 28usize];
1540    ["Offset of field: stat::st_gid"][::core::mem::offset_of!(stat, st_gid) - 32usize];
1541    ["Offset of field: stat::__pad0"][::core::mem::offset_of!(stat, __pad0) - 36usize];
1542    ["Offset of field: stat::st_rdev"][::core::mem::offset_of!(stat, st_rdev) - 40usize];
1543    ["Offset of field: stat::st_size"][::core::mem::offset_of!(stat, st_size) - 48usize];
1544    ["Offset of field: stat::st_blksize"][::core::mem::offset_of!(stat, st_blksize) - 56usize];
1545    ["Offset of field: stat::st_blocks"][::core::mem::offset_of!(stat, st_blocks) - 64usize];
1546    ["Offset of field: stat::st_atim"][::core::mem::offset_of!(stat, st_atim) - 72usize];
1547    ["Offset of field: stat::st_mtim"][::core::mem::offset_of!(stat, st_mtim) - 88usize];
1548    ["Offset of field: stat::st_ctim"][::core::mem::offset_of!(stat, st_ctim) - 104usize];
1549    ["Offset of field: stat::__glibc_reserved"]
1550        [::core::mem::offset_of!(stat, __glibc_reserved) - 120usize];
1551};
1552#[repr(C)]
1553#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1554pub struct hdlink_s {
1555    pub src_dev: dev_t,
1556    pub src_ino: ino_t,
1557    pub dst_ino: ext2_ino_t,
1558}
1559#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1560const _: () = {
1561    ["Size of hdlink_s"][::core::mem::size_of::<hdlink_s>() - 24usize];
1562    ["Alignment of hdlink_s"][::core::mem::align_of::<hdlink_s>() - 8usize];
1563    ["Offset of field: hdlink_s::src_dev"][::core::mem::offset_of!(hdlink_s, src_dev) - 0usize];
1564    ["Offset of field: hdlink_s::src_ino"][::core::mem::offset_of!(hdlink_s, src_ino) - 8usize];
1565    ["Offset of field: hdlink_s::dst_ino"][::core::mem::offset_of!(hdlink_s, dst_ino) - 16usize];
1566};
1567#[repr(C)]
1568#[derive(Debug, Copy, Clone, PartialEq, Eq)]
1569pub struct hdlinks_s {
1570    pub count: ::core::ffi::c_int,
1571    pub size: ::core::ffi::c_int,
1572    pub hdl: *mut hdlink_s,
1573}
1574#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1575const _: () = {
1576    ["Size of hdlinks_s"][::core::mem::size_of::<hdlinks_s>() - 16usize];
1577    ["Alignment of hdlinks_s"][::core::mem::align_of::<hdlinks_s>() - 8usize];
1578    ["Offset of field: hdlinks_s::count"][::core::mem::offset_of!(hdlinks_s, count) - 0usize];
1579    ["Offset of field: hdlinks_s::size"][::core::mem::offset_of!(hdlinks_s, size) - 4usize];
1580    ["Offset of field: hdlinks_s::hdl"][::core::mem::offset_of!(hdlinks_s, hdl) - 8usize];
1581};
1582impl Default for hdlinks_s {
1583    fn default() -> Self {
1584        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
1585        unsafe {
1586            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
1587            s.assume_init()
1588        }
1589    }
1590}
1591#[repr(C)]
1592#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1593pub struct fs_ops_callbacks {
1594    pub create_new_inode: ::core::option::Option<
1595        unsafe extern "C" fn(
1596            fs: ext2_filsys,
1597            target_path: *const ::core::ffi::c_char,
1598            name: *const ::core::ffi::c_char,
1599            parent_ino: ext2_ino_t,
1600            root: ext2_ino_t,
1601            mode: mode_t,
1602        ) -> errcode_t,
1603    >,
1604    pub end_create_new_inode: ::core::option::Option<
1605        unsafe extern "C" fn(
1606            fs: ext2_filsys,
1607            target_path: *const ::core::ffi::c_char,
1608            name: *const ::core::ffi::c_char,
1609            parent_ino: ext2_ino_t,
1610            root: ext2_ino_t,
1611            mode: mode_t,
1612        ) -> errcode_t,
1613    >,
1614}
1615#[allow(clippy::unnecessary_operation, clippy::identity_op)]
1616const _: () = {
1617    ["Size of fs_ops_callbacks"][::core::mem::size_of::<fs_ops_callbacks>() - 16usize];
1618    ["Alignment of fs_ops_callbacks"][::core::mem::align_of::<fs_ops_callbacks>() - 8usize];
1619    ["Offset of field: fs_ops_callbacks::create_new_inode"]
1620        [::core::mem::offset_of!(fs_ops_callbacks, create_new_inode) - 0usize];
1621    ["Offset of field: fs_ops_callbacks::end_create_new_inode"]
1622        [::core::mem::offset_of!(fs_ops_callbacks, end_create_new_inode) - 8usize];
1623};
1624unsafe extern "C" {
1625    pub fn populate_fs(
1626        fs: ext2_filsys,
1627        parent_ino: ext2_ino_t,
1628        source_dir: *const ::core::ffi::c_char,
1629        root: ext2_ino_t,
1630    ) -> errcode_t;
1631}
1632unsafe extern "C" {
1633    pub fn populate_fs2(
1634        fs: ext2_filsys,
1635        parent_ino: ext2_ino_t,
1636        source_dir: *const ::core::ffi::c_char,
1637        root: ext2_ino_t,
1638        fs_callbacks: *mut fs_ops_callbacks,
1639    ) -> errcode_t;
1640}
1641unsafe extern "C" {
1642    pub fn do_symlink_internal(
1643        fs: ext2_filsys,
1644        cwd: ext2_ino_t,
1645        name: *const ::core::ffi::c_char,
1646        target: *mut ::core::ffi::c_char,
1647        root: ext2_ino_t,
1648    ) -> errcode_t;
1649}
1650unsafe extern "C" {
1651    pub fn do_mkdir_internal(
1652        fs: ext2_filsys,
1653        cwd: ext2_ino_t,
1654        name: *const ::core::ffi::c_char,
1655        root: ext2_ino_t,
1656    ) -> errcode_t;
1657}
1658unsafe extern "C" {
1659    pub fn do_write_internal(
1660        fs: ext2_filsys,
1661        cwd: ext2_ino_t,
1662        src: *const ::core::ffi::c_char,
1663        dest: *const ::core::ffi::c_char,
1664        root: ext2_ino_t,
1665    ) -> errcode_t;
1666}
1667unsafe extern "C" {
1668    pub fn add_link(
1669        fs: ext2_filsys,
1670        parent_ino: ext2_ino_t,
1671        ino: ext2_ino_t,
1672        name: *const ::core::ffi::c_char,
1673    ) -> errcode_t;
1674}
1675unsafe extern "C" {
1676    pub fn set_inode_extra(fs: ext2_filsys, ino: ext2_ino_t, st: *const stat) -> errcode_t;
1677}
1678#[repr(C)]
1679#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1680pub struct ext2_image_hdr {
1681    pub _address: u8,
1682}
1683#[repr(C)]
1684#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1685pub struct ext2_inode_cache {
1686    pub _address: u8,
1687}
1688#[repr(C)]
1689#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1690pub struct ext2fs_progress_ops {
1691    pub _address: u8,
1692}
1693#[repr(C)]
1694#[derive(Debug, Default, Copy, Clone, PartialEq, Eq)]
1695pub struct ext2fs_nls_table {
1696    pub _address: u8,
1697}