#include <linux/config.h>#include <linux/ptrace.h>#include <linux/errno.h>#include <linux/kernel_stat.h>#include <linux/signal.h>#include <linux/interrupt.h>#include <linux/malloc.h>#include <linux/random.h>#include <linux/init.h>#include <linux/delay.h>#include <asm/ptrace.h>#include <asm/processor.h>#include <asm/atomic.h>#include <asm/system.h>#include <asm/irq.h>#include <asm/sbus.h>#include <asm/iommu.h>#include <asm/upa.h>#include <asm/oplib.h>#include <asm/timer.h>#include <asm/smp.h>#include <asm/hardirq.h>#include <asm/softirq.h>Include dependency graph for sparc64/kernel/irq.c:

Go to the source code of this file.
Defines | |
| #define | SA_IMAP_MASKED 0x100 |
| #define | SA_DMA_SYNC 0x200 |
| #define | irq_work(__cpu, __pil) &(__up_workvec[(__pil)]) |
| #define | MAX_STATIC_ALLOC 4 |
| #define | IBF_DMA_SYNC 0x01 |
| #define | IBF_PCI 0x02 |
| #define | IBF_ACTIVE 0x04 |
| #define | IBF_MULTI 0x08 |
| #define | __bucket(irq) ((struct ino_bucket *)(unsigned long)(irq)) |
| #define | __irq(bucket) ((unsigned int)(unsigned long)(bucket)) |
| #define | offset(x) ((unsigned long)(&(((struct sysio_regs *)0)->x))) |
| #define | bogon ((unsigned long) -1) |
| #define | NUM_SYSIO_OFFSETS (sizeof(sysio_irq_offsets) / sizeof(sysio_irq_offsets[0])) |
| #define | irq_enter(cpu, irq) (local_irq_count++) |
| #define | irq_exit(cpu, irq) (local_irq_count--) |
| #define | FORWARD_VOLUME 12 |
| #define | SPARC_BRANCH(dest_addr, inst_addr) (0x10800000 | ((((dest_addr)-(inst_addr))>>2)&0x3fffff)) |
| #define | SPARC_NOP (0x01000000) |
Functions | |
| ino_bucket ivector_table[NUM_IVECS] | __attribute__ ((aligned(64))) |
| int | get_irq_list (char *buf) |
| static unsigned int * | sysio_imap_to_iclr (unsigned int *imap) |
| void | enable_irq (unsigned int irq) |
| void | disable_irq (unsigned int irq) |
| unsigned int | build_irq (int pil, int inofixup, unsigned int *iclr, unsigned int *imap) |
| unsigned int | sbus_build_irq (void *buscookie, unsigned int ino) |
| static void | atomic_bucket_insert (struct ino_bucket *bucket) |
| int | request_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *name, void *dev_id) |
| void | free_irq (unsigned int irq, void *dev_id) |
| void | catch_disabled_ivec (struct pt_regs *regs) |
| void | handler_irq (int irq, struct pt_regs *regs) |
| static void | install_fast_irq (unsigned int cpu_irq, void(*handler)(int, void *, struct pt_regs *)) |
| int | request_fast_irq (unsigned int irq, void(*handler)(int, void *, struct pt_regs *), unsigned long irqflags, const char *name, void *dev_id) |
| unsigned long | probe_irq_on (void) |
| int | probe_irq_off (unsigned long mask) |
| void | init_timers (void(*cfunc)(int, void *, struct pt_regs *), unsigned long *clock) |
| static void | map_prom_timers (void) |
| static void | kill_prom_timer (void) |
| void | enable_prom_timer (void) |
| unsigned long __init | init_IRQ (unsigned long memory) |
Variables | |
| static struct irqaction | static_irqaction [MAX_STATIC_ALLOC] |
| static int | static_irq_count = 0 |
| irqaction * | irq_action [NR_IRQS+1] |
| unsigned char | sysio_ino_to_pil [] |
| static unsigned long | sysio_irq_offsets [] |
| static struct ino_bucket | pil0_dummy_bucket |
| unsigned int | local_irq_count |
| unsigned int | local_bh_count |
| sun5_timer * | prom_timers |
| static u64 | prom_limit0 |
| static u64 | prom_limit1 |
|
|
Definition at line 88 of file sparc64/kernel/irq.c. Referenced by catch_disabled_ivec(), disable_irq(), enable_irq(), free_irq(), handler_irq(), request_fast_irq(), and request_irq(). |
|
|
Definition at line 89 of file sparc64/kernel/irq.c. Referenced by atomic_bucket_insert(), build_irq(), and handler_irq(). |
|
|
Definition at line 158 of file sparc64/kernel/irq.c. |
|
|
Definition at line 998 of file sparc64/kernel/irq.c. Referenced by handler_irq(). |
|
|
Definition at line 85 of file sparc64/kernel/irq.c. Referenced by build_irq(), free_irq(), handler_irq(), request_fast_irq(), and request_irq(). |
|
|
Definition at line 83 of file sparc64/kernel/irq.c. Referenced by request_irq(). |
|
|
Definition at line 86 of file sparc64/kernel/irq.c. Referenced by free_irq(), handler_irq(), and request_irq(). |
|
|
Definition at line 84 of file sparc64/kernel/irq.c. Referenced by request_irq(). |
|
|
Definition at line 802 of file sparc64/kernel/irq.c. |
|
|
Definition at line 803 of file sparc64/kernel/irq.c. |
|
|
Definition at line 64 of file sparc64/kernel/irq.c. Referenced by atomic_bucket_insert(), catch_disabled_ivec(), and handler_irq(). |
|
|
Definition at line 72 of file sparc64/kernel/irq.c. |
|
|
Definition at line 181 of file sparc64/kernel/irq.c. |
|
|
Definition at line 157 of file sparc64/kernel/irq.c. |
|
|
Definition at line 41 of file sparc64/kernel/irq.c. Referenced by request_irq(). |
|
|
Definition at line 40 of file sparc64/kernel/irq.c. Referenced by free_irq(), request_fast_irq(), and request_irq(). |
|
|
Definition at line 1118 of file sparc64/kernel/irq.c. Referenced by exceptionHandler(), and install_fast_irq(). |
|
|
Definition at line 1121 of file sparc64/kernel/irq.c. Referenced by exceptionHandler(), and install_fast_irq(). |
|
|
|
|
|
Definition at line 490 of file sparc64/kernel/irq.c. References __asm__(), __irq, ino_bucket::irq_chain, irq_work, ino_bucket::pil, pstate, PSTATE_IE, and smp_processor_id. Referenced by request_irq(). Here is the call graph for this function: ![]() |
|
||||||||||||||||||||
|
Definition at line 309 of file sparc64/kernel/irq.c. References __irq, ino_bucket::flags, IBF_ACTIVE, ino_bucket::iclr, ino_bucket::imap, ino_bucket::irq_info, ino_bucket::pil, prom_halt(), prom_printf, SYSIO_IMAP_IGN, and SYSIO_IMAP_INO. Referenced by init_timers(), and sbus_build_irq(). Here is the call graph for this function: ![]() |
|
|
Definition at line 976 of file sparc64/kernel/irq.c. References __bucket, irq_work, ino_bucket::pending, printk, smp_processor_id, and pt_regs::tpc. |
|
|
Definition at line 278 of file sparc64/kernel/irq.c. References __bucket, disable_irq_nosync, ino_bucket::imap, and SYSIO_IMAP_VALID. |
|
|
Definition at line 242 of file sparc64/kernel/irq.c. References __asm__(), __bucket, ASI_UPA_CONFIG, current, ino_bucket::imap, restore_flags, save_and_cli, starfire_translate(), SYSIO_IMAP_TID, SYSIO_IMAP_VALID, this_is_starfire, unmask_irq, and UPA_CONFIG_MID. Here is the call graph for this function: ![]() |
|
|
Definition at line 1418 of file sparc64/kernel/irq.c. References sun5_timer::count0, sun5_timer::count1, sun5_timer::limit0, and sun5_timer::limit1. |
|
||||||||||||
|
Definition at line 683 of file sparc64/kernel/irq.c. References __asm__(), __bucket, bp, caller, irqaction::dev_id, disable_irq, ino_bucket::flags, irqaction::flags, irqaction::handler, IBF_ACTIVE, IBF_MULTI, ino_bucket::imap, ino_bucket::irq_info, KERN_CRIT, kfree(), irqaction::name, irqaction::next, out, ino_bucket::pil, printk, restore_flags, SA_IMAP_MASKED, SA_SHIRQ, save_and_cli, and tmp. Here is the call graph for this function: ![]() |
|
|
Definition at line 91 of file sparc64/kernel/irq.c. References cpu_logical_map, irqaction::flags, i, kernel_stat::irqs, j, kstat, kstat_irqs(), len, irqaction::name, irqaction::next, NR_IRQS, p, SA_INTERRUPT, smp_num_cpus, and sprintf(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 1000 of file sparc64/kernel/irq.c. References __bucket, __irq, bp, clear_softint(), cpu_data, cpu_logical_map, cpu_number_map, current, irqaction::dev_id, ino_bucket::flags, FORWARD_VOLUME, get_softint(), irqaction::handler, IBF_ACTIVE, IBF_MULTI, ino_bucket::iclr, ino_bucket::imap, ino_bucket::irq_chain, irq_enter, irq_exit, ino_bucket::irq_info, irq_work, kernel_stat::irqs, kstat, NR_CPUS, ino_bucket::pending, ino_bucket::pil, smp_processor_id, SYSIO_ICLR_IDLE, SYSIO_IMAP_VALID, this_is_starfire, and xchg32(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1430 of file sparc64/kernel/irq.c. References __asm__(), alpha_using_srm, clear_softint(), entInt, get_softint(), kill_prom_timer(), map_prom_timers(), memset, PSTATE_IE, srmcons_output, unregister_srm_console(), and wrent. Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 1232 of file sparc64/kernel/irq.c. References __asm__(), build_irq(), HZ, linux_cpus, prom_getint(), prom_halt(), prom_cpuinfo::prom_node, prom_printf, pstate, PSTATE_IE, request_irq(), SA_INTERRUPT, sti, and timer_tick_offset. Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 1123 of file sparc64/kernel/irq.c. References __asm__(), long, sparc64_ttable_tl0, SPARC_BRANCH, and SPARC_NOP. Referenced by request_fast_irq(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1391 of file sparc64/kernel/irq.c. References __asm__(), ASI_INTR_RECEIVE, ASI_UDB_INTR_R, sun5_timer::limit0, and sun5_timer::limit1. Referenced by init_IRQ(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1365 of file sparc64/kernel/irq.c. References long, prom_finddevice(), prom_getproperty(), and prom_printf. Referenced by init_IRQ(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1226 of file sparc64/kernel/irq.c. References alpha_irq_mask, and ffz(). Here is the call graph for this function: ![]() |
|
|
Definition at line 1221 of file sparc64/kernel/irq.c. References ACTUAL_NR_IRQS, alpha_irq_mask, delay, enable_irq, HZ, irqs, jiffies, PROBE_MASK, and time_before. |
|
||||||||||||||||||||||||
|
Definition at line 1139 of file sparc64/kernel/irq.c. References __asm__(), __bucket, caller, irqaction::dev_id, EBUSY, EINVAL, enable_irq, ENOMEM, ino_bucket::flags, irqaction::flags, irqaction::handler, IBF_ACTIVE, install_fast_irq(), ino_bucket::irq_info, KERN_CRIT, kmalloc(), long, irqaction::mask, irqaction::name, irqaction::next, panic(), ino_bucket::pil, printk, restore_flags, SA_IMAP_MASKED, SA_SHIRQ, and save_and_cli. Here is the call graph for this function: ![]() |
|
||||||||||||||||||||||||
|
Definition at line 504 of file sparc64/kernel/irq.c. References __asm__(), __bucket, atomic_bucket_insert(), caller, irqaction::dev_id, EBUSY, EINVAL, enable_irq, ENOMEM, irqaction::flags, ino_bucket::flags, irqaction::handler, IBF_ACTIVE, IBF_DMA_SYNC, IBF_MULTI, IBF_PCI, ino_bucket::irq_info, KERN_CRIT, kfree(), kmalloc(), long, irqaction::mask, irqaction::name, irqaction::next, ino_bucket::pending, ino_bucket::pil, printk, restore_flags, SA_DMA_SYNC, SA_IMAP_MASKED, SA_INTERRUPT, SA_SHIRQ, save_and_cli, set_softint(), and tmp. Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 362 of file sparc64/kernel/irq.c. References build_irq(), sysio_regs::iclr_slot0, sysio_regs::iclr_slot1, sysio_regs::iclr_slot2, sysio_regs::iclr_slot3, linux_sbus::iommu, long, offset, panic(), printk, sysio_imap_to_iclr(), and iommu_struct::sysio_regs. Referenced by __initfunc(). Here is the call graph for this function: ![]() |
|
|
Definition at line 186 of file sparc64/kernel/irq.c. References diff, long, and offset. Referenced by sbus_build_irq(). |
|
|
Initial value: {
NULL, NULL, NULL, NULL, NULL, NULL , NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL , NULL, NULL
}
Definition at line 77 of file sparc64/kernel/irq.c. |
|
|
Definition at line 800 of file sparc64/kernel/irq.c. |
|
|
Definition at line 799 of file sparc64/kernel/irq.c. |
|
|
Initial value: Definition at line 298 of file sparc64/kernel/irq.c. |
|
|
Definition at line 1363 of file sparc64/kernel/irq.c. |
|
|
Definition at line 1363 of file sparc64/kernel/irq.c. |
|
|
Definition at line 1362 of file sparc64/kernel/irq.c. |
|
|
Definition at line 74 of file sparc64/kernel/irq.c. |
|
|
Definition at line 73 of file sparc64/kernel/irq.c. |
|
|
Initial value: {
0, 1, 2, 7, 5, 7, 8, 9,
0, 1, 2, 7, 5, 7, 8, 9,
0, 1, 2, 7, 5, 7, 8, 9,
0, 1, 2, 7, 5, 7, 8, 9,
3,
5,
8,
0,
13,
15,
0,
0,
12,
11,
0,
0,
0,
0,
0, 0,
10,
11,
0, 0,
15,
15,
15,
0,
}
Definition at line 124 of file sparc64/kernel/irq.c. |
|
|
Initial value: {
offset(imap_slot0),offset(imap_slot0),offset(imap_slot0),offset(imap_slot0),
offset(imap_slot0),offset(imap_slot0),offset(imap_slot0),offset(imap_slot0),
offset(imap_slot1),offset(imap_slot1),offset(imap_slot1),offset(imap_slot1),
offset(imap_slot1),offset(imap_slot1),offset(imap_slot1),offset(imap_slot1),
offset(imap_slot2),offset(imap_slot2),offset(imap_slot2),offset(imap_slot2),
offset(imap_slot2),offset(imap_slot2),offset(imap_slot2),offset(imap_slot2),
offset(imap_slot3),offset(imap_slot3),offset(imap_slot3),offset(imap_slot3),
offset(imap_slot3),offset(imap_slot3),offset(imap_slot3),offset(imap_slot3),
offset(imap_scsi), offset(imap_eth), offset(imap_bpp), bogon,
offset(imap_audio), offset(imap_pfail), bogon, bogon,
offset(imap_kms), offset(imap_flpy), offset(imap_shw),
offset(imap_kbd), offset(imap_ms), offset(imap_ser), bogon, bogon,
offset(imap_tim0), offset(imap_tim1), bogon, bogon,
offset(imap_ue), offset(imap_ce), offset(imap_sberr),
offset(imap_pmgmt),
}
Definition at line 159 of file sparc64/kernel/irq.c. |