xref: /aosp_15_r20/external/crosvm/x86_64/src/bootparam.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2017 The ChromiumOS Authors
2*bb4ee6a4SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*bb4ee6a4SAndroid Build Coastguard Worker // found in the LICENSE file.
4*bb4ee6a4SAndroid Build Coastguard Worker 
5*bb4ee6a4SAndroid Build Coastguard Worker /*
6*bb4ee6a4SAndroid Build Coastguard Worker  * automatically generated by bindgen
7*bb4ee6a4SAndroid Build Coastguard Worker  * From chromeos-linux v4.19
8*bb4ee6a4SAndroid Build Coastguard Worker  * $ bindgen \
9*bb4ee6a4SAndroid Build Coastguard Worker  *       --no-layout-tests --with-derive-default --no-doc-comments \
10*bb4ee6a4SAndroid Build Coastguard Worker  *       --allowlist-type boot_params --allowlist-type setup_data \
11*bb4ee6a4SAndroid Build Coastguard Worker  *       arch/x86/include/uapi/asm/bootparam.h
12*bb4ee6a4SAndroid Build Coastguard Worker  */
13*bb4ee6a4SAndroid Build Coastguard Worker 
14*bb4ee6a4SAndroid Build Coastguard Worker // Editted to derive zerocopy traits, should migrate to bindgen when
15*bb4ee6a4SAndroid Build Coastguard Worker // its command line support adding custom derives. Currently bindgen
16*bb4ee6a4SAndroid Build Coastguard Worker // only support deriving custom traits with build.rs, and we don't want
17*bb4ee6a4SAndroid Build Coastguard Worker // to run build.rs bindgen on kernel.
18*bb4ee6a4SAndroid Build Coastguard Worker 
19*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::AsBytes;
20*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromBytes;
21*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromZeroes;
22*bb4ee6a4SAndroid Build Coastguard Worker 
23*bb4ee6a4SAndroid Build Coastguard Worker /// Set if kernel image has a 64-bit entry point at 0x200.
24*bb4ee6a4SAndroid Build Coastguard Worker pub const XLF_KERNEL_64: u16 = 1 << 0;
25*bb4ee6a4SAndroid Build Coastguard Worker /// Set if kernel/boot_params/cmdline/ramdisk can be above 4G.
26*bb4ee6a4SAndroid Build Coastguard Worker pub const XLF_CAN_BE_LOADED_ABOVE_4G: u16 = 1 << 1;
27*bb4ee6a4SAndroid Build Coastguard Worker 
28*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
29*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Default)]
30*bb4ee6a4SAndroid Build Coastguard Worker pub struct __IncompleteArrayField<T>(::std::marker::PhantomData<T>, [T; 0]);
31*bb4ee6a4SAndroid Build Coastguard Worker impl<T> __IncompleteArrayField<T> {
32*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
new() -> Self33*bb4ee6a4SAndroid Build Coastguard Worker     pub fn new() -> Self {
34*bb4ee6a4SAndroid Build Coastguard Worker         __IncompleteArrayField(::std::marker::PhantomData, [])
35*bb4ee6a4SAndroid Build Coastguard Worker     }
36*bb4ee6a4SAndroid Build Coastguard Worker     /// # Safety
37*bb4ee6a4SAndroid Build Coastguard Worker     ///
38*bb4ee6a4SAndroid Build Coastguard Worker     /// Caller must ensure that Self`s size, alignment and lifetime are
39*bb4ee6a4SAndroid Build Coastguard Worker     /// compatible with returned values requirements.
40*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
as_ptr(&self) -> *const T41*bb4ee6a4SAndroid Build Coastguard Worker     pub unsafe fn as_ptr(&self) -> *const T {
42*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::transmute(self)
43*bb4ee6a4SAndroid Build Coastguard Worker     }
44*bb4ee6a4SAndroid Build Coastguard Worker     /// # Safety
45*bb4ee6a4SAndroid Build Coastguard Worker     ///
46*bb4ee6a4SAndroid Build Coastguard Worker     /// Caller must ensure that Self`s size, alignment and lifetime are
47*bb4ee6a4SAndroid Build Coastguard Worker     /// compatible with returned values requirements.
48*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
as_mut_ptr(&mut self) -> *mut T49*bb4ee6a4SAndroid Build Coastguard Worker     pub unsafe fn as_mut_ptr(&mut self) -> *mut T {
50*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::transmute(self)
51*bb4ee6a4SAndroid Build Coastguard Worker     }
52*bb4ee6a4SAndroid Build Coastguard Worker     /// # Safety
53*bb4ee6a4SAndroid Build Coastguard Worker     ///
54*bb4ee6a4SAndroid Build Coastguard Worker     /// Caller must ensure that Self`s size, alignment and lifetime are
55*bb4ee6a4SAndroid Build Coastguard Worker     /// compatible with returned values requirements.
56*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
as_slice(&self, len: usize) -> &[T]57*bb4ee6a4SAndroid Build Coastguard Worker     pub unsafe fn as_slice(&self, len: usize) -> &[T] {
58*bb4ee6a4SAndroid Build Coastguard Worker         ::std::slice::from_raw_parts(self.as_ptr(), len)
59*bb4ee6a4SAndroid Build Coastguard Worker     }
60*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
61*bb4ee6a4SAndroid Build Coastguard Worker     /// # Safety
62*bb4ee6a4SAndroid Build Coastguard Worker     ///
63*bb4ee6a4SAndroid Build Coastguard Worker     /// Caller must ensure that Self`s size, alignment and lifetime are
64*bb4ee6a4SAndroid Build Coastguard Worker     /// compatible with returned values requirements.
as_mut_slice(&mut self, len: usize) -> &mut [T]65*bb4ee6a4SAndroid Build Coastguard Worker     pub unsafe fn as_mut_slice(&mut self, len: usize) -> &mut [T] {
66*bb4ee6a4SAndroid Build Coastguard Worker         ::std::slice::from_raw_parts_mut(self.as_mut_ptr(), len)
67*bb4ee6a4SAndroid Build Coastguard Worker     }
68*bb4ee6a4SAndroid Build Coastguard Worker }
69*bb4ee6a4SAndroid Build Coastguard Worker impl<T> ::std::fmt::Debug for __IncompleteArrayField<T> {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result70*bb4ee6a4SAndroid Build Coastguard Worker     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
71*bb4ee6a4SAndroid Build Coastguard Worker         fmt.write_str("__IncompleteArrayField")
72*bb4ee6a4SAndroid Build Coastguard Worker     }
73*bb4ee6a4SAndroid Build Coastguard Worker }
74*bb4ee6a4SAndroid Build Coastguard Worker impl<T> ::std::clone::Clone for __IncompleteArrayField<T> {
75*bb4ee6a4SAndroid Build Coastguard Worker     #[inline]
clone(&self) -> Self76*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
77*bb4ee6a4SAndroid Build Coastguard Worker         Self::new()
78*bb4ee6a4SAndroid Build Coastguard Worker     }
79*bb4ee6a4SAndroid Build Coastguard Worker }
80*bb4ee6a4SAndroid Build Coastguard Worker pub type __u8 = ::std::os::raw::c_uchar;
81*bb4ee6a4SAndroid Build Coastguard Worker pub type __u16 = ::std::os::raw::c_ushort;
82*bb4ee6a4SAndroid Build Coastguard Worker pub type __u32 = ::std::os::raw::c_uint;
83*bb4ee6a4SAndroid Build Coastguard Worker pub type __u64 = ::std::os::raw::c_ulonglong;
84*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
85*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
86*bb4ee6a4SAndroid Build Coastguard Worker pub struct screen_info {
87*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_x: __u8,
88*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_y: __u8,
89*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_mem_k: __u16,
90*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_page: __u16,
91*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_mode: __u8,
92*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_cols: __u8,
93*bb4ee6a4SAndroid Build Coastguard Worker     pub flags: __u8,
94*bb4ee6a4SAndroid Build Coastguard Worker     pub unused2: __u8,
95*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_ega_bx: __u16,
96*bb4ee6a4SAndroid Build Coastguard Worker     pub unused3: __u16,
97*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_lines: __u8,
98*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_isVGA: __u8,
99*bb4ee6a4SAndroid Build Coastguard Worker     pub orig_video_points: __u16,
100*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_width: __u16,
101*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_height: __u16,
102*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_depth: __u16,
103*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_base: __u32,
104*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_size: __u32,
105*bb4ee6a4SAndroid Build Coastguard Worker     pub cl_magic: __u16,
106*bb4ee6a4SAndroid Build Coastguard Worker     pub cl_offset: __u16,
107*bb4ee6a4SAndroid Build Coastguard Worker     pub lfb_linelength: __u16,
108*bb4ee6a4SAndroid Build Coastguard Worker     pub red_size: __u8,
109*bb4ee6a4SAndroid Build Coastguard Worker     pub red_pos: __u8,
110*bb4ee6a4SAndroid Build Coastguard Worker     pub green_size: __u8,
111*bb4ee6a4SAndroid Build Coastguard Worker     pub green_pos: __u8,
112*bb4ee6a4SAndroid Build Coastguard Worker     pub blue_size: __u8,
113*bb4ee6a4SAndroid Build Coastguard Worker     pub blue_pos: __u8,
114*bb4ee6a4SAndroid Build Coastguard Worker     pub rsvd_size: __u8,
115*bb4ee6a4SAndroid Build Coastguard Worker     pub rsvd_pos: __u8,
116*bb4ee6a4SAndroid Build Coastguard Worker     pub vesapm_seg: __u16,
117*bb4ee6a4SAndroid Build Coastguard Worker     pub vesapm_off: __u16,
118*bb4ee6a4SAndroid Build Coastguard Worker     pub pages: __u16,
119*bb4ee6a4SAndroid Build Coastguard Worker     pub vesa_attributes: __u16,
120*bb4ee6a4SAndroid Build Coastguard Worker     pub capabilities: __u32,
121*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_lfb_base: __u32,
122*bb4ee6a4SAndroid Build Coastguard Worker     pub _reserved: [__u8; 2usize],
123*bb4ee6a4SAndroid Build Coastguard Worker }
124*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
125*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
126*bb4ee6a4SAndroid Build Coastguard Worker pub struct apm_bios_info {
127*bb4ee6a4SAndroid Build Coastguard Worker     pub version: __u16,
128*bb4ee6a4SAndroid Build Coastguard Worker     pub cseg: __u16,
129*bb4ee6a4SAndroid Build Coastguard Worker     pub offset: __u32,
130*bb4ee6a4SAndroid Build Coastguard Worker     pub cseg_16: __u16,
131*bb4ee6a4SAndroid Build Coastguard Worker     pub dseg: __u16,
132*bb4ee6a4SAndroid Build Coastguard Worker     pub flags: __u16,
133*bb4ee6a4SAndroid Build Coastguard Worker     pub cseg_len: __u16,
134*bb4ee6a4SAndroid Build Coastguard Worker     pub cseg_16_len: __u16,
135*bb4ee6a4SAndroid Build Coastguard Worker     pub dseg_len: __u16,
136*bb4ee6a4SAndroid Build Coastguard Worker }
137*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
138*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, FromZeroes, FromBytes, AsBytes)]
139*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params {
140*bb4ee6a4SAndroid Build Coastguard Worker     pub length: __u16,
141*bb4ee6a4SAndroid Build Coastguard Worker     pub info_flags: __u16,
142*bb4ee6a4SAndroid Build Coastguard Worker     pub num_default_cylinders: __u32,
143*bb4ee6a4SAndroid Build Coastguard Worker     pub num_default_heads: __u32,
144*bb4ee6a4SAndroid Build Coastguard Worker     pub sectors_per_track: __u32,
145*bb4ee6a4SAndroid Build Coastguard Worker     pub number_of_sectors: __u64,
146*bb4ee6a4SAndroid Build Coastguard Worker     pub bytes_per_sector: __u16,
147*bb4ee6a4SAndroid Build Coastguard Worker     pub dpte_ptr: __u32,
148*bb4ee6a4SAndroid Build Coastguard Worker     pub key: __u16,
149*bb4ee6a4SAndroid Build Coastguard Worker     pub device_path_info_length: __u8,
150*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u8,
151*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved3: __u16,
152*bb4ee6a4SAndroid Build Coastguard Worker     pub host_bus_type: [__u8; 4usize],
153*bb4ee6a4SAndroid Build Coastguard Worker     pub interface_type: [__u8; 8usize],
154*bb4ee6a4SAndroid Build Coastguard Worker     pub interface_path: edd_device_params__bindgen_ty_1,
155*bb4ee6a4SAndroid Build Coastguard Worker     pub device_path: edd_device_params__bindgen_ty_2,
156*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved4: __u8,
157*bb4ee6a4SAndroid Build Coastguard Worker     pub checksum: __u8,
158*bb4ee6a4SAndroid Build Coastguard Worker }
159*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
160*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, FromZeroes, FromBytes, AsBytes)]
161*bb4ee6a4SAndroid Build Coastguard Worker pub union edd_device_params__bindgen_ty_1 {
162*bb4ee6a4SAndroid Build Coastguard Worker     pub isa: edd_device_params__bindgen_ty_1__bindgen_ty_1,
163*bb4ee6a4SAndroid Build Coastguard Worker     pub pci: edd_device_params__bindgen_ty_1__bindgen_ty_2,
164*bb4ee6a4SAndroid Build Coastguard Worker     pub ibnd: edd_device_params__bindgen_ty_1__bindgen_ty_3,
165*bb4ee6a4SAndroid Build Coastguard Worker     pub xprs: edd_device_params__bindgen_ty_1__bindgen_ty_4,
166*bb4ee6a4SAndroid Build Coastguard Worker     pub htpt: edd_device_params__bindgen_ty_1__bindgen_ty_5,
167*bb4ee6a4SAndroid Build Coastguard Worker     pub unknown: edd_device_params__bindgen_ty_1__bindgen_ty_6,
168*bb4ee6a4SAndroid Build Coastguard Worker     _bindgen_union_align: [u8; 8usize],
169*bb4ee6a4SAndroid Build Coastguard Worker }
170*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
171*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
172*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_1 {
173*bb4ee6a4SAndroid Build Coastguard Worker     pub base_address: __u16,
174*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u16,
175*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u32,
176*bb4ee6a4SAndroid Build Coastguard Worker }
177*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
178*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
179*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_2 {
180*bb4ee6a4SAndroid Build Coastguard Worker     pub bus: __u8,
181*bb4ee6a4SAndroid Build Coastguard Worker     pub slot: __u8,
182*bb4ee6a4SAndroid Build Coastguard Worker     pub function: __u8,
183*bb4ee6a4SAndroid Build Coastguard Worker     pub channel: __u8,
184*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u32,
185*bb4ee6a4SAndroid Build Coastguard Worker }
186*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
187*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
188*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_3 {
189*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
190*bb4ee6a4SAndroid Build Coastguard Worker }
191*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
192*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
193*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_4 {
194*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
195*bb4ee6a4SAndroid Build Coastguard Worker }
196*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
197*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
198*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_5 {
199*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
200*bb4ee6a4SAndroid Build Coastguard Worker }
201*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
202*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
203*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_1__bindgen_ty_6 {
204*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
205*bb4ee6a4SAndroid Build Coastguard Worker }
206*bb4ee6a4SAndroid Build Coastguard Worker impl Default for edd_device_params__bindgen_ty_1 {
default() -> Self207*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
208*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
209*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
210*bb4ee6a4SAndroid Build Coastguard Worker     }
211*bb4ee6a4SAndroid Build Coastguard Worker }
212*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
213*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, FromZeroes, FromBytes, AsBytes)]
214*bb4ee6a4SAndroid Build Coastguard Worker pub union edd_device_params__bindgen_ty_2 {
215*bb4ee6a4SAndroid Build Coastguard Worker     pub ata: edd_device_params__bindgen_ty_2__bindgen_ty_1,
216*bb4ee6a4SAndroid Build Coastguard Worker     pub atapi: edd_device_params__bindgen_ty_2__bindgen_ty_2,
217*bb4ee6a4SAndroid Build Coastguard Worker     pub scsi: edd_device_params__bindgen_ty_2__bindgen_ty_3,
218*bb4ee6a4SAndroid Build Coastguard Worker     pub usb: edd_device_params__bindgen_ty_2__bindgen_ty_4,
219*bb4ee6a4SAndroid Build Coastguard Worker     pub i1394: edd_device_params__bindgen_ty_2__bindgen_ty_5,
220*bb4ee6a4SAndroid Build Coastguard Worker     pub fibre: edd_device_params__bindgen_ty_2__bindgen_ty_6,
221*bb4ee6a4SAndroid Build Coastguard Worker     pub i2o: edd_device_params__bindgen_ty_2__bindgen_ty_7,
222*bb4ee6a4SAndroid Build Coastguard Worker     pub raid: edd_device_params__bindgen_ty_2__bindgen_ty_8,
223*bb4ee6a4SAndroid Build Coastguard Worker     pub sata: edd_device_params__bindgen_ty_2__bindgen_ty_9,
224*bb4ee6a4SAndroid Build Coastguard Worker     pub unknown: edd_device_params__bindgen_ty_2__bindgen_ty_10,
225*bb4ee6a4SAndroid Build Coastguard Worker     _bindgen_union_align: [u8; 16usize],
226*bb4ee6a4SAndroid Build Coastguard Worker }
227*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
228*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
229*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_1 {
230*bb4ee6a4SAndroid Build Coastguard Worker     pub device: __u8,
231*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u8,
232*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u16,
233*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved3: __u32,
234*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved4: __u64,
235*bb4ee6a4SAndroid Build Coastguard Worker }
236*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
237*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
238*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_2 {
239*bb4ee6a4SAndroid Build Coastguard Worker     pub device: __u8,
240*bb4ee6a4SAndroid Build Coastguard Worker     pub lun: __u8,
241*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u8,
242*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u8,
243*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved3: __u32,
244*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved4: __u64,
245*bb4ee6a4SAndroid Build Coastguard Worker }
246*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
247*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
248*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_3 {
249*bb4ee6a4SAndroid Build Coastguard Worker     pub id: __u16,
250*bb4ee6a4SAndroid Build Coastguard Worker     pub lun: __u64,
251*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u16,
252*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u32,
253*bb4ee6a4SAndroid Build Coastguard Worker }
254*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
255*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
256*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_4 {
257*bb4ee6a4SAndroid Build Coastguard Worker     pub serial_number: __u64,
258*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
259*bb4ee6a4SAndroid Build Coastguard Worker }
260*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
261*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
262*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_5 {
263*bb4ee6a4SAndroid Build Coastguard Worker     pub eui: __u64,
264*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
265*bb4ee6a4SAndroid Build Coastguard Worker }
266*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
267*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
268*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_6 {
269*bb4ee6a4SAndroid Build Coastguard Worker     pub wwid: __u64,
270*bb4ee6a4SAndroid Build Coastguard Worker     pub lun: __u64,
271*bb4ee6a4SAndroid Build Coastguard Worker }
272*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
273*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
274*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_7 {
275*bb4ee6a4SAndroid Build Coastguard Worker     pub identity_tag: __u64,
276*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: __u64,
277*bb4ee6a4SAndroid Build Coastguard Worker }
278*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
279*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
280*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_8 {
281*bb4ee6a4SAndroid Build Coastguard Worker     pub array_number: __u32,
282*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u32,
283*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u64,
284*bb4ee6a4SAndroid Build Coastguard Worker }
285*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
286*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
287*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_9 {
288*bb4ee6a4SAndroid Build Coastguard Worker     pub device: __u8,
289*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u8,
290*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u16,
291*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved3: __u32,
292*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved4: __u64,
293*bb4ee6a4SAndroid Build Coastguard Worker }
294*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
295*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
296*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_device_params__bindgen_ty_2__bindgen_ty_10 {
297*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved1: __u64,
298*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved2: __u64,
299*bb4ee6a4SAndroid Build Coastguard Worker }
300*bb4ee6a4SAndroid Build Coastguard Worker impl Default for edd_device_params__bindgen_ty_2 {
default() -> Self301*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
302*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
303*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
304*bb4ee6a4SAndroid Build Coastguard Worker     }
305*bb4ee6a4SAndroid Build Coastguard Worker }
306*bb4ee6a4SAndroid Build Coastguard Worker impl Default for edd_device_params {
default() -> Self307*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
308*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
309*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
310*bb4ee6a4SAndroid Build Coastguard Worker     }
311*bb4ee6a4SAndroid Build Coastguard Worker }
312*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
313*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, FromZeroes, FromBytes, AsBytes)]
314*bb4ee6a4SAndroid Build Coastguard Worker pub struct edd_info {
315*bb4ee6a4SAndroid Build Coastguard Worker     pub device: __u8,
316*bb4ee6a4SAndroid Build Coastguard Worker     pub version: __u8,
317*bb4ee6a4SAndroid Build Coastguard Worker     pub interface_support: __u16,
318*bb4ee6a4SAndroid Build Coastguard Worker     pub legacy_max_cylinder: __u16,
319*bb4ee6a4SAndroid Build Coastguard Worker     pub legacy_max_head: __u8,
320*bb4ee6a4SAndroid Build Coastguard Worker     pub legacy_sectors_per_track: __u8,
321*bb4ee6a4SAndroid Build Coastguard Worker     pub params: edd_device_params,
322*bb4ee6a4SAndroid Build Coastguard Worker }
323*bb4ee6a4SAndroid Build Coastguard Worker impl Default for edd_info {
default() -> Self324*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
325*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
326*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
327*bb4ee6a4SAndroid Build Coastguard Worker     }
328*bb4ee6a4SAndroid Build Coastguard Worker }
329*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
330*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
331*bb4ee6a4SAndroid Build Coastguard Worker pub struct ist_info {
332*bb4ee6a4SAndroid Build Coastguard Worker     pub signature: __u32,
333*bb4ee6a4SAndroid Build Coastguard Worker     pub command: __u32,
334*bb4ee6a4SAndroid Build Coastguard Worker     pub event: __u32,
335*bb4ee6a4SAndroid Build Coastguard Worker     pub perf_level: __u32,
336*bb4ee6a4SAndroid Build Coastguard Worker }
337*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
338*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, AsBytes, FromZeroes, FromBytes)]
339*bb4ee6a4SAndroid Build Coastguard Worker pub struct edid_info {
340*bb4ee6a4SAndroid Build Coastguard Worker     pub dummy: [::std::os::raw::c_uchar; 128usize],
341*bb4ee6a4SAndroid Build Coastguard Worker }
342*bb4ee6a4SAndroid Build Coastguard Worker impl Default for edid_info {
default() -> Self343*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
344*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
345*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
346*bb4ee6a4SAndroid Build Coastguard Worker     }
347*bb4ee6a4SAndroid Build Coastguard Worker }
348*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
349*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default)]
350*bb4ee6a4SAndroid Build Coastguard Worker pub struct setup_data {
351*bb4ee6a4SAndroid Build Coastguard Worker     pub next: __u64,
352*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: __u32,
353*bb4ee6a4SAndroid Build Coastguard Worker     pub len: __u32,
354*bb4ee6a4SAndroid Build Coastguard Worker     pub data: __IncompleteArrayField<__u8>,
355*bb4ee6a4SAndroid Build Coastguard Worker }
356*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
357*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
358*bb4ee6a4SAndroid Build Coastguard Worker pub struct setup_header {
359*bb4ee6a4SAndroid Build Coastguard Worker     pub setup_sects: __u8,
360*bb4ee6a4SAndroid Build Coastguard Worker     pub root_flags: __u16,
361*bb4ee6a4SAndroid Build Coastguard Worker     pub syssize: __u32,
362*bb4ee6a4SAndroid Build Coastguard Worker     pub ram_size: __u16,
363*bb4ee6a4SAndroid Build Coastguard Worker     pub vid_mode: __u16,
364*bb4ee6a4SAndroid Build Coastguard Worker     pub root_dev: __u16,
365*bb4ee6a4SAndroid Build Coastguard Worker     pub boot_flag: __u16,
366*bb4ee6a4SAndroid Build Coastguard Worker     pub jump: __u16,
367*bb4ee6a4SAndroid Build Coastguard Worker     pub header: __u32,
368*bb4ee6a4SAndroid Build Coastguard Worker     pub version: __u16,
369*bb4ee6a4SAndroid Build Coastguard Worker     pub realmode_swtch: __u32,
370*bb4ee6a4SAndroid Build Coastguard Worker     pub start_sys_seg: __u16,
371*bb4ee6a4SAndroid Build Coastguard Worker     pub kernel_version: __u16,
372*bb4ee6a4SAndroid Build Coastguard Worker     pub type_of_loader: __u8,
373*bb4ee6a4SAndroid Build Coastguard Worker     pub loadflags: __u8,
374*bb4ee6a4SAndroid Build Coastguard Worker     pub setup_move_size: __u16,
375*bb4ee6a4SAndroid Build Coastguard Worker     pub code32_start: __u32,
376*bb4ee6a4SAndroid Build Coastguard Worker     pub ramdisk_image: __u32,
377*bb4ee6a4SAndroid Build Coastguard Worker     pub ramdisk_size: __u32,
378*bb4ee6a4SAndroid Build Coastguard Worker     pub bootsect_kludge: __u32,
379*bb4ee6a4SAndroid Build Coastguard Worker     pub heap_end_ptr: __u16,
380*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_loader_ver: __u8,
381*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_loader_type: __u8,
382*bb4ee6a4SAndroid Build Coastguard Worker     pub cmd_line_ptr: __u32,
383*bb4ee6a4SAndroid Build Coastguard Worker     pub initrd_addr_max: __u32,
384*bb4ee6a4SAndroid Build Coastguard Worker     pub kernel_alignment: __u32,
385*bb4ee6a4SAndroid Build Coastguard Worker     pub relocatable_kernel: __u8,
386*bb4ee6a4SAndroid Build Coastguard Worker     pub min_alignment: __u8,
387*bb4ee6a4SAndroid Build Coastguard Worker     pub xloadflags: __u16,
388*bb4ee6a4SAndroid Build Coastguard Worker     pub cmdline_size: __u32,
389*bb4ee6a4SAndroid Build Coastguard Worker     pub hardware_subarch: __u32,
390*bb4ee6a4SAndroid Build Coastguard Worker     pub hardware_subarch_data: __u64,
391*bb4ee6a4SAndroid Build Coastguard Worker     pub payload_offset: __u32,
392*bb4ee6a4SAndroid Build Coastguard Worker     pub payload_length: __u32,
393*bb4ee6a4SAndroid Build Coastguard Worker     pub setup_data: __u64,
394*bb4ee6a4SAndroid Build Coastguard Worker     pub pref_address: __u64,
395*bb4ee6a4SAndroid Build Coastguard Worker     pub init_size: __u32,
396*bb4ee6a4SAndroid Build Coastguard Worker     pub handover_offset: __u32,
397*bb4ee6a4SAndroid Build Coastguard Worker }
398*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
399*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
400*bb4ee6a4SAndroid Build Coastguard Worker pub struct sys_desc_table {
401*bb4ee6a4SAndroid Build Coastguard Worker     pub length: __u16,
402*bb4ee6a4SAndroid Build Coastguard Worker     pub table: [__u8; 14usize],
403*bb4ee6a4SAndroid Build Coastguard Worker }
404*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
405*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
406*bb4ee6a4SAndroid Build Coastguard Worker pub struct olpc_ofw_header {
407*bb4ee6a4SAndroid Build Coastguard Worker     pub ofw_magic: __u32,
408*bb4ee6a4SAndroid Build Coastguard Worker     pub ofw_version: __u32,
409*bb4ee6a4SAndroid Build Coastguard Worker     pub cif_handler: __u32,
410*bb4ee6a4SAndroid Build Coastguard Worker     pub irq_desc_table: __u32,
411*bb4ee6a4SAndroid Build Coastguard Worker }
412*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
413*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
414*bb4ee6a4SAndroid Build Coastguard Worker pub struct efi_info {
415*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_loader_signature: __u32,
416*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_systab: __u32,
417*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_memdesc_size: __u32,
418*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_memdesc_version: __u32,
419*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_memmap: __u32,
420*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_memmap_size: __u32,
421*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_systab_hi: __u32,
422*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_memmap_hi: __u32,
423*bb4ee6a4SAndroid Build Coastguard Worker }
424*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
425*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, Clone, FromZeroes, FromBytes, AsBytes)]
426*bb4ee6a4SAndroid Build Coastguard Worker pub struct boot_e820_entry {
427*bb4ee6a4SAndroid Build Coastguard Worker     pub addr: __u64,
428*bb4ee6a4SAndroid Build Coastguard Worker     pub size: __u64,
429*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: __u32,
430*bb4ee6a4SAndroid Build Coastguard Worker }
431*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C, packed)]
432*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Copy, Clone, FromZeroes, FromBytes, AsBytes)]
433*bb4ee6a4SAndroid Build Coastguard Worker pub struct boot_params {
434*bb4ee6a4SAndroid Build Coastguard Worker     pub screen_info: screen_info,
435*bb4ee6a4SAndroid Build Coastguard Worker     pub apm_bios_info: apm_bios_info,
436*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad2: [__u8; 4usize],
437*bb4ee6a4SAndroid Build Coastguard Worker     pub tboot_addr: __u64,
438*bb4ee6a4SAndroid Build Coastguard Worker     pub ist_info: ist_info,
439*bb4ee6a4SAndroid Build Coastguard Worker     pub acpi_rsdp_addr: __u64,
440*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad3: [__u8; 8usize],
441*bb4ee6a4SAndroid Build Coastguard Worker     pub hd0_info: [__u8; 16usize],
442*bb4ee6a4SAndroid Build Coastguard Worker     pub hd1_info: [__u8; 16usize],
443*bb4ee6a4SAndroid Build Coastguard Worker     pub sys_desc_table: sys_desc_table,
444*bb4ee6a4SAndroid Build Coastguard Worker     pub olpc_ofw_header: olpc_ofw_header,
445*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_ramdisk_image: __u32,
446*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_ramdisk_size: __u32,
447*bb4ee6a4SAndroid Build Coastguard Worker     pub ext_cmd_line_ptr: __u32,
448*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad4: [__u8; 116usize],
449*bb4ee6a4SAndroid Build Coastguard Worker     pub edid_info: edid_info,
450*bb4ee6a4SAndroid Build Coastguard Worker     pub efi_info: efi_info,
451*bb4ee6a4SAndroid Build Coastguard Worker     pub alt_mem_k: __u32,
452*bb4ee6a4SAndroid Build Coastguard Worker     pub scratch: __u32,
453*bb4ee6a4SAndroid Build Coastguard Worker     pub e820_entries: __u8,
454*bb4ee6a4SAndroid Build Coastguard Worker     pub eddbuf_entries: __u8,
455*bb4ee6a4SAndroid Build Coastguard Worker     pub edd_mbr_sig_buf_entries: __u8,
456*bb4ee6a4SAndroid Build Coastguard Worker     pub kbd_status: __u8,
457*bb4ee6a4SAndroid Build Coastguard Worker     pub secure_boot: __u8,
458*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad5: [__u8; 2usize],
459*bb4ee6a4SAndroid Build Coastguard Worker     pub sentinel: __u8,
460*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad6: [__u8; 1usize],
461*bb4ee6a4SAndroid Build Coastguard Worker     pub hdr: setup_header,
462*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad7: [__u8; 40usize],
463*bb4ee6a4SAndroid Build Coastguard Worker     pub edd_mbr_sig_buffer: [__u32; 16usize],
464*bb4ee6a4SAndroid Build Coastguard Worker     pub e820_table: [boot_e820_entry; 128usize],
465*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad8: [__u8; 48usize],
466*bb4ee6a4SAndroid Build Coastguard Worker     pub eddbuf: [edd_info; 6usize],
467*bb4ee6a4SAndroid Build Coastguard Worker     pub _pad9: [__u8; 276usize],
468*bb4ee6a4SAndroid Build Coastguard Worker }
469*bb4ee6a4SAndroid Build Coastguard Worker impl Default for boot_params {
default() -> Self470*bb4ee6a4SAndroid Build Coastguard Worker     fn default() -> Self {
471*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
472*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { ::std::mem::zeroed() }
473*bb4ee6a4SAndroid Build Coastguard Worker     }
474*bb4ee6a4SAndroid Build Coastguard Worker }
475