Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
alexxxxxxxxxxx Гость
|
Добавлено: Чт Авг 01 2002 13:00 Заголовок сообщения: Динамическая загрузка драйверов |
|
|
Народ, Провожу соцопрос, на тему. Можноли из кода динамически подгружаемого драйвера обратиться к внутренним системным переменным ядра?
Суть проблемы следующая. Есть стандартное ядро для достаточно древнего freeBSD. Это ядро поддерживает устройства PCI, но создает по умолчанию глухой код (который только обнаруживает устройство и регистрирует его). Я пишу драйвер для конкретного PCI устройства и пытаюсь сделать его в виде динамически подгружаемого модуля. Технология создания таких модулей в этой версии freeBSD стандартная, но технологии получения доступа к PCI устройству из такого модуля нет, поэтому приходится извращаться. А изврат такой - я нашел в коде ядра переменную (типа структура), через которую я могу найти нужное мне устройство и делать с ним что надо. И если я создаю новое ядро со своим драйвером, в котором я обращаюсь к этой переменной (через extern), то все работает. Но драйвер нужно сделать динамически подгружаемым в стандартное ядро. Так вот, если я скомпилирую драйвер с поддержкой той переменной (объявлю ее у себя как extern), то , после загрузки драйвера в систему, будет ли код драйвера иметь корректный доступ к нужной переменной из стандартного ядра (там эта переменная тоже есть). Хотелось бы увидеть мнения на этот счет, а пока буду все проверять эксперементально (лень жутко) |
|
Вернуться к началу |
|
 |
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Чт Авг 01 2002 20:34 Заголовок сообщения: Скорее всего нет, так как extern юзается для статической компиляции и линковки. Попробуй нарыть доки по загружаемым модулям, ал |
|
|
- |
|
Вернуться к началу |
|
 |
alexxxxxxxxxxx Гость
|
Добавлено: Пт Авг 02 2002 10:46 Заголовок сообщения: Yahooo!!!! |
|
|
Работает мля и еще как работает (проверил не поленился). А вообще PCI устройство для создания динамического драйвера, как выяснелось позже все тем же эксперементальным путем, можно приаттачить и руками (по аналогии как это делает само ядро - просто нужно найти фрагмент нужного кода и всавить его в нужное место).
Большое спасибо за все высказанные мнения. |
|
Вернуться к началу |
|
 |
|