Module: xenomai-rpm Branch: for-upstream Commit: ea771aec61c399dc85e14d3de571cffaa5b9b1e7 URL: http://git.xenomai.org/?p=xenomai-rpm.git;a=commit;h=ea771aec61c399dc85e14d3de571cffaa5b9b1e7
Author: Philippe Gerum <r...@xenomai.org> Date: Sun Nov 7 16:08:22 2010 +0100 hal/generic: introduce rthal_synchronize_irq() We need a service to wait for interrupts on all CPUs to drain for a given IRQ line. rthal_synchronize_irq() provides such service, based on the revised ipipe_control_irq() routine available with recent I-pipe patches. When older patches are detected, rthal_synchronize_irq() is a no-op. --- include/asm-generic/hal.h | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/include/asm-generic/hal.h b/include/asm-generic/hal.h index 34f8ea1..b3927e4 100644 --- a/include/asm-generic/hal.h +++ b/include/asm-generic/hal.h @@ -171,6 +171,13 @@ typedef spinlock_t rthal_spinlock_t; #endif /* !__IPIPE_FEATURE_FASTPEND_IRQ */ #define rthal_virtualize_irq(dom,irq,isr,cookie,ackfn,mode) \ ipipe_virtualize_irq(dom,irq,isr,cookie,ackfn,mode) +#ifdef __IPIPE_FEATURE_CONTROL_IRQ +#define rthal_synchronize_irq(irq) ipipe_control_irq(&rthal_domain, irq, \ + IPIPE_HANDLE_MASK|IPIPE_WIRED_MASK, \ + IPIPE_PASS_MASK) +#else /* !__IPIPE_FEATURE_CONTROL_IRQ */ +#define rthal_synchronize_irq(irq) do { } while(0) +#endif /* !__IPIPE_FEATURE_CONTROL_IRQ */ #define rthal_alloc_virq() ipipe_alloc_virq() #define rthal_free_virq(irq) ipipe_free_virq(irq) #define rthal_trigger_irq(irq) ipipe_trigger_irq(irq) _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git