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