// Copyright 2024, Linaro Limited | |
// Author(s): Manos Pitsidianakis <manos.pitsidianakis@linaro.org> | |
// SPDX-License-Identifier: GPL-2.0-or-later | |
use crate::{ | |
bindings::*, declare_properties, define_property, device_class_init, vm_state_description, | |
}; | |
#[test] | |
fn test_device_decl_macros() { | |
// Test that macros can compile. | |
vm_state_description! { | |
VMSTATE, | |
name: c"name", | |
unmigratable: true, | |
} | |
#[repr(C)] | |
pub struct DummyState { | |
pub char_backend: CharBackend, | |
pub migrate_clock: bool, | |
} | |
declare_properties! { | |
DUMMY_PROPERTIES, | |
define_property!( | |
c"chardev", | |
DummyState, | |
char_backend, | |
unsafe { &qdev_prop_chr }, | |
CharBackend | |
), | |
define_property!( | |
c"migrate-clk", | |
DummyState, | |
migrate_clock, | |
unsafe { &qdev_prop_bool }, | |
bool | |
), | |
} | |
device_class_init! { | |
dummy_class_init, | |
props => DUMMY_PROPERTIES, | |
realize_fn => None, | |
reset_fn => None, | |
vmsd => VMSTATE, | |
} | |
} |