2014-02-15 130 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

相關問題