aboutsummaryrefslogtreecommitdiff
path: root/rust/qemu-api/src/qdev.rs
diff options
context:
space:
mode:
authorZhao Liu <zhao1.liu@intel.com>2025-02-10 11:00:43 +0800
committerPaolo Bonzini <pbonzini@redhat.com>2025-02-13 12:51:34 +0100
commit7f2d4181a3efc3c1fd9de4bdca81317a1116239a (patch)
treeff34e980ccbbd03bdbee7839f91ba7fdd086b15a /rust/qemu-api/src/qdev.rs
parentf32352ff9ea1ce3bdf432e29a587ccf84b1ec57a (diff)
downloadqemu-7f2d4181a3efc3c1fd9de4bdca81317a1116239a.zip
qemu-7f2d4181a3efc3c1fd9de4bdca81317a1116239a.tar.gz
qemu-7f2d4181a3efc3c1fd9de4bdca81317a1116239a.tar.bz2
rust/qdev: add the macro to define bit property
HPET device (Rust device) needs to define the bit type property. Add a variant of define_property macro to define bit type property. Signed-off-by: Zhao Liu <zhao1.liu@intel.com> Link: https://lore.kernel.org/r/20250210030051.2562726-3-zhao1.liu@intel.com Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'rust/qemu-api/src/qdev.rs')
-rw-r--r--rust/qemu-api/src/qdev.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/rust/qemu-api/src/qdev.rs b/rust/qemu-api/src/qdev.rs
index 73343e1..c44a228 100644
--- a/rust/qemu-api/src/qdev.rs
+++ b/rust/qemu-api/src/qdev.rs
@@ -168,6 +168,18 @@ where
#[macro_export]
macro_rules! define_property {
+ ($name:expr, $state:ty, $field:ident, $prop:expr, $type:ty, bit = $bitnr:expr, default = $defval:expr$(,)*) => {
+ $crate::bindings::Property {
+ // use associated function syntax for type checking
+ name: ::std::ffi::CStr::as_ptr($name),
+ info: $prop,
+ offset: $crate::offset_of!($state, $field) as isize,
+ bitnr: $bitnr,
+ set_default: true,
+ defval: $crate::bindings::Property__bindgen_ty_1 { u: $defval as u64 },
+ ..$crate::zeroable::Zeroable::ZERO
+ }
+ };
($name:expr, $state:ty, $field:ident, $prop:expr, $type:ty, default = $defval:expr$(,)*) => {
$crate::bindings::Property {
// use associated function syntax for type checking