xref: /aosp_15_r20/external/crosvm/hypervisor/src/geniezone/geniezone_sys/aarch64/bindings.rs (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1 /* automatically generated by tools/bindgen-all-the-things */
2 
3 #![allow(clippy::missing_safety_doc)]
4 #![allow(clippy::undocumented_unsafe_blocks)]
5 #![allow(clippy::upper_case_acronyms)]
6 #![allow(non_upper_case_globals)]
7 #![allow(non_camel_case_types)]
8 #![allow(non_snake_case)]
9 #![allow(dead_code)]
10 
11 pub const HWCAP_FP: u32 = 1;
12 pub const HWCAP_ASIMD: u32 = 2;
13 pub const HWCAP_EVTSTRM: u32 = 4;
14 pub const HWCAP_AES: u32 = 8;
15 pub const HWCAP_PMULL: u32 = 16;
16 pub const HWCAP_SHA1: u32 = 32;
17 pub const HWCAP_SHA2: u32 = 64;
18 pub const HWCAP_CRC32: u32 = 128;
19 pub const HWCAP_ATOMICS: u32 = 256;
20 pub const HWCAP_FPHP: u32 = 512;
21 pub const HWCAP_ASIMDHP: u32 = 1024;
22 pub const HWCAP_CPUID: u32 = 2048;
23 pub const HWCAP_ASIMDRDM: u32 = 4096;
24 pub const HWCAP_JSCVT: u32 = 8192;
25 pub const HWCAP_FCMA: u32 = 16384;
26 pub const HWCAP_LRCPC: u32 = 32768;
27 pub const HWCAP_DCPOP: u32 = 65536;
28 pub const HWCAP_SHA3: u32 = 131072;
29 pub const HWCAP_SM3: u32 = 262144;
30 pub const HWCAP_SM4: u32 = 524288;
31 pub const HWCAP_ASIMDDP: u32 = 1048576;
32 pub const HWCAP_SHA512: u32 = 2097152;
33 pub const HWCAP_SVE: u32 = 4194304;
34 pub const HWCAP_ASIMDFHM: u32 = 8388608;
35 pub const HWCAP_DIT: u32 = 16777216;
36 pub const HWCAP_USCAT: u32 = 33554432;
37 pub const HWCAP_ILRCPC: u32 = 67108864;
38 pub const HWCAP_FLAGM: u32 = 134217728;
39 pub const HWCAP_SSBS: u32 = 268435456;
40 pub const HWCAP_SB: u32 = 536870912;
41 pub const HWCAP_PACA: u32 = 1073741824;
42 pub const HWCAP_PACG: u32 = 2147483648;
43 pub const HWCAP2_DCPODP: u32 = 1;
44 pub const HWCAP2_SVE2: u32 = 2;
45 pub const HWCAP2_SVEAES: u32 = 4;
46 pub const HWCAP2_SVEPMULL: u32 = 8;
47 pub const HWCAP2_SVEBITPERM: u32 = 16;
48 pub const HWCAP2_SVESHA3: u32 = 32;
49 pub const HWCAP2_SVESM4: u32 = 64;
50 pub const HWCAP2_FLAGM2: u32 = 128;
51 pub const HWCAP2_FRINT: u32 = 256;
52 pub const HWCAP2_SVEI8MM: u32 = 512;
53 pub const HWCAP2_SVEF32MM: u32 = 1024;
54 pub const HWCAP2_SVEF64MM: u32 = 2048;
55 pub const HWCAP2_SVEBF16: u32 = 4096;
56 pub const HWCAP2_I8MM: u32 = 8192;
57 pub const HWCAP2_BF16: u32 = 16384;
58 pub const HWCAP2_DGH: u32 = 32768;
59 pub const HWCAP2_RNG: u32 = 65536;
60 pub const HWCAP2_BTI: u32 = 131072;
61 pub const HWCAP2_MTE: u32 = 262144;
62 pub const HWCAP2_ECV: u32 = 524288;
63 pub const HWCAP2_AFP: u32 = 1048576;
64 pub const HWCAP2_RPRES: u32 = 2097152;
65 pub const HWCAP2_MTE3: u32 = 4194304;
66 pub const HWCAP2_SME: u32 = 8388608;
67 pub const HWCAP2_SME_I16I64: u32 = 16777216;
68 pub const HWCAP2_SME_F64F64: u32 = 33554432;
69 pub const HWCAP2_SME_I8I32: u32 = 67108864;
70 pub const HWCAP2_SME_F16F32: u32 = 134217728;
71 pub const HWCAP2_SME_B16F32: u32 = 268435456;
72 pub const HWCAP2_SME_F32F32: u32 = 536870912;
73 pub const HWCAP2_SME_FA64: u32 = 1073741824;
74 pub const HWCAP2_WFXT: u32 = 2147483648;
75 pub const HWCAP2_EBF16: u64 = 4294967296;
76 pub const HWCAP2_SVE_EBF16: u64 = 8589934592;
77 pub const __SVE_VQ_BYTES: u32 = 16;
78 pub const __SVE_VQ_MIN: u32 = 1;
79 pub const __SVE_VQ_MAX: u32 = 512;
80 pub const __SVE_VL_MIN: u32 = 16;
81 pub const __SVE_VL_MAX: u32 = 8192;
82 pub const __SVE_NUM_ZREGS: u32 = 32;
83 pub const __SVE_NUM_PREGS: u32 = 16;
84 pub const __SVE_ZREGS_OFFSET: u32 = 0;
85 pub const PSR_MODE_EL0t: u32 = 0;
86 pub const PSR_MODE_EL1t: u32 = 4;
87 pub const PSR_MODE_EL1h: u32 = 5;
88 pub const PSR_MODE_EL2t: u32 = 8;
89 pub const PSR_MODE_EL2h: u32 = 9;
90 pub const PSR_MODE_EL3t: u32 = 12;
91 pub const PSR_MODE_EL3h: u32 = 13;
92 pub const PSR_MODE_MASK: u32 = 15;
93 pub const PSR_MODE32_BIT: u32 = 16;
94 pub const PSR_F_BIT: u32 = 64;
95 pub const PSR_I_BIT: u32 = 128;
96 pub const PSR_A_BIT: u32 = 256;
97 pub const PSR_D_BIT: u32 = 512;
98 pub const PSR_BTYPE_MASK: u32 = 3072;
99 pub const PSR_SSBS_BIT: u32 = 4096;
100 pub const PSR_PAN_BIT: u32 = 4194304;
101 pub const PSR_UAO_BIT: u32 = 8388608;
102 pub const PSR_DIT_BIT: u32 = 16777216;
103 pub const PSR_TCO_BIT: u32 = 33554432;
104 pub const PSR_V_BIT: u32 = 268435456;
105 pub const PSR_C_BIT: u32 = 536870912;
106 pub const PSR_Z_BIT: u32 = 1073741824;
107 pub const PSR_N_BIT: u32 = 2147483648;
108 pub const PSR_BTYPE_SHIFT: u32 = 10;
109 pub const PSR_f: u32 = 4278190080;
110 pub const PSR_s: u32 = 16711680;
111 pub const PSR_x: u32 = 65280;
112 pub const PSR_c: u32 = 255;
113 pub const PSR_BTYPE_NONE: u32 = 0;
114 pub const PSR_BTYPE_JC: u32 = 1024;
115 pub const PSR_BTYPE_C: u32 = 2048;
116 pub const PSR_BTYPE_J: u32 = 3072;
117 pub const PTRACE_SYSEMU: u32 = 31;
118 pub const PTRACE_SYSEMU_SINGLESTEP: u32 = 32;
119 pub const PTRACE_PEEKMTETAGS: u32 = 33;
120 pub const PTRACE_POKEMTETAGS: u32 = 34;
121 pub const SVE_PT_REGS_MASK: u32 = 1;
122 pub const SVE_PT_REGS_FPSIMD: u32 = 0;
123 pub const SVE_PT_REGS_SVE: u32 = 1;
124 pub const SVE_PT_VL_INHERIT: u32 = 2;
125 pub const SVE_PT_VL_ONEXEC: u32 = 4;
126 pub const ZA_PT_VL_INHERIT: u32 = 2;
127 pub const ZA_PT_VL_ONEXEC: u32 = 4;
128 pub const GZVM_SYSTEM_EVENT_SHUTDOWN: u32 = 1;
129 pub const GZVM_SYSTEM_EVENT_RESET: u32 = 2;
130 pub const GZVM_SYSTEM_EVENT_CRASH: u32 = 3;
131 pub const GZVM_SYSTEM_EVENT_WAKEUP: u32 = 4;
132 pub const GZVM_SYSTEM_EVENT_SUSPEND: u32 = 5;
133 pub const GZVM_SYSTEM_EVENT_SEV_TERM: u32 = 6;
134 pub const GIC_V3_NR_LRS: u32 = 16;
135 pub const GZVM_IOC_MAGIC: u32 = 146;
136 pub const GZVM_CAP_ARM_VM_IPA_SIZE: u32 = 165;
137 pub const GZVM_CAP_ARM_PROTECTED_VM: u32 = 4290435761;
138 pub const GZVM_USER_MEM_REGION_GUEST_MEM: u32 = 1;
139 pub const GZVM_USER_MEM_REGION_PROTECT_FW: u32 = 2;
140 pub const GZVM_USER_MEM_REGION_STATIC_SWIOTLB: u32 = 4;
141 pub const GZVM_IRQ_VCPU2_SHIFT: u32 = 28;
142 pub const GZVM_IRQ_VCPU2_MASK: u32 = 15;
143 pub const GZVM_IRQ_TYPE_SHIFT: u32 = 24;
144 pub const GZVM_IRQ_TYPE_MASK: u32 = 15;
145 pub const GZVM_IRQ_VCPU_SHIFT: u32 = 16;
146 pub const GZVM_IRQ_VCPU_MASK: u32 = 255;
147 pub const GZVM_IRQ_NUM_SHIFT: u32 = 0;
148 pub const GZVM_IRQ_NUM_MASK: u32 = 65535;
149 pub const GZVM_IRQ_TYPE_CPU: u32 = 0;
150 pub const GZVM_IRQ_TYPE_SPI: u32 = 1;
151 pub const GZVM_IRQ_TYPE_PPI: u32 = 2;
152 pub const GZVM_IRQ_CPU_IRQ: u32 = 0;
153 pub const GZVM_IRQ_CPU_FIQ: u32 = 1;
154 pub const GZVM_IRQFD_FLAG_DEASSIGN: u32 = 1;
155 pub const GZVM_IRQFD_FLAG_RESAMPLE: u32 = 2;
156 pub const GZVM_CAP_ARM_PVM_SET_PVMFW_IPA: u32 = 0;
157 pub const GZVM_CAP_ARM_PVM_GET_PVMFW_SIZE: u32 = 1;
158 pub const GZVM_REG_ARCH_MASK: i64 = -72057594037927936;
159 pub const GZVM_REG_GENERIC: u32 = 0;
160 pub const GZVM_REG_ARM: u64 = 4611686018427387904;
161 pub const GZVM_REG_ARM64: u64 = 6917529027641081856;
162 pub const GZVM_REG_SIZE_SHIFT: u32 = 52;
163 pub const GZVM_REG_SIZE_MASK: u64 = 67553994410557440;
164 pub const GZVM_REG_SIZE_U8: u32 = 0;
165 pub const GZVM_REG_SIZE_U16: u64 = 4503599627370496;
166 pub const GZVM_REG_SIZE_U32: u64 = 9007199254740992;
167 pub const GZVM_REG_SIZE_U64: u64 = 13510798882111488;
168 pub const GZVM_REG_SIZE_U128: u64 = 18014398509481984;
169 pub const GZVM_REG_SIZE_U256: u64 = 22517998136852480;
170 pub const GZVM_REG_SIZE_U512: u64 = 27021597764222976;
171 pub const GZVM_REG_SIZE_U1024: u64 = 31525197391593472;
172 pub const GZVM_REG_SIZE_U2048: u64 = 36028797018963968;
173 pub const GZVM_NR_SPSR: u32 = 5;
174 pub const GZVM_REG_ARM_COPROC_MASK: u32 = 268369920;
175 pub const GZVM_REG_ARM_COPROC_SHIFT: u32 = 16;
176 pub const GZVM_REG_ARM_CORE: u32 = 1048576;
177 pub const GZVM_REG_ARM_DEMUX: u32 = 1114112;
178 pub const GZVM_REG_ARM_DEMUX_ID_MASK: u32 = 65280;
179 pub const GZVM_REG_ARM_DEMUX_ID_SHIFT: u32 = 8;
180 pub const GZVM_REG_ARM_DEMUX_ID_CCSIDR: u32 = 0;
181 pub const GZVM_REG_ARM_DEMUX_VAL_MASK: u32 = 255;
182 pub const GZVM_REG_ARM_DEMUX_VAL_SHIFT: u32 = 0;
183 pub const GZVM_REG_ARM64_SYSREG: u32 = 1245184;
184 pub const GZVM_REG_ARM64_SYSREG_OP0_MASK: u32 = 49152;
185 pub const GZVM_REG_ARM64_SYSREG_OP0_SHIFT: u32 = 14;
186 pub const GZVM_REG_ARM64_SYSREG_OP1_MASK: u32 = 14336;
187 pub const GZVM_REG_ARM64_SYSREG_OP1_SHIFT: u32 = 11;
188 pub const GZVM_REG_ARM64_SYSREG_CRN_MASK: u32 = 1920;
189 pub const GZVM_REG_ARM64_SYSREG_CRN_SHIFT: u32 = 7;
190 pub const GZVM_REG_ARM64_SYSREG_CRM_MASK: u32 = 120;
191 pub const GZVM_REG_ARM64_SYSREG_CRM_SHIFT: u32 = 3;
192 pub const GZVM_REG_ARM64_SYSREG_OP2_MASK: u32 = 7;
193 pub const GZVM_REG_ARM64_SYSREG_OP2_SHIFT: u32 = 0;
194 pub type __le16 = u16;
195 pub type __be16 = u16;
196 pub type __le32 = u32;
197 pub type __be32 = u32;
198 pub type __le64 = u64;
199 pub type __be64 = u64;
200 pub type __sum16 = u16;
201 pub type __wsum = u32;
202 pub type __poll_t = ::std::os::raw::c_uint;
203 #[repr(C)]
204 #[derive(Debug, Default, Copy, Clone)]
205 pub struct user_pt_regs {
206     pub regs: [u64; 31usize],
207     pub sp: u64,
208     pub pc: u64,
209     pub pstate: u64,
210 }
211 #[repr(C)]
212 #[repr(align(16))]
213 #[derive(Debug, Default, Copy, Clone)]
214 pub struct user_fpsimd_state {
215     pub vregs: [__uint128_t; 32usize],
216     pub fpsr: u32,
217     pub fpcr: u32,
218     pub __reserved: [u32; 2usize],
219 }
220 #[repr(C)]
221 #[derive(Debug, Default, Copy, Clone)]
222 pub struct user_hwdebug_state {
223     pub dbg_info: u32,
224     pub pad: u32,
225     pub dbg_regs: [user_hwdebug_state__bindgen_ty_1; 16usize],
226 }
227 #[repr(C)]
228 #[derive(Debug, Default, Copy, Clone)]
229 pub struct user_hwdebug_state__bindgen_ty_1 {
230     pub addr: u64,
231     pub ctrl: u32,
232     pub pad: u32,
233 }
234 #[repr(C)]
235 #[derive(Debug, Default, Copy, Clone)]
236 pub struct user_sve_header {
237     pub size: u32,
238     pub max_size: u32,
239     pub vl: u16,
240     pub max_vl: u16,
241     pub flags: u16,
242     pub __reserved: u16,
243 }
244 #[repr(C)]
245 #[derive(Debug, Default, Copy, Clone)]
246 pub struct user_pac_mask {
247     pub data_mask: u64,
248     pub insn_mask: u64,
249 }
250 #[repr(C)]
251 #[repr(align(16))]
252 #[derive(Debug, Default, Copy, Clone)]
253 pub struct user_pac_address_keys {
254     pub apiakey: __uint128_t,
255     pub apibkey: __uint128_t,
256     pub apdakey: __uint128_t,
257     pub apdbkey: __uint128_t,
258 }
259 #[repr(C)]
260 #[repr(align(16))]
261 #[derive(Debug, Default, Copy, Clone)]
262 pub struct user_pac_generic_keys {
263     pub apgakey: __uint128_t,
264 }
265 #[repr(C)]
266 #[derive(Debug, Default, Copy, Clone)]
267 pub struct user_za_header {
268     pub size: u32,
269     pub max_size: u32,
270     pub vl: u16,
271     pub max_vl: u16,
272     pub flags: u16,
273     pub __reserved: u16,
274 }
275 pub const GZVM_FUNC_CREATE_VM: ::std::os::raw::c_uint = 0;
276 pub const GZVM_FUNC_DESTROY_VM: ::std::os::raw::c_uint = 1;
277 pub const GZVM_FUNC_CREATE_VCPU: ::std::os::raw::c_uint = 2;
278 pub const GZVM_FUNC_DESTROY_VCPU: ::std::os::raw::c_uint = 3;
279 pub const GZVM_FUNC_SET_MEMREGION: ::std::os::raw::c_uint = 4;
280 pub const GZVM_FUNC_RUN: ::std::os::raw::c_uint = 5;
281 pub const GZVM_FUNC_GET_REGS: ::std::os::raw::c_uint = 6;
282 pub const GZVM_FUNC_SET_REGS: ::std::os::raw::c_uint = 7;
283 pub const GZVM_FUNC_GET_ONE_REG: ::std::os::raw::c_uint = 8;
284 pub const GZVM_FUNC_SET_ONE_REG: ::std::os::raw::c_uint = 9;
285 pub const GZVM_FUNC_IRQ_LINE: ::std::os::raw::c_uint = 10;
286 pub const GZVM_FUNC_CREATE_DEVICE: ::std::os::raw::c_uint = 11;
287 pub const GZVM_FUNC_PROBE: ::std::os::raw::c_uint = 12;
288 pub const GZVM_FUNC_ENABLE_CAP: ::std::os::raw::c_uint = 13;
289 pub const GZVM_FUNC_MEMREGION_PURPOSE: ::std::os::raw::c_uint = 14;
290 pub const GZVM_FUNC_SET_DTB_CONFIG: ::std::os::raw::c_uint = 15;
291 pub const NR_GZVM_FUNC: ::std::os::raw::c_uint = 16;
292 pub type _bindgen_ty_1 = ::std::os::raw::c_uint;
293 pub type gzvm_id_t = u16;
294 pub type gzvm_vcpu_id_t = u16;
295 pub const GZVM_EXIT_UNKNOWN: ::std::os::raw::c_uint = 2459041792;
296 pub const GZVM_EXIT_MMIO: ::std::os::raw::c_uint = 2459041793;
297 pub const GZVM_EXIT_HVC: ::std::os::raw::c_uint = 2459041794;
298 pub const GZVM_EXIT_IRQ: ::std::os::raw::c_uint = 2459041795;
299 pub const GZVM_EXIT_EXCEPTION: ::std::os::raw::c_uint = 2459041796;
300 pub const GZVM_EXIT_DEBUG: ::std::os::raw::c_uint = 2459041797;
301 pub const GZVM_EXIT_FAIL_ENTRY: ::std::os::raw::c_uint = 2459041798;
302 pub const GZVM_EXIT_INTERNAL_ERROR: ::std::os::raw::c_uint = 2459041799;
303 pub const GZVM_EXIT_SYSTEM_EVENT: ::std::os::raw::c_uint = 2459041800;
304 pub const GZVM_EXIT_SHUTDOWN: ::std::os::raw::c_uint = 2459041801;
305 pub type _bindgen_ty_2 = ::std::os::raw::c_uint;
306 #[repr(C)]
307 #[derive(Copy, Clone)]
308 pub struct gzvm_vcpu_run {
309     pub exit_reason: u32,
310     pub immediate_exit: u8,
311     pub padding1: [u8; 3usize],
312     pub __bindgen_anon_1: gzvm_vcpu_run__bindgen_ty_1,
313 }
314 #[repr(C)]
315 #[derive(Copy, Clone)]
316 pub union gzvm_vcpu_run__bindgen_ty_1 {
317     pub mmio: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_1,
318     pub fail_entry: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_2,
319     pub exception: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_3,
320     pub hvc: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_4,
321     pub internal: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_5,
322     pub system_event: gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_6,
323     pub padding: [::std::os::raw::c_char; 256usize],
324 }
325 #[repr(C)]
326 #[derive(Debug, Default, Copy, Clone)]
327 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_1 {
328     pub phys_addr: u64,
329     pub data: [u8; 8usize],
330     pub size: u64,
331     pub reg_nr: u32,
332     pub is_write: u8,
333 }
334 #[repr(C)]
335 #[derive(Debug, Default, Copy, Clone)]
336 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_2 {
337     pub hardware_entry_failure_reason: u64,
338     pub cpu: u32,
339 }
340 #[repr(C)]
341 #[derive(Debug, Default, Copy, Clone)]
342 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_3 {
343     pub exception: u32,
344     pub error_code: u32,
345 }
346 #[repr(C)]
347 #[derive(Debug, Default, Copy, Clone)]
348 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_4 {
349     pub args: [u64; 8usize],
350 }
351 #[repr(C)]
352 #[derive(Debug, Default, Copy, Clone)]
353 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_5 {
354     pub suberror: u32,
355     pub ndata: u32,
356     pub data: [u64; 16usize],
357 }
358 #[repr(C)]
359 #[derive(Debug, Default, Copy, Clone)]
360 pub struct gzvm_vcpu_run__bindgen_ty_1__bindgen_ty_6 {
361     pub type_: u32,
362     pub ndata: u32,
363     pub data: [u64; 16usize],
364 }
365 impl Default for gzvm_vcpu_run__bindgen_ty_1 {
default() -> Self366     fn default() -> Self {
367         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
368         unsafe {
369             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
370             s.assume_init()
371         }
372     }
373 }
374 impl Default for gzvm_vcpu_run {
default() -> Self375     fn default() -> Self {
376         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
377         unsafe {
378             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
379             s.assume_init()
380         }
381     }
382 }
383 #[repr(C)]
384 #[derive(Debug, Default, Copy, Clone)]
385 pub struct gzvm_vcpu_hwstate {
386     pub nr_lrs: u32,
387     pub lr: [u64; 16usize],
388 }
389 #[repr(C)]
390 #[derive(Debug, Default, Copy, Clone)]
391 pub struct gzvm_memory_region {
392     pub slot: u32,
393     pub flags: u32,
394     pub guest_phys_addr: u64,
395     pub memory_size: u64,
396 }
397 #[repr(C)]
398 #[derive(Debug, Default, Copy, Clone)]
399 pub struct gzvm_userspace_memory_region {
400     pub slot: u32,
401     pub flags: u32,
402     pub guest_phys_addr: u64,
403     pub memory_size: u64,
404     pub userspace_addr: u64,
405 }
406 #[repr(C)]
407 #[derive(Copy, Clone)]
408 pub struct gzvm_irq_level {
409     pub __bindgen_anon_1: gzvm_irq_level__bindgen_ty_1,
410     pub level: u32,
411 }
412 #[repr(C)]
413 #[derive(Copy, Clone)]
414 pub union gzvm_irq_level__bindgen_ty_1 {
415     pub irq: u32,
416     pub status: i32,
417 }
418 impl Default for gzvm_irq_level__bindgen_ty_1 {
default() -> Self419     fn default() -> Self {
420         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
421         unsafe {
422             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
423             s.assume_init()
424         }
425     }
426 }
427 impl Default for gzvm_irq_level {
default() -> Self428     fn default() -> Self {
429         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
430         unsafe {
431             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
432             s.assume_init()
433         }
434     }
435 }
436 #[repr(C)]
437 #[derive(Debug, Default, Copy, Clone)]
438 pub struct gzvm_irqfd {
439     pub fd: u32,
440     pub gsi: u32,
441     pub flags: u32,
442     pub resamplefd: u32,
443     pub pad: [u8; 16usize],
444 }
445 pub const gzvm_ioeventfd_flag_nr_datamatch: ::std::os::raw::c_uint = 0;
446 pub const gzvm_ioeventfd_flag_nr_pio: ::std::os::raw::c_uint = 1;
447 pub const gzvm_ioeventfd_flag_nr_deassign: ::std::os::raw::c_uint = 2;
448 pub const gzvm_ioeventfd_flag_nr_max: ::std::os::raw::c_uint = 3;
449 pub type _bindgen_ty_3 = ::std::os::raw::c_uint;
450 #[repr(C)]
451 #[derive(Debug, Copy, Clone)]
452 pub struct gzvm_ioeventfd {
453     pub datamatch: u64,
454     pub addr: u64,
455     pub len: u32,
456     pub fd: i32,
457     pub flags: u32,
458     pub pad: [u8; 36usize],
459 }
460 impl Default for gzvm_ioeventfd {
default() -> Self461     fn default() -> Self {
462         let mut s = ::std::mem::MaybeUninit::<Self>::uninit();
463         unsafe {
464             ::std::ptr::write_bytes(s.as_mut_ptr(), 0, 1);
465             s.assume_init()
466         }
467     }
468 }
469 pub const gzvm_device_type_GZVM_DEV_TYPE_ARM_VGIC_V3_DIST: gzvm_device_type = 0;
470 pub const gzvm_device_type_GZVM_DEV_TYPE_ARM_VGIC_V3_REDIST: gzvm_device_type = 1;
471 pub const gzvm_device_type_GZVM_DEV_TYPE_MAX: gzvm_device_type = 2;
472 pub type gzvm_device_type = ::std::os::raw::c_uint;
473 #[repr(C)]
474 #[derive(Debug, Default, Copy, Clone)]
475 pub struct gzvm_create_device {
476     pub dev_type: u32,
477     pub id: u32,
478     pub flags: u64,
479     pub dev_addr: u64,
480     pub dev_reg_size: u64,
481     pub attr_addr: u64,
482     pub attr_size: u64,
483 }
484 #[repr(C)]
485 #[derive(Debug, Default, Copy, Clone)]
486 pub struct gzvm_dtb_config {
487     pub dtb_addr: u64,
488     pub dtb_size: u64,
489 }
490 #[repr(C)]
491 #[derive(Debug, Default, Copy, Clone)]
492 pub struct gzvm_enable_cap {
493     pub cap: u64,
494     pub args: [u64; 5usize],
495 }
496 #[repr(C)]
497 #[derive(Debug, Default, Copy, Clone)]
498 pub struct gzvm_one_reg {
499     pub id: u64,
500     pub addr: u64,
501 }
502 #[repr(C)]
503 #[repr(align(16))]
504 #[derive(Debug, Default, Copy, Clone)]
505 pub struct gzvm_regs {
506     pub regs: user_pt_regs,
507     pub sp_el1: u64,
508     pub elr_el1: u64,
509     pub spsr: [u64; 5usize],
510     pub __bindgen_padding_0: u64,
511     pub fp_regs: user_fpsimd_state,
512 }
513 pub type __uint128_t = u128;
514