Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
irq.c File Reference
#include <linux/module.h>
#include <linux/seq_file.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kernel_stat.h>
#include <linux/uaccess.h>
#include <hv/drv_pcie_rc_intf.h>
#include <arch/spr_def.h>
#include <asm/traps.h>

Go to the source code of this file.

Macros

#define IS_HW_CLEARED   1
 
#define mask_irqs(irq_mask)   hv_disable_intr(irq_mask)
 
#define unmask_irqs(irq_mask)   hv_enable_intr(irq_mask)
 
#define clear_irqs(irq_mask)   hv_clear_intr(irq_mask)
 

Functions

 DEFINE_PER_CPU (unsigned long long, interrupts_enabled_mask)
 
 EXPORT_PER_CPU_SYMBOL (interrupts_enabled_mask)
 
 DEFINE_PER_CPU (irq_cpustat_t, irq_stat)
 
void __init init_IRQ (void)
 
void __cpuinit setup_irq_regs (void)
 
void tile_irq_activate (unsigned int irq, int tile_irq_type)
 
 EXPORT_SYMBOL (tile_irq_activate)
 
void ack_bad_irq (unsigned int irq)
 

Macro Definition Documentation

#define clear_irqs (   irq_mask)    hv_clear_intr(irq_mask)
#define IS_HW_CLEARED   1

Definition at line 26 of file irq.c.

#define mask_irqs (   irq_mask)    hv_disable_intr(irq_mask)
#define unmask_irqs (   irq_mask)    hv_enable_intr(irq_mask)

Function Documentation

void ack_bad_irq ( unsigned int  irq)

Definition at line 256 of file irq.c.

DEFINE_PER_CPU ( unsigned long  long,
interrupts_enabled_mask   
)
DEFINE_PER_CPU ( irq_cpustat_t  ,
irq_stat   
)

Definition at line 40 of file irq.c.

EXPORT_PER_CPU_SYMBOL ( interrupts_enabled_mask  )
EXPORT_SYMBOL ( tile_irq_activate  )
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 218 of file irq.c.

void __cpuinit setup_irq_regs ( void  )

Definition at line 223 of file irq.c.

void tile_irq_activate ( unsigned int  irq,
int  tile_irq_type 
)

Definition at line 232 of file irq.c.