rust: add meson_version to all subprojectsOtherwise, newer releases of meson complain.Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
rust: introduce alternative implementation of offset_of!offset_of! was stabilized in Rust 1.77.0. Use an alternative implemenationthat was found on the Rust forums, and whose author agreed to lic
rust: introduce alternative implementation of offset_of!offset_of! was stabilized in Rust 1.77.0. Use an alternative implemenationthat was found on the Rust forums, and whose author agreed to license asMIT for use in QEMU.The alternative allows only one level of field access, but apartfrom this can be used just by replacing core::mem::offset_of! withqemu_api::offset_of!.The actual implementation of offset_of! is done in a declarative macro,but for simplicity and to avoid introducing an extra level of indentation,the trigger is a procedural macro #[derive(offsets)].The procedural macro is perhaps a bit overengineered, but it helpsintroducing some idioms that will be useful in the future as well.Signed-off-by: Junjie Mao <junjie.mao@hotmail.com>Co-developed-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
show more ...
rust: add utility procedural macro crateThis commit adds a helper crate library, qemu-api-macros for derive (andother procedural) macros to be used along qemu-api.It needs to be a separate libra
rust: add utility procedural macro crateThis commit adds a helper crate library, qemu-api-macros for derive (andother procedural) macros to be used along qemu-api.It needs to be a separate library because in Rust, procedural macros, ormacros that can generate arbitrary code, need to be special separatecompilation units.Only one macro is introduced in this patch, #[derive(Object)]. Itgenerates a constructor to register a QOM TypeInfo on init and it mustbe used on types that implement qemu_api::definitions::ObjectImpl trait.Reviewed-by: Junjie Mao <junjie.mao@hotmail.com>Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>Link: https://lore.kernel.org/r/dd645642406a6dc2060c6f3f17db2bc77ed67b59.1727961605.git.manos.pitsidianakis@linaro.orgSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>