Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions
irq.c File Reference
#include <linux/interrupt.h>
#include <linux/init.h>
#include <linux/of.h>
#include <linux/ftrace.h>
#include <linux/irq.h>
#include <linux/export.h>
#include <linux/irqdomain.h>
#include <linux/irqflags.h>

Go to the source code of this file.

Functions

unsigned long arch_local_save_flags (void)
 
 EXPORT_SYMBOL (arch_local_save_flags)
 
void arch_local_irq_restore (unsigned long flags)
 
 EXPORT_SYMBOL (arch_local_irq_restore)
 
void __init init_IRQ (void)
 
void __irq_entry do_IRQ (struct pt_regs *regs)
 

Function Documentation

void arch_local_irq_restore ( unsigned long  flags)

Definition at line 34 of file irq.c.

unsigned long arch_local_save_flags ( void  )

Definition at line 27 of file irq.c.

void __irq_entry do_IRQ ( struct pt_regs regs)

Definition at line 174 of file irq.c.

EXPORT_SYMBOL ( arch_local_save_flags  )
EXPORT_SYMBOL ( arch_local_irq_restore  )
void __init init_IRQ ( void  )

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 169 of file irq.c.