#include #include #include #define LPT 0x378 #define IRQ 7 volatile int i; unsigned int intr_handler(unsigned int irq,struct pt_regs *regs){ outb(0x0c,LPT+2); outb(0x1c,LPT+2); rtl_printf("IRQ : parallel\n"); rtl_hard_enable_irq(IRQ); return 0; } int init_module(void) { i = 0x02 | inb(LPT); outb(i,LPT); outb(0x0c,LPT+2); outb(0x1c,LPT+2); rtl_request_irq(IRQ,intr_handler); rtl_hard_enable_irq(IRQ); return 0; } void cleanup_module(void) { i = 0xfd & inb(LPT); outb(i,LPT); rtl_free_irq(IRQ); }