#include <linux/linkage.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/interrupt.h>
#include <asm/pil.h>
#include <asm/ptrace.h>
Go to the source code of this file.
|
void | irq_install_pre_handler (int irq, void(*func)(unsigned int, void *, void *), void *arg1, void *arg2) |
|
unsigned int | build_irq (int inofixup, unsigned long iclr, unsigned long imap) |
|
unsigned int | sun4v_build_irq (u32 devhandle, unsigned int devino) |
|
unsigned int | sun4v_build_virq (u32 devhandle, unsigned int devino) |
|
unsigned int | sun4v_build_msi (u32 devhandle, unsigned int *irq_p, unsigned int msi_devino_start, unsigned int msi_devino_end) |
|
void | sun4v_destroy_msi (unsigned int irq) |
|
unsigned int | sun4u_build_msi (u32 portid, unsigned int *irq_p, unsigned int msi_devino_start, unsigned int msi_devino_end, unsigned long imap_base, unsigned long iclr_base) |
|
void | sun4u_destroy_msi (unsigned int irq) |
|
unsigned char | irq_alloc (unsigned int dev_handle, unsigned int dev_ino) |
|
void __init | init_IRQ (void) |
|
void | fixup_irqs (void) |
|
void | arch_trigger_all_cpu_backtrace (void) |
|
#define __ARCH_HAS_DO_SOFTIRQ |
#define arch_trigger_all_cpu_backtrace arch_trigger_all_cpu_backtrace |
#define ICLR_IDLE 0x00000000UL /* Idle state */ |
#define ICLR_PENDING 0x00000003UL /* Pending state */ |
#define ICLR_TRANSMIT 0x00000001UL /* Transmit state */ |
#define IMAP_AID_SAFARI 0x7c000000UL /* Safari AgentID */ |
#define IMAP_AID_SHIFT 26 |
#define IMAP_IGN 0x000007c0UL /* IRQ Group Number */ |
#define IMAP_INO 0x0000003fUL /* IRQ Number */ |
#define IMAP_INR 0x000007ffUL /* Full interrupt number*/ |
#define IMAP_NID_SAFARI 0x03e00000UL /* Safari NodeID */ |
#define IMAP_NID_SHIFT 21 |
#define IMAP_TID_JBUS 0x7c000000UL /* JBUS TargetID */ |
#define IMAP_TID_SHIFT 26 |
#define IMAP_TID_UPA 0x7c000000UL /* UPA TargetID */ |
#define IMAP_VALID 0x80000000UL /* IRQ Enabled */ |
#define irq_canonicalize |
( |
|
irq | ) |
(irq) |
#define NO_IRQ 0xffffffff |
void arch_trigger_all_cpu_backtrace |
( |
void |
| ) |
|
unsigned int build_irq |
( |
int |
inofixup, |
|
|
unsigned long |
iclr, |
|
|
unsigned long |
imap |
|
) |
| |
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.
Definition at line 109 of file irq_alpha.c.
unsigned char irq_alloc |
( |
unsigned int |
dev_handle, |
|
|
unsigned int |
dev_ino |
|
) |
| |
unsigned int sun4u_build_msi |
( |
u32 |
portid, |
|
|
unsigned int * |
irq_p, |
|
|
unsigned int |
msi_devino_start, |
|
|
unsigned int |
msi_devino_end, |
|
|
unsigned long |
imap_base, |
|
|
unsigned long |
iclr_base |
|
) |
| |
void sun4u_destroy_msi |
( |
unsigned int |
irq | ) |
|
unsigned int sun4v_build_irq |
( |
u32 |
devhandle, |
|
|
unsigned int |
devino |
|
) |
| |
unsigned int sun4v_build_msi |
( |
u32 |
devhandle, |
|
|
unsigned int * |
irq_p, |
|
|
unsigned int |
msi_devino_start, |
|
|
unsigned int |
msi_devino_end |
|
) |
| |
unsigned int sun4v_build_virq |
( |
u32 |
devhandle, |
|
|
unsigned int |
devino |
|
) |
| |
void sun4v_destroy_msi |
( |
unsigned int |
irq | ) |
|