我是Linux世界的新手。我必须追踪readl()/writel()
函数。为了实现这一点,我尝试在readl()/writel()
中的arch/arm64/include/asm/io.h
函数中添加TRACE_EVENTS。假设我在my_trace.h
中定义了跟踪事件。最后,我调用跟踪函数如下:
#include <trace/events/my_trace.h>
....
....
static inline u32 __raw_readl(const volatile void __iomem *addr)
{
u32 val;
trace_my_function("__hi__", addr);
asm volatile("ldr %w0, [%1]" : "=r" (val) : "r" (addr));
return val;
}
但是,在#incldue <trace/events/my_trace.h>
中添加arch/arm64/include/asm/io.h
会产生许多编译器和链接器错误。但是,在任何#incldue <trace/events/my_trace.h>
文件中包含相同的.c
工作正常(这意味着我的跟踪事件工作正常且正确)。
是否我们无法在.h
个文件中添加跟踪事件
如果不是我做错了。