我正在編寫設備驅動程序。我有一個問題要問:Linux設備驅動程序中的內聯函數
在.c文件中聲明內聯函數是否正確?
我說的是針對linux內核的設備驅動程序。我有一個函數,它在函數體中很短,並且從一個模塊導出到另一個模塊。你是否認爲,我可以聲明它是一個內聯的.c文件,或者我需要將這個函數聲明和EXPORT_SYMBOL行一起移動到.h文件,因爲它是內聯的?什麼是標準的Linux內核練習?
For ex -> something like this?
inline void hello_world()
{............
return;
}
EXPORT_SYMBOL(hello_world);
謝謝!
這比編碼約定更重要。詢問http://kernelnewbies.org。並且您的代碼將導出*非內聯*函數。 –
在設備驅動程序編程的情況下,如果您有多個模塊可以調用或使用多個函數/函數,那麼您只需創建一個「.c」文件並使用EXPORT_SYMBOL_GPL將所有函數導出到內核。然後這些導出的函數被識別爲「內核符號」。在使用或調用這些導出的函數時,您不需要包含任何文件,也不需要定義其原型。只需導出它,然後從任何其他模塊調用它。但請確保您要出口的「許可證」。 –