mirror of
https://github.com/qemu/qemu.git
synced 2026-02-04 05:35:39 +00:00
rust: rename qemu_api_macros -> qemu_macros
Since "qemu_api" is no longer the unique crate to provide APIs. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Link: https://lore.kernel.org/r/20250827104147.717203-17-marcandre.lureau@redhat.com Reviewed-by: Zhao Liu <zhao1.liu@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
committed by
Paolo Bonzini
parent
5e588c9d08
commit
0d93f81773
@@ -3521,7 +3521,7 @@ F: rust/common/
|
||||
F: rust/hw/core/
|
||||
F: rust/migration/
|
||||
F: rust/qemu-api
|
||||
F: rust/qemu-api-macros
|
||||
F: rust/qemu-macros/
|
||||
F: rust/qom/
|
||||
F: rust/rustfmt.toml
|
||||
F: rust/system/
|
||||
|
||||
22
rust/Cargo.lock
generated
22
rust/Cargo.lock
generated
@@ -41,7 +41,7 @@ dependencies = [
|
||||
name = "bits"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -58,7 +58,7 @@ dependencies = [
|
||||
"bql",
|
||||
"common",
|
||||
"migration",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"util",
|
||||
]
|
||||
@@ -94,7 +94,7 @@ dependencies = [
|
||||
"hwcore",
|
||||
"migration",
|
||||
"qemu_api",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"system",
|
||||
"util",
|
||||
@@ -108,7 +108,7 @@ dependencies = [
|
||||
"chardev",
|
||||
"common",
|
||||
"migration",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"system",
|
||||
"util",
|
||||
@@ -134,7 +134,7 @@ name = "migration"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"common",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"util",
|
||||
]
|
||||
|
||||
@@ -151,7 +151,7 @@ dependencies = [
|
||||
"hwcore",
|
||||
"migration",
|
||||
"qemu_api",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"system",
|
||||
"util",
|
||||
@@ -198,14 +198,14 @@ dependencies = [
|
||||
"common",
|
||||
"hwcore",
|
||||
"migration",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"system",
|
||||
"util",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "qemu_api_macros"
|
||||
name = "qemu_macros"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
@@ -220,7 +220,7 @@ dependencies = [
|
||||
"bql",
|
||||
"common",
|
||||
"migration",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"util",
|
||||
]
|
||||
|
||||
@@ -249,7 +249,7 @@ name = "system"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"common",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
"qom",
|
||||
"util",
|
||||
]
|
||||
@@ -268,7 +268,7 @@ dependencies = [
|
||||
"common",
|
||||
"foreign",
|
||||
"libc",
|
||||
"qemu_api_macros",
|
||||
"qemu_macros",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -5,7 +5,7 @@ members = [
|
||||
"bql",
|
||||
"common",
|
||||
"migration",
|
||||
"qemu-api-macros",
|
||||
"qemu-macros",
|
||||
"qemu-api",
|
||||
"qom",
|
||||
"system",
|
||||
|
||||
@@ -13,7 +13,7 @@ repository.workspace = true
|
||||
rust-version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -3,7 +3,7 @@ _bits_rs = static_library(
|
||||
'src/lib.rs',
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
dependencies: [qemu_api_macros],
|
||||
dependencies: [qemu_macros],
|
||||
)
|
||||
|
||||
bits_rs = declare_dependency(link_with: _bits_rs)
|
||||
|
||||
@@ -380,11 +380,11 @@ macro_rules! bits {
|
||||
};
|
||||
|
||||
{ $type:ty: $expr:expr } => {
|
||||
::qemu_api_macros::bits_const_internal! { $type @ ($expr) }
|
||||
::qemu_macros::bits_const_internal! { $type @ ($expr) }
|
||||
};
|
||||
|
||||
{ $type:ty as $int_type:ty: $expr:expr } => {
|
||||
(::qemu_api_macros::bits_const_internal! { $type @ ($expr) }.into_bits()) as $int_type
|
||||
(::qemu_macros::bits_const_internal! { $type @ ($expr) }.into_bits()) as $int_type
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ bql = { path = "../bql" }
|
||||
migration = { path = "../migration" }
|
||||
qom = { path = "../qom" }
|
||||
util = { path = "../util" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -35,7 +35,7 @@ _chardev_rs = static_library(
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
link_with: [_bql_rs, _migration_rs, _qom_rs, _util_rs],
|
||||
dependencies: [common_rs, qemu_api_macros],
|
||||
dependencies: [common_rs, qemu_macros],
|
||||
)
|
||||
|
||||
chardev_rs = declare_dependency(link_with: [_chardev_rs], dependencies: [qemu_api_macros, chardev, qemuutil])
|
||||
chardev_rs = declare_dependency(link_with: [_chardev_rs], dependencies: [qemu_macros, chardev, qemuutil])
|
||||
|
||||
@@ -26,7 +26,7 @@ use crate::bindings;
|
||||
|
||||
/// A safe wrapper around [`bindings::Chardev`].
|
||||
#[repr(transparent)]
|
||||
#[derive(qemu_api_macros::Wrapper)]
|
||||
#[derive(qemu_macros::Wrapper)]
|
||||
pub struct Chardev(Opaque<bindings::Chardev>);
|
||||
|
||||
pub type ChardevClass = bindings::ChardevClass;
|
||||
|
||||
@@ -192,7 +192,7 @@ impl<T: Default> Opaque<T> {
|
||||
|
||||
/// Annotates [`Self`] as a transparent wrapper for another type.
|
||||
///
|
||||
/// Usually defined via the [`qemu_api_macros::Wrapper`] derive macro.
|
||||
/// Usually defined via the [`qemu_macros::Wrapper`] derive macro.
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@@ -228,7 +228,7 @@ impl<T: Default> Opaque<T> {
|
||||
///
|
||||
/// They are not defined here to allow them to be `const`.
|
||||
///
|
||||
/// [`qemu_api_macros::Wrapper`]: ../../qemu_api_macros/derive.Wrapper.html
|
||||
/// [`qemu_macros::Wrapper`]: ../../qemu_macros/derive.Wrapper.html
|
||||
pub unsafe trait Wrapper {
|
||||
type Wrapped;
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ chardev = { path = "../../../chardev" }
|
||||
system = { path = "../../../system" }
|
||||
hwcore = { path = "../../../hw/core" }
|
||||
qemu_api = { path = "../../../qemu-api" }
|
||||
qemu_api_macros = { path = "../../../qemu-api-macros" }
|
||||
qemu_macros = { path = "../../../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -12,7 +12,7 @@ _libpl011_rs = static_library(
|
||||
util_rs,
|
||||
migration_rs,
|
||||
bql_rs,
|
||||
qemu_api_macros,
|
||||
qemu_macros,
|
||||
qom_rs,
|
||||
chardev_rs,
|
||||
system_rs,
|
||||
@@ -24,6 +24,6 @@ rust_devices_ss.add(when: 'CONFIG_X_PL011_RUST', if_true: [declare_dependency(
|
||||
link_whole: [_libpl011_rs],
|
||||
# Putting proc macro crates in `dependencies` is necessary for Meson to find
|
||||
# them when compiling the root per-target static rust lib.
|
||||
dependencies: [bilge_impl_rs, qemu_api_macros],
|
||||
dependencies: [bilge_impl_rs, qemu_macros],
|
||||
variables: {'crate': 'pl011'},
|
||||
)])
|
||||
|
||||
@@ -97,7 +97,7 @@ pub struct PL011Registers {
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(qemu_api_macros::Object, qemu_api_macros::Device)]
|
||||
#[derive(qemu_macros::Object, qemu_macros::Device)]
|
||||
/// PL011 Device Model in QEMU
|
||||
pub struct PL011State {
|
||||
pub parent_obj: ParentField<SysBusDevice>,
|
||||
@@ -683,7 +683,7 @@ pub unsafe extern "C" fn pl011_create(
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(qemu_api_macros::Object, qemu_api_macros::Device)]
|
||||
#[derive(qemu_macros::Object, qemu_macros::Device)]
|
||||
/// PL011 Luminary device model.
|
||||
pub struct PL011Luminary {
|
||||
parent_obj: ParentField<PL011State>,
|
||||
|
||||
@@ -16,7 +16,7 @@ use migration::{impl_vmstate_bitsized, impl_vmstate_forward};
|
||||
#[doc(alias = "offset")]
|
||||
#[allow(non_camel_case_types)]
|
||||
#[repr(u64)]
|
||||
#[derive(Debug, Eq, PartialEq, qemu_api_macros::TryInto)]
|
||||
#[derive(Debug, Eq, PartialEq, qemu_macros::TryInto)]
|
||||
pub enum RegisterOffset {
|
||||
/// Data Register
|
||||
///
|
||||
|
||||
@@ -20,7 +20,7 @@ chardev = { path = "../../chardev" }
|
||||
migration = { path = "../../migration" }
|
||||
system = { path = "../../system" }
|
||||
util = { path = "../../util" }
|
||||
qemu_api_macros = { path = "../../qemu-api-macros" }
|
||||
qemu_macros = { path = "../../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -58,7 +58,7 @@ _hwcore_rs = static_library(
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
link_with: [_bql_rs, _chardev_rs, _migration_rs, _qom_rs, _system_rs, _util_rs],
|
||||
dependencies: [qemu_api_macros, common_rs],
|
||||
dependencies: [qemu_macros, common_rs],
|
||||
)
|
||||
|
||||
hwcore_rs = declare_dependency(link_with: [_hwcore_rs],
|
||||
@@ -71,7 +71,7 @@ test('rust-hwcore-rs-integration',
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_args: ['--test'],
|
||||
install: false,
|
||||
dependencies: [common_rs, hwcore_rs, bql_rs, migration_rs, qemu_api_macros, util_rs]),
|
||||
dependencies: [common_rs, hwcore_rs, bql_rs, migration_rs, qemu_macros, util_rs]),
|
||||
args: [
|
||||
'--test', '--test-threads', '1',
|
||||
'--format', 'pretty',
|
||||
|
||||
@@ -18,7 +18,7 @@ use crate::bindings::{self, qemu_set_irq};
|
||||
|
||||
/// An opaque wrapper around [`bindings::IRQState`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct IRQState(Opaque<bindings::IRQState>);
|
||||
|
||||
/// Interrupt sources are used by devices to pass changes to a value (typically
|
||||
|
||||
@@ -23,7 +23,7 @@ use crate::{
|
||||
|
||||
/// A safe wrapper around [`bindings::Clock`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct Clock(Opaque<bindings::Clock>);
|
||||
|
||||
unsafe impl Send for Clock {}
|
||||
@@ -31,7 +31,7 @@ unsafe impl Sync for Clock {}
|
||||
|
||||
/// A safe wrapper around [`bindings::DeviceState`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct DeviceState(Opaque<bindings::DeviceState>);
|
||||
|
||||
unsafe impl Send for DeviceState {}
|
||||
@@ -101,7 +101,7 @@ unsafe extern "C" fn rust_resettable_exit_fn<T: ResettablePhasesImpl>(
|
||||
|
||||
/// Helper trait to return pointer to a [`bindings::PropertyInfo`] for a type.
|
||||
///
|
||||
/// This trait is used by [`qemu_api_macros::Device`] derive macro.
|
||||
/// This trait is used by [`qemu_macros::Device`] derive macro.
|
||||
///
|
||||
/// Base types that already have `qdev_prop_*` globals in the QEMU API should
|
||||
/// use those values as exported by the [`bindings`] module, instead of
|
||||
|
||||
@@ -19,7 +19,7 @@ use crate::{
|
||||
|
||||
/// A safe wrapper around [`bindings::SysBusDevice`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct SysBusDevice(Opaque<bindings::SysBusDevice>);
|
||||
|
||||
unsafe impl Send for SysBusDevice {}
|
||||
|
||||
@@ -17,7 +17,7 @@ pub const VMSTATE: VMStateDescription<DummyState> = VMStateDescriptionBuilder::<
|
||||
.build();
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(qemu_api_macros::Object, qemu_api_macros::Device)]
|
||||
#[derive(qemu_macros::Object, qemu_macros::Device)]
|
||||
pub struct DummyState {
|
||||
parent: ParentField<DeviceState>,
|
||||
#[property(rename = "migrate-clk", default = true)]
|
||||
@@ -54,7 +54,7 @@ impl DeviceImpl for DummyState {
|
||||
}
|
||||
|
||||
#[repr(C)]
|
||||
#[derive(qemu_api_macros::Object, qemu_api_macros::Device)]
|
||||
#[derive(qemu_macros::Object, qemu_macros::Device)]
|
||||
pub struct DummyChildState {
|
||||
parent: ParentField<DummyState>,
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ bql = { path = "../../../bql" }
|
||||
qom = { path = "../../../qom" }
|
||||
system = { path = "../../../system" }
|
||||
qemu_api = { path = "../../../qemu-api" }
|
||||
qemu_api_macros = { path = "../../../qemu-api-macros" }
|
||||
qemu_macros = { path = "../../../qemu-macros" }
|
||||
hwcore = { path = "../../../hw/core" }
|
||||
|
||||
[lints]
|
||||
|
||||
@@ -9,7 +9,7 @@ _libhpet_rs = static_library(
|
||||
util_rs,
|
||||
migration_rs,
|
||||
bql_rs,
|
||||
qemu_api_macros,
|
||||
qemu_macros,
|
||||
qom_rs,
|
||||
system_rs,
|
||||
hwcore_rs,
|
||||
@@ -20,6 +20,6 @@ rust_devices_ss.add(when: 'CONFIG_X_HPET_RUST', if_true: [declare_dependency(
|
||||
link_whole: [_libhpet_rs],
|
||||
# Putting proc macro crates in `dependencies` is necessary for Meson to find
|
||||
# them when compiling the root per-target static rust lib.
|
||||
dependencies: [qemu_api_macros],
|
||||
dependencies: [qemu_macros],
|
||||
variables: {'crate': 'hpet'},
|
||||
)])
|
||||
|
||||
@@ -97,7 +97,7 @@ const HPET_TN_CFG_FSB_CAP_SHIFT: usize = 15;
|
||||
/// Timer N Interrupt Routing Capability (bits 32:63)
|
||||
const HPET_TN_CFG_INT_ROUTE_CAP_SHIFT: usize = 32;
|
||||
|
||||
#[derive(qemu_api_macros::TryInto)]
|
||||
#[derive(qemu_macros::TryInto)]
|
||||
#[repr(u64)]
|
||||
#[allow(non_camel_case_types)]
|
||||
/// Timer registers, masked by 0x18
|
||||
@@ -110,7 +110,7 @@ enum TimerRegister {
|
||||
ROUTE = 16,
|
||||
}
|
||||
|
||||
#[derive(qemu_api_macros::TryInto)]
|
||||
#[derive(qemu_macros::TryInto)]
|
||||
#[repr(u64)]
|
||||
#[allow(non_camel_case_types)]
|
||||
/// Global registers
|
||||
@@ -520,7 +520,7 @@ impl HPETTimer {
|
||||
|
||||
/// HPET Event Timer Block Abstraction
|
||||
#[repr(C)]
|
||||
#[derive(qemu_api_macros::Object)]
|
||||
#[derive(qemu_macros::Object)]
|
||||
pub struct HPETState {
|
||||
parent_obj: ParentField<SysBusDevice>,
|
||||
iomem: MemoryRegion,
|
||||
|
||||
@@ -23,7 +23,7 @@ qemuutil_rs = qemuutil.partial_dependency(link_args: true, links: true)
|
||||
genrs = []
|
||||
|
||||
subdir('common')
|
||||
subdir('qemu-api-macros')
|
||||
subdir('qemu-macros')
|
||||
subdir('bits')
|
||||
subdir('util')
|
||||
subdir('migration')
|
||||
|
||||
@@ -15,7 +15,7 @@ rust-version.workspace = true
|
||||
[dependencies]
|
||||
common = { path = "../common" }
|
||||
util = { path = "../util" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -20,9 +20,9 @@ hwcore = { path = "../hw/core" }
|
||||
migration = { path = "../migration" }
|
||||
util = { path = "../util" }
|
||||
bql = { path = "../bql" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
qom = { path = "../qom" }
|
||||
system = { path = "../system" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -52,12 +52,12 @@ _qemu_api_rs = static_library(
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
rust_args: _qemu_api_cfg,
|
||||
dependencies: [anyhow_rs, bql_rs, chardev_rs, common_rs, foreign_rs, hwcore_rs, libc_rs, migration_rs, qemu_api_macros,
|
||||
dependencies: [anyhow_rs, bql_rs, chardev_rs, common_rs, foreign_rs, hwcore_rs, libc_rs, migration_rs, qemu_macros,
|
||||
qom_rs, system_rs, util_rs, hwcore],
|
||||
)
|
||||
|
||||
qemu_api_rs = declare_dependency(link_with: [_qemu_api_rs],
|
||||
dependencies: [qemu_api_macros, qom, hwcore, chardev, migration])
|
||||
dependencies: [qemu_macros, qom, hwcore, chardev, migration])
|
||||
|
||||
test('rust-qemu-api-integration',
|
||||
executable(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "qemu_api_macros"
|
||||
name = "qemu_macros"
|
||||
version = "0.1.0"
|
||||
authors = ["Manos Pitsidianakis <manos.pitsidianakis@linaro.org>"]
|
||||
description = "Rust bindings for QEMU - Utility macros"
|
||||
@@ -1,5 +1,5 @@
|
||||
_qemu_api_macros_rs = rust.proc_macro(
|
||||
'qemu_api_macros',
|
||||
_qemu_macros_rs = rust.proc_macro(
|
||||
'qemu_macros',
|
||||
files('src/lib.rs'),
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_args: [
|
||||
@@ -14,9 +14,9 @@ _qemu_api_macros_rs = rust.proc_macro(
|
||||
],
|
||||
)
|
||||
|
||||
qemu_api_macros = declare_dependency(
|
||||
link_with: _qemu_api_macros_rs,
|
||||
qemu_macros = declare_dependency(
|
||||
link_with: _qemu_macros_rs,
|
||||
)
|
||||
|
||||
rust.test('rust-qemu-api-macros-tests', _qemu_api_macros_rs,
|
||||
rust.test('rust-qemu-macros-tests', _qemu_macros_rs,
|
||||
suite: ['unit', 'rust'])
|
||||
@@ -16,7 +16,7 @@ rust-version.workspace = true
|
||||
common = { path = "../common" }
|
||||
bql = { path = "../bql" }
|
||||
migration = { path = "../migration" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
util = { path = "../util" }
|
||||
|
||||
[lints]
|
||||
|
||||
@@ -28,10 +28,10 @@ _qom_rs = static_library(
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
link_with: [_bql_rs, _migration_rs],
|
||||
dependencies: [common_rs, qemu_api_macros],
|
||||
dependencies: [common_rs, qemu_macros],
|
||||
)
|
||||
|
||||
qom_rs = declare_dependency(link_with: [_qom_rs], dependencies: [qemu_api_macros, qom])
|
||||
qom_rs = declare_dependency(link_with: [_qom_rs], dependencies: [qemu_macros, qom])
|
||||
|
||||
# Doctests are essentially integration tests, so they need the same dependencies.
|
||||
# Note that running them requires the object files for C code, so place them
|
||||
|
||||
@@ -112,7 +112,7 @@ pub use crate::bindings::{type_register_static, ObjectClass};
|
||||
|
||||
/// A safe wrapper around [`bindings::Object`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct Object(Opaque<bindings::Object>);
|
||||
|
||||
unsafe impl Send for Object {}
|
||||
@@ -173,7 +173,7 @@ macro_rules! qom_isa {
|
||||
///
|
||||
/// ```ignore
|
||||
/// #[repr(C)]
|
||||
/// #[derive(qemu_api_macros::Object)]
|
||||
/// #[derive(qemu_macros::Object)]
|
||||
/// pub struct MyDevice {
|
||||
/// parent: ParentField<DeviceState>,
|
||||
/// ...
|
||||
|
||||
@@ -16,7 +16,7 @@ rust-version.workspace = true
|
||||
common = { path = "../common" }
|
||||
qom = { path = "../qom" }
|
||||
util = { path = "../util" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -35,8 +35,8 @@ _system_rs = static_library(
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
link_with: [_bql_rs, _migration_rs, _qom_rs, _util_rs],
|
||||
dependencies: [common_rs, qemu_api_macros],
|
||||
dependencies: [common_rs, qemu_macros],
|
||||
)
|
||||
|
||||
system_rs = declare_dependency(link_with: [_system_rs],
|
||||
dependencies: [qemu_api_macros, hwcore])
|
||||
dependencies: [qemu_macros, hwcore])
|
||||
|
||||
@@ -129,7 +129,7 @@ impl<T> Default for MemoryRegionOpsBuilder<T> {
|
||||
|
||||
/// A safe wrapper around [`bindings::MemoryRegion`].
|
||||
#[repr(transparent)]
|
||||
#[derive(qemu_api_macros::Wrapper)]
|
||||
#[derive(qemu_macros::Wrapper)]
|
||||
pub struct MemoryRegion(Opaque<bindings::MemoryRegion>);
|
||||
|
||||
unsafe impl Send for MemoryRegion {}
|
||||
|
||||
@@ -17,7 +17,7 @@ anyhow = { workspace = true }
|
||||
foreign = { workspace = true }
|
||||
libc = { workspace = true }
|
||||
common = { path = "../common" }
|
||||
qemu_api_macros = { path = "../qemu-api-macros" }
|
||||
qemu_macros = { path = "../qemu-macros" }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
|
||||
@@ -39,7 +39,7 @@ _util_rs = static_library(
|
||||
),
|
||||
override_options: ['rust_std=2021', 'build.rust_std=2021'],
|
||||
rust_abi: 'rust',
|
||||
dependencies: [anyhow_rs, libc_rs, foreign_rs, common_rs, qemu_api_macros, qom, qemuutil],
|
||||
dependencies: [anyhow_rs, libc_rs, foreign_rs, common_rs, qemu_macros, qom, qemuutil],
|
||||
)
|
||||
|
||||
util_rs = declare_dependency(link_with: [_util_rs], dependencies: [qemuutil, qom])
|
||||
|
||||
@@ -15,14 +15,14 @@ use crate::bindings::{
|
||||
|
||||
/// A safe wrapper around [`bindings::QEMUTimer`].
|
||||
#[repr(transparent)]
|
||||
#[derive(Debug, qemu_api_macros::Wrapper)]
|
||||
#[derive(Debug, qemu_macros::Wrapper)]
|
||||
pub struct Timer(Opaque<bindings::QEMUTimer>);
|
||||
|
||||
unsafe impl Send for Timer {}
|
||||
unsafe impl Sync for Timer {}
|
||||
|
||||
#[repr(transparent)]
|
||||
#[derive(qemu_api_macros::Wrapper)]
|
||||
#[derive(qemu_macros::Wrapper)]
|
||||
pub struct TimerListGroup(Opaque<bindings::QEMUTimerListGroup>);
|
||||
|
||||
unsafe impl Send for TimerListGroup {}
|
||||
|
||||
Reference in New Issue
Block a user