void tasking (unsigned long);
DECLARE_TASKLET (dor_tasklet, tasking, 0);
void tasking (unsigned long pake) {
printk(KERN_INFO "tertrigger karena tasklet yang berasal dari interrupt\n");
}
irqreturn_t inter(int irq, void *dev_id) {
tasklet_schedule(&dor_tasklet);
return IRQ_HANDLED;
}
static int __init mulai (void) {
//asumsi ss adalah var pointer dari suatu struct yang ada di modul
//silahkan buat sendiri structurenya, ini hanya sebagai contoh
if (request_irq(46, inter, IRQF_SHARED , "contoh", ss))
return -1
return 0;
}
static void __exit netwo_exit (void) {
free_irq(46, ss);
}
module_init(mulai);
module_exit(keluar);