任何Linux内核模块的唯一或半统一模块ID或名称

时间:2012-01-13 22:40:42

标签: linux-kernel kernel-module unique-key

我有什么方法可以查询可以用来从模块中识别加载的Linux内核模块的ID或名称。

例如: 在sample.ko

int id = get_module_id(???);
printk("%d", id);

目标是使用资源跟踪系统中的ID来识别哪些模块未能释放资源,因此只要它在实际系统中是唯一的,ID理论上可能是非唯一的。

此处的目标是尽量减少对单个组件的更改,因此“定义您自己的标识符”等解决方案将无效。

2 个答案:

答案 0 :(得分:0)

如果每个模块版本差异很大,那么模块的大小可能足以满足您的需要:

[wally@lenovotower ~]$ lsmod
Module                  Size  Used by
uvcvideo               51149  0 
snd_usb_audio          85970  1 
snd_usbmidi_lib        14807  1 snd_usb_audio
snd_rawmidi            16204  1 snd_usbmidi_lib
videodev               70682  1 uvcvideo
media                   9214  2 uvcvideo,videodev
vfat                    7031  0 
fat                    37971  1 vfat

答案 1 :(得分:0)

您可以将模块名称用作键。

或者,您可以使用预处理器并使用文件名( __ FILE __ )作为键。虽然不能保证,但每个模块的文件名都是独一无二的。