Chinaunix
标题:
lock_kernel()
[打印本页]
作者:
jxth152913
时间:
2011-08-23 09:20
标题:
lock_kernel()
#define lock_kernel() do { } while (0) 我想问一下,这个语句,在内核中直接使用 lock_kernel();能有什么影响?或者说这个语句的作用是什么?谢谢!
作者:
crazyhadoop
时间:
2011-08-23 09:27
就是个空函数~ 应该是没有实现具体的锁!
作者:
allen303allen
时间:
2011-08-23 09:33
一般的这类语句内核都会有两种实现,内核提供了一个编译开关,如果在编译内核时打开了这个开关,在内核代码里就是#ifdef CONFIG_XXXX之类的,就提供一种实现,如果没有打开这个开关,就提供另一种实现。
你说的这个lock_kernel定义应该是内核编译时没有打开相应的编译选项,所以就用一个空语句代替了,内核中遇到lock_kernel这样的语句,就用这个空的do-while循环代替,就相当于什么都不做了。
作者:
Godbach
时间:
2011-08-23 10:41
回复
1#
jxth152913
这是个大锁,以前就版本的时候估计是可以用得到。现在已经抛弃了
作者:
jxth152913
时间:
2011-08-23 13:39
谢谢大家!
作者:
文字妖精
时间:
2012-04-12 22:47
lock_kernel 的真实身份还需要CONFIG_LOCK_KERNEL 确定.
内核使用了arch/arm/configs/s3c2410_defconfig作为默认的配置文件,Code maturity level options 选项下没有设置
CONFIG_LOCK_KERNEL 项.所以在这里lock_kernel应该就是do { } while(0) 的空操作
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2