EXPORT_ SYMBOL
时间: 2023-07-21 22:53:21 浏览: 41
EXPORT_SYMBOL是Linux内核中的一个宏定义,用于将一个符号(函数、变量等)导出给其他模块使用。在Linux内核中,由于模块化的设计,不同的模块之间需要相互调用函数或变量,而EXPORT_SYMBOL就是用来实现这个功能的。通过使用EXPORT_SYMBOL,一个模块中定义的符号就可以被其他模块直接调用和使用。
相关问题
EXPORT_SYMBOL
EXPORT_SYMBOL宏的作用是将符号导出到内核符号表,使得其他模块或内核可以使用该符号。在Linux内核中,通过使用EXPORT_SYMBOL宏可以将非静态函数和变量导出给其他模块使用。而EXPORT_SYMBOL_GPL宏则仅将符号导出给GPL许可的模块。在Linux 2.6版本之后,由于安全考虑,默认不再自动导出所有符号,需要使用EXPORT_SYMBOL宏来标记需要导出的符号。这样其他模块才能够使用这些导出的符号。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [Linux 模块导出符号 EXPORT_SYMBOL](https://blog.csdn.net/luckydarcy/article/details/112904819)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Linux EXPORT_SYMBOL宏详解](https://blog.csdn.net/weixin_45030965/article/details/126658984)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
export_symbol 变量
`export_symbol` 是一个在 Linux/Unix 操作系统中的内核开发中使用的宏,用于将一个符号(函数、变量等)导出到内核模块以外,以便其他模块或内核能够使用该符号。在 Linux 内核中,只有被导出的符号才能被其他模块和内核访问和使用。
例如,在一个内核模块中定义了一个全局变量 `my_variable`,但是该符号默认是不可见的,其他模块无法使用它。如果要使该变量可见并被其他模块使用,则需要使用 `export_symbol` 宏将其导出,如下所示:
```
int my_variable = 42;
EXPORT_SYMBOL(my_variable);
```
在该示例中,`EXPORT_SYMBOL` 宏将 `my_variable` 导出,使其可被其他模块使用。注意,该宏必须在定义符号的源文件中使用,而不是在头文件中使用。