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

indy_int.c File Reference

#include <linux/init.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/types.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/timex.h>
#include <linux/malloc.h>
#include <linux/random.h>
#include <linux/smp.h>
#include <linux/smp_lock.h>
#include <asm/bitops.h>
#include <asm/bootinfo.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/mipsregs.h>
#include <asm/system.h>
#include <asm/ptrace.h>
#include <asm/processor.h>
#include <asm/sgi.h>
#include <asm/sgihpc.h>
#include <asm/sgint23.h>
#include <asm/sgialib.h>
#include <asm/gdb-stub.h>

Include dependency graph for indy_int.c:

Go to the source code of this file.

Functions

asmlinkage void indyIRQ (void)
void disable_local_irq (unsigned int irq_nr)
void enable_local_irq (unsigned int irq_nr)
void disable_gio_irq (unsigned int irq_nr)
void enable_gio_irq (unsigned int irq_nr)
void disable_hpcdma_irq (unsigned int irq_nr)
void enable_hpcdma_irq (unsigned int irq_nr)
void disable_irq (unsigned int irq_nr)
void enable_irq (unsigned int irq_nr)
int setup_indy_irq (int irq, struct irqaction *new)
int get_irq_list (char *buf)
asmlinkage void do_IRQ (int irq, struct pt_regs *regs)
int request_local_irq (unsigned int lirq, void(*func)(int, void *, struct pt_regs *), unsigned long iflags, const char *dname, void *devid)
void free_local_irq (unsigned int lirq, void *dev_id)
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)
static int indy_irq_cannonicalize (int irq)
 __initfunc (void init_IRQ(void))
void indy_local0_irqdispatch (struct pt_regs *regs)
void indy_local1_irqdispatch (struct pt_regs *regs)
void indy_buserror_irq (struct pt_regs *regs)
unsigned long probe_irq_on (void)
int probe_irq_off (unsigned long irqs)

Variables

sgi_int2_regssgi_i2regs
sgi_int3_regssgi_i3regs
sgi_ioc_intsioc_icontrol
sgi_ioc_timersioc_timers
volatile unsigned char * ioc_tclear
static char lc0msk_to_irqnr [256]
static char lc1msk_to_irqnr [256]
static char lc2msk_to_irqnr [256]
static char lc3msk_to_irqnr [256]
unsigned int local_bh_count [NR_CPUS]
unsigned int local_irq_count [NR_CPUS]
unsigned long spurious_count = 0
static struct irqactionlocal_irq_action [24]
static struct irqaction r4ktimer_action
static struct irqaction indy_berr_action
static struct irqactionirq_action [16]
atomic_t __mips_bh_counter
int(* irq_cannonicalize )(int irq)


Function Documentation

__initfunc void   init_IRQ(void)  ) 
 

Definition at line 426 of file indy_int.c.

References indy_irq_cannonicalize(), irq_cannonicalize, and irq_setup.

Here is the call graph for this function:

void disable_gio_irq unsigned int  irq_nr  ) 
 

Definition at line 121 of file indy_int.c.

Referenced by disable_irq().

void disable_hpcdma_irq unsigned int  irq_nr  ) 
 

Definition at line 131 of file indy_int.c.

Referenced by disable_irq().

void disable_irq unsigned int  irq_nr  ) 
 

Definition at line 141 of file indy_int.c.

References disable_gio_irq(), disable_hpcdma_irq(), disable_local_irq(), n, panic(), printk, SGINT_END, SGINT_GIO, SGINT_HPCDMA, and SGINT_LOCAL0.

Here is the call graph for this function:

void disable_local_irq unsigned int  irq_nr  ) 
 

Definition at line 68 of file indy_int.c.

References sgi_ioc_ints::cmeimask0, sgi_ioc_ints::imask0, sgi_ioc_ints::imask1, panic(), printk, restore_flags, and save_and_cli.

Referenced by disable_irq().

Here is the call graph for this function:

asmlinkage void do_IRQ int  irq,
struct pt_regs regs
 

Definition at line 270 of file indy_int.c.

References __cli, __sti, add_interrupt_randomness(), cpu, irqaction::dev_id, irqaction::flags, irqaction::handler, hardirq_enter, hardirq_exit, linux_romvec::imode, kernel_stat::irqs, kstat, irqaction::next, printk, prom_getchar, romvec, SA_INTERRUPT, and smp_processor_id.

Here is the call graph for this function:

void enable_gio_irq unsigned int  irq_nr  ) 
 

Definition at line 126 of file indy_int.c.

Referenced by enable_irq().

void enable_hpcdma_irq unsigned int  irq_nr  ) 
 

Definition at line 136 of file indy_int.c.

Referenced by enable_irq().

void enable_irq unsigned int  irq_nr  ) 
 

Definition at line 159 of file indy_int.c.

References enable_gio_irq(), enable_hpcdma_irq(), enable_local_irq(), n, panic(), printk, SGINT_END, SGINT_GIO, SGINT_HPCDMA, and SGINT_LOCAL0.

Here is the call graph for this function:

void enable_local_irq unsigned int  irq_nr  ) 
 

Definition at line 96 of file indy_int.c.

References sgi_ioc_ints::cmeimask0, sgi_ioc_ints::imask0, sgi_ioc_ints::imask1, panic(), printk, restore_flags, and save_and_cli.

Referenced by enable_irq().

Here is the call graph for this function:

void free_irq unsigned int  irq,
void *  dev_id
 

Definition at line 392 of file indy_int.c.

References irqaction::dev_id, free_local_irq(), kfree(), irqaction::next, p, printk, restore_flags, save_and_cli, SGINT_END, SGINT_GIO, and SGINT_LOCAL0.

Here is the call graph for this function:

void free_local_irq unsigned int  lirq,
void *  dev_id
 

Definition at line 341 of file indy_int.c.

References disable_irq, kfree(), printk, and SGINT_LOCAL0.

Referenced by free_irq().

Here is the call graph for this function:

int get_irq_list char *  buf  ) 
 

Definition at line 222 of file indy_int.c.

References irqaction::flags, i, kernel_stat::irqs, kstat, len, irqaction::name, irqaction::next, num, SA_INTERRUPT, and sprintf().

Here is the call graph for this function:

void indy_buserror_irq struct pt_regs regs  ) 
 

Definition at line 506 of file indy_int.c.

References cpu, hardirq_enter, hardirq_exit, kernel_stat::irqs, kstat, printk, show_regs, and smp_processor_id.

static int indy_irq_cannonicalize int  irq  )  [static]
 

Definition at line 421 of file indy_int.c.

Referenced by __initfunc().

void indy_local0_irqdispatch struct pt_regs regs  ) 
 

Definition at line 432 of file indy_int.c.

References sgi_ioc_ints::cmeimask0, cpu, irqaction::dev_id, end, irqaction::handler, hardirq_enter, hardirq_exit, sgi_ioc_ints::imask0, kernel_stat::irqs, sgi_ioc_ints::istat0, ISTAT0_LIO2, kstat, lc0msk_to_irqnr, lc2msk_to_irqnr, mask, printk, smp_processor_id, and sgi_ioc_ints::vmeistat.

void indy_local1_irqdispatch struct pt_regs regs  ) 
 

Definition at line 469 of file indy_int.c.

References sgi_ioc_ints::cmeimask1, cpu, irqaction::dev_id, end, irqaction::handler, hardirq_enter, hardirq_exit, sgi_ioc_ints::imask1, kernel_stat::irqs, sgi_ioc_ints::istat1, ISTAT1_LIO3, kstat, lc1msk_to_irqnr, lc3msk_to_irqnr, mask, printk, smp_processor_id, and sgi_ioc_ints::vmeistat.

asmlinkage void indyIRQ void   ) 
 

int probe_irq_off unsigned long  irqs  ) 
 

Definition at line 526 of file indy_int.c.

unsigned long probe_irq_on void   ) 
 

Definition at line 521 of file indy_int.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 357 of file indy_int.c.

References irqaction::dev_id, EINVAL, ENOMEM, irqaction::flags, irqaction::handler, kfree(), kmalloc(), irqaction::mask, irqaction::name, irqaction::next, request_local_irq(), setup_indy_irq(), SGINT_END, SGINT_GIO, and SGINT_LOCAL0.

Here is the call graph for this function:

int request_local_irq unsigned int  lirq,
void(*)(int, void *, struct pt_regs *)  func,
unsigned long  iflags,
const char *  dname,
void *  devid
 

Definition at line 317 of file indy_int.c.

References irqaction::dev_id, EINVAL, enable_irq, ENOMEM, irqaction::flags, irqaction::handler, kmalloc(), irqaction::mask, irqaction::name, irqaction::next, and SGINT_LOCAL0.

Referenced by request_irq().

Here is the call graph for this function:

int setup_indy_irq int  irq,
struct irqaction new
 

Definition at line 200 of file indy_int.c.

References irqaction::handler, irqaction::name, and printk.

Referenced by request_irq().


Variable Documentation

atomic_t __mips_bh_counter
 

Definition at line 261 of file indy_int.c.

struct irqaction indy_berr_action [static]
 

Initial value:

 {
        NULL, 0, 0, "IP22 Bus Error", NULL, NULL,
}

Definition at line 211 of file indy_int.c.

struct sgi_ioc_ints* ioc_icontrol
 

Definition at line 46 of file indy_int.c.

Referenced by debounce(), get_lsr_info(), getDebugChar(), panel_int(), putDebugChar(), read_zsreg(), receive_chars(), rs_fair_output(), rs_flush_chars(), rs_put_char(), rs_recv_clear(), startup(), status_handle(), transmit_chars(), volume_down_button(), volume_up_button(), write_zsreg(), ZS_CLEARERR(), and ZS_CLEARFIFO().

volatile unsigned char* ioc_tclear
 

Definition at line 48 of file indy_int.c.

struct sgi_ioc_timers* ioc_timers
 

Definition at line 47 of file indy_int.c.

Referenced by __initfunc().

struct irqaction* irq_action[16] [static]
 

Initial value:

 {
        NULL, NULL, NULL, NULL,
        NULL, NULL, &indy_berr_action, &r4ktimer_action,
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL
}

Definition at line 215 of file indy_int.c.

int(* irq_cannonicalize)(int irq)
 

Definition at line 419 of file indy_int.c.

char lc0msk_to_irqnr[256] [static]
 

Definition at line 50 of file indy_int.c.

Referenced by indy_local0_irqdispatch().

char lc1msk_to_irqnr[256] [static]
 

Definition at line 51 of file indy_int.c.

Referenced by indy_local1_irqdispatch().

char lc2msk_to_irqnr[256] [static]
 

Definition at line 52 of file indy_int.c.

Referenced by indy_local0_irqdispatch().

char lc3msk_to_irqnr[256] [static]
 

Definition at line 53 of file indy_int.c.

Referenced by indy_local1_irqdispatch().

unsigned int local_bh_count[NR_CPUS]
 

Definition at line 57 of file indy_int.c.

struct irqaction* local_irq_action[24] [static]
 

Initial value:

 {
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL,
        NULL, NULL, NULL, NULL
}

Definition at line 191 of file indy_int.c.

unsigned int local_irq_count[NR_CPUS]
 

Definition at line 58 of file indy_int.c.

struct irqaction r4ktimer_action [static]
 

Initial value:

 {
        NULL, 0, 0, "R4000 timer/counter", NULL, NULL,
}

Definition at line 207 of file indy_int.c.

struct sgi_int2_regs* sgi_i2regs
 

Definition at line 44 of file indy_int.c.

struct sgi_int3_regs* sgi_i3regs
 

Definition at line 45 of file indy_int.c.

unsigned long spurious_count = 0
 

Definition at line 59 of file indy_int.c.