2014-02-15 151 views
1

我试图让C和模块开发, 一抓(以下为http://pete.akeo.ie/2011/08/writing-linux-device-driver-for-kernels.html的很好的例子)DEFINE_MUTEX是函数还是宏?

现在,什么是DEFINE_MUTEX?一个函数?宏?

DEFINE_MUTEX(parrot_device_mutex); 

如果一个函数,UC函数名称的原理是什么?

(如果udev的发展更多的指南,请提示)

+1

的http:// lxr.free-electrons.com/ident?i=DEFINE_MUTEX几乎可以解答这个问题(首先在Google搜索上打)。 – TypeIA

+0

回答这个问题的更好方法是首先查看相关的头文件并查找“DEFINE_MUTEX”。那里经常有文件解释它的目的。对于任何宏或函数或通常从头文件定义的任何符号,这只是一般性建议。是的,ALL_UPPERCASE通常用于宏和/或编译时常量,但这只是一个流行的惯例,而不是规则 – Brandin

+0

@dvnrrs,谢谢,但你正在说的页面都说“定义为预处理宏”和“定义为函数原型...”。如何从noob的角度阅读? – Teson

回答

3

这是一个宏

#define DEFINE_MUTEX(mutexname) struct mutex mutexname = __MUTEX_INITIALIZER(mutexname) 

参考Linux的/在include/linux/mutex.h

相关问题