我正在尝试了解android内核中的一些代码(特定于芯片组)
所以我用另一个内核做了一个差异
我在atomic.h中发现了一些我无法理解的东西:
#if defined(FORCE_CACHED_LOCK)
#if !defined(force_clock)
extern void __force_clock(u32 l);
#define force_clock __force_clock
#endif
#else
#define force_clock(l)
#endif
在atomic.h的每个函数
force_clock((u32)v)或force_clock((u32)ptr)或force_clock((u32)* addr)(如果使用ptr或* addr或v,则取决于函数本身)
我确定没有设置FORCE_CACHED_LOCK所以会发生什么?这段代码有用吗?
答案 0 :(得分:1)
所以答案很简单......
我只需要检查FORCE_CACHED_LOCK是否真的没有设置,我必须确定我这样说:
#if defined(FORCE_CACHED_LOCK)
#error zonk
#if !defined(force_clock)
如果FORCE_CACHED_LOCK由某些神奇的东西设置,那么构建应该会失败...如果没有设置,force_clock是无用的,所以我可以删除它:)
derRichard @ OFTC IRC的致谢