近来遇到一个比较棘手的问题,做一个设备的驱动,内核选用的是linux2.6.18内核,驱动中有一个计数操作,想用原子操作来实现,不过发现内核中已经没有automic相关类型与函数,经查询得知linux在2.6.18之后移除了asm/automic.h文件导致无法使用内核中automic来实现原子计数。特来此请教坛中的大牛们在2.6.18以后的内核模块中如何实现原子计数?
没有了atomic_t,这不太可能吧。内核中有很多子系统依赖于atomic_inc/dec,比如说rcu+引用计数,不会没有的。
用汇编呢?