当前位置: 技术问答>linux和unix
内核源代码,请问这个是什么意思?
来源: 互联网 发布时间:2017-04-21
本文导语: lib80211.c: /*Begin*/ static LIST_HEAD(lib80211_crypto_algs); static DEFINE_SPINLOCK(lib80211_crypto_lock); /*End*/ 不是定义,不是声明,不是define。惭愧,请问对内核熟悉的大侠,这个什么意思?多谢! | LIST_HEAD ...
lib80211.c:
/*Begin*/
static LIST_HEAD(lib80211_crypto_algs);
static DEFINE_SPINLOCK(lib80211_crypto_lock);
/*End*/
不是定义,不是声明,不是define。惭愧,请问对内核熟悉的大侠,这个什么意思?多谢!
/*Begin*/
static LIST_HEAD(lib80211_crypto_algs);
static DEFINE_SPINLOCK(lib80211_crypto_lock);
/*End*/
不是定义,不是声明,不是define。惭愧,请问对内核熟悉的大侠,这个什么意思?多谢!
|
LIST_HEAD 和 DEFINE_SPINLOCK是两个宏定义。。
|
+1
定义了两个变量 list头与spinlock
|
利用宏定义,来定义变量。
推荐个查看源码的网站,以后遇到不知道啥玩意的代码,搜索源码,看它到底是什么东东就明白喽
开源中国的
http://lxr.oss.org.cn/source/
19 #define LIST_HEAD_INIT(name) { &(name), &(name) }
20
21 #define LIST_HEAD(name)
22 struct list_head name = LIST_HEAD_INIT(name)
53 #define __RAW_SPIN_LOCK_INITIALIZER(lockname)
54 {
55 .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED,
56 SPIN_DEBUG_INIT(lockname)
57 SPIN_DEP_MAP_INIT(lockname) }
58
59 #define __RAW_SPIN_LOCK_UNLOCKED(lockname)
60 (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
61
62 #define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
推荐个查看源码的网站,以后遇到不知道啥玩意的代码,搜索源码,看它到底是什么东东就明白喽
开源中国的
http://lxr.oss.org.cn/source/
|
这就是两个函数的声明啊。
|
更正一下本人5楼的回复,那个网站不是开源中国的,经查资料得知是:
Linux超文本交叉代码检索工具LXR(Linux Cross Reference),是由挪威奥斯陆大学数学系Arne Georg Gleditsch和Per Kristian Gjermshus编写的
Linux超文本交叉代码检索工具LXR(Linux Cross Reference),是由挪威奥斯陆大学数学系Arne Georg Gleditsch和Per Kristian Gjermshus编写的
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。