mirror of
https://github.com/qemu/qemu.git
synced 2026-04-23 14:42:54 +00:00
Move raw FFI bindings generation to separate crates. This makes it possible to reuse bindgen declarations for a header file in its dependencies (this was not the case before this change), while keeping multiple -sys crates to avoid rebuilding all the code whenever something changes. Because the -sys crates are generated in dependency order, this also enforces that the crates are organized in something that resembles the dependencies between C headers. The meson.build for rust-safe crates becomes simpler, and it should be possible in the future to let Meson's cargo support handle most of it. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> [General cleanup and Python script. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
45 lines
1.3 KiB
Rust
45 lines
1.3 KiB
Rust
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
#![allow(
|
|
dead_code,
|
|
improper_ctypes_definitions,
|
|
improper_ctypes,
|
|
non_camel_case_types,
|
|
non_snake_case,
|
|
non_upper_case_globals,
|
|
unnecessary_transmutes,
|
|
unsafe_op_in_unsafe_fn,
|
|
clippy::pedantic,
|
|
clippy::restriction,
|
|
clippy::style,
|
|
clippy::missing_const_for_fn,
|
|
clippy::ptr_offset_with_cast,
|
|
clippy::useless_transmute,
|
|
clippy::missing_safety_doc,
|
|
clippy::too_many_arguments
|
|
)]
|
|
|
|
use common::Zeroable;
|
|
use hwcore_sys::{qemu_irq, DeviceClass, DeviceState};
|
|
use qom_sys::{InterfaceClass, Object, ObjectClass};
|
|
use util_sys::{Error, EventNotifier, QEMUBH};
|
|
|
|
#[cfg(MESON)]
|
|
include!("bindings.inc.rs");
|
|
|
|
#[cfg(not(MESON))]
|
|
include!(concat!(env!("OUT_DIR"), "/bindings.inc.rs"));
|
|
|
|
// SAFETY: these are constants and vtables; the Send and Sync requirements
|
|
// are deferred to the unsafe callbacks that they contain
|
|
unsafe impl Send for MemoryRegionOps {}
|
|
unsafe impl Sync for MemoryRegionOps {}
|
|
|
|
// SAFETY: this is a pure data struct
|
|
unsafe impl Send for CoalescedMemoryRange {}
|
|
unsafe impl Sync for CoalescedMemoryRange {}
|
|
|
|
unsafe impl Zeroable for MemoryRegionOps__bindgen_ty_1 {}
|
|
unsafe impl Zeroable for MemoryRegionOps__bindgen_ty_2 {}
|
|
unsafe impl Zeroable for MemoryRegionOps {}
|
|
unsafe impl Zeroable for MemTxAttrs {}
|