Skip to main content

zbi/
zbi_format.rs

1// Copyright 2023 The Fuchsia Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Generated by ./bindgen.sh using bindgen 0.72.0
6
7// Allow non-conventional naming for imports from C/C++.
8#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10#![allow(clippy::undocumented_unsafe_blocks)]
11// Allow unused definitions
12#![allow(dead_code, unused_results)]
13
14use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
15
16// Configure linkage for MacOS.
17#[cfg(target_os = "macos")]
18#[link(name = "IOKit", kind = "framework")]
19#[link(name = "CoreFoundation", kind = "framework")]
20extern "C" {}
21
22pub const ZBI_BOARD_NAME_LEN: u64 = 32;
23#[repr(C)]
24#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
25pub struct zbi_platform_id_t {
26    pub vid: u32,
27    pub pid: u32,
28    pub board_name: [::core::ffi::c_char; 32usize],
29}
30#[allow(clippy::unnecessary_operation, clippy::identity_op)]
31const _: () = {
32    ["Size of zbi_platform_id_t"][::core::mem::size_of::<zbi_platform_id_t>() - 40usize];
33    ["Alignment of zbi_platform_id_t"][::core::mem::align_of::<zbi_platform_id_t>() - 4usize];
34    ["Offset of field: zbi_platform_id_t::vid"]
35        [::core::mem::offset_of!(zbi_platform_id_t, vid) - 0usize];
36    ["Offset of field: zbi_platform_id_t::pid"]
37        [::core::mem::offset_of!(zbi_platform_id_t, pid) - 4usize];
38    ["Offset of field: zbi_platform_id_t::board_name"]
39        [::core::mem::offset_of!(zbi_platform_id_t, board_name) - 8usize];
40};
41#[repr(C)]
42#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
43pub struct zbi_board_info_t {
44    pub revision: u32,
45}
46#[allow(clippy::unnecessary_operation, clippy::identity_op)]
47const _: () = {
48    ["Size of zbi_board_info_t"][::core::mem::size_of::<zbi_board_info_t>() - 4usize];
49    ["Alignment of zbi_board_info_t"][::core::mem::align_of::<zbi_board_info_t>() - 4usize];
50    ["Offset of field: zbi_board_info_t::revision"]
51        [::core::mem::offset_of!(zbi_board_info_t, revision) - 0usize];
52};
53pub const ZBI_MAX_SMT: u64 = 4;
54pub type zbi_topology_processor_flags_t = u16;
55pub const ZBI_TOPOLOGY_PROCESSOR_FLAGS_PRIMARY: zbi_topology_processor_flags_t = 1;
56pub const ZBI_TOPOLOGY_PROCESSOR_FLAGS_INTERRUPT: zbi_topology_processor_flags_t = 2;
57#[repr(C)]
58#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
59pub struct zbi_topology_arm64_info_t {
60    pub cluster_1_id: u8,
61    pub cluster_2_id: u8,
62    pub cluster_3_id: u8,
63    pub cpu_id: u8,
64    pub gic_id: u8,
65}
66#[allow(clippy::unnecessary_operation, clippy::identity_op)]
67const _: () = {
68    ["Size of zbi_topology_arm64_info_t"]
69        [::core::mem::size_of::<zbi_topology_arm64_info_t>() - 5usize];
70    ["Alignment of zbi_topology_arm64_info_t"]
71        [::core::mem::align_of::<zbi_topology_arm64_info_t>() - 1usize];
72    ["Offset of field: zbi_topology_arm64_info_t::cluster_1_id"]
73        [::core::mem::offset_of!(zbi_topology_arm64_info_t, cluster_1_id) - 0usize];
74    ["Offset of field: zbi_topology_arm64_info_t::cluster_2_id"]
75        [::core::mem::offset_of!(zbi_topology_arm64_info_t, cluster_2_id) - 1usize];
76    ["Offset of field: zbi_topology_arm64_info_t::cluster_3_id"]
77        [::core::mem::offset_of!(zbi_topology_arm64_info_t, cluster_3_id) - 2usize];
78    ["Offset of field: zbi_topology_arm64_info_t::cpu_id"]
79        [::core::mem::offset_of!(zbi_topology_arm64_info_t, cpu_id) - 3usize];
80    ["Offset of field: zbi_topology_arm64_info_t::gic_id"]
81        [::core::mem::offset_of!(zbi_topology_arm64_info_t, gic_id) - 4usize];
82};
83#[repr(C)]
84#[derive(FromBytes, IntoBytes, Immutable, KnownLayout)]
85pub struct zbi_topology_x64_info_t {
86    pub apic_ids: [u32; 4usize],
87    pub apic_id_count: u32,
88}
89#[allow(clippy::unnecessary_operation, clippy::identity_op)]
90const _: () = {
91    ["Size of zbi_topology_x64_info_t"]
92        [::core::mem::size_of::<zbi_topology_x64_info_t>() - 20usize];
93    ["Alignment of zbi_topology_x64_info_t"]
94        [::core::mem::align_of::<zbi_topology_x64_info_t>() - 4usize];
95    ["Offset of field: zbi_topology_x64_info_t::apic_ids"]
96        [::core::mem::offset_of!(zbi_topology_x64_info_t, apic_ids) - 0usize];
97    ["Offset of field: zbi_topology_x64_info_t::apic_id_count"]
98        [::core::mem::offset_of!(zbi_topology_x64_info_t, apic_id_count) - 16usize];
99};
100impl Default for zbi_topology_x64_info_t {
101    fn default() -> Self {
102        let mut s = ::core::mem::MaybeUninit::<Self>::uninit();
103        unsafe {
104            ::core::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
105            s.assume_init()
106        }
107    }
108}
109impl ::core::fmt::Debug for zbi_topology_x64_info_t {
110    fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
111        write!(f, "zbi_topology_x64_info_t {{  }}")
112    }
113}
114#[repr(C)]
115#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
116pub struct zbi_topology_riscv64_info_t {
117    pub hart_id: u64,
118    pub isa_strtab_index: u32,
119    pub reserved: u32,
120}
121#[allow(clippy::unnecessary_operation, clippy::identity_op)]
122const _: () = {
123    ["Size of zbi_topology_riscv64_info_t"]
124        [::core::mem::size_of::<zbi_topology_riscv64_info_t>() - 16usize];
125    ["Alignment of zbi_topology_riscv64_info_t"]
126        [::core::mem::align_of::<zbi_topology_riscv64_info_t>() - 8usize];
127    ["Offset of field: zbi_topology_riscv64_info_t::hart_id"]
128        [::core::mem::offset_of!(zbi_topology_riscv64_info_t, hart_id) - 0usize];
129    ["Offset of field: zbi_topology_riscv64_info_t::isa_strtab_index"]
130        [::core::mem::offset_of!(zbi_topology_riscv64_info_t, isa_strtab_index) - 8usize];
131    ["Offset of field: zbi_topology_riscv64_info_t::reserved"]
132        [::core::mem::offset_of!(zbi_topology_riscv64_info_t, reserved) - 12usize];
133};
134pub const ZBI_TOPOLOGY_ARCHITECTURE_INFO_ARM64: u64 = 1;
135pub const ZBI_TOPOLOGY_ARCHITECTURE_INFO_X64: u64 = 2;
136pub const ZBI_TOPOLOGY_ARCHITECTURE_INFO_RISCV64: u64 = 3;
137#[repr(C)]
138#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
139pub struct zbi_topology_cluster_t {
140    pub performance_class: u8,
141}
142#[allow(clippy::unnecessary_operation, clippy::identity_op)]
143const _: () = {
144    ["Size of zbi_topology_cluster_t"][::core::mem::size_of::<zbi_topology_cluster_t>() - 1usize];
145    ["Alignment of zbi_topology_cluster_t"]
146        [::core::mem::align_of::<zbi_topology_cluster_t>() - 1usize];
147    ["Offset of field: zbi_topology_cluster_t::performance_class"]
148        [::core::mem::offset_of!(zbi_topology_cluster_t, performance_class) - 0usize];
149};
150#[repr(C)]
151#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
152pub struct zbi_topology_cache_t {
153    pub cache_id: u32,
154}
155#[allow(clippy::unnecessary_operation, clippy::identity_op)]
156const _: () = {
157    ["Size of zbi_topology_cache_t"][::core::mem::size_of::<zbi_topology_cache_t>() - 4usize];
158    ["Alignment of zbi_topology_cache_t"][::core::mem::align_of::<zbi_topology_cache_t>() - 4usize];
159    ["Offset of field: zbi_topology_cache_t::cache_id"]
160        [::core::mem::offset_of!(zbi_topology_cache_t, cache_id) - 0usize];
161};
162#[repr(C)]
163#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
164pub struct zbi_topology_die_t {
165    pub reserved: u64,
166}
167#[allow(clippy::unnecessary_operation, clippy::identity_op)]
168const _: () = {
169    ["Size of zbi_topology_die_t"][::core::mem::size_of::<zbi_topology_die_t>() - 8usize];
170    ["Alignment of zbi_topology_die_t"][::core::mem::align_of::<zbi_topology_die_t>() - 8usize];
171    ["Offset of field: zbi_topology_die_t::reserved"]
172        [::core::mem::offset_of!(zbi_topology_die_t, reserved) - 0usize];
173};
174#[repr(C)]
175#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
176pub struct zbi_topology_socket_t {
177    pub reserved: u64,
178}
179#[allow(clippy::unnecessary_operation, clippy::identity_op)]
180const _: () = {
181    ["Size of zbi_topology_socket_t"][::core::mem::size_of::<zbi_topology_socket_t>() - 8usize];
182    ["Alignment of zbi_topology_socket_t"]
183        [::core::mem::align_of::<zbi_topology_socket_t>() - 8usize];
184    ["Offset of field: zbi_topology_socket_t::reserved"]
185        [::core::mem::offset_of!(zbi_topology_socket_t, reserved) - 0usize];
186};
187#[repr(C)]
188#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
189pub struct zbi_topology_numa_region_t {
190    pub start: u64,
191    pub size: u64,
192}
193#[allow(clippy::unnecessary_operation, clippy::identity_op)]
194const _: () = {
195    ["Size of zbi_topology_numa_region_t"]
196        [::core::mem::size_of::<zbi_topology_numa_region_t>() - 16usize];
197    ["Alignment of zbi_topology_numa_region_t"]
198        [::core::mem::align_of::<zbi_topology_numa_region_t>() - 8usize];
199    ["Offset of field: zbi_topology_numa_region_t::start"]
200        [::core::mem::offset_of!(zbi_topology_numa_region_t, start) - 0usize];
201    ["Offset of field: zbi_topology_numa_region_t::size"]
202        [::core::mem::offset_of!(zbi_topology_numa_region_t, size) - 8usize];
203};
204pub const ZBI_TOPOLOGY_ENTITY_PROCESSOR: u64 = 1;
205pub const ZBI_TOPOLOGY_ENTITY_CLUSTER: u64 = 2;
206pub const ZBI_TOPOLOGY_ENTITY_CACHE: u64 = 3;
207pub const ZBI_TOPOLOGY_ENTITY_DIE: u64 = 4;
208pub const ZBI_TOPOLOGY_ENTITY_SOCKET: u64 = 5;
209pub const ZBI_TOPOLOGY_ENTITY_NUMA_REGION: u64 = 6;
210pub const ZBI_TOPOLOGY_NO_PARENT: u16 = 65535;
211pub type zbi_kernel_driver_t = u32;
212pub const ZBI_KERNEL_DRIVER_ARM_PSCI: zbi_kernel_driver_t = 1229149008;
213pub const ZBI_KERNEL_DRIVER_ARM_PSCI_CPU_SUSPEND: zbi_kernel_driver_t = 1396921168;
214pub const ZBI_KERNEL_DRIVER_ARM_GIC_V2: zbi_kernel_driver_t = 843270471;
215pub const ZBI_KERNEL_DRIVER_ARM_GIC_V3: zbi_kernel_driver_t = 860047687;
216pub const ZBI_KERNEL_DRIVER_ARM_GENERIC_TIMER: zbi_kernel_driver_t = 1296651329;
217pub const ZBI_KERNEL_DRIVER_ARM_GENERIC_TIMER_MMIO: zbi_kernel_driver_t = 1296913473;
218pub const ZBI_KERNEL_DRIVER_PL011_UART: zbi_kernel_driver_t = 1429228624;
219pub const ZBI_KERNEL_DRIVER_AMLOGIC_UART: zbi_kernel_driver_t = 1431063873;
220pub const ZBI_KERNEL_DRIVER_AMLOGIC_HDCP: zbi_kernel_driver_t = 1212960065;
221pub const ZBI_KERNEL_DRIVER_DW8250_UART: zbi_kernel_driver_t = 1146566741;
222pub const ZBI_KERNEL_DRIVER_AMLOGIC_RNG: zbi_kernel_driver_t = 1212960082;
223pub const ZBI_KERNEL_DRIVER_GENERIC32_WATCHDOG: zbi_kernel_driver_t = 842220631;
224pub const ZBI_KERNEL_DRIVER_GENI_UART: zbi_kernel_driver_t = 1229866311;
225pub const ZBI_KERNEL_DRIVER_I8250_PIO_UART: zbi_kernel_driver_t = 808792632;
226pub const ZBI_KERNEL_DRIVER_I8250_MMIO32_UART: zbi_kernel_driver_t = 1295331896;
227pub const ZBI_KERNEL_DRIVER_I8250_MMIO8_UART: zbi_kernel_driver_t = 1110782520;
228pub const ZBI_KERNEL_DRIVER_MOTMOT_POWER: zbi_kernel_driver_t = 1296913488;
229pub const ZBI_KERNEL_DRIVER_AS370_POWER: zbi_kernel_driver_t = 1345337139;
230pub const ZBI_KERNEL_DRIVER_MOONFLOWER_POWER: zbi_kernel_driver_t = 1296975440;
231pub const ZBI_KERNEL_DRIVER_IRIS_POWER: zbi_kernel_driver_t = 1230132048;
232pub const ZBI_KERNEL_DRIVER_IMX_UART: zbi_kernel_driver_t = 1431850313;
233pub const ZBI_KERNEL_DRIVER_RISCV_PLIC: zbi_kernel_driver_t = 1128877136;
234pub const ZBI_KERNEL_DRIVER_RISCV_GENERIC_TIMER: zbi_kernel_driver_t = 1296651346;
235pub const ZBI_KERNEL_DRIVER_PXA_UART: zbi_kernel_driver_t = 1347961173;
236pub const ZBI_KERNEL_DRIVER_EXYNOS_USI_UART: zbi_kernel_driver_t = 1163417941;
237pub const ZBI_KERNEL_DRIVER_QCOM_RNG: zbi_kernel_driver_t = 1196315217;
238pub const ZBI_KERNEL_DRIVER_ARM_SMMU: zbi_kernel_driver_t = 1431129425;
239#[repr(C)]
240#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
241pub struct zbi_dcfg_simple_t {
242    pub mmio_phys: u64,
243    pub irq: u32,
244    pub flags: u32,
245}
246#[allow(clippy::unnecessary_operation, clippy::identity_op)]
247const _: () = {
248    ["Size of zbi_dcfg_simple_t"][::core::mem::size_of::<zbi_dcfg_simple_t>() - 16usize];
249    ["Alignment of zbi_dcfg_simple_t"][::core::mem::align_of::<zbi_dcfg_simple_t>() - 8usize];
250    ["Offset of field: zbi_dcfg_simple_t::mmio_phys"]
251        [::core::mem::offset_of!(zbi_dcfg_simple_t, mmio_phys) - 0usize];
252    ["Offset of field: zbi_dcfg_simple_t::irq"]
253        [::core::mem::offset_of!(zbi_dcfg_simple_t, irq) - 8usize];
254    ["Offset of field: zbi_dcfg_simple_t::flags"]
255        [::core::mem::offset_of!(zbi_dcfg_simple_t, flags) - 12usize];
256};
257pub type zbi_kernel_driver_irq_flags_t = u32;
258pub const ZBI_KERNEL_DRIVER_IRQ_FLAGS_EDGE_TRIGGERED: zbi_kernel_driver_irq_flags_t = 1;
259pub const ZBI_KERNEL_DRIVER_IRQ_FLAGS_LEVEL_TRIGGERED: zbi_kernel_driver_irq_flags_t = 2;
260pub const ZBI_KERNEL_DRIVER_IRQ_FLAGS_POLARITY_LOW: zbi_kernel_driver_irq_flags_t = 4;
261pub const ZBI_KERNEL_DRIVER_IRQ_FLAGS_POLARITY_HIGH: zbi_kernel_driver_irq_flags_t = 8;
262#[repr(C)]
263#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
264pub struct zbi_dcfg_simple_pio_t {
265    pub base: u16,
266    pub reserved: u16,
267    pub irq: u32,
268}
269#[allow(clippy::unnecessary_operation, clippy::identity_op)]
270const _: () = {
271    ["Size of zbi_dcfg_simple_pio_t"][::core::mem::size_of::<zbi_dcfg_simple_pio_t>() - 8usize];
272    ["Alignment of zbi_dcfg_simple_pio_t"]
273        [::core::mem::align_of::<zbi_dcfg_simple_pio_t>() - 4usize];
274    ["Offset of field: zbi_dcfg_simple_pio_t::base"]
275        [::core::mem::offset_of!(zbi_dcfg_simple_pio_t, base) - 0usize];
276    ["Offset of field: zbi_dcfg_simple_pio_t::reserved"]
277        [::core::mem::offset_of!(zbi_dcfg_simple_pio_t, reserved) - 2usize];
278    ["Offset of field: zbi_dcfg_simple_pio_t::irq"]
279        [::core::mem::offset_of!(zbi_dcfg_simple_pio_t, irq) - 4usize];
280};
281#[repr(C)]
282#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
283pub struct zbi_dcfg_arm_psci_driver_t {
284    pub use_hvc: u8,
285    pub reserved: [u8; 7usize],
286    pub shutdown_args: [u64; 3usize],
287    pub reboot_args: [u64; 3usize],
288    pub reboot_bootloader_args: [u64; 3usize],
289    pub reboot_recovery_args: [u64; 3usize],
290}
291#[allow(clippy::unnecessary_operation, clippy::identity_op)]
292const _: () = {
293    ["Size of zbi_dcfg_arm_psci_driver_t"]
294        [::core::mem::size_of::<zbi_dcfg_arm_psci_driver_t>() - 104usize];
295    ["Alignment of zbi_dcfg_arm_psci_driver_t"]
296        [::core::mem::align_of::<zbi_dcfg_arm_psci_driver_t>() - 8usize];
297    ["Offset of field: zbi_dcfg_arm_psci_driver_t::use_hvc"]
298        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, use_hvc) - 0usize];
299    ["Offset of field: zbi_dcfg_arm_psci_driver_t::reserved"]
300        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, reserved) - 1usize];
301    ["Offset of field: zbi_dcfg_arm_psci_driver_t::shutdown_args"]
302        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, shutdown_args) - 8usize];
303    ["Offset of field: zbi_dcfg_arm_psci_driver_t::reboot_args"]
304        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, reboot_args) - 32usize];
305    ["Offset of field: zbi_dcfg_arm_psci_driver_t::reboot_bootloader_args"]
306        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, reboot_bootloader_args) - 56usize];
307    ["Offset of field: zbi_dcfg_arm_psci_driver_t::reboot_recovery_args"]
308        [::core::mem::offset_of!(zbi_dcfg_arm_psci_driver_t, reboot_recovery_args) - 80usize];
309};
310#[repr(C)]
311#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
312pub struct zbi_dcfg_arm_gic_v2_driver_t {
313    pub mmio_phys: u64,
314    pub msi_frame_phys: u64,
315    pub gicd_offset: u64,
316    pub gicc_offset: u64,
317    pub gich_offset: u64,
318    pub gicv_offset: u64,
319    pub ipi_base: u32,
320    pub optional: u8,
321    pub use_msi: u8,
322    pub reserved: u16,
323}
324#[allow(clippy::unnecessary_operation, clippy::identity_op)]
325const _: () = {
326    ["Size of zbi_dcfg_arm_gic_v2_driver_t"]
327        [::core::mem::size_of::<zbi_dcfg_arm_gic_v2_driver_t>() - 56usize];
328    ["Alignment of zbi_dcfg_arm_gic_v2_driver_t"]
329        [::core::mem::align_of::<zbi_dcfg_arm_gic_v2_driver_t>() - 8usize];
330    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::mmio_phys"]
331        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, mmio_phys) - 0usize];
332    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::msi_frame_phys"]
333        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, msi_frame_phys) - 8usize];
334    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::gicd_offset"]
335        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, gicd_offset) - 16usize];
336    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::gicc_offset"]
337        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, gicc_offset) - 24usize];
338    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::gich_offset"]
339        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, gich_offset) - 32usize];
340    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::gicv_offset"]
341        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, gicv_offset) - 40usize];
342    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::ipi_base"]
343        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, ipi_base) - 48usize];
344    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::optional"]
345        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, optional) - 52usize];
346    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::use_msi"]
347        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, use_msi) - 53usize];
348    ["Offset of field: zbi_dcfg_arm_gic_v2_driver_t::reserved"]
349        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v2_driver_t, reserved) - 54usize];
350};
351#[repr(C)]
352#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
353pub struct zbi_dcfg_arm_gic_v3_driver_t {
354    pub mmio_phys: u64,
355    pub gicd_offset: u64,
356    pub gicr_offset: u64,
357    pub gicr_stride: u64,
358    pub reserved0: u64,
359    pub ipi_base: u32,
360    pub optional: u8,
361    pub reserved1: [u8; 3usize],
362}
363#[allow(clippy::unnecessary_operation, clippy::identity_op)]
364const _: () = {
365    ["Size of zbi_dcfg_arm_gic_v3_driver_t"]
366        [::core::mem::size_of::<zbi_dcfg_arm_gic_v3_driver_t>() - 48usize];
367    ["Alignment of zbi_dcfg_arm_gic_v3_driver_t"]
368        [::core::mem::align_of::<zbi_dcfg_arm_gic_v3_driver_t>() - 8usize];
369    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::mmio_phys"]
370        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, mmio_phys) - 0usize];
371    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::gicd_offset"]
372        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, gicd_offset) - 8usize];
373    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::gicr_offset"]
374        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, gicr_offset) - 16usize];
375    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::gicr_stride"]
376        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, gicr_stride) - 24usize];
377    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::reserved0"]
378        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, reserved0) - 32usize];
379    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::ipi_base"]
380        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, ipi_base) - 40usize];
381    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::optional"]
382        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, optional) - 44usize];
383    ["Offset of field: zbi_dcfg_arm_gic_v3_driver_t::reserved1"]
384        [::core::mem::offset_of!(zbi_dcfg_arm_gic_v3_driver_t, reserved1) - 45usize];
385};
386#[repr(C)]
387#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
388pub struct zbi_dcfg_arm_generic_timer_driver_t {
389    pub irq_phys: u32,
390    pub irq_virt: u32,
391    pub irq_sphys: u32,
392    pub freq_override: u32,
393}
394#[allow(clippy::unnecessary_operation, clippy::identity_op)]
395const _: () = {
396    ["Size of zbi_dcfg_arm_generic_timer_driver_t"]
397        [::core::mem::size_of::<zbi_dcfg_arm_generic_timer_driver_t>() - 16usize];
398    ["Alignment of zbi_dcfg_arm_generic_timer_driver_t"]
399        [::core::mem::align_of::<zbi_dcfg_arm_generic_timer_driver_t>() - 4usize];
400    ["Offset of field: zbi_dcfg_arm_generic_timer_driver_t::irq_phys"]
401        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_driver_t, irq_phys) - 0usize];
402    ["Offset of field: zbi_dcfg_arm_generic_timer_driver_t::irq_virt"]
403        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_driver_t, irq_virt) - 4usize];
404    ["Offset of field: zbi_dcfg_arm_generic_timer_driver_t::irq_sphys"]
405        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_driver_t, irq_sphys) - 8usize];
406    ["Offset of field: zbi_dcfg_arm_generic_timer_driver_t::freq_override"]
407        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_driver_t, freq_override) - 12usize];
408};
409#[repr(C)]
410#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
411pub struct zbi_dcfg_arm_generic_timer_mmio_frame_t {
412    pub mmio_phys_el1: u64,
413    pub mmio_phys_el0: u64,
414    pub irq_phys: u32,
415    pub irq_phys_flags: u32,
416    pub irq_virt: u32,
417    pub irq_virt_flags: u32,
418}
419#[allow(clippy::unnecessary_operation, clippy::identity_op)]
420const _: () = {
421    ["Size of zbi_dcfg_arm_generic_timer_mmio_frame_t"]
422        [::core::mem::size_of::<zbi_dcfg_arm_generic_timer_mmio_frame_t>() - 32usize];
423    ["Alignment of zbi_dcfg_arm_generic_timer_mmio_frame_t"]
424        [::core::mem::align_of::<zbi_dcfg_arm_generic_timer_mmio_frame_t>() - 8usize];
425    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::mmio_phys_el1"]
426        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_frame_t, mmio_phys_el1) - 0usize];
427    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::mmio_phys_el0"]
428        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_frame_t, mmio_phys_el0) - 8usize];
429    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::irq_phys"]
430        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_frame_t, irq_phys) - 16usize];
431    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::irq_phys_flags"][::core::mem::offset_of!(
432        zbi_dcfg_arm_generic_timer_mmio_frame_t,
433        irq_phys_flags
434    ) - 20usize];
435    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::irq_virt"]
436        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_frame_t, irq_virt) - 24usize];
437    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_frame_t::irq_virt_flags"][::core::mem::offset_of!(
438        zbi_dcfg_arm_generic_timer_mmio_frame_t,
439        irq_virt_flags
440    ) - 28usize];
441};
442#[repr(C)]
443#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
444pub struct zbi_dcfg_arm_generic_timer_mmio_driver_t {
445    pub mmio_phys: u64,
446    pub frequency: u32,
447    pub active_frames_mask: u8,
448    pub reserved0: [u8; 3usize],
449    pub frames: [zbi_dcfg_arm_generic_timer_mmio_frame_t; 8usize],
450}
451#[allow(clippy::unnecessary_operation, clippy::identity_op)]
452const _: () = {
453    ["Size of zbi_dcfg_arm_generic_timer_mmio_driver_t"]
454        [::core::mem::size_of::<zbi_dcfg_arm_generic_timer_mmio_driver_t>() - 272usize];
455    ["Alignment of zbi_dcfg_arm_generic_timer_mmio_driver_t"]
456        [::core::mem::align_of::<zbi_dcfg_arm_generic_timer_mmio_driver_t>() - 8usize];
457    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_driver_t::mmio_phys"]
458        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_driver_t, mmio_phys) - 0usize];
459    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_driver_t::frequency"]
460        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_driver_t, frequency) - 8usize];
461    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_driver_t::active_frames_mask"][::core::mem::offset_of!(
462        zbi_dcfg_arm_generic_timer_mmio_driver_t,
463        active_frames_mask
464    ) - 12usize];
465    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_driver_t::reserved0"]
466        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_driver_t, reserved0) - 13usize];
467    ["Offset of field: zbi_dcfg_arm_generic_timer_mmio_driver_t::frames"]
468        [::core::mem::offset_of!(zbi_dcfg_arm_generic_timer_mmio_driver_t, frames) - 16usize];
469};
470#[repr(C)]
471#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
472pub struct zbi_dcfg_amlogic_hdcp_driver_t {
473    pub preset_phys: u64,
474    pub hiu_phys: u64,
475    pub hdmitx_phys: u64,
476}
477#[allow(clippy::unnecessary_operation, clippy::identity_op)]
478const _: () = {
479    ["Size of zbi_dcfg_amlogic_hdcp_driver_t"]
480        [::core::mem::size_of::<zbi_dcfg_amlogic_hdcp_driver_t>() - 24usize];
481    ["Alignment of zbi_dcfg_amlogic_hdcp_driver_t"]
482        [::core::mem::align_of::<zbi_dcfg_amlogic_hdcp_driver_t>() - 8usize];
483    ["Offset of field: zbi_dcfg_amlogic_hdcp_driver_t::preset_phys"]
484        [::core::mem::offset_of!(zbi_dcfg_amlogic_hdcp_driver_t, preset_phys) - 0usize];
485    ["Offset of field: zbi_dcfg_amlogic_hdcp_driver_t::hiu_phys"]
486        [::core::mem::offset_of!(zbi_dcfg_amlogic_hdcp_driver_t, hiu_phys) - 8usize];
487    ["Offset of field: zbi_dcfg_amlogic_hdcp_driver_t::hdmitx_phys"]
488        [::core::mem::offset_of!(zbi_dcfg_amlogic_hdcp_driver_t, hdmitx_phys) - 16usize];
489};
490#[repr(C)]
491#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
492pub struct zbi_dcfg_amlogic_rng_driver_t {
493    pub rng_data_phys: u64,
494    pub rng_status_phys: u64,
495    pub rng_refresh_interval_usec: u64,
496}
497#[allow(clippy::unnecessary_operation, clippy::identity_op)]
498const _: () = {
499    ["Size of zbi_dcfg_amlogic_rng_driver_t"]
500        [::core::mem::size_of::<zbi_dcfg_amlogic_rng_driver_t>() - 24usize];
501    ["Alignment of zbi_dcfg_amlogic_rng_driver_t"]
502        [::core::mem::align_of::<zbi_dcfg_amlogic_rng_driver_t>() - 8usize];
503    ["Offset of field: zbi_dcfg_amlogic_rng_driver_t::rng_data_phys"]
504        [::core::mem::offset_of!(zbi_dcfg_amlogic_rng_driver_t, rng_data_phys) - 0usize];
505    ["Offset of field: zbi_dcfg_amlogic_rng_driver_t::rng_status_phys"]
506        [::core::mem::offset_of!(zbi_dcfg_amlogic_rng_driver_t, rng_status_phys) - 8usize];
507    ["Offset of field: zbi_dcfg_amlogic_rng_driver_t::rng_refresh_interval_usec"][::core::mem::offset_of!(
508        zbi_dcfg_amlogic_rng_driver_t,
509        rng_refresh_interval_usec
510    ) - 16usize];
511};
512#[repr(C)]
513#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
514pub struct zbi_dcfg_generic32_watchdog_action_t {
515    pub addr: u64,
516    pub clr_mask: u32,
517    pub set_mask: u32,
518}
519#[allow(clippy::unnecessary_operation, clippy::identity_op)]
520const _: () = {
521    ["Size of zbi_dcfg_generic32_watchdog_action_t"]
522        [::core::mem::size_of::<zbi_dcfg_generic32_watchdog_action_t>() - 16usize];
523    ["Alignment of zbi_dcfg_generic32_watchdog_action_t"]
524        [::core::mem::align_of::<zbi_dcfg_generic32_watchdog_action_t>() - 8usize];
525    ["Offset of field: zbi_dcfg_generic32_watchdog_action_t::addr"]
526        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_action_t, addr) - 0usize];
527    ["Offset of field: zbi_dcfg_generic32_watchdog_action_t::clr_mask"]
528        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_action_t, clr_mask) - 8usize];
529    ["Offset of field: zbi_dcfg_generic32_watchdog_action_t::set_mask"]
530        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_action_t, set_mask) - 12usize];
531};
532pub type zbi_kernel_driver_generic32_watchdog_flags_t = u32;
533pub const ZBI_KERNEL_DRIVER_GENERIC32_WATCHDOG_FLAGS_ENABLED:
534    zbi_kernel_driver_generic32_watchdog_flags_t = 1;
535pub const ZBI_KERNEL_DRIVER_GENERIC32_WATCHDOG_MIN_PERIOD: i64 = 1000000;
536#[repr(C)]
537#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
538pub struct zbi_dcfg_generic32_watchdog_t {
539    pub pet_action: zbi_dcfg_generic32_watchdog_action_t,
540    pub enable_action: zbi_dcfg_generic32_watchdog_action_t,
541    pub disable_action: zbi_dcfg_generic32_watchdog_action_t,
542    pub watchdog_period_nsec: i64,
543    pub flags: zbi_kernel_driver_generic32_watchdog_flags_t,
544    pub reserved: u32,
545}
546#[allow(clippy::unnecessary_operation, clippy::identity_op)]
547const _: () = {
548    ["Size of zbi_dcfg_generic32_watchdog_t"]
549        [::core::mem::size_of::<zbi_dcfg_generic32_watchdog_t>() - 64usize];
550    ["Alignment of zbi_dcfg_generic32_watchdog_t"]
551        [::core::mem::align_of::<zbi_dcfg_generic32_watchdog_t>() - 8usize];
552    ["Offset of field: zbi_dcfg_generic32_watchdog_t::pet_action"]
553        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, pet_action) - 0usize];
554    ["Offset of field: zbi_dcfg_generic32_watchdog_t::enable_action"]
555        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, enable_action) - 16usize];
556    ["Offset of field: zbi_dcfg_generic32_watchdog_t::disable_action"]
557        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, disable_action) - 32usize];
558    ["Offset of field: zbi_dcfg_generic32_watchdog_t::watchdog_period_nsec"]
559        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, watchdog_period_nsec) - 48usize];
560    ["Offset of field: zbi_dcfg_generic32_watchdog_t::flags"]
561        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, flags) - 56usize];
562    ["Offset of field: zbi_dcfg_generic32_watchdog_t::reserved"]
563        [::core::mem::offset_of!(zbi_dcfg_generic32_watchdog_t, reserved) - 60usize];
564};
565#[repr(C)]
566#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
567pub struct zbi_dcfg_riscv_plic_driver_t {
568    pub mmio_phys: u64,
569    pub size_bytes: u32,
570    pub num_irqs: u32,
571}
572#[allow(clippy::unnecessary_operation, clippy::identity_op)]
573const _: () = {
574    ["Size of zbi_dcfg_riscv_plic_driver_t"]
575        [::core::mem::size_of::<zbi_dcfg_riscv_plic_driver_t>() - 16usize];
576    ["Alignment of zbi_dcfg_riscv_plic_driver_t"]
577        [::core::mem::align_of::<zbi_dcfg_riscv_plic_driver_t>() - 8usize];
578    ["Offset of field: zbi_dcfg_riscv_plic_driver_t::mmio_phys"]
579        [::core::mem::offset_of!(zbi_dcfg_riscv_plic_driver_t, mmio_phys) - 0usize];
580    ["Offset of field: zbi_dcfg_riscv_plic_driver_t::size_bytes"]
581        [::core::mem::offset_of!(zbi_dcfg_riscv_plic_driver_t, size_bytes) - 8usize];
582    ["Offset of field: zbi_dcfg_riscv_plic_driver_t::num_irqs"]
583        [::core::mem::offset_of!(zbi_dcfg_riscv_plic_driver_t, num_irqs) - 12usize];
584};
585#[repr(C)]
586#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
587pub struct zbi_dcfg_riscv_generic_timer_driver_t {
588    pub freq_hz: u32,
589    pub reserved: u32,
590}
591#[allow(clippy::unnecessary_operation, clippy::identity_op)]
592const _: () = {
593    ["Size of zbi_dcfg_riscv_generic_timer_driver_t"]
594        [::core::mem::size_of::<zbi_dcfg_riscv_generic_timer_driver_t>() - 8usize];
595    ["Alignment of zbi_dcfg_riscv_generic_timer_driver_t"]
596        [::core::mem::align_of::<zbi_dcfg_riscv_generic_timer_driver_t>() - 4usize];
597    ["Offset of field: zbi_dcfg_riscv_generic_timer_driver_t::freq_hz"]
598        [::core::mem::offset_of!(zbi_dcfg_riscv_generic_timer_driver_t, freq_hz) - 0usize];
599    ["Offset of field: zbi_dcfg_riscv_generic_timer_driver_t::reserved"]
600        [::core::mem::offset_of!(zbi_dcfg_riscv_generic_timer_driver_t, reserved) - 4usize];
601};
602pub type zbi_arm_psci_cpu_suspend_state_flags_t = u32;
603pub const ZBI_ARM_PSCI_CPU_SUSPEND_STATE_FLAGS_LOCAL_TIMER_STOPS:
604    zbi_arm_psci_cpu_suspend_state_flags_t = 1;
605pub const ZBI_ARM_PSCI_CPU_SUSPEND_STATE_FLAGS_TARGETS_POWER_DOMAIN:
606    zbi_arm_psci_cpu_suspend_state_flags_t = 2;
607#[repr(C)]
608#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
609pub struct zbi_dcfg_arm_psci_cpu_suspend_state_t {
610    pub id: u32,
611    pub power_state: u32,
612    pub flags: zbi_arm_psci_cpu_suspend_state_flags_t,
613    pub entry_latency_us: u32,
614    pub exit_latency_us: u32,
615    pub min_residency_us: u32,
616}
617#[allow(clippy::unnecessary_operation, clippy::identity_op)]
618const _: () = {
619    ["Size of zbi_dcfg_arm_psci_cpu_suspend_state_t"]
620        [::core::mem::size_of::<zbi_dcfg_arm_psci_cpu_suspend_state_t>() - 24usize];
621    ["Alignment of zbi_dcfg_arm_psci_cpu_suspend_state_t"]
622        [::core::mem::align_of::<zbi_dcfg_arm_psci_cpu_suspend_state_t>() - 4usize];
623    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::id"]
624        [::core::mem::offset_of!(zbi_dcfg_arm_psci_cpu_suspend_state_t, id) - 0usize];
625    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::power_state"]
626        [::core::mem::offset_of!(zbi_dcfg_arm_psci_cpu_suspend_state_t, power_state) - 4usize];
627    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::flags"]
628        [::core::mem::offset_of!(zbi_dcfg_arm_psci_cpu_suspend_state_t, flags) - 8usize];
629    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::entry_latency_us"][::core::mem::offset_of!(
630        zbi_dcfg_arm_psci_cpu_suspend_state_t,
631        entry_latency_us
632    ) - 12usize];
633    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::exit_latency_us"]
634        [::core::mem::offset_of!(zbi_dcfg_arm_psci_cpu_suspend_state_t, exit_latency_us) - 16usize];
635    ["Offset of field: zbi_dcfg_arm_psci_cpu_suspend_state_t::min_residency_us"][::core::mem::offset_of!(
636        zbi_dcfg_arm_psci_cpu_suspend_state_t,
637        min_residency_us
638    ) - 20usize];
639};
640pub type zbi_qcom_rng_flags_t = u32;
641pub const ZBI_QCOM_RNG_FLAGS_ENABLED: zbi_qcom_rng_flags_t = 1;
642#[repr(C)]
643#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
644pub struct zbi_dcfg_qcom_rng_t {
645    pub mmio_phys: u64,
646    pub flags: zbi_qcom_rng_flags_t,
647    pub reserved: [u8; 4usize],
648}
649#[allow(clippy::unnecessary_operation, clippy::identity_op)]
650const _: () = {
651    ["Size of zbi_dcfg_qcom_rng_t"][::core::mem::size_of::<zbi_dcfg_qcom_rng_t>() - 16usize];
652    ["Alignment of zbi_dcfg_qcom_rng_t"][::core::mem::align_of::<zbi_dcfg_qcom_rng_t>() - 8usize];
653    ["Offset of field: zbi_dcfg_qcom_rng_t::mmio_phys"]
654        [::core::mem::offset_of!(zbi_dcfg_qcom_rng_t, mmio_phys) - 0usize];
655    ["Offset of field: zbi_dcfg_qcom_rng_t::flags"]
656        [::core::mem::offset_of!(zbi_dcfg_qcom_rng_t, flags) - 8usize];
657    ["Offset of field: zbi_dcfg_qcom_rng_t::reserved"]
658        [::core::mem::offset_of!(zbi_dcfg_qcom_rng_t, reserved) - 12usize];
659};
660pub const ZBI_KERNEL_DRIVER_SMMU_MAX_IRQS: u32 = 128;
661pub const ZBI_KERNEL_DRIVER_SMMU_MAX_HANDOFF_SMRS: u32 = 16;
662pub type zbi_arm_smmu_irq_flags_t = u32;
663pub const ZBI_ARM_SMMU_IRQ_FLAGS_RISING_EDGE: zbi_arm_smmu_irq_flags_t = 1;
664pub const ZBI_ARM_SMMU_IRQ_FLAGS_FALLING_EDGE: zbi_arm_smmu_irq_flags_t = 2;
665pub const ZBI_ARM_SMMU_IRQ_FLAGS_ACTIVE_HIGH: zbi_arm_smmu_irq_flags_t = 4;
666pub const ZBI_ARM_SMMU_IRQ_FLAGS_ACTIVE_LOW: zbi_arm_smmu_irq_flags_t = 8;
667#[repr(C)]
668#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
669pub struct zbi_dcfg_arm_smmu_irq_t {
670    pub num: u32,
671    pub flags: zbi_arm_smmu_irq_flags_t,
672}
673#[allow(clippy::unnecessary_operation, clippy::identity_op)]
674const _: () = {
675    ["Size of zbi_dcfg_arm_smmu_irq_t"][::core::mem::size_of::<zbi_dcfg_arm_smmu_irq_t>() - 8usize];
676    ["Alignment of zbi_dcfg_arm_smmu_irq_t"]
677        [::core::mem::align_of::<zbi_dcfg_arm_smmu_irq_t>() - 4usize];
678    ["Offset of field: zbi_dcfg_arm_smmu_irq_t::num"]
679        [::core::mem::offset_of!(zbi_dcfg_arm_smmu_irq_t, num) - 0usize];
680    ["Offset of field: zbi_dcfg_arm_smmu_irq_t::flags"]
681        [::core::mem::offset_of!(zbi_dcfg_arm_smmu_irq_t, flags) - 4usize];
682};
683pub type zbi_pixel_format_t = u32;
684pub const ZBI_PIXEL_FORMAT_NONE: zbi_pixel_format_t = 0;
685pub const ZBI_PIXEL_FORMAT_RGB_565: zbi_pixel_format_t = 131073;
686pub const ZBI_PIXEL_FORMAT_RGB_332: zbi_pixel_format_t = 65538;
687pub const ZBI_PIXEL_FORMAT_RGB_2220: zbi_pixel_format_t = 65539;
688pub const ZBI_PIXEL_FORMAT_ARGB_8888: zbi_pixel_format_t = 262148;
689pub const ZBI_PIXEL_FORMAT_RGB_X888: zbi_pixel_format_t = 262149;
690pub const ZBI_PIXEL_FORMAT_MONO_8: zbi_pixel_format_t = 65543;
691pub const ZBI_PIXEL_FORMAT_NV12: zbi_pixel_format_t = 65544;
692pub const ZBI_PIXEL_FORMAT_I420: zbi_pixel_format_t = 65545;
693pub const ZBI_PIXEL_FORMAT_RGB_888: zbi_pixel_format_t = 196617;
694pub const ZBI_PIXEL_FORMAT_ABGR_8888: zbi_pixel_format_t = 262154;
695pub const ZBI_PIXEL_FORMAT_BGR_888_X: zbi_pixel_format_t = 262155;
696pub const ZBI_PIXEL_FORMAT_ARGB_2_10_10_10: zbi_pixel_format_t = 262156;
697pub const ZBI_PIXEL_FORMAT_ABGR_2_10_10_10: zbi_pixel_format_t = 262157;
698#[repr(C)]
699#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
700pub struct zbi_swfb_t {
701    pub base: u64,
702    pub width: u32,
703    pub height: u32,
704    pub stride: u32,
705    pub format: zbi_pixel_format_t,
706}
707#[allow(clippy::unnecessary_operation, clippy::identity_op)]
708const _: () = {
709    ["Size of zbi_swfb_t"][::core::mem::size_of::<zbi_swfb_t>() - 24usize];
710    ["Alignment of zbi_swfb_t"][::core::mem::align_of::<zbi_swfb_t>() - 8usize];
711    ["Offset of field: zbi_swfb_t::base"][::core::mem::offset_of!(zbi_swfb_t, base) - 0usize];
712    ["Offset of field: zbi_swfb_t::width"][::core::mem::offset_of!(zbi_swfb_t, width) - 8usize];
713    ["Offset of field: zbi_swfb_t::height"][::core::mem::offset_of!(zbi_swfb_t, height) - 12usize];
714    ["Offset of field: zbi_swfb_t::stride"][::core::mem::offset_of!(zbi_swfb_t, stride) - 16usize];
715    ["Offset of field: zbi_swfb_t::format"][::core::mem::offset_of!(zbi_swfb_t, format) - 20usize];
716};
717#[repr(C)]
718#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
719pub struct zbi_kernel_t {
720    pub entry: u64,
721    pub reserve_memory_size: u64,
722}
723#[allow(clippy::unnecessary_operation, clippy::identity_op)]
724const _: () = {
725    ["Size of zbi_kernel_t"][::core::mem::size_of::<zbi_kernel_t>() - 16usize];
726    ["Alignment of zbi_kernel_t"][::core::mem::align_of::<zbi_kernel_t>() - 8usize];
727    ["Offset of field: zbi_kernel_t::entry"][::core::mem::offset_of!(zbi_kernel_t, entry) - 0usize];
728    ["Offset of field: zbi_kernel_t::reserve_memory_size"]
729        [::core::mem::offset_of!(zbi_kernel_t, reserve_memory_size) - 8usize];
730};
731pub type zbi_mem_type_t = u32;
732pub const ZBI_MEM_TYPE_RAM: zbi_mem_type_t = 1;
733pub const ZBI_MEM_TYPE_PERIPHERAL: zbi_mem_type_t = 2;
734pub const ZBI_MEM_TYPE_RESERVED: zbi_mem_type_t = 3;
735#[repr(C)]
736#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
737pub struct zbi_mem_range_t {
738    pub paddr: u64,
739    pub length: u64,
740    pub type_: zbi_mem_type_t,
741    pub reserved: u32,
742}
743#[allow(clippy::unnecessary_operation, clippy::identity_op)]
744const _: () = {
745    ["Size of zbi_mem_range_t"][::core::mem::size_of::<zbi_mem_range_t>() - 24usize];
746    ["Alignment of zbi_mem_range_t"][::core::mem::align_of::<zbi_mem_range_t>() - 8usize];
747    ["Offset of field: zbi_mem_range_t::paddr"]
748        [::core::mem::offset_of!(zbi_mem_range_t, paddr) - 0usize];
749    ["Offset of field: zbi_mem_range_t::length"]
750        [::core::mem::offset_of!(zbi_mem_range_t, length) - 8usize];
751    ["Offset of field: zbi_mem_range_t::type_"]
752        [::core::mem::offset_of!(zbi_mem_range_t, type_) - 16usize];
753    ["Offset of field: zbi_mem_range_t::reserved"]
754        [::core::mem::offset_of!(zbi_mem_range_t, reserved) - 20usize];
755};
756#[repr(C)]
757#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
758pub struct zbi_nvram_t {
759    pub base: u64,
760    pub length: u64,
761}
762#[allow(clippy::unnecessary_operation, clippy::identity_op)]
763const _: () = {
764    ["Size of zbi_nvram_t"][::core::mem::size_of::<zbi_nvram_t>() - 16usize];
765    ["Alignment of zbi_nvram_t"][::core::mem::align_of::<zbi_nvram_t>() - 8usize];
766    ["Offset of field: zbi_nvram_t::base"][::core::mem::offset_of!(zbi_nvram_t, base) - 0usize];
767    ["Offset of field: zbi_nvram_t::length"][::core::mem::offset_of!(zbi_nvram_t, length) - 8usize];
768};
769pub const ZBI_PARTITION_NAME_LEN: u64 = 32;
770pub const ZBI_PARTITION_GUID_LEN: u64 = 16;
771pub type zbi_partition_guid_t = [u8; 16usize];
772#[repr(C)]
773#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
774pub struct zbi_partition_t {
775    pub type_guid: zbi_partition_guid_t,
776    pub uniq_guid: zbi_partition_guid_t,
777    pub first_block: u64,
778    pub last_block: u64,
779    pub flags: u64,
780    pub name: [::core::ffi::c_char; 32usize],
781}
782#[allow(clippy::unnecessary_operation, clippy::identity_op)]
783const _: () = {
784    ["Size of zbi_partition_t"][::core::mem::size_of::<zbi_partition_t>() - 88usize];
785    ["Alignment of zbi_partition_t"][::core::mem::align_of::<zbi_partition_t>() - 8usize];
786    ["Offset of field: zbi_partition_t::type_guid"]
787        [::core::mem::offset_of!(zbi_partition_t, type_guid) - 0usize];
788    ["Offset of field: zbi_partition_t::uniq_guid"]
789        [::core::mem::offset_of!(zbi_partition_t, uniq_guid) - 16usize];
790    ["Offset of field: zbi_partition_t::first_block"]
791        [::core::mem::offset_of!(zbi_partition_t, first_block) - 32usize];
792    ["Offset of field: zbi_partition_t::last_block"]
793        [::core::mem::offset_of!(zbi_partition_t, last_block) - 40usize];
794    ["Offset of field: zbi_partition_t::flags"]
795        [::core::mem::offset_of!(zbi_partition_t, flags) - 48usize];
796    ["Offset of field: zbi_partition_t::name"]
797        [::core::mem::offset_of!(zbi_partition_t, name) - 56usize];
798};
799#[repr(C)]
800#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
801pub struct zbi_partition_map_t {
802    pub block_count: u64,
803    pub block_size: u64,
804    pub partition_count: u32,
805    pub reserved: u32,
806    pub guid: zbi_partition_guid_t,
807}
808#[allow(clippy::unnecessary_operation, clippy::identity_op)]
809const _: () = {
810    ["Size of zbi_partition_map_t"][::core::mem::size_of::<zbi_partition_map_t>() - 40usize];
811    ["Alignment of zbi_partition_map_t"][::core::mem::align_of::<zbi_partition_map_t>() - 8usize];
812    ["Offset of field: zbi_partition_map_t::block_count"]
813        [::core::mem::offset_of!(zbi_partition_map_t, block_count) - 0usize];
814    ["Offset of field: zbi_partition_map_t::block_size"]
815        [::core::mem::offset_of!(zbi_partition_map_t, block_size) - 8usize];
816    ["Offset of field: zbi_partition_map_t::partition_count"]
817        [::core::mem::offset_of!(zbi_partition_map_t, partition_count) - 16usize];
818    ["Offset of field: zbi_partition_map_t::reserved"]
819        [::core::mem::offset_of!(zbi_partition_map_t, reserved) - 20usize];
820    ["Offset of field: zbi_partition_map_t::guid"]
821        [::core::mem::offset_of!(zbi_partition_map_t, guid) - 24usize];
822};
823pub type zbi_hw_reboot_reason_t = u32;
824pub const ZBI_HW_REBOOT_REASON_UNDEFINED: zbi_hw_reboot_reason_t = 0;
825pub const ZBI_HW_REBOOT_REASON_COLD: zbi_hw_reboot_reason_t = 1;
826pub const ZBI_HW_REBOOT_REASON_WARM: zbi_hw_reboot_reason_t = 2;
827pub const ZBI_HW_REBOOT_REASON_BROWNOUT: zbi_hw_reboot_reason_t = 3;
828pub const ZBI_HW_REBOOT_REASON_WATCHDOG: zbi_hw_reboot_reason_t = 4;
829pub const ZBI_HW_REBOOT_REASON_USER_HARD_RESET: zbi_hw_reboot_reason_t = 5;
830pub type zbi_secure_entropy_t = u32;
831pub const ZBI_SECURE_ENTROPY_GENERAL: zbi_secure_entropy_t = 0;
832pub const ZBI_SECURE_ENTROPY_EARLY_BOOT: zbi_secure_entropy_t = 1;
833pub const ZBI_ALIGNMENT: u32 = 8;
834pub const ZBI_TYPE_KERNEL_PREFIX: u32 = 5132875;
835pub const ZBI_TYPE_KERNEL_MASK: u32 = 16777215;
836pub const ZBI_TYPE_DRIVER_METADATA_PREFIX: u32 = 109;
837pub const ZBI_TYPE_DRIVER_METADATA_MASK: u32 = 255;
838pub type zbi_type_t = u32;
839pub const ZBI_TYPE_CONTAINER: zbi_type_t = 1414483778;
840pub const ZBI_TYPE_KERNEL_X64: zbi_type_t = 1280201291;
841pub const ZBI_TYPE_KERNEL_ARM64: zbi_type_t = 944656971;
842pub const ZBI_TYPE_KERNEL_RISCV64: zbi_type_t = 1447973451;
843pub const ZBI_TYPE_DISCARD: zbi_type_t = 1346980691;
844pub const ZBI_TYPE_STORAGE_RAMDISK: zbi_type_t = 1263748178;
845pub const ZBI_TYPE_STORAGE_BOOTFS: zbi_type_t = 1112753730;
846pub const ZBI_TYPE_STORAGE_KERNEL: zbi_type_t = 1381258059;
847pub const ZBI_TYPE_STORAGE_BOOTFS_FACTORY: zbi_type_t = 1179862594;
848pub const ZBI_TYPE_CMDLINE: zbi_type_t = 1279544643;
849pub const ZBI_TYPE_CRASHLOG: zbi_type_t = 1297043266;
850pub const ZBI_TYPE_NVRAM: zbi_type_t = 1280071246;
851pub const ZBI_TYPE_PLATFORM_ID: zbi_type_t = 1145654352;
852pub const ZBI_TYPE_DRV_BOARD_INFO: zbi_type_t = 1230193261;
853pub const ZBI_TYPE_CPU_TOPOLOGY: zbi_type_t = 1129338163;
854pub const ZBI_TYPE_MEM_CONFIG: zbi_type_t = 1129137485;
855pub const ZBI_TYPE_KERNEL_DRIVER: zbi_type_t = 1448232011;
856pub const ZBI_TYPE_ACPI_RSDP: zbi_type_t = 1346655058;
857pub const ZBI_TYPE_SMBIOS: zbi_type_t = 1229081939;
858pub const ZBI_TYPE_EFI_SYSTEM_TABLE: zbi_type_t = 1397311045;
859pub const ZBI_TYPE_EFI_MEMORY_ATTRIBUTES_TABLE: zbi_type_t = 1413565765;
860pub const ZBI_TYPE_FRAMEBUFFER: zbi_type_t = 1111906131;
861pub const ZBI_TYPE_IMAGE_ARGS: zbi_type_t = 1196573001;
862pub const ZBI_TYPE_BOOT_VERSION: zbi_type_t = 1397904962;
863pub const ZBI_TYPE_DRV_MAC_ADDRESS: zbi_type_t = 1128353133;
864pub const ZBI_TYPE_DRV_PARTITION_MAP: zbi_type_t = 1414680685;
865pub const ZBI_TYPE_DRV_BOARD_PRIVATE: zbi_type_t = 1380926061;
866pub const ZBI_TYPE_HW_REBOOT_REASON: zbi_type_t = 1112692552;
867pub const ZBI_TYPE_SERIAL_NUMBER: zbi_type_t = 1313624659;
868pub const ZBI_TYPE_BOOTLOADER_FILE: zbi_type_t = 1279677506;
869pub const ZBI_TYPE_DEVICETREE: zbi_type_t = 3490578157;
870pub const ZBI_TYPE_SECURE_ENTROPY: zbi_type_t = 1145979218;
871pub const ZBI_TYPE_DEBUGDATA: zbi_type_t = 1145520708;
872pub const ZBI_TYPE_RISCV64_ISA_STRTAB: zbi_type_t = 1095977302;
873pub const ZBI_TYPE_LINUX_BOOTCONFIG: zbi_type_t = 1195787074;
874pub const ZBI_CONTAINER_MAGIC: u32 = 2257385446;
875pub const ZBI_ITEM_MAGIC: u32 = 3044546345;
876pub type zbi_flags_t = u32;
877pub const ZBI_FLAGS_VERSION: zbi_flags_t = 65536;
878pub const ZBI_FLAGS_CRC32: zbi_flags_t = 131072;
879pub const ZBI_ITEM_NO_CRC32: u32 = 1250420950;
880#[repr(C)]
881#[derive(Debug, Default, Copy, Clone, PartialEq, FromBytes, IntoBytes, Immutable, KnownLayout)]
882pub struct zbi_header_t {
883    pub type_: zbi_type_t,
884    pub length: u32,
885    pub extra: u32,
886    pub flags: zbi_flags_t,
887    pub reserved0: u32,
888    pub reserved1: u32,
889    pub magic: u32,
890    pub crc32: u32,
891}
892#[allow(clippy::unnecessary_operation, clippy::identity_op)]
893const _: () = {
894    ["Size of zbi_header_t"][::core::mem::size_of::<zbi_header_t>() - 32usize];
895    ["Alignment of zbi_header_t"][::core::mem::align_of::<zbi_header_t>() - 4usize];
896    ["Offset of field: zbi_header_t::type_"][::core::mem::offset_of!(zbi_header_t, type_) - 0usize];
897    ["Offset of field: zbi_header_t::length"]
898        [::core::mem::offset_of!(zbi_header_t, length) - 4usize];
899    ["Offset of field: zbi_header_t::extra"][::core::mem::offset_of!(zbi_header_t, extra) - 8usize];
900    ["Offset of field: zbi_header_t::flags"]
901        [::core::mem::offset_of!(zbi_header_t, flags) - 12usize];
902    ["Offset of field: zbi_header_t::reserved0"]
903        [::core::mem::offset_of!(zbi_header_t, reserved0) - 16usize];
904    ["Offset of field: zbi_header_t::reserved1"]
905        [::core::mem::offset_of!(zbi_header_t, reserved1) - 20usize];
906    ["Offset of field: zbi_header_t::magic"]
907        [::core::mem::offset_of!(zbi_header_t, magic) - 24usize];
908    ["Offset of field: zbi_header_t::crc32"]
909        [::core::mem::offset_of!(zbi_header_t, crc32) - 28usize];
910};
911pub const ZBI_FLAGS_STORAGE_COMPRESSED: zbi_flags_t = 1;