stify"> * Коли ми зробили.
*/_irq (1, NULL);
/*
* Запит IRQ 1, IRQ клавіатури, щоб перейти до нашої irq_handler.
* SA_SHIRQ означає, що ми готові мати потикаються обробники на цьому IRQ.
* SA_INTERRUPT можуть бути використані, щоб обробник в швидкого переривання.
*/request_irq (1,/* про IRQ клавіатури номер на ПК */
irq_handler,/* наш обробник */_SHIRQ, «test_keyboard_irq_handler»,
(void *) (irq_handler));
}
/*
* Прибирати
*/cleanup_module ()
{
/*
* Це тільки тут для повноти картини. Це абсолютно не має значення, так як
* Ми не є спосіб відновити нормальну переривань від клавіатури, так
* Комп'ютер абсолютно марно і повинен бути перезавантажений.
*/_irq (1, NULL);
}
/*
* Деякі функції work_queue пов'язані тільки доступні GPL ліцензованих модулів
*/_LICENSE ("GPL");
На практиці поводження з IRQ може бути трохи складніше. Устаткування часто розроблені таким чином, що ланцюги двох контролерів переривань, так що всі IRQs від контролера переривань У каскадуватися в певній IRQ від контролера переривань А. Звичайно, що вимагає, щоб ядро ??знаходить, які IRQ це дійсно було потім, і що додає накладні витрати. Інші архітектури запропонувати якусь особливу, дуже низькі накладні витрати, так званий «швидкий IRQ» або FIQs. Для того щоб скористатися їм потрібно обробники бути написаний на асемблері, тому вони не дуже вписується в ядро. Вони можуть бути зроблені, щоб працювати схожі на інших, але після цієї процедури, вони більше не швидше, ніж «звичайних» переривань. SMP з підтримкою ядра, що працюють на системах з більш ніж одним процесором потрібно вирішити ще одну вантажівку проблем. Це не достатньо, щоб знати, якщо деякі переривань має сталося, це також важливо, за якою процесора (ів) це було для. Люди як і раніше зацікавлені в більш докладної інформації, можливо, захочете зробити веб-пошуку для «APIC» зараз;)