[Armadeus-commitlog] SF.net SVN: armadeus:[1193] trunk/target/demos/real_time/interrupt/linux/ ker
Brought to you by:
sszy
|
From: <ar...@us...> - 2009-03-27 22:19:43
|
Revision: 1193
http://armadeus.svn.sourceforge.net/armadeus/?rev=1193&view=rev
Author: artemys
Date: 2009-03-27 22:19:31 +0000 (Fri, 27 Mar 2009)
Log Message:
-----------
[DEMOS] Cleanup Xenomai demos
Modified Paths:
--------------
trunk/target/demos/real_time/interrupt/linux/kernel/interrupt_linux_kernel.c
Modified: trunk/target/demos/real_time/interrupt/linux/kernel/interrupt_linux_kernel.c
===================================================================
--- trunk/target/demos/real_time/interrupt/linux/kernel/interrupt_linux_kernel.c 2009-03-27 15:41:24 UTC (rev 1192)
+++ trunk/target/demos/real_time/interrupt/linux/kernel/interrupt_linux_kernel.c 2009-03-27 22:19:31 UTC (rev 1193)
@@ -22,13 +22,12 @@
*/
#include <linux/module.h>
-#include <asm/irq.h>
#include <linux/irq.h>
-#include <asm/signal.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <asm/gpio.h>
+
#define IRQ_NB IRQ_GPIOA(6)
MODULE_AUTHOR("Gwenhael GOAVEC MEROU");
@@ -36,45 +35,34 @@
MODULE_SUPPORTED_DEVICE("none");
MODULE_LICENSE("GPL");
+
/* irq handler */
-irqreturn_t interrupt_handler (int irqn, void *dev){
+static irqreturn_t test_interrupt_handler(int irqn, void *dev)
+{
printk("IT !\n");
+
return IRQ_HANDLED;
}
-/* loading (insmod) */
-static int __init irq_init(void) {
+static int __init test_irq_init(void)
+{
int err;
- printk("irq init\n");
- err =request_irq(IRQ_NB, interrupt_handler, 0,"test irq", NULL);
- if (err!=0){
- printk(KERN_INFO "request_irq : error ");
- switch (err) {
- case -EINVAL:
- printk("EINVAL\n");
- break;
- case -ENOMEM:
- printk("ENOMEM\n");
- break;
- case -EBUSY:
- printk("EBUSY\n");
- break;
- case -ENXIO:
- printk("ENXIO\n");
- break;
- }
+
+ err = request_irq(IRQ_NB, test_interrupt_handler, 0, "test irq", NULL);
+ if (err) {
+ printk(KERN_INFO "Error while requesting IRQ %d\n", IRQ_NB);
return err;
}
- set_irq_type( IRQ_NB, IRQF_TRIGGER_FALLING );
+ set_irq_type(IRQ_NB, IRQF_TRIGGER_FALLING);
+
return 0;
}
-/* unloading (rmmod) */
-void __exit irq_exit(void) {
- printk(KERN_INFO "irq_exit\n");
- free_irq(IRQ_NB,NULL);
+static void __exit test_irq_exit(void)
+{
+ free_irq(IRQ_NB, NULL);
}
-/* Api Linux devices */
-module_init(irq_init);
-module_exit(irq_exit);
+module_init(test_irq_init);
+module_exit(test_irq_exit);
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|