厚德博学 敬业乐群
@sky
全部博文(252)
2015年(2)
2014年(1)
2013年(1)
2012年(16)
2011年(42)
2010年(67)
2009年(87)
2008年(36)
25742040
shijiulo
niuxlinu
ebayboy
hayand66
大鬼不动
acer1025
醉鬼的故
小雅贝贝
XINGCHEN
wzy_yzw
十的9次
zds05
bjywxc
zlhc1
smile124
cynthia
格伯纳
分类: LINUX
2008-03-30 13:36:56
#include <linux/module.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/sched.h> #include <linux/irq.h> #include <asm/io.h> #define INTRNO 7 static void tasklet_callback(unsigned long data) { printk(KERN_ALERT "received a interrupt.\n"); } DECLARE_TASKLET(tasklet, tasklet_callback, 0); static irqreturn_t irq_handler(int irq, void *arg) { tasklet_schedule(&tasklet); return IRQ_HANDLED; } static int __init test_init(void) { int ret; ret = request_irq(INTRNO, irq_handler, 0, "hello", NULL); if (ret < 0) goto err; outb(0x10, 0x37a); /* enable parallel port interrupt */ err: return ret; } static void __exit test_exit(void) { free_irq(INTRNO, NULL); } MODULE_LICENSE("GPL"); module_init(test_init); module_exit(test_exit);
上一篇:安装一个中断处理例程
下一篇:workqueue用法
登录 注册