|
Linux Kernel
3.7.1
|
#include <linux/linkage.h>#include <linux/errno.h>#include <linux/signal.h>#include <linux/sched.h>#include <linux/ioport.h>#include <linux/interrupt.h>#include <linux/timex.h>#include <linux/random.h>#include <linux/kprobes.h>#include <linux/init.h>#include <linux/kernel_stat.h>#include <linux/device.h>#include <linux/bitops.h>#include <linux/acpi.h>#include <linux/io.h>#include <linux/delay.h>#include <linux/atomic.h>#include <asm/timer.h>#include <asm/hw_irq.h>#include <asm/pgtable.h>#include <asm/desc.h>#include <asm/apic.h>#include <asm/setup.h>#include <asm/i8259.h>#include <asm/traps.h>#include <asm/prom.h>Go to the source code of this file.
Functions | |
| DEFINE_PER_CPU (vector_irq_t, vector_irq) | |
| int | vector_used_by_percpu_irq (unsigned int vector) |
| void __init | init_ISA_irqs (void) |
| void __init | init_IRQ (void) |
| void | setup_vector_irq (int cpu) |
| void __init | native_init_IRQ (void) |
| DEFINE_PER_CPU | ( | vector_irq_t | , |
| vector_irq | |||
| ) |
The hexagon core comes with a first-level interrupt controller with 32 total possible interrupts. When the core is embedded into different systems/platforms, it is typically wrapped by macro cells that provide one or more second-level interrupt controllers that are cascaded into one or more of the first-level interrupts handled here. The precise wiring of these other irqs varies from platform to platform, and are set up & configured in the platform-specific files.
The first-level interrupt controller is wrapped by the VM, which virtualizes the interrupt controller for us. It provides a very simple, fast & efficient API, and so the fasteoi handler is appropriate for this case.
1.8.2