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

sun4m_irq.c File Reference

#include <linux/ptrace.h>
#include <linux/errno.h>
#include <linux/linkage.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/smp.h>
#include <linux/interrupt.h>
#include <linux/malloc.h>
#include <linux/init.h>
#include <asm/ptrace.h>
#include <asm/processor.h>
#include <asm/system.h>
#include <asm/psr.h>
#include <asm/vaddrs.h>
#include <asm/timer.h>
#include <asm/openprom.h>
#include <asm/oplib.h>
#include <asm/traps.h>
#include <asm/pgtable.h>
#include <asm/smp.h>
#include <asm/irq.h>
#include <asm/io.h>

Include dependency graph for sun4m_irq.c:

Go to the source code of this file.

Defines

#define OBIO_INTR   0x20
#define TIMER_IRQ   (OBIO_INTR | 10)
#define PROFILE_IRQ   (OBIO_INTR | 14)

Functions

unsigned long sun4m_get_irqmask (unsigned int irq)
static void sun4m_disable_irq (unsigned int irq_nr)
static void sun4m_enable_irq (unsigned int irq_nr)
static void sun4m_disable_pil_irq (unsigned int pil)
static void sun4m_enable_pil_irq (unsigned int pil)
static void sun4m_clear_clock_irq (void)
static void sun4m_clear_profile_irq (int cpu)
static void sun4m_load_profile_irq (int cpu, unsigned int limit)
char * sun4m_irq_itoa (unsigned int irq)
 __initfunc (static void sun4m_init_timers(void(*counter_fn)(int, void *, struct pt_regs *)))
 __initfunc (void sun4m_init_IRQ(void))

Variables

static unsigned long dummy
sun4m_intregssun4m_interrupts
unsigned longirq_rcvreg = &dummy
static unsigned char irq_xlate [32]
static unsigned long irq_mask []
static unsigned long cpu_pil_to_imask [16]
sun4m_timer_regssun4m_timers
unsigned int lvl14_resolution = (((1000000/HZ) + 1) << 10)


Define Documentation

#define OBIO_INTR   0x20
 

Definition at line 191 of file sun4m_irq.c.

#define PROFILE_IRQ   (OBIO_INTR | 14)
 

Definition at line 193 of file sun4m_irq.c.

#define TIMER_IRQ   (OBIO_INTR | 10)
 

Definition at line 192 of file sun4m_irq.c.


Function Documentation

__initfunc void   sun4m_init_IRQ(void)  ) 
 

Definition at line 306 of file sun4m_irq.c.

References __cli, __irq_itoa, BTFIXUPCALL_NORM, BTFIXUPSET_CALL, sun4m_intreg_percpu::clear, clear_clock_irq, clear_profile_irq, sun4m_intregs::cpu_intregs, disable_irq, disable_pil_irq, enable_irq, enable_pil_irq, i, init_timers, irq_rcvreg, linux_num_cpus, load_profile_irq, PAGE_SIZE, prom_apply_obio_ranges(), prom_getchild(), prom_getproperty(), prom_halt(), prom_printf, prom_root_node, prom_searchsiblings(), linux_prom_registers::reg_size, sun4m_intregs::set, sparc_alloc_io(), sun4m_clear_clock_irq(), sun4m_clear_profile_irq(), sun4m_disable_irq(), sun4m_disable_pil_irq(), sun4m_enable_irq(), sun4m_enable_pil_irq(), SUN4M_INT_MASKALL, sun4m_irq_itoa(), sun4m_load_profile_irq(), sun4m_intregs::undirected_target, linux_prom_registers::which_io, and x0.

Here is the call graph for this function:

__initfunc static void   sun4m_init_timers(void(*counter_fn)(int, void *, struct pt_regs *))  ) 
 

Definition at line 223 of file sun4m_irq.c.

References __restore_flags, __save_and_cli, cpu, sun4m_timer_regs::cpu_timers, HZ, tt_entry::inst_four, tt_entry::inst_one, tt_entry::inst_three, tt_entry::inst_two, irq, sun4m_timer_regs::l10_cur_count, sun4m_timer_regs::l10_timer_limit, sun4m_timer_percpu_info::l14_timer_limit, linux_num_cpus, lvl14_save, master_l10_counter, master_l10_limit, NULL, PAGE_SIZE, prom_apply_obio_ranges(), prom_getchild(), prom_getproperty(), prom_halt(), prom_printf, prom_root_node, prom_searchsiblings(), linux_prom_registers::reg_size, request_irq(), SA_INTERRUPT, sun4m_intregs::set, SP_TRAP_IRQ1, sparc_alloc_io(), sparc_ttable, SUN4M_INT_E14, TIMER_IRQ, linux_prom_registers::which_io, and x0.

Here is the call graph for this function:

static void sun4m_clear_clock_irq void   )  [static]
 

Definition at line 198 of file sun4m_irq.c.

References sun4m_timer_regs::l10_timer_limit.

Referenced by __initfunc().

static void sun4m_clear_profile_irq int  cpu  )  [static]
 

Definition at line 204 of file sun4m_irq.c.

References clear, sun4m_timer_regs::cpu_timers, and sun4m_timer_percpu_info::l14_timer_limit.

Referenced by __initfunc().

static void sun4m_disable_irq unsigned int  irq_nr  )  [static]
 

Definition at line 98 of file sun4m_irq.c.

References cpu, sun4m_intregs::cpu_intregs, mask, restore_flags, save_and_cli, sun4m_intreg_percpu::set, sun4m_intregs::set, smp_processor_id, and sun4m_get_irqmask().

Referenced by __initfunc().

Here is the call graph for this function:

static void sun4m_disable_pil_irq unsigned int  pil  )  [static]
 

Definition at line 158 of file sun4m_irq.c.

References cpu_pil_to_imask, and sun4m_intregs::set.

Referenced by __initfunc().

static void sun4m_enable_irq unsigned int  irq_nr  )  [static]
 

Definition at line 112 of file sun4m_irq.c.

References sun4m_intreg_percpu::clear, sun4m_intregs::clear, cpu, sun4m_intregs::cpu_intregs, mask, restore_flags, save_and_cli, smp_processor_id, sun4m_get_irqmask(), and SUN4M_INT_FLOPPY.

Referenced by __initfunc().

Here is the call graph for this function:

static void sun4m_enable_pil_irq unsigned int  pil  )  [static]
 

Definition at line 163 of file sun4m_irq.c.

References sun4m_intregs::clear, and cpu_pil_to_imask.

Referenced by __initfunc().

unsigned long sun4m_get_irqmask unsigned int  irq  )  [inline]
 

Definition at line 77 of file sun4m_irq.c.

References irq_mask, irq_xlate, mask, printk, SUN4M_SOFT_INT, and x20.

Referenced by sun4m_disable_irq(), and sun4m_enable_irq().

char* sun4m_irq_itoa unsigned int  irq  ) 
 

Definition at line 216 of file sun4m_irq.c.

References sprintf().

Referenced by __initfunc().

Here is the call graph for this function:

static void sun4m_load_profile_irq int  cpu,
unsigned int  limit
[static]
 

Definition at line 211 of file sun4m_irq.c.

References sun4m_timer_regs::cpu_timers, and sun4m_timer_percpu_info::l14_timer_limit.

Referenced by __initfunc().


Variable Documentation

unsigned long cpu_pil_to_imask[16] [static]
 

Initial value:

Definition at line 136 of file sun4m_irq.c.

Referenced by sun4m_disable_pil_irq(), and sun4m_enable_pil_irq().

unsigned long dummy [static]
 

Definition at line 37 of file sun4m_irq.c.

unsigned long irq_mask[] [static]
 

Initial value:

Definition at line 59 of file sun4m_irq.c.

Referenced by __initfunc(), dc21041_autoconf(), dc2114x_autoconf(), pcnet32_probe1(), and sun4m_get_irqmask().

unsigned long* irq_rcvreg = &dummy
 

Definition at line 40 of file sun4m_irq.c.

Referenced by __initfunc().

unsigned char irq_xlate[32] [static]
 

Initial value:

 {
    
        0,  0,  0,  0,  1,  0,  2,  0,  3,  0,  4,  5,  6, 14,  0,  7,
        0,  0,  8,  9,  0, 10,  0, 11,  0, 12,  0, 13,  0, 14,  0,  0
}

Definition at line 53 of file sun4m_irq.c.

Referenced by sun4m_get_irqmask().

unsigned int lvl14_resolution = (((1000000/HZ) + 1) << 10)
 

Definition at line 196 of file sun4m_irq.c.

struct sun4m_intregs* sun4m_interrupts
 

Definition at line 39 of file sun4m_irq.c.

struct sun4m_timer_regs* sun4m_timers
 

Definition at line 195 of file sun4m_irq.c.