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/
name = "bits"
version = "0.1.0"
dependencies = [
- "qemu_api_macros",
+ "qemu_macros",
]
[[package]]
"bql",
"common",
"migration",
- "qemu_api_macros",
+ "qemu_macros",
"qom",
"util",
]
"hwcore",
"migration",
"qemu_api",
- "qemu_api_macros",
+ "qemu_macros",
"qom",
"system",
"util",
"chardev",
"common",
"migration",
- "qemu_api_macros",
+ "qemu_macros",
"qom",
"system",
"util",
version = "0.1.0"
dependencies = [
"common",
- "qemu_api_macros",
+ "qemu_macros",
"util",
]
"hwcore",
"migration",
"qemu_api",
- "qemu_api_macros",
+ "qemu_macros",
"qom",
"system",
"util",
"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",
"bql",
"common",
"migration",
- "qemu_api_macros",
+ "qemu_macros",
"util",
]
version = "0.1.0"
dependencies = [
"common",
- "qemu_api_macros",
+ "qemu_macros",
"qom",
"util",
]
"common",
"foreign",
"libc",
- "qemu_api_macros",
+ "qemu_macros",
]
[[package]]
"bql",
"common",
"migration",
- "qemu-api-macros",
+ "qemu-macros",
"qemu-api",
"qom",
"system",
rust-version.workspace = true
[dependencies]
-qemu_api_macros = { path = "../qemu-api-macros" }
+qemu_macros = { path = "../qemu-macros" }
[lints]
workspace = true
'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)
};
{ $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
};
}
migration = { path = "../migration" }
qom = { path = "../qom" }
util = { path = "../util" }
-qemu_api_macros = { path = "../qemu-api-macros" }
+qemu_macros = { path = "../qemu-macros" }
[lints]
workspace = true
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])
/// 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;
/// 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
///
///
/// 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;
}
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
util_rs,
migration_rs,
bql_rs,
- qemu_api_macros,
+ qemu_macros,
qom_rs,
chardev_rs,
system_rs,
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'},
)])
}
#[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>,
}
#[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>,
#[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
///
migration = { path = "../../migration" }
system = { path = "../../system" }
util = { path = "../../util" }
-qemu_api_macros = { path = "../../qemu-api-macros" }
+qemu_macros = { path = "../../qemu-macros" }
[lints]
workspace = true
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],
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',
/// 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
/// 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 {}
/// 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 {}
/// 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
/// 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 {}
.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)]
}
#[repr(C)]
-#[derive(qemu_api_macros::Object, qemu_api_macros::Device)]
+#[derive(qemu_macros::Object, qemu_macros::Device)]
pub struct DummyChildState {
parent: ParentField<DummyState>,
}
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]
util_rs,
migration_rs,
bql_rs,
- qemu_api_macros,
+ qemu_macros,
qom_rs,
system_rs,
hwcore_rs,
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'},
)])
/// 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
ROUTE = 16,
}
-#[derive(qemu_api_macros::TryInto)]
+#[derive(qemu_macros::TryInto)]
#[repr(u64)]
#[allow(non_camel_case_types)]
/// Global registers
/// 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,
genrs = []
subdir('common')
-subdir('qemu-api-macros')
+subdir('qemu-macros')
subdir('bits')
subdir('util')
subdir('migration')
[dependencies]
common = { path = "../common" }
util = { path = "../util" }
-qemu_api_macros = { path = "../qemu-api-macros" }
+qemu_macros = { path = "../qemu-macros" }
[lints]
workspace = true
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
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(
[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"
-_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: [
],
)
-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'])
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]
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
/// 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 {}
///
/// ```ignore
/// #[repr(C)]
-/// #[derive(qemu_api_macros::Object)]
+/// #[derive(qemu_macros::Object)]
/// pub struct MyDevice {
/// parent: ParentField<DeviceState>,
/// ...
common = { path = "../common" }
qom = { path = "../qom" }
util = { path = "../util" }
-qemu_api_macros = { path = "../qemu-api-macros" }
+qemu_macros = { path = "../qemu-macros" }
[lints]
workspace = true
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])
/// 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 {}
foreign = { workspace = true }
libc = { workspace = true }
common = { path = "../common" }
-qemu_api_macros = { path = "../qemu-api-macros" }
+qemu_macros = { path = "../qemu-macros" }
[lints]
workspace = true
),
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])
/// 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 {}