前言
在驱动开发过程中,经常需要在不同的驱动(ko)之间共享数据、交换信息。
比如一个系统中有两颗WLAN芯片:A方案和B方案,分别对应两个ko,有时这两个ko之间需要交换一些信息。
本文将整理一些常用的手段。
相关手段
1、导出符号
比如A模块中定义了函数或变量、常量等,需要在B模块中使用。
EXPORT_SYMBOL标签内定义的函数对全部内核代码公开,比较常见的有几种场景:
1.1、变量
A模块:
STRUCT_A_VAR g_A_var = {
0};
EXPORT_SYMBOL(g_A_var);
B模块:
extern STRUCT_A_VAR g_A_var