уникальный или полууникальный идентификатор модуля или имя для любого модуля ядра Linux - PullRequest
1 голос
/ 14 января 2012

Можно ли как-нибудь запросить идентификатор или имя, которое можно использовать для идентификации загруженного модуля ядра Linux изнутри модуля.

например: в sample.ko

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

Цель состоит в том, чтобы использовать идентификаторы в системе отслеживания ресурсов, чтобы определить, какие модули не смогли освободить ресурсы, поэтому идентификатор может быть теоретически неуникальным, если он уникален в практической системе.

Целью здесь является минимизация изменений для отдельных компонентов, поэтому такие решения, как «определение собственного идентификатора», не будут работать.

Ответы [ 2 ]

0 голосов
/ 25 мая 2012

Вы можете использовать имя модуля в качестве ключа.

В качестве альтернативы, вы можете использовать препроцессор и использовать имя файла ( __ FILE __ ) в качестве ключа. Хотя это не гарантировано, имя файла является уникальным для каждого модуля.

0 голосов
/ 14 января 2012

Если версия каждого модуля достаточно различна, размер модуля может быть достаточно для вашей цели:

[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
...