00001 #include <sys/mman.h>
00002 #include <native/task.h>
00003 #include <native/intr.h>
00004
00005 #define IRQ_NUMBER 7
00006 #define TASK_PRIO 99
00007 #define TASK_MODE 0
00008 #define TASK_STKSZ 0
00009
00010 RT_INTR intr_desc;
00011
00012 RT_TASK server_desc;
00013
00014 void irq_server (void *cookie)
00015
00016 {
00017 for (;;) {
00018
00019
00020 err = rt_intr_wait(&intr_desc,TM_INFINITE);
00021
00022 if (!err) {
00023
00024 }
00025 }
00026 }
00027
00028 int main (int argc, char *argv[])
00029
00030 {
00031 int err;
00032
00033 mlockall(MCL_CURRENT|MCL_FUTURE);
00034
00035
00036
00037 err = rt_intr_create(&intr_desc,"MyIrq",IRQ_NUMBER,0);
00038
00039
00040
00041 err = rt_task_create(&server_desc,
00042 "MyIrqServer",
00043 TASK_STKSZ,
00044 TASK_PRIO,
00045 TASK_MODE);
00046 if (!err)
00047 rt_task_start(&server_desc,&irq_server,NULL);
00048
00049
00050 }
00051
00052 void cleanup (void)
00053
00054 {
00055 rt_intr_delete(&intr_desc);
00056 rt_task_delete(&server_desc);
00057 }