How to mask IRQ
leonp at plris.com
leonp at plris.com
Sun May 29 13:13:39 UTC 2005
> > Hmmm, may be I miss something.
> > The dispatcher code I see in general looks like:
> >
> > void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int
> > excNum) {
> > register unsigned oldMask; /* old siu pic masks */
> > .......
> > oldMask = ppc_cached_irq_mask;
> > ppc_cached_irq_mask = oldMask & SIU_IvectMask[irq];
>
> <== the SIU_IvectMask[irq] is what I mean as currently it mask only the
> current interrupt but could maks others. See comment in the table
> initialization. In fact I was wrong I my first message the mak
> possibility is currently at SIU level via this table. Could be also
> done at CPM but have no more doucmentation handy...
Well, it must be my poor english...:-)
I want to stop to receive the IRQ5 & IRQ4 interrupts at all till some other
event occurs, which may be reenable them.
This decision of masking IRQ4-5 I can take only inside the ISR of the IRQ5.
If I mask something inside the ISR, it is erased by the mask restoration
immediately after my ISR function.
If I call some IRQ handling functions, it will be considered only on the next
interrupt occurrence.
Where am i wrong?
--
Leon M.Pollak
More information about the users
mailing list