免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4201 | 回复: 5
打印 上一主题 下一主题

lock_kernel() [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-23 09:20 |只看该作者 |倒序浏览
#define lock_kernel() do { } while (0)   我想问一下,这个语句,在内核中直接使用 lock_kernel();能有什么影响?或者说这个语句的作用是什么?谢谢!

论坛徽章:
1
天蝎座
日期:2013-12-06 18:23:58
2 [报告]
发表于 2011-08-23 09:27 |只看该作者
就是个空函数~ 应该是没有实现具体的锁!

论坛徽章:
0
3 [报告]
发表于 2011-08-23 09:33 |只看该作者
一般的这类语句内核都会有两种实现,内核提供了一个编译开关,如果在编译内核时打开了这个开关,在内核代码里就是#ifdef CONFIG_XXXX之类的,就提供一种实现,如果没有打开这个开关,就提供另一种实现。
你说的这个lock_kernel定义应该是内核编译时没有打开相应的编译选项,所以就用一个空语句代替了,内核中遇到lock_kernel这样的语句,就用这个空的do-while循环代替,就相当于什么都不做了。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2011-08-23 10:41 |只看该作者
回复 1# jxth152913
这是个大锁,以前就版本的时候估计是可以用得到。现在已经抛弃了

论坛徽章:
0
5 [报告]
发表于 2011-08-23 13:39 |只看该作者
谢谢大家!

论坛徽章:
0
6 [报告]
发表于 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) 的空操作
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP