Linux中的全局variables.ko多个设备

我有一个用于embedded式Linux系统的Wi-Fi驱动程序(一个.ko文件),我的主板上有两个相同的Wi-Fi设备。 将.ko文件放入内核之后,系统可以驱动这两个Wi-Fi设备。

我的问题是:如果驱动程序的源代码包含全局variables(和静态variables),这两个设备是否共享同一组variables? 或者,每个设备将有两个驱动程序实例?

谢谢!

Linux内核模块链接到内核中,正如C中的任何文件一样。如果它们具有全局变量,则每个全局变量只有一个副本。 他们甚至可以使用其他模块的全局变量。

单个驱动程序支持多个设备是正常的。

尽管某些模块的变量在不同的设备之间共享,但大部分变量都存储在设备特定的结构中

当设备“A”调用驱动函数时,它接受指向设备特定结构“data-A”的指针。 使用这个指针,该函数提取“A”的参数。 当设备“B”调用相同的函数时,它接受指向另一个设备特定结构“data-B”的指针。