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/bitops.h>
#include <linux/errno.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/kernel_stat.h>
#include <linux/seq_file.h>
#include <linux/spinlock.h>
#include <linux/types.h>
#include <asm/io.h>
#include <asm/smp.h>

Go to the source code of this file.

Macros

#define EIEM_MASK(irq)   (1UL<<(CPU_IRQ_MAX - irq))
 

Functions

irqreturn_t timer_interrupt (int, void *)
 
irqreturn_t ipi_interrupt (int, void *)
 
void cpu_ack_irq (struct irq_data *d)
 
void cpu_eoi_irq (struct irq_data *d)
 
int show_interrupts (struct seq_file *p, void *v)
 
int cpu_claim_irq (unsigned int irq, struct irq_chip *type, void *data)
 
int txn_claim_irq (int irq)
 
int txn_alloc_irq (unsigned int bits_wide)
 
unsigned long txn_affinity_addr (unsigned int irq, int cpu)
 
unsigned long txn_alloc_addr (unsigned int virt_irq)
 
unsigned int txn_alloc_data (unsigned int virt_irq)
 
void do_cpu_irq_mask (struct pt_regs *regs)
 
void __init init_IRQ (void)
 

Macro Definition Documentation

#define EIEM_MASK (   irq)    (1UL<<(CPU_IRQ_MAX - irq))

Definition at line 41 of file irq.c.

Function Documentation

void cpu_ack_irq ( struct irq_data d)

Definition at line 83 of file irq.c.

int cpu_claim_irq ( unsigned int  irq,
struct irq_chip type,
void data 
)

Definition at line 235 of file irq.c.

void cpu_eoi_irq ( struct irq_data d)

Definition at line 98 of file irq.c.

void do_cpu_irq_mask ( struct pt_regs regs)

Definition at line 334 of file irq.c.

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

irqreturn_t ipi_interrupt ( int  ,
void  
)

Definition at line 122 of file smp.c.

int show_interrupts ( struct seq_file p,
void v 
)

Definition at line 155 of file irq.c.

irqreturn_t timer_interrupt ( int  ,
void  
)

Definition at line 164 of file time.c.

unsigned long txn_affinity_addr ( unsigned int  irq,
int  cpu 
)

Definition at line 292 of file irq.c.

unsigned long txn_alloc_addr ( unsigned int  virt_irq)

Definition at line 303 of file irq.c.

unsigned int txn_alloc_data ( unsigned int  virt_irq)

Definition at line 322 of file irq.c.

int txn_alloc_irq ( unsigned int  bits_wide)

Definition at line 274 of file irq.c.

int txn_claim_irq ( int  irq)

Definition at line 251 of file irq.c.