在Linux內核模塊中,使用宏KERNEL_VERSION
,我如何使用 create_proc_entry
或proc_create
?如何使用proc_create或create_proc_entry取決於Linux內核版本
究竟在哪個內核版本中,接口被更改了?
我看到在內核版本3.9,文件proc_fs.h
中,兩個API都出現在 不同的#ifdef
之間。基本上我想檢查內核版本,並根據該 調用正確的API。
在Linux內核模塊中,使用宏KERNEL_VERSION
,我如何使用 create_proc_entry
或proc_create
?如何使用proc_create或create_proc_entry取決於Linux內核版本
究竟在哪個內核版本中,接口被更改了?
我看到在內核版本3.9,文件proc_fs.h
中,兩個API都出現在 不同的#ifdef
之間。基本上我想檢查內核版本,並根據該 調用正確的API。
#include <linux/version.h> /* For LINUX_VERSION_CODE */
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(3,9,0))
/*
* Do This
*/
#else
/*
* Do This
*/
#endif
看來,這是可用的 - 我只是想在Linux 3.2.0-80泛型(Ubuntu的12.04)
當滿足這個條件時,我使用create_proc_entry(),否則使用proc_create()。
謝謝Sundeep。在內核版本3.9.0中,在proc_fs.h中,我看到create_proc_entry和proc_create在#ifdef CONFIG_PROC_FS下定義。create_proc_entry #else proc_create #endif這就是爲什麼您給出的代碼片段無法工作的原因。什麼是CONFIG_PROC_FS?它是否可用於內核模塊? – LML