【发布时间】:2023-03-21 08:54:01
【问题描述】:
我正在尝试掌握 C 和模块开发, (遵循http://pete.akeo.ie/2011/08/writing-linux-device-driver-for-kernels.html 的优秀示例)
现在,什么是 DEFINE_MUTEX?一个函数?宏?
DEFINE_MUTEX(parrot_device_mutex);
如果是函数,UC函数名的原理是什么?
(如果有更多关于 udev 开发的指南,请提示。)
【问题讨论】:
-
lxr.free-electrons.com/ident?i=DEFINE_MUTEX 几乎回答了它(谷歌搜索第一次点击)。
-
回答这个问题的更好方法是首先查看相关的头文件并查找
DEFINE_MUTEX。那里经常有解释其用途的文档。这只是对从头文件中定义的任何宏或函数或任何符号的一般建议。是的,ALL_UPPERCASE 通常用于宏和/或编译时常量,但这只是一种流行的约定,而不是规则 -
@dvnrrs,谢谢,但是您引用的页面同时显示“定义为预处理器宏”和“定义为函数原型......”。从菜鸟的角度应该如何阅读?
-
LXR 使用了错误的术语(它应该“声明为函数原型”而不是“定义”),并且它的解析启发式方法是错误的(因为它实际上根本不是一个函数)。
-
它在
mutex.h中显示为宏。所有其他列表都是.c文件。无论如何,我的观点是这种东西很容易搜索(不仅仅是在 LXR 上)。
标签: c linux-device-driver udev