endif
ifeq ($(CONFIG_COMEDI_RT),y)
- MOD_SUB_DIRS += realtime rt_pend_tq
- SUB_DIRS += realtime rt_pend_tq
+ MOD_SUB_DIRS += realtime
+ SUB_DIRS += realtime
endif
MOD_LIST_NAME := MISC_MODULES
ifeq ($(CONFIG_COMEDI_RT),y)
-MI_OBJS += rt.o
+MI_OBJS += rt.o rt_pend_tq/rt_pend_tq.o
endif
RT_spin_unlock_irq(&dev->spinlock);
}
-#ifdef HAVE_RT_PEND_TQ
void wake_up_int_handler(int arg1, void * arg2)
{
wake_up_interruptible((wait_queue_head_t*)arg2);
}
-#endif
void comedi_rt_pend_wakeup(wait_queue_head_t *q)
{
-#ifdef HAVE_RT_PEND_TQ
rt_pend_call(wake_up_int_handler,0,q);
-#endif
}
void comedi_rt_init(void)
{
rt_mount_rtai();
+ rt_pend_tq_init();
}
void comedi_rt_cleanup(void)
{
rt_umount_rtai();
+ rt_pend_tq_cleanup();
}
#endif
return 0;
}
-void comedi_rt_init(void) { }
-void comedi_rt_cleanup(void) { }
+void comedi_rt_init(void)
+{
+ rt_pend_tq_init();
+}
+
+void comedi_rt_cleanup(void)
+{
+ rt_pend_tq_cleanup();
+}
#endif
#endif
#ifdef CONFIG_COMEDI_RTL
rt_pend_tq_irq=rtl_get_soft_irq(rt_pend_irq_handler,"rt_pend_irq");
+#endif
if(rt_pend_tq_irq>0)
printk("rt_pend_tq: RT bottom half scheduler initialized OK\n");
else
printk("rt_pend_tq: rtl_get_soft_irq failed\n");
-#endif
return 0;
}
void rt_pend_tq_cleanup(void)
{
printk("rt_pend_tq: unloading\n");
- free_irq(rt_pend_tq_irq,NULL);
+#ifdef CONFIG_COMEDI_RTAI
+ rt_free_srq(rt_pend_tq_irq);
+#endif
}