// SPDX-License-Identifier: GPL-2.0-or-later //! This crate provides macros that aid in using QEMU's tracepoint //! functionality. #[doc(hidden)] /// Re-exported item to avoid adding libc as a dependency everywhere. pub use libc::{syslog, LOG_INFO}; #[macro_export] /// Define the trace-points from the named directory (which should have slashes /// replaced by underscore characters) as functions in a module called `trace`. /// /// ```ignore /// ::trace::include_trace!("hw_char"); /// // ... /// trace::trace_pl011_read_fifo_rx_full(); /// ``` macro_rules! include_trace { ($name:literal) => { #[allow( clippy::ptr_as_ptr, clippy::cast_lossless, clippy::used_underscore_binding )] mod trace { #[cfg(not(MESON))] include!(concat!( env!("MESON_BUILD_ROOT"), "/trace/trace-", $name, ".rs" )); #[cfg(MESON)] include!(concat!("@MESON_BUILD_ROOT@/trace/trace-", $name, ".rs")); } }; }