Jan Kiszka wrote: > In case the user thinks rtdm_lock_get could be used like spin_lock or > messes up the IRQ protection for other reasons, catch this with a > XENO_BUGON. > > Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> > --- > > include/rtdm/rtdm_driver.h | 8 ++++++++ > 1 files changed, 8 insertions(+), 0 deletions(-) > > diff --git a/include/rtdm/rtdm_driver.h b/include/rtdm/rtdm_driver.h > index 058a9f8..fe42eea 100644 > --- a/include/rtdm/rtdm_driver.h > +++ b/include/rtdm/rtdm_driver.h > @@ -655,7 +655,15 @@ typedef unsigned long rtdm_lockctx_t; > * > * Rescheduling: never. > */ > +#ifdef DOXYGEN_CPP /* Beautify doxygen output */ > #define rtdm_lock_get(lock) rthal_spin_lock(lock) > +#else /* This is how it really works */ > +#define rtdm_lock_get(lock) \ > + do { \ > + XENO_BUGON(RTDM, rthal_local_irq_test()); \ > + rthal_spin_lock(lock); \ > + } while (0) > +#endif
Why is it a problem to call rthal_spin_lock with irqs off? I also belived that you can avoid the #ifdef DOXYGEN_CPP. -- Gilles. _______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core