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