A problem about irq.

夏业添 summerxyt at gmail.com
Wed Apr 11 09:27:50 EDT 2012


Hi,

Recently, I am trying to test event channel on Xen. I write a module alloc
an event channel and try to bind this channel to an irq handler. But every
time I insmod the module, the kernel says that the action of binding fails.

I use a function defined in drivers/xen/events.c like this:

bind_evtchn_to_irqhandler(args.port,server_handler,IRQF_DISABLED,NULL,NULL);


And I must admit that I have very few knowledge of the interrupt handler
stuff and whether the last two parameters can be set NULL. So here are two
problem:

1)I really need some simple instruction and sample code about both the
interrupt handler and, especially, xen event channel.

2)And there is other odd thing. I try to check the
bind_evtchn_to_irqhandler, finding that it finally calls
request_irq()<http://www.codebrowse.net/source/xref/linux-3.0/include/linux/interrupt.h#request_irq>,
which calls request_threaded_irq()<http://www.codebrowse.net/source/xref/linux-3.0/include/linux/interrupt.h#request_threaded_irq>,
which calls request_irq() again.
   But in another website, I find the
request_threaded_irq()<http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/kernel/irq/manage.c#L1346>defined
in the kernel/irq/manage.c#L1346. I'm totally confused.

Sorry for my poor English. If anyone knows the answer, please tell me.
Thanks a lot!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120411/ab60b6a9/attachment.html 


More information about the Kernelnewbies mailing list