How to mask IRQ
leonp at plris.com
leonp at plris.com
Wed Jun 1 07:25:33 UTC 2005
On Tuesday, 31 בMay 2005 20:34, Thomas Doerfler wrote:
> Leon,
>
> I had a look into the mbx8xx BSP irq handler code as an example. At a
> first glance I would say, that no API extension would be needed to
> achive your functionality, but the current implementation would need
> some modifications.
>
> You already have the two calls:
>
> int BSP_install_rtems_irq_handler (const rtems_irq_connect_data* irq);
> int BSP_remove_rtems_irq_handler (const rtems_irq_connect_data* irq);
>
> and
>
> int BSP_get_current_rtems_irq_handler (rtems_irq_connect_data* irq);
>
> Currently, I think, it is not yet safe to call
> "BSP_remove_rtems_irq_handler" from an ISR, but I think with some
> careful tinkering it could be made safe.
>
> Would this be ok for your requirements?
Thanks Thomas.
Well, for my current project any of these solutions will be OK :-)
But I think that this seems to be a high price to be paid for a simple
operation, such as masking of interrupt. These routines you mentioned are
relatively heavy, a lot of code.
And it requires some significant redesign, as for now it simply will not
work: the BSP_remove_rtems_irq_handler() masks the SIU interrupt and stores
the "new" mask in the same ppc_chached_mask variable which is restored in the
handler after ISR return.
Thus, any changes will be destroyed at the ISR exit.
Am I correct?
--
Leon M.Pollak
More information about the users
mailing list