Linux内核导出符号宏定义EXPORT_SYMBOL的源码分析

本文详细分析了Linux内核中用于导出符号的宏定义`EXPORT_SYMBOL`的工作原理。通过源码解析,阐述了`__EXPORT_SYMBOL`如何创建字符数组存放符号名称,以及定义内核符号结构存储地址和名称,并利用`__attribute__`属性将它们放入特定的内存段。同时,还介绍了`EXPORT_SYMBOL_GPL`的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


源代码:

<include/linux/moudule.h>

…….

#ifndef MODULE_SYMBOL_PREFIX

#define MODULE_SYMBOL_PREFIX ""

#endif

…….

struct kernel_symbol       //内核符号结构

{

       unsignedlong value;  //该符号在内存地址中的地址

       constchar *name;     //该符号的名称

};

……

#define __EXPORT_SYMBOL(sym,sec)                                 \

       externtypeof(sym) sym;                                                        \

       __CRC_SYMBOL(sym,sec)                                           

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值