はわわーっ

はわわわわっ

割り込みハンドラのメモ

メモ。

#include <linux/module.h>
#include <linux/interrupt.h>

MODULE_LICENSE("GPL");

static int hello;

static irqreturn_t hello_interrupt(int irq, void *dev)
{
        printk(KERN_EMERG "hello interrupt\n");
        return IRQ_HANDLED;
}

static int __init hello_init(void)
{
        int err;

        printk(KERN_EMERG "hello init\n");

        err = request_irq(1, hello_interrupt, IRQF_SHARED, "hello", &hello);
        if (err) {
                printk(KERN_EMERG "request_irq failed.\n");
                return err;
        }

        return 0;
}

static void __exit hello_exit(void)
{
        printk(KERN_EMERG "hello exit\n");
        free_irq(1, &hello);
}

module_init(hello_init);
module_exit(hello_exit);