Mask interrupts from inside the ISR

Thomas Doerfler (nt) Thomas.Doerfler at imd-systems.de
Wed Jan 21 20:49:11 UTC 2009


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Loen,

it really depends on WHERE you want to block the interrupt. In typical
PPC controllers, you can block them in the interrupt controller
(Interrupt mask register or similar). This facility is vital for the
implementation of nested interrupts, and therefore owned by the
interrupt dispatcher.

And most interrupt source have their own private interrupt mask register
(e.h. SCCs/SMCs in MPC860/MPC8260). External interrupt source should
also have their own blocking mechanism. And this is where the ISR (which
belongs to some sort of device driver) may block futher interrupts.

wkr,
Thomas.

Leon Pollak schrieb:
> Hello, all.
> 
> Sorry for a stupid question, but I do not see an answer after studying the 
> irq.c files:
> 
> If I am inside the ISR and I came to the conclusion that I do not want to have 
> this interrupt any more, how can I block it?
> 
> Independently of my actions in ISR, the code in irq.c file will restore the 
> previous mask value after exiting from my ISR (restoration comes from the 
> old_simr_h & old_simr_l variables local to the C_dispatch_irq_handler for 
> PowerPC).
> 
> Thanks ahead for the help.


- --
- --------------------------------------------
IMD Ingenieurbuero fuer Microcomputertechnik
Thomas Doerfler           Herbststrasse 8
D-82178 Puchheim          Germany
email:    Thomas.Doerfler at imd-systems.de
PGP public key available at:
     http://www.imd-systems.de/pgpkey_en.html
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFJd4pGwHyg4bDtfjQRAtZIAJ9W5GDqyUa12GPef7hTzxaR+XFhZACgl/Ah
MDBpbyboO63H6S76oShl4Bc=
=1zTD
-----END PGP SIGNATURE-----



More information about the users mailing list