Linux generic IRQ handling

Thomas Gleixner

Ingo Molnar

This documentation is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

For more details see the file COPYING in the source distribution of Linux.


Table of Contents

1. Introduction
2. Rationale
3. Known Bugs And Assumptions
4. Abstraction layers
Interrupt control flow
Highlevel Driver API
Highlevel IRQ flow handlers
Default flow implementations
Helper functions
Default flow handler implementations
Default Level IRQ flow handler
Default Edge IRQ flow handler
Default simple IRQ flow handler
Default per CPU flow handler
Quirks and optimizations
Delayed interrupt disable
Chiplevel hardware encapsulation
5. __do_IRQ entry point
6. Locking on SMP
7. Structures
8. Public Functions Provided
9. Internal Functions Provided
10. Credits