1#![allow(non_camel_case_types)]
9#![allow(non_snake_case)]
10#![allow(clippy::undocumented_unsafe_blocks)]
11#![allow(dead_code, unused_results)]
13
14use zerocopy::{FromBytes, Immutable, IntoBytes, KnownLayout};
15
16#[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;