linux symbol文件,LINUX EXPORT_SYMBOL_GPL及EXPORT_SYMBOL导出函数
EXPORT_SYMBOL(),這個宏也是將函數(shù)導(dǎo)出讓所有模塊都可以使用,而EXPORT_SYMBOL_GPL()這個宏主要是給有GPL認證的模塊使用。
2)、EXPORT_SYMBOL標簽內(nèi)定義的函數(shù)對全部內(nèi)核代碼公開,不用修改內(nèi)核代碼就可以在您的內(nèi)核模塊中直接調(diào)用。
3)、EXPORT_SYMBOL(符號名);??EXPORT_SYMBOL_GPL(符號名)
一)主要作之一: 內(nèi)核"導(dǎo)出"的符號表,這個表在insmod 時候會用到.
1./proc/kallsyms
cat /proc/kallsyms會打印出內(nèi)核當(dāng)前的符號表,例如:
...
d8834a24 t snd_free_sgbuf_pages [snd_page_alloc]
d8834ab5 t snd_malloc_sgbuf_pages [snd_page_alloc]
c014f906 U kmem_cache_alloc [snd_page_alloc]
c0106dcd U dma_alloc_coherent [snd_page_alloc]
...
其中第一列是該符號在內(nèi)核地址空間中的地址;第二列是符號屬性,小寫表示
局部符號,大寫表示全局符號,具體含義參考man nm; 第三列表示符號字符串.
這里只能顯示EXPORT_SYMBOL,EXPROT_SYMBOL_GPL處理過的符號。
2.System.map內(nèi)核符號文件
通過more /boot/System.map 可以查看內(nèi)核符號列表。
可以顯示編譯好內(nèi)核后所有在內(nèi)核中的符號,模塊中的要另行查看。
3.通過nm vmlinux也可以查看內(nèi)核符號列表
可以顯示編譯好內(nèi)核后所有在內(nèi)核中的符號,模塊中的要另行查看。
4.通過nm module_name可以查看模塊的符號列表
但是得到是相對地址,只有加載后才會分配絕對地址。比如:e1000模塊,如果e1000中的符號經(jīng)過EXPORT_SYMBOL處理,
等加載后,我們可以通過more /boot/System.map和nm vmlinux命令查看到,但是沒有EXPORT_SYMBOL的,不能查看。
代碼如:
int __gpio_cansleep(unsigned gpio)
{
struct gpio_chip *chip;
總結(jié)
以上是生活随笔為你收集整理的linux symbol文件,LINUX EXPORT_SYMBOL_GPL及EXPORT_SYMBOL导出函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle dbcontrol界面,o
- 下一篇: 刚设置的电脑密码忘了怎么办啊 电脑密码忘