This RFC series contains some simple patches I've been sitting on for some months to allow tracing in rust devices in a similar matter to C, only it's done via a proc-macro codegen instead of using tracetool script or equivalent.
It also adds the same tracepoints as C in the pl011 device (cc: Philippe) TODOS: - Do not allocate string when calling ::qemu_api::log::LogGuard::log_fmt (See commit message) - Properly handle&report errors in proc-macro - Clean up proc-macro code - Add test for proc-macro - Add dev documentation Signed-off-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org> --- Manos Pitsidianakis (5): rust/bindings: add trace headers rust/qemu-api/log: add Log::Trace variant rust/qemu-api-macros: Add #[trace_events] macro rust/pl011: impl Copy, Clone for RegisterOffset rust/pl011: add trace events rust/hw/char/pl011/src/device.rs | 28 +++++++- rust/hw/char/pl011/src/lib.rs | 43 +++++++++++ rust/hw/char/pl011/src/registers.rs | 2 +- rust/qemu-api-macros/src/lib.rs | 140 +++++++++++++++++++++++++++++++++++- rust/qemu-api/src/bindings.rs | 3 + rust/qemu-api/src/log.rs | 4 ++ rust/qemu-api/wrapper.h | 2 + 7 files changed, 215 insertions(+), 7 deletions(-) --- base-commit: e5859141b9b6aec9e0a14dacedc9f02fe2f15844 change-id: 20250804-rust_trace-8558fc98ec88 -- γαῖα πυρί μιχθήτω