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