Перейти к содержанию

Проблема с примером из книги The Linux Kernel Module Programming Guide Peter Jay


Рекомендуемые сообщения

В книге The Linux Kernel Module Programming Guide Peter Jay Salzman

Ori Pomerantz 2003-04-04 ver 2.4.0 (http://www.tldp.org/LDP/lkmpg/2.4/html/index.html)

есть пример модуля котрый перехватывает прерывание клавиатуры(http://www.tldp.org/LDP/lkmpg/2.4/html/x1210.html#AEN1291).

Если закоментировать макросы определения версий для ветки 2.0.х, то модуль(intrpt.c) компилируется под ядро 2.4.28. Но при запуске модуля(insmod intrpt.o)

система падает

Kernel Panic: Aiee, killing interrupt handler!

In interrupt handler - not syncing

Ведь вроде правильно прерывание захватывется.

Меня интересует как правильно подправить модуль чтоб он правильно коректно работал(в лог писал сканкоды) под 2.4.28.

void irq_handler(int irq, void *dev_id, struct pt_regs *regs)

{

...

}

/* Initialize the module - register the IRQ handler */

int init_module()

{

free_irq(1, NULL);

return request_irq(1, /* The number of the keyboard IRQ on PCs */

irq_handler, /* our handler */

SA_SHIRQ,

"test_keyboard_irq_handler", NULL);

}

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...