当前位置: 首页 > news >正文

使用EXPORT_SYMBOL

       在Linux内核里,我们编写驱动程序时,如果遇到的驱动太大,需要在各个模块之间共享一些变量或函数等,此时就需要用到内核里的EXPORT_SYMBOL宏了,其在include/linux/export.h文件中定义,而最常用的有如下两个:

#define EXPORT_SYMBOL(sym)                                      \
        __EXPORT_SYMBOL(sym, "")

#define EXPORT_SYMBOL_GPL(sym)                                  \
        __EXPORT_SYMBOL(sym, "_gpl")

       其中,多加了_GPL尾的量需要在使用MODULE_LICENSE()宏定义为GPL协议的模块里才能引用,不然加载驱动时会有类似Unknown symbol export_orig_gpl (err 0)的提示(该提示取自下面的例子),当然,模块之间也需要有加载先后顺序,其中EXPORT的模块需先加载,extern的后加载,不然也会有类似如上的提示。

       这里的例子会用到两个源码文件,作为export的文件名为export_orig.c,作为extern的文件名为expo

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 目标检测YOLO实战应用案例100讲-基于双目视觉的目标检测与测距系统(下)
  • 大数据-128 - Flink 并行度设置 细节详解 全局、作业、算子、Slot
  • 读构建可扩展分布式系统:方法与实践05分布式缓存
  • hadoop3跑第一个例子wordcount
  • 加载资源时报错-ERR_CONNECTION_RESET,需要多次请求才能拿到资源的有效解决方案
  • Java 入门指南:JVM(Java虚拟机)——类的生命周期与加载过程
  • 【GO语言】Go语言详解与应用场景分析,与Java的对比及优缺点
  • 【RabbitMQ 项目】服务端数据管理模块之交换机管理
  • 项目需求 | MySQL增量备份与恢复的完整操作指南
  • 「OC」事件点击demo合集
  • 【智路】智路OS Perception Fusion Service
  • spring boot设置多环境的配置文件
  • 【Android Studio】使用雷电模拟器调试
  • 研1日记12
  • SpringBlade dict-biz/list 接口 SQL 注入漏洞
  • 【EOS】Cleos基础
  • 【RocksDB】TransactionDB源码分析
  • 345-反转字符串中的元音字母
  • Angular2开发踩坑系列-生产环境编译
  • es6
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Less 日常用法
  • Logstash 参考指南(目录)
  • Python进阶细节
  • SQLServer之创建显式事务
  • storm drpc实例
  • underscore源码剖析之整体架构
  • vagrant 添加本地 box 安装 laravel homestead
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 当SetTimeout遇到了字符串
  • 后端_ThinkPHP5
  • 将回调地狱按在地上摩擦的Promise
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 学习HTTP相关知识笔记
  • 原生 js 实现移动端 Touch 滑动反弹
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​批处理文件中的errorlevel用法
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • ()、[]、{}、(())、[[]]命令替换
  • (0)Nginx 功能特性
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十八)Flink CEP 详解
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转载)利用webkit抓取动态网页和链接
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net core webapi 大文件上传到wwwroot文件夹
  • .Net Core 笔试1
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net FrameWork总结
  • .Net Winform开发笔记(一)
  • .Net7 环境安装配置
  • .net对接阿里云CSB服务