xref: /aosp_15_r20/external/crosvm/x86_64/src/mpspec.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker // Copyright 2019 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 #![allow(warnings)]
6*bb4ee6a4SAndroid Build Coastguard Worker 
7*bb4ee6a4SAndroid Build Coastguard Worker /* automatically generated by rust-bindgen */
8*bb4ee6a4SAndroid Build Coastguard Worker 
9*bb4ee6a4SAndroid Build Coastguard Worker // manually added, needs to be included when this crate gets automated bindgen
10*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::AsBytes;
11*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromBytes;
12*bb4ee6a4SAndroid Build Coastguard Worker use zerocopy::FromZeroes;
13*bb4ee6a4SAndroid Build Coastguard Worker 
14*bb4ee6a4SAndroid Build Coastguard Worker pub const MPC_SIGNATURE: &'static [u8; 5usize] = b"PCMP\x00";
15*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_PROCESSOR: ::std::os::raw::c_uint = 0;
16*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_BUS: ::std::os::raw::c_uint = 1;
17*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_IOAPIC: ::std::os::raw::c_uint = 2;
18*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_INTSRC: ::std::os::raw::c_uint = 3;
19*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_LINTSRC: ::std::os::raw::c_uint = 4;
20*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_TRANSLATION: ::std::os::raw::c_uint = 192;
21*bb4ee6a4SAndroid Build Coastguard Worker pub const CPU_ENABLED: ::std::os::raw::c_uint = 1;
22*bb4ee6a4SAndroid Build Coastguard Worker pub const CPU_BOOTPROCESSOR: ::std::os::raw::c_uint = 2;
23*bb4ee6a4SAndroid Build Coastguard Worker pub const CPU_STEPPING_MASK: ::std::os::raw::c_uint = 15;
24*bb4ee6a4SAndroid Build Coastguard Worker pub const CPU_MODEL_MASK: ::std::os::raw::c_uint = 240;
25*bb4ee6a4SAndroid Build Coastguard Worker pub const CPU_FAMILY_MASK: ::std::os::raw::c_uint = 3840;
26*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_EISA: &'static [u8; 5usize] = b"EISA\x00";
27*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_ISA: &'static [u8; 4usize] = b"ISA\x00";
28*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_INTERN: &'static [u8; 7usize] = b"INTERN\x00";
29*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_MCA: &'static [u8; 4usize] = b"MCA\x00";
30*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_VL: &'static [u8; 3usize] = b"VL\x00";
31*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_PCI: &'static [u8; 4usize] = b"PCI\x00";
32*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_PCMCIA: &'static [u8; 7usize] = b"PCMCIA\x00";
33*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_CBUS: &'static [u8; 5usize] = b"CBUS\x00";
34*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_CBUSII: &'static [u8; 7usize] = b"CBUSII\x00";
35*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_FUTURE: &'static [u8; 7usize] = b"FUTURE\x00";
36*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_MBI: &'static [u8; 4usize] = b"MBI\x00";
37*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_MBII: &'static [u8; 5usize] = b"MBII\x00";
38*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_MPI: &'static [u8; 4usize] = b"MPI\x00";
39*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_MPSA: &'static [u8; 5usize] = b"MPSA\x00";
40*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_NUBUS: &'static [u8; 6usize] = b"NUBUS\x00";
41*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_TC: &'static [u8; 3usize] = b"TC\x00";
42*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_VME: &'static [u8; 4usize] = b"VME\x00";
43*bb4ee6a4SAndroid Build Coastguard Worker pub const BUSTYPE_XPRESS: &'static [u8; 7usize] = b"XPRESS\x00";
44*bb4ee6a4SAndroid Build Coastguard Worker pub const MPC_APIC_USABLE: ::std::os::raw::c_uint = 1;
45*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_IRQDIR_DEFAULT: ::std::os::raw::c_uint = 0;
46*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_IRQDIR_HIGH: ::std::os::raw::c_uint = 1;
47*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_IRQDIR_LOW: ::std::os::raw::c_uint = 3;
48*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_LEVEL_TRIGGER: ::std::os::raw::c_uint = 0xc;
49*bb4ee6a4SAndroid Build Coastguard Worker pub const MP_APIC_ALL: ::std::os::raw::c_uint = 255;
50*bb4ee6a4SAndroid Build Coastguard Worker pub const MPC_OEM_SIGNATURE: &'static [u8; 5usize] = b"_OEM\x00";
51*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
52*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
53*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpf_intel {
54*bb4ee6a4SAndroid Build Coastguard Worker     pub signature: [::std::os::raw::c_uchar; 4usize],
55*bb4ee6a4SAndroid Build Coastguard Worker     pub physptr: ::std::os::raw::c_uint,
56*bb4ee6a4SAndroid Build Coastguard Worker     pub length: ::std::os::raw::c_uchar,
57*bb4ee6a4SAndroid Build Coastguard Worker     pub specification: ::std::os::raw::c_uchar,
58*bb4ee6a4SAndroid Build Coastguard Worker     pub checksum: ::std::os::raw::c_uchar,
59*bb4ee6a4SAndroid Build Coastguard Worker     pub feature1: ::std::os::raw::c_uchar,
60*bb4ee6a4SAndroid Build Coastguard Worker     pub feature2: ::std::os::raw::c_uchar,
61*bb4ee6a4SAndroid Build Coastguard Worker     pub feature3: ::std::os::raw::c_uchar,
62*bb4ee6a4SAndroid Build Coastguard Worker     pub feature4: ::std::os::raw::c_uchar,
63*bb4ee6a4SAndroid Build Coastguard Worker     pub feature5: ::std::os::raw::c_uchar,
64*bb4ee6a4SAndroid Build Coastguard Worker }
65*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpf_intel()66*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpf_intel() {
67*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
68*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpf_intel>(),
69*bb4ee6a4SAndroid Build Coastguard Worker         16usize,
70*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpf_intel))
71*bb4ee6a4SAndroid Build Coastguard Worker     );
72*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
73*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpf_intel>(),
74*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
75*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpf_intel))
76*bb4ee6a4SAndroid Build Coastguard Worker     );
77*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
78*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
79*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).signature as *const _ as usize },
80*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
81*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
82*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
83*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
84*bb4ee6a4SAndroid Build Coastguard Worker             "::",
85*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(signature)
86*bb4ee6a4SAndroid Build Coastguard Worker         )
87*bb4ee6a4SAndroid Build Coastguard Worker     );
88*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
89*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
90*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).physptr as *const _ as usize },
91*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
92*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
93*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
94*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
95*bb4ee6a4SAndroid Build Coastguard Worker             "::",
96*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(physptr)
97*bb4ee6a4SAndroid Build Coastguard Worker         )
98*bb4ee6a4SAndroid Build Coastguard Worker     );
99*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
100*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
101*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).length as *const _ as usize },
102*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
103*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
104*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
105*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
106*bb4ee6a4SAndroid Build Coastguard Worker             "::",
107*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(length)
108*bb4ee6a4SAndroid Build Coastguard Worker         )
109*bb4ee6a4SAndroid Build Coastguard Worker     );
110*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
111*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
112*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).specification as *const _ as usize },
113*bb4ee6a4SAndroid Build Coastguard Worker         9usize,
114*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
115*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
116*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
117*bb4ee6a4SAndroid Build Coastguard Worker             "::",
118*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(specification)
119*bb4ee6a4SAndroid Build Coastguard Worker         )
120*bb4ee6a4SAndroid Build Coastguard Worker     );
121*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
122*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
123*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).checksum as *const _ as usize },
124*bb4ee6a4SAndroid Build Coastguard Worker         10usize,
125*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
126*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
127*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
128*bb4ee6a4SAndroid Build Coastguard Worker             "::",
129*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(checksum)
130*bb4ee6a4SAndroid Build Coastguard Worker         )
131*bb4ee6a4SAndroid Build Coastguard Worker     );
132*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
133*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
134*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).feature1 as *const _ as usize },
135*bb4ee6a4SAndroid Build Coastguard Worker         11usize,
136*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
137*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
138*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
139*bb4ee6a4SAndroid Build Coastguard Worker             "::",
140*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(feature1)
141*bb4ee6a4SAndroid Build Coastguard Worker         )
142*bb4ee6a4SAndroid Build Coastguard Worker     );
143*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
144*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
145*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).feature2 as *const _ as usize },
146*bb4ee6a4SAndroid Build Coastguard Worker         12usize,
147*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
148*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
149*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
150*bb4ee6a4SAndroid Build Coastguard Worker             "::",
151*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(feature2)
152*bb4ee6a4SAndroid Build Coastguard Worker         )
153*bb4ee6a4SAndroid Build Coastguard Worker     );
154*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
155*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
156*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).feature3 as *const _ as usize },
157*bb4ee6a4SAndroid Build Coastguard Worker         13usize,
158*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
159*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
160*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
161*bb4ee6a4SAndroid Build Coastguard Worker             "::",
162*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(feature3)
163*bb4ee6a4SAndroid Build Coastguard Worker         )
164*bb4ee6a4SAndroid Build Coastguard Worker     );
165*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
166*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
167*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).feature4 as *const _ as usize },
168*bb4ee6a4SAndroid Build Coastguard Worker         14usize,
169*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
170*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
171*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
172*bb4ee6a4SAndroid Build Coastguard Worker             "::",
173*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(feature4)
174*bb4ee6a4SAndroid Build Coastguard Worker         )
175*bb4ee6a4SAndroid Build Coastguard Worker     );
176*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
177*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
178*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpf_intel)).feature5 as *const _ as usize },
179*bb4ee6a4SAndroid Build Coastguard Worker         15usize,
180*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
181*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
182*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpf_intel),
183*bb4ee6a4SAndroid Build Coastguard Worker             "::",
184*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(feature5)
185*bb4ee6a4SAndroid Build Coastguard Worker         )
186*bb4ee6a4SAndroid Build Coastguard Worker     );
187*bb4ee6a4SAndroid Build Coastguard Worker }
188*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpf_intel {
clone(&self) -> Self189*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
190*bb4ee6a4SAndroid Build Coastguard Worker         *self
191*bb4ee6a4SAndroid Build Coastguard Worker     }
192*bb4ee6a4SAndroid Build Coastguard Worker }
193*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
194*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
195*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_table {
196*bb4ee6a4SAndroid Build Coastguard Worker     pub signature: [::std::os::raw::c_uchar; 4usize],
197*bb4ee6a4SAndroid Build Coastguard Worker     pub length: ::std::os::raw::c_ushort,
198*bb4ee6a4SAndroid Build Coastguard Worker     pub spec: ::std::os::raw::c_char,
199*bb4ee6a4SAndroid Build Coastguard Worker     pub checksum: ::std::os::raw::c_char,
200*bb4ee6a4SAndroid Build Coastguard Worker     pub oem: [::std::os::raw::c_uchar; 8usize],
201*bb4ee6a4SAndroid Build Coastguard Worker     pub productid: [::std::os::raw::c_uchar; 12usize],
202*bb4ee6a4SAndroid Build Coastguard Worker     pub oemptr: ::std::os::raw::c_uint,
203*bb4ee6a4SAndroid Build Coastguard Worker     pub oemsize: ::std::os::raw::c_ushort,
204*bb4ee6a4SAndroid Build Coastguard Worker     pub oemcount: ::std::os::raw::c_ushort,
205*bb4ee6a4SAndroid Build Coastguard Worker     pub lapic: ::std::os::raw::c_uint,
206*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: ::std::os::raw::c_uint,
207*bb4ee6a4SAndroid Build Coastguard Worker }
208*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_table()209*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_table() {
210*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
211*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_table>(),
212*bb4ee6a4SAndroid Build Coastguard Worker         44usize,
213*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_table))
214*bb4ee6a4SAndroid Build Coastguard Worker     );
215*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
216*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_table>(),
217*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
218*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_table))
219*bb4ee6a4SAndroid Build Coastguard Worker     );
220*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
221*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
222*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).signature as *const _ as usize },
223*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
224*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
225*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
226*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
227*bb4ee6a4SAndroid Build Coastguard Worker             "::",
228*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(signature)
229*bb4ee6a4SAndroid Build Coastguard Worker         )
230*bb4ee6a4SAndroid Build Coastguard Worker     );
231*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
232*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
233*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).length as *const _ as usize },
234*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
235*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
236*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
237*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
238*bb4ee6a4SAndroid Build Coastguard Worker             "::",
239*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(length)
240*bb4ee6a4SAndroid Build Coastguard Worker         )
241*bb4ee6a4SAndroid Build Coastguard Worker     );
242*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
243*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
244*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).spec as *const _ as usize },
245*bb4ee6a4SAndroid Build Coastguard Worker         6usize,
246*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
247*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
248*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
249*bb4ee6a4SAndroid Build Coastguard Worker             "::",
250*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(spec)
251*bb4ee6a4SAndroid Build Coastguard Worker         )
252*bb4ee6a4SAndroid Build Coastguard Worker     );
253*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
254*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
255*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).checksum as *const _ as usize },
256*bb4ee6a4SAndroid Build Coastguard Worker         7usize,
257*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
258*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
259*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
260*bb4ee6a4SAndroid Build Coastguard Worker             "::",
261*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(checksum)
262*bb4ee6a4SAndroid Build Coastguard Worker         )
263*bb4ee6a4SAndroid Build Coastguard Worker     );
264*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
265*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
266*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).oem as *const _ as usize },
267*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
268*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
269*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
270*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
271*bb4ee6a4SAndroid Build Coastguard Worker             "::",
272*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(oem)
273*bb4ee6a4SAndroid Build Coastguard Worker         )
274*bb4ee6a4SAndroid Build Coastguard Worker     );
275*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
276*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
277*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).productid as *const _ as usize },
278*bb4ee6a4SAndroid Build Coastguard Worker         16usize,
279*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
280*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
281*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
282*bb4ee6a4SAndroid Build Coastguard Worker             "::",
283*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(productid)
284*bb4ee6a4SAndroid Build Coastguard Worker         )
285*bb4ee6a4SAndroid Build Coastguard Worker     );
286*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
287*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
288*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).oemptr as *const _ as usize },
289*bb4ee6a4SAndroid Build Coastguard Worker         28usize,
290*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
291*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
292*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
293*bb4ee6a4SAndroid Build Coastguard Worker             "::",
294*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(oemptr)
295*bb4ee6a4SAndroid Build Coastguard Worker         )
296*bb4ee6a4SAndroid Build Coastguard Worker     );
297*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
298*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
299*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).oemsize as *const _ as usize },
300*bb4ee6a4SAndroid Build Coastguard Worker         32usize,
301*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
302*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
303*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
304*bb4ee6a4SAndroid Build Coastguard Worker             "::",
305*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(oemsize)
306*bb4ee6a4SAndroid Build Coastguard Worker         )
307*bb4ee6a4SAndroid Build Coastguard Worker     );
308*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
309*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
310*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).oemcount as *const _ as usize },
311*bb4ee6a4SAndroid Build Coastguard Worker         34usize,
312*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
313*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
314*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
315*bb4ee6a4SAndroid Build Coastguard Worker             "::",
316*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(oemcount)
317*bb4ee6a4SAndroid Build Coastguard Worker         )
318*bb4ee6a4SAndroid Build Coastguard Worker     );
319*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
320*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
321*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).lapic as *const _ as usize },
322*bb4ee6a4SAndroid Build Coastguard Worker         36usize,
323*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
324*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
325*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
326*bb4ee6a4SAndroid Build Coastguard Worker             "::",
327*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(lapic)
328*bb4ee6a4SAndroid Build Coastguard Worker         )
329*bb4ee6a4SAndroid Build Coastguard Worker     );
330*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
331*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
332*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_table)).reserved as *const _ as usize },
333*bb4ee6a4SAndroid Build Coastguard Worker         40usize,
334*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
335*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
336*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_table),
337*bb4ee6a4SAndroid Build Coastguard Worker             "::",
338*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(reserved)
339*bb4ee6a4SAndroid Build Coastguard Worker         )
340*bb4ee6a4SAndroid Build Coastguard Worker     );
341*bb4ee6a4SAndroid Build Coastguard Worker }
342*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_table {
clone(&self) -> Self343*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
344*bb4ee6a4SAndroid Build Coastguard Worker         *self
345*bb4ee6a4SAndroid Build Coastguard Worker     }
346*bb4ee6a4SAndroid Build Coastguard Worker }
347*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
348*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
349*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_cpu {
350*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: ::std::os::raw::c_uchar,
351*bb4ee6a4SAndroid Build Coastguard Worker     pub apicid: ::std::os::raw::c_uchar,
352*bb4ee6a4SAndroid Build Coastguard Worker     pub apicver: ::std::os::raw::c_uchar,
353*bb4ee6a4SAndroid Build Coastguard Worker     pub cpuflag: ::std::os::raw::c_uchar,
354*bb4ee6a4SAndroid Build Coastguard Worker     pub cpufeature: ::std::os::raw::c_uint,
355*bb4ee6a4SAndroid Build Coastguard Worker     pub featureflag: ::std::os::raw::c_uint,
356*bb4ee6a4SAndroid Build Coastguard Worker     pub reserved: [::std::os::raw::c_uint; 2usize],
357*bb4ee6a4SAndroid Build Coastguard Worker }
358*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_cpu()359*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_cpu() {
360*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
361*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_cpu>(),
362*bb4ee6a4SAndroid Build Coastguard Worker         20usize,
363*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_cpu))
364*bb4ee6a4SAndroid Build Coastguard Worker     );
365*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
366*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_cpu>(),
367*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
368*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_cpu))
369*bb4ee6a4SAndroid Build Coastguard Worker     );
370*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
371*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
372*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).type_ as *const _ as usize },
373*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
374*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
375*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
376*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
377*bb4ee6a4SAndroid Build Coastguard Worker             "::",
378*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(type_)
379*bb4ee6a4SAndroid Build Coastguard Worker         )
380*bb4ee6a4SAndroid Build Coastguard Worker     );
381*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
382*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
383*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).apicid as *const _ as usize },
384*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
385*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
386*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
387*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
388*bb4ee6a4SAndroid Build Coastguard Worker             "::",
389*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(apicid)
390*bb4ee6a4SAndroid Build Coastguard Worker         )
391*bb4ee6a4SAndroid Build Coastguard Worker     );
392*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
393*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
394*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).apicver as *const _ as usize },
395*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
396*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
397*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
398*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
399*bb4ee6a4SAndroid Build Coastguard Worker             "::",
400*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(apicver)
401*bb4ee6a4SAndroid Build Coastguard Worker         )
402*bb4ee6a4SAndroid Build Coastguard Worker     );
403*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
404*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
405*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).cpuflag as *const _ as usize },
406*bb4ee6a4SAndroid Build Coastguard Worker         3usize,
407*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
408*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
409*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
410*bb4ee6a4SAndroid Build Coastguard Worker             "::",
411*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(cpuflag)
412*bb4ee6a4SAndroid Build Coastguard Worker         )
413*bb4ee6a4SAndroid Build Coastguard Worker     );
414*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
415*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
416*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).cpufeature as *const _ as usize },
417*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
418*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
419*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
420*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
421*bb4ee6a4SAndroid Build Coastguard Worker             "::",
422*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(cpufeature)
423*bb4ee6a4SAndroid Build Coastguard Worker         )
424*bb4ee6a4SAndroid Build Coastguard Worker     );
425*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
426*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
427*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).featureflag as *const _ as usize },
428*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
429*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
430*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
431*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
432*bb4ee6a4SAndroid Build Coastguard Worker             "::",
433*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(featureflag)
434*bb4ee6a4SAndroid Build Coastguard Worker         )
435*bb4ee6a4SAndroid Build Coastguard Worker     );
436*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
437*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
438*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_cpu)).reserved as *const _ as usize },
439*bb4ee6a4SAndroid Build Coastguard Worker         12usize,
440*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
441*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
442*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_cpu),
443*bb4ee6a4SAndroid Build Coastguard Worker             "::",
444*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(reserved)
445*bb4ee6a4SAndroid Build Coastguard Worker         )
446*bb4ee6a4SAndroid Build Coastguard Worker     );
447*bb4ee6a4SAndroid Build Coastguard Worker }
448*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_cpu {
clone(&self) -> Self449*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
450*bb4ee6a4SAndroid Build Coastguard Worker         *self
451*bb4ee6a4SAndroid Build Coastguard Worker     }
452*bb4ee6a4SAndroid Build Coastguard Worker }
453*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
454*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
455*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_bus {
456*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: ::std::os::raw::c_uchar,
457*bb4ee6a4SAndroid Build Coastguard Worker     pub busid: ::std::os::raw::c_uchar,
458*bb4ee6a4SAndroid Build Coastguard Worker     pub bustype: [::std::os::raw::c_uchar; 6usize],
459*bb4ee6a4SAndroid Build Coastguard Worker }
460*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_bus()461*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_bus() {
462*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
463*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_bus>(),
464*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
465*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_bus))
466*bb4ee6a4SAndroid Build Coastguard Worker     );
467*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
468*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_bus>(),
469*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
470*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_bus))
471*bb4ee6a4SAndroid Build Coastguard Worker     );
472*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
473*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
474*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_bus)).type_ as *const _ as usize },
475*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
476*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
477*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
478*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_bus),
479*bb4ee6a4SAndroid Build Coastguard Worker             "::",
480*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(type_)
481*bb4ee6a4SAndroid Build Coastguard Worker         )
482*bb4ee6a4SAndroid Build Coastguard Worker     );
483*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
484*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
485*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_bus)).busid as *const _ as usize },
486*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
487*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
488*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
489*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_bus),
490*bb4ee6a4SAndroid Build Coastguard Worker             "::",
491*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(busid)
492*bb4ee6a4SAndroid Build Coastguard Worker         )
493*bb4ee6a4SAndroid Build Coastguard Worker     );
494*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
495*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
496*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_bus)).bustype as *const _ as usize },
497*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
498*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
499*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
500*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_bus),
501*bb4ee6a4SAndroid Build Coastguard Worker             "::",
502*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(bustype)
503*bb4ee6a4SAndroid Build Coastguard Worker         )
504*bb4ee6a4SAndroid Build Coastguard Worker     );
505*bb4ee6a4SAndroid Build Coastguard Worker }
506*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_bus {
clone(&self) -> Self507*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
508*bb4ee6a4SAndroid Build Coastguard Worker         *self
509*bb4ee6a4SAndroid Build Coastguard Worker     }
510*bb4ee6a4SAndroid Build Coastguard Worker }
511*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
512*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
513*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_ioapic {
514*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: ::std::os::raw::c_uchar,
515*bb4ee6a4SAndroid Build Coastguard Worker     pub apicid: ::std::os::raw::c_uchar,
516*bb4ee6a4SAndroid Build Coastguard Worker     pub apicver: ::std::os::raw::c_uchar,
517*bb4ee6a4SAndroid Build Coastguard Worker     pub flags: ::std::os::raw::c_uchar,
518*bb4ee6a4SAndroid Build Coastguard Worker     pub apicaddr: ::std::os::raw::c_uint,
519*bb4ee6a4SAndroid Build Coastguard Worker }
520*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_ioapic()521*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_ioapic() {
522*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
523*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_ioapic>(),
524*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
525*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_ioapic))
526*bb4ee6a4SAndroid Build Coastguard Worker     );
527*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
528*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_ioapic>(),
529*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
530*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_ioapic))
531*bb4ee6a4SAndroid Build Coastguard Worker     );
532*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
533*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
534*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_ioapic)).type_ as *const _ as usize },
535*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
536*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
537*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
538*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_ioapic),
539*bb4ee6a4SAndroid Build Coastguard Worker             "::",
540*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(type_)
541*bb4ee6a4SAndroid Build Coastguard Worker         )
542*bb4ee6a4SAndroid Build Coastguard Worker     );
543*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
544*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
545*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_ioapic)).apicid as *const _ as usize },
546*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
547*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
548*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
549*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_ioapic),
550*bb4ee6a4SAndroid Build Coastguard Worker             "::",
551*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(apicid)
552*bb4ee6a4SAndroid Build Coastguard Worker         )
553*bb4ee6a4SAndroid Build Coastguard Worker     );
554*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
555*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
556*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_ioapic)).apicver as *const _ as usize },
557*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
558*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
559*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
560*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_ioapic),
561*bb4ee6a4SAndroid Build Coastguard Worker             "::",
562*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(apicver)
563*bb4ee6a4SAndroid Build Coastguard Worker         )
564*bb4ee6a4SAndroid Build Coastguard Worker     );
565*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
566*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
567*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_ioapic)).flags as *const _ as usize },
568*bb4ee6a4SAndroid Build Coastguard Worker         3usize,
569*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
570*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
571*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_ioapic),
572*bb4ee6a4SAndroid Build Coastguard Worker             "::",
573*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(flags)
574*bb4ee6a4SAndroid Build Coastguard Worker         )
575*bb4ee6a4SAndroid Build Coastguard Worker     );
576*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
577*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
578*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_ioapic)).apicaddr as *const _ as usize },
579*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
580*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
581*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
582*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_ioapic),
583*bb4ee6a4SAndroid Build Coastguard Worker             "::",
584*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(apicaddr)
585*bb4ee6a4SAndroid Build Coastguard Worker         )
586*bb4ee6a4SAndroid Build Coastguard Worker     );
587*bb4ee6a4SAndroid Build Coastguard Worker }
588*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_ioapic {
clone(&self) -> Self589*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
590*bb4ee6a4SAndroid Build Coastguard Worker         *self
591*bb4ee6a4SAndroid Build Coastguard Worker     }
592*bb4ee6a4SAndroid Build Coastguard Worker }
593*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
594*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
595*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_intsrc {
596*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: ::std::os::raw::c_uchar,
597*bb4ee6a4SAndroid Build Coastguard Worker     pub irqtype: ::std::os::raw::c_uchar,
598*bb4ee6a4SAndroid Build Coastguard Worker     pub irqflag: ::std::os::raw::c_ushort,
599*bb4ee6a4SAndroid Build Coastguard Worker     pub srcbus: ::std::os::raw::c_uchar,
600*bb4ee6a4SAndroid Build Coastguard Worker     pub srcbusirq: ::std::os::raw::c_uchar,
601*bb4ee6a4SAndroid Build Coastguard Worker     pub dstapic: ::std::os::raw::c_uchar,
602*bb4ee6a4SAndroid Build Coastguard Worker     pub dstirq: ::std::os::raw::c_uchar,
603*bb4ee6a4SAndroid Build Coastguard Worker }
604*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_intsrc()605*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_intsrc() {
606*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
607*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_intsrc>(),
608*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
609*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_intsrc))
610*bb4ee6a4SAndroid Build Coastguard Worker     );
611*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
612*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_intsrc>(),
613*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
614*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_intsrc))
615*bb4ee6a4SAndroid Build Coastguard Worker     );
616*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
617*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
618*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).type_ as *const _ as usize },
619*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
620*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
621*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
622*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
623*bb4ee6a4SAndroid Build Coastguard Worker             "::",
624*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(type_)
625*bb4ee6a4SAndroid Build Coastguard Worker         )
626*bb4ee6a4SAndroid Build Coastguard Worker     );
627*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
628*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
629*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).irqtype as *const _ as usize },
630*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
631*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
632*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
633*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
634*bb4ee6a4SAndroid Build Coastguard Worker             "::",
635*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(irqtype)
636*bb4ee6a4SAndroid Build Coastguard Worker         )
637*bb4ee6a4SAndroid Build Coastguard Worker     );
638*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
639*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
640*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).irqflag as *const _ as usize },
641*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
642*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
643*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
644*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
645*bb4ee6a4SAndroid Build Coastguard Worker             "::",
646*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(irqflag)
647*bb4ee6a4SAndroid Build Coastguard Worker         )
648*bb4ee6a4SAndroid Build Coastguard Worker     );
649*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
650*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
651*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).srcbus as *const _ as usize },
652*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
653*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
654*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
655*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
656*bb4ee6a4SAndroid Build Coastguard Worker             "::",
657*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(srcbus)
658*bb4ee6a4SAndroid Build Coastguard Worker         )
659*bb4ee6a4SAndroid Build Coastguard Worker     );
660*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
661*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
662*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).srcbusirq as *const _ as usize },
663*bb4ee6a4SAndroid Build Coastguard Worker         5usize,
664*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
665*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
666*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
667*bb4ee6a4SAndroid Build Coastguard Worker             "::",
668*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(srcbusirq)
669*bb4ee6a4SAndroid Build Coastguard Worker         )
670*bb4ee6a4SAndroid Build Coastguard Worker     );
671*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
672*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
673*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).dstapic as *const _ as usize },
674*bb4ee6a4SAndroid Build Coastguard Worker         6usize,
675*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
676*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
677*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
678*bb4ee6a4SAndroid Build Coastguard Worker             "::",
679*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(dstapic)
680*bb4ee6a4SAndroid Build Coastguard Worker         )
681*bb4ee6a4SAndroid Build Coastguard Worker     );
682*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
683*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
684*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_intsrc)).dstirq as *const _ as usize },
685*bb4ee6a4SAndroid Build Coastguard Worker         7usize,
686*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
687*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
688*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_intsrc),
689*bb4ee6a4SAndroid Build Coastguard Worker             "::",
690*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(dstirq)
691*bb4ee6a4SAndroid Build Coastguard Worker         )
692*bb4ee6a4SAndroid Build Coastguard Worker     );
693*bb4ee6a4SAndroid Build Coastguard Worker }
694*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_intsrc {
clone(&self) -> Self695*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
696*bb4ee6a4SAndroid Build Coastguard Worker         *self
697*bb4ee6a4SAndroid Build Coastguard Worker     }
698*bb4ee6a4SAndroid Build Coastguard Worker }
699*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_irq_source_types_mp_INT: mp_irq_source_types = 0;
700*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_irq_source_types_mp_NMI: mp_irq_source_types = 1;
701*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_irq_source_types_mp_SMI: mp_irq_source_types = 2;
702*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_irq_source_types_mp_ExtINT: mp_irq_source_types = 3;
703*bb4ee6a4SAndroid Build Coastguard Worker pub type mp_irq_source_types = ::std::os::raw::c_uint;
704*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
705*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy, FromZeroes, FromBytes, AsBytes)]
706*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_lintsrc {
707*bb4ee6a4SAndroid Build Coastguard Worker     pub type_: ::std::os::raw::c_uchar,
708*bb4ee6a4SAndroid Build Coastguard Worker     pub irqtype: ::std::os::raw::c_uchar,
709*bb4ee6a4SAndroid Build Coastguard Worker     pub irqflag: ::std::os::raw::c_ushort,
710*bb4ee6a4SAndroid Build Coastguard Worker     pub srcbusid: ::std::os::raw::c_uchar,
711*bb4ee6a4SAndroid Build Coastguard Worker     pub srcbusirq: ::std::os::raw::c_uchar,
712*bb4ee6a4SAndroid Build Coastguard Worker     pub destapic: ::std::os::raw::c_uchar,
713*bb4ee6a4SAndroid Build Coastguard Worker     pub destapiclint: ::std::os::raw::c_uchar,
714*bb4ee6a4SAndroid Build Coastguard Worker }
715*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_lintsrc()716*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_lintsrc() {
717*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
718*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_lintsrc>(),
719*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
720*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_lintsrc))
721*bb4ee6a4SAndroid Build Coastguard Worker     );
722*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
723*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_lintsrc>(),
724*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
725*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_lintsrc))
726*bb4ee6a4SAndroid Build Coastguard Worker     );
727*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
728*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
729*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).type_ as *const _ as usize },
730*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
731*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
732*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
733*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
734*bb4ee6a4SAndroid Build Coastguard Worker             "::",
735*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(type_)
736*bb4ee6a4SAndroid Build Coastguard Worker         )
737*bb4ee6a4SAndroid Build Coastguard Worker     );
738*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
739*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
740*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).irqtype as *const _ as usize },
741*bb4ee6a4SAndroid Build Coastguard Worker         1usize,
742*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
743*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
744*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
745*bb4ee6a4SAndroid Build Coastguard Worker             "::",
746*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(irqtype)
747*bb4ee6a4SAndroid Build Coastguard Worker         )
748*bb4ee6a4SAndroid Build Coastguard Worker     );
749*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
750*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
751*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).irqflag as *const _ as usize },
752*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
753*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
754*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
755*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
756*bb4ee6a4SAndroid Build Coastguard Worker             "::",
757*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(irqflag)
758*bb4ee6a4SAndroid Build Coastguard Worker         )
759*bb4ee6a4SAndroid Build Coastguard Worker     );
760*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
761*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
762*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).srcbusid as *const _ as usize },
763*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
764*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
765*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
766*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
767*bb4ee6a4SAndroid Build Coastguard Worker             "::",
768*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(srcbusid)
769*bb4ee6a4SAndroid Build Coastguard Worker         )
770*bb4ee6a4SAndroid Build Coastguard Worker     );
771*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
772*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
773*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).srcbusirq as *const _ as usize },
774*bb4ee6a4SAndroid Build Coastguard Worker         5usize,
775*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
776*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
777*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
778*bb4ee6a4SAndroid Build Coastguard Worker             "::",
779*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(srcbusirq)
780*bb4ee6a4SAndroid Build Coastguard Worker         )
781*bb4ee6a4SAndroid Build Coastguard Worker     );
782*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
783*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
784*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).destapic as *const _ as usize },
785*bb4ee6a4SAndroid Build Coastguard Worker         6usize,
786*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
787*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
788*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
789*bb4ee6a4SAndroid Build Coastguard Worker             "::",
790*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(destapic)
791*bb4ee6a4SAndroid Build Coastguard Worker         )
792*bb4ee6a4SAndroid Build Coastguard Worker     );
793*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
794*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
795*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_lintsrc)).destapiclint as *const _ as usize },
796*bb4ee6a4SAndroid Build Coastguard Worker         7usize,
797*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
798*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
799*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_lintsrc),
800*bb4ee6a4SAndroid Build Coastguard Worker             "::",
801*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(destapiclint)
802*bb4ee6a4SAndroid Build Coastguard Worker         )
803*bb4ee6a4SAndroid Build Coastguard Worker     );
804*bb4ee6a4SAndroid Build Coastguard Worker }
805*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_lintsrc {
clone(&self) -> Self806*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
807*bb4ee6a4SAndroid Build Coastguard Worker         *self
808*bb4ee6a4SAndroid Build Coastguard Worker     }
809*bb4ee6a4SAndroid Build Coastguard Worker }
810*bb4ee6a4SAndroid Build Coastguard Worker #[repr(C)]
811*bb4ee6a4SAndroid Build Coastguard Worker #[derive(Debug, Default, Copy)]
812*bb4ee6a4SAndroid Build Coastguard Worker pub struct mpc_oemtable {
813*bb4ee6a4SAndroid Build Coastguard Worker     pub signature: [::std::os::raw::c_char; 4usize],
814*bb4ee6a4SAndroid Build Coastguard Worker     pub length: ::std::os::raw::c_ushort,
815*bb4ee6a4SAndroid Build Coastguard Worker     pub rev: ::std::os::raw::c_char,
816*bb4ee6a4SAndroid Build Coastguard Worker     pub checksum: ::std::os::raw::c_char,
817*bb4ee6a4SAndroid Build Coastguard Worker     pub mpc: [::std::os::raw::c_char; 8usize],
818*bb4ee6a4SAndroid Build Coastguard Worker }
819*bb4ee6a4SAndroid Build Coastguard Worker #[test]
bindgen_test_layout_mpc_oemtable()820*bb4ee6a4SAndroid Build Coastguard Worker fn bindgen_test_layout_mpc_oemtable() {
821*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
822*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::size_of::<mpc_oemtable>(),
823*bb4ee6a4SAndroid Build Coastguard Worker         16usize,
824*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Size of: ", stringify!(mpc_oemtable))
825*bb4ee6a4SAndroid Build Coastguard Worker     );
826*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
827*bb4ee6a4SAndroid Build Coastguard Worker         ::std::mem::align_of::<mpc_oemtable>(),
828*bb4ee6a4SAndroid Build Coastguard Worker         2usize,
829*bb4ee6a4SAndroid Build Coastguard Worker         concat!("Alignment of ", stringify!(mpc_oemtable))
830*bb4ee6a4SAndroid Build Coastguard Worker     );
831*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
832*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
833*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_oemtable)).signature as *const _ as usize },
834*bb4ee6a4SAndroid Build Coastguard Worker         0usize,
835*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
836*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
837*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_oemtable),
838*bb4ee6a4SAndroid Build Coastguard Worker             "::",
839*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(signature)
840*bb4ee6a4SAndroid Build Coastguard Worker         )
841*bb4ee6a4SAndroid Build Coastguard Worker     );
842*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
843*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
844*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_oemtable)).length as *const _ as usize },
845*bb4ee6a4SAndroid Build Coastguard Worker         4usize,
846*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
847*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
848*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_oemtable),
849*bb4ee6a4SAndroid Build Coastguard Worker             "::",
850*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(length)
851*bb4ee6a4SAndroid Build Coastguard Worker         )
852*bb4ee6a4SAndroid Build Coastguard Worker     );
853*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
854*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
855*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_oemtable)).rev as *const _ as usize },
856*bb4ee6a4SAndroid Build Coastguard Worker         6usize,
857*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
858*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
859*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_oemtable),
860*bb4ee6a4SAndroid Build Coastguard Worker             "::",
861*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(rev)
862*bb4ee6a4SAndroid Build Coastguard Worker         )
863*bb4ee6a4SAndroid Build Coastguard Worker     );
864*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
865*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
866*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_oemtable)).checksum as *const _ as usize },
867*bb4ee6a4SAndroid Build Coastguard Worker         7usize,
868*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
869*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
870*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_oemtable),
871*bb4ee6a4SAndroid Build Coastguard Worker             "::",
872*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(checksum)
873*bb4ee6a4SAndroid Build Coastguard Worker         )
874*bb4ee6a4SAndroid Build Coastguard Worker     );
875*bb4ee6a4SAndroid Build Coastguard Worker     assert_eq!(
876*bb4ee6a4SAndroid Build Coastguard Worker         // SAFETY: trivially safe
877*bb4ee6a4SAndroid Build Coastguard Worker         unsafe { &(*(0 as *const mpc_oemtable)).mpc as *const _ as usize },
878*bb4ee6a4SAndroid Build Coastguard Worker         8usize,
879*bb4ee6a4SAndroid Build Coastguard Worker         concat!(
880*bb4ee6a4SAndroid Build Coastguard Worker             "Alignment of field: ",
881*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc_oemtable),
882*bb4ee6a4SAndroid Build Coastguard Worker             "::",
883*bb4ee6a4SAndroid Build Coastguard Worker             stringify!(mpc)
884*bb4ee6a4SAndroid Build Coastguard Worker         )
885*bb4ee6a4SAndroid Build Coastguard Worker     );
886*bb4ee6a4SAndroid Build Coastguard Worker }
887*bb4ee6a4SAndroid Build Coastguard Worker impl Clone for mpc_oemtable {
clone(&self) -> Self888*bb4ee6a4SAndroid Build Coastguard Worker     fn clone(&self) -> Self {
889*bb4ee6a4SAndroid Build Coastguard Worker         *self
890*bb4ee6a4SAndroid Build Coastguard Worker     }
891*bb4ee6a4SAndroid Build Coastguard Worker }
892*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_bustype_MP_BUS_ISA: mp_bustype = 1;
893*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_bustype_MP_BUS_EISA: mp_bustype = 2;
894*bb4ee6a4SAndroid Build Coastguard Worker pub const mp_bustype_MP_BUS_PCI: mp_bustype = 3;
895*bb4ee6a4SAndroid Build Coastguard Worker pub type mp_bustype = ::std::os::raw::c_uint;
896