Можно ли динамически добавлять символ ядра в модуль ядра? - PullRequest
0 голосов
/ 07 января 2019

Я знаю, что есть EXPORT_SYMBOL для модулей ядра, чтобы статически выставлять свои глобальные переменные. Мой вопрос: Возможно ли EXPORT_SYMBOL во время выполнения?

Я разрабатываю драйвер ядра для нескольких модулей IC. Для каждого модуля IC (ko) существует глобальный структурный список «A», в который добавляется собственная функция обнаружения IC. И будет действие для запуска сканирования «А». Проект состоит в том, что есть ко (и) для каждой ИС и основное ко для основных функций. Например, есть m1.ko, m2.ko и mm.ko. Я вставлю m1.ko (создаю «A» и добавлю свою собственную функцию обнаружения), insmod m2.ko (проверьте наличие «A», если существует, добавьте свое собственное, если не создайте «A» и добавьте) и insmod mm.ko (проверьте наличие «A», если существует, запустите сканирование «A», остальное ничего не делать). Я могу проверить символ ядра «A» по kallsym_lookup_name, но когда я пришел, чтобы создать «A», если он не существует, я не могу найти функцию для добавления символа ядра динамически.

Есть ли способ правильно добавить символ ядра во время выполнения? Или есть альтернативный способ достижения цели?

...