Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

ppc/kernel/irq.c File Reference

#include <linux/ptrace.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/timex.h>
#include <linux/config.h>
#include <linux/init.h>
#include <linux/malloc.h>
#include <linux/openpic.h>
#include <linux/pci.h>
#include <linux/delay.h>
#include <asm/bitops.h>
#include <asm/hydra.h>
#include <asm/system.h>
#include <asm/io.h>
#include <asm/pgtable.h>
#include <asm/irq.h>
#include <asm/gg2.h>
#include <asm/cache.h>
#include <asm/prom.h>
#include <asm/amigaints.h>
#include <asm/amigahw.h>
#include <asm/amigappc.h>
#include <asm/ptrace.h>
#include "local_irq.h"

Include dependency graph for ppc/kernel/irq.c:

Go to the source code of this file.

Defines

#define MAXCOUNT   10000000
#define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)

Functions

void enable_irq (unsigned int irq_nr)
void disable_irq (unsigned int irq_nr)
void * irq_kmalloc (size_t size, int pri)
void irq_kfree (void *ptr)
int request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *devname, void *dev_id)
void free_irq (unsigned int irq, void *dev_id)
void disable_irq_nosync (unsigned int irq_nr)
int get_irq_list (char *buf)
void ppc_irq_dispatch_handler (struct pt_regs *regs, int irq)
asmlinkage void do_IRQ (struct pt_regs *regs, int isfake)
unsigned long probe_irq_on (void)
int probe_irq_off (unsigned long irqs)
unsigned long __init init_IRQ (unsigned long memory)

Variables

atomic_t ipi_recv
atomic_t ipi_sent
volatile unsigned char * chrp_int_ack_special
int ppc_spurious_interrupts = 0
unsigned int ppc_local_bh_count [NR_CPUS]
unsigned int ppc_local_irq_count [NR_CPUS]
irqactionppc_irq_action [NR_IRQS]
unsigned int ppc_cached_irq_mask [NR_MASK_WORDS]
unsigned int ppc_lost_interrupts [NR_MASK_WORDS]
atomic_t ppc_n_lost_interrupts
static unsigned long cache_bitmask [1]
static struct irqaction malloc_cache [32]
int mem_init_done
irqdesc irq_desc [NR_IRQS] = {{0, 0}, }


Define Documentation

#define MAXCOUNT   10000000
 

Definition at line 80 of file ppc/kernel/irq.c.

Referenced by gazel_interrupt(), gazel_interrupt_ipac(), pmac_do_IRQ(), s0box_interrupt(), and teles3_interrupt().

#define NR_MASK_WORDS   ((NR_IRQS + 31) / 32)
 

Definition at line 82 of file ppc/kernel/irq.c.


Function Documentation

void disable_irq unsigned int  irq_nr  ) 
 

Definition at line 213 of file alpha/kernel/irq.c.

void disable_irq_nosync unsigned int  irq_nr  ) 
 

Definition at line 199 of file ppc/kernel/irq.c.

References mask_irq, restore_flags, and save_and_cli.

asmlinkage void do_IRQ struct pt_regs regs,
int  isfake
 

Definition at line 285 of file ppc/kernel/irq.c.

void enable_irq unsigned int  irq_nr  ) 
 

Definition at line 221 of file alpha/kernel/irq.c.

void free_irq unsigned int  irq,
void *  dev_id
 

Definition at line 193 of file ppc/kernel/irq.c.

References NULL, and request_irq().

Here is the call graph for this function:

int get_irq_list char *  buf  ) 
 

Definition at line 215 of file ppc/kernel/irq.c.

References irqdesc::action, atomic_read, cpu_logical_map, irqaction::handler, i, kernel_stat::irqs, j, kstat, kstat_irqs(), len, irqaction::name, irqaction::next, ppc_spurious_interrupts, smp_num_cpus, and sprintf().

Here is the call graph for this function:

unsigned long __init init_IRQ unsigned long  memory  ) 
 

Definition at line 304 of file ppc/kernel/irq.c.

References machdep_calls::init_IRQ, and ppc_md.

void irq_kfree void *  ptr  ) 
 

Definition at line 117 of file ppc/kernel/irq.c.

References cache_bitmask, clear_bit, i, and kfree().

Referenced by request_irq().

Here is the call graph for this function:

void* irq_kmalloc size_t  size,
int  pri
 

Definition at line 103 of file ppc/kernel/irq.c.

References cache_bitmask, i, kmalloc(), mem_init_done, set_bit, and test_bit.

Referenced by request_irq().

Here is the call graph for this function:

void ppc_irq_dispatch_handler struct pt_regs regs,
int  irq
 

Definition at line 259 of file ppc/kernel/irq.c.

References __cli, __sti, irqdesc::action, cpu, irqaction::dev_id, disable_irq, irqaction::flags, irqaction::handler, kernel_stat::irqs, kstat, mask_and_ack_irq, irqaction::next, ppc_spurious_interrupts, SA_INTERRUPT, smp_processor_id, status, and unmask_irq.

Referenced by gatwick_action(), gemini_do_IRQ(), open_pic_do_IRQ(), pmac_do_IRQ(), and prep_do_IRQ().

int probe_irq_off unsigned long  irqs  ) 
 

Definition at line 299 of file ppc/kernel/irq.c.

unsigned long probe_irq_on void   ) 
 

Definition at line 294 of file ppc/kernel/irq.c.

int request_irq unsigned int  irq,
void(*)(int, void *, struct pt_regs *)  handler,
unsigned long  irqflags,
const char *  devname,
void *  dev_id
 

Definition at line 131 of file ppc/kernel/irq.c.

References irqdesc::action, cli, irqaction::dev_id, disable_irq, EBUSY, EINVAL, enable_irq, ENOENT, ENOMEM, irqaction::flags, irqaction::handler, irq_kfree(), irq_kmalloc(), irqaction::mask, irqaction::name, irqaction::next, NULL, p, restore_flags, SA_SHIRQ, and save_flags.

Here is the call graph for this function:


Variable Documentation

unsigned long cache_bitmask[1] [static]
 

Definition at line 99 of file ppc/kernel/irq.c.

Referenced by irq_kfree(), and irq_kmalloc().

volatile unsigned char* chrp_int_ack_special
 

Definition at line 70 of file ppc/kernel/irq.c.

atomic_t ipi_recv
 

Definition at line 52 of file ppc/kernel/smp.c.

atomic_t ipi_sent
 

Definition at line 53 of file ppc/kernel/smp.c.

struct irqdesc irq_desc[NR_IRQS] = {{0, 0}, }
 

Definition at line 129 of file ppc/kernel/irq.c.

struct irqaction malloc_cache[32] [static]
 

Definition at line 100 of file ppc/kernel/irq.c.

int mem_init_done
 

Definition at line 62 of file arch/ppc/mm/init.c.

unsigned int ppc_cached_irq_mask[NR_MASK_WORDS]
 

Definition at line 89 of file ppc/kernel/irq.c.

Referenced by mbx_mask_irq(), mbx_unmask_irq(), pmac_mask_and_ack_irq(), pmac_mask_irq(), pmac_set_irq_mask(), and pmac_unmask_irq().

struct irqaction* ppc_irq_action[NR_IRQS]
 

Definition at line 88 of file ppc/kernel/irq.c.

unsigned int ppc_local_bh_count[NR_CPUS]
 

Definition at line 86 of file ppc/kernel/irq.c.

Referenced by end_bh_atomic(), and start_bh_atomic().

unsigned int ppc_local_irq_count[NR_CPUS]
 

Definition at line 87 of file ppc/kernel/irq.c.

unsigned int ppc_lost_interrupts[NR_MASK_WORDS]
 

Definition at line 90 of file ppc/kernel/irq.c.

Referenced by gatwick_action(), pmac_do_IRQ(), pmac_mask_and_ack_irq(), and pmac_set_irq_mask().

atomic_t ppc_n_lost_interrupts
 

Definition at line 91 of file ppc/kernel/irq.c.

Referenced by __restore_flags(), pmac_mask_and_ack_irq(), and pmac_set_irq_mask().

int ppc_spurious_interrupts = 0
 

Definition at line 84 of file ppc/kernel/irq.c.

Referenced by gemini_do_IRQ(), get_irq_list(), open_pic_do_IRQ(), pmac_do_IRQ(), ppc_irq_dispatch_handler(), and prep_do_IRQ().