#include <linux/config.h>#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/malloc.h>#include <linux/random.h>#include <linux/smp.h>#include <linux/tasks.h>#include <linux/smp_lock.h>#include <linux/init.h>#include <asm/system.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/bitops.h>#include <asm/smp.h>#include <asm/pgtable.h>#include <asm/delay.h>#include <asm/desc.h>#include "irq.h"Include dependency graph for i386/kernel/irq.c:

Go to the source code of this file.
Defines | |
| #define | startup_none enable_none |
| #define | shutdown_none disable_none |
| #define | startup_8259A_irq enable_8259A_irq |
| #define | shutdown_8259A_irq disable_8259A_irq |
| #define | __byte(x, y) (((unsigned char *)&(y))[x]) |
| #define | cached_21 (__byte(0,cached_irq_mask)) |
| #define | cached_A1 (__byte(1,cached_irq_mask)) |
| #define | BI(x, y) BUILD_IRQ(##x##y) |
| #define | BUILD_16_IRQS(x) |
| #define | IRQ(x, y) IRQ##x##y##_interrupt |
| #define | IRQLIST_16(x) |
Functions | |
| static void | do_none (unsigned int irq, struct pt_regs *regs) |
| static void | enable_none (unsigned int irq) |
| static void | disable_none (unsigned int irq) |
| static void | do_8259A_IRQ (unsigned int irq, struct pt_regs *regs) |
| static void | enable_8259A_irq (unsigned int irq) |
| void | disable_8259A_irq (unsigned int irq) |
| int | i8259A_irq_pending (unsigned int irq) |
| void | make_8259A_irq (unsigned int irq) |
| static void | mask_and_ack_8259A (unsigned int irq) |
| void | no_action (int cpl, void *dev_id, struct pt_regs *regs) |
| static void | math_error_irq (int cpl, void *dev_id, struct pt_regs *regs) |
| int | get_irq_list (char *buf) |
| int | handle_IRQ_event (unsigned int irq, struct pt_regs *regs, struct irqaction *action) |
| void | disable_irq_nosync (unsigned int irq) |
| void | disable_irq (unsigned int irq) |
| void | enable_irq (unsigned int irq) |
| asmlinkage void | do_IRQ (struct pt_regs regs) |
| int | setup_x86_irq (unsigned int irq, struct irqaction *new) |
| 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) |
| unsigned long | probe_irq_on (void) |
| int | probe_irq_off (unsigned long unused) |
| void | init_ISA_irqs (void) |
| unsigned long __init | init_IRQ (unsigned long memory) |
Variables | |
| unsigned int | local_bh_count [NR_CPUS] |
| unsigned int | local_irq_count [NR_CPUS] |
| atomic_t | nmi_counter |
| spinlock_t | irq_controller_lock |
| hw_interrupt_type | no_irq_type |
| static struct hw_interrupt_type | i8259A_irq_type |
| irq_desc_t irq_desc[NR_IRQS] | __cacheline_aligned = { [0 ... NR_IRQS-1] = { 0, &no_irq_type, }} |
| static unsigned int | cached_irq_mask = 0xffff |
| unsigned long | io_apic_irqs = 0 |
| static void(* | interrupt [NR_IRQS])(void) |
| static struct irqaction | irq13 = { math_error_irq, 0, 0, "fpu", NULL, NULL } |
| static struct irqaction | irq2 = { no_action, 0, 0, "cascade", NULL, NULL} |
|
|
Definition at line 154 of file i386/kernel/irq.c. |
|
|
Definition at line 280 of file i386/kernel/irq.c. Referenced by hpdca_ser_interrupt(), imsttfbcon_clear(), and ser_interrupt(). |
|
|
Value: BI(x,0) BI(x,1) BI(x,2) BI(x,3) \ BI(x,4) BI(x,5) BI(x,6) BI(x,7) \ BI(x,8) BI(x,9) BI(x,a) BI(x,b) \ BI(x,c) BI(x,d) BI(x,e) BI(x,f) Definition at line 283 of file i386/kernel/irq.c. |
|
|
Definition at line 155 of file i386/kernel/irq.c. Referenced by __initfunc(), disable_8259A_irq(), enable_8259A_irq(), i8259_init(), i8259_irq(), i8259_mask_and_ack_irq(), i8259_mask_irq(), i8259_set_irq_mask(), i8259_unmask_irq(), mask_and_ack_8259A(), mask_irq(), and unmask_irq(). |
|
|
Definition at line 156 of file i386/kernel/irq.c. Referenced by __initfunc(), disable_8259A_irq(), enable_8259A_irq(), i8259_init(), i8259_irq(), i8259_mask_and_ack_irq(), i8259_mask_irq(), i8259_set_irq_mask(), i8259_unmask_irq(), mask_and_ack_8259A(), mask_irq(), and unmask_irq(). |
|
|
Definition at line 339 of file i386/kernel/irq.c. Referenced by lp486e_probe(), and mcdx_intr(). |
|
|
Value: IRQ(x,0), IRQ(x,1), IRQ(x,2), IRQ(x,3), \ IRQ(x,4), IRQ(x,5), IRQ(x,6), IRQ(x,7), \ IRQ(x,8), IRQ(x,9), IRQ(x,a), IRQ(x,b), \ IRQ(x,c), IRQ(x,d), IRQ(x,e), IRQ(x,f) Definition at line 342 of file i386/kernel/irq.c. |
|
|
Definition at line 128 of file i386/kernel/irq.c. |
|
|
Definition at line 106 of file i386/kernel/irq.c. |
|
|
Definition at line 127 of file i386/kernel/irq.c. |
|
|
Definition at line 105 of file i386/kernel/irq.c. |
|
|
Definition at line 173 of file i386/kernel/irq.c. References cached_21, cached_A1, cached_irq_mask, mask, and outb. Referenced by init_IO_APIC_traps(), and startup_edge_ioapic_irq(). |
|
|
Definition at line 773 of file i386/kernel/irq.c. References disable_irq_nosync, irq_desc, IRQ_INPROGRESS, local_irq_count, smp_processor_id, and status. |
|
|
Definition at line 757 of file i386/kernel/irq.c. References depth, irq_desc, IRQ_DISABLED, spin_lock_irqsave, and spin_unlock_irqrestore. |
|
|
Definition at line 102 of file i386/kernel/irq.c. Referenced by s390_free_irq(). |
|
||||||||||||
|
Definition at line 233 of file i386/kernel/irq.c. References irq_desc_t::action, enable_8259A_irq(), handle_IRQ_event(), irq_desc, IRQ_DISABLED, IRQ_INPROGRESS, IRQ_REPLAY, IRQ_WAITING, mask_and_ack_8259A(), NULL, spin_lock, spin_unlock, irq_desc_t::status, and status. Here is the call graph for this function: ![]() |
|
|
Definition at line 809 of file i386/kernel/irq.c. References bh_active, bh_mask, do_bottom_half(), irq, irq_desc, kernel_stat::irqs, kstat, pt_regs::orig_eax, and smp_processor_id. Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 76 of file i386/kernel/irq.c. References ack_APIC_irq(), printk, and smp_processor_id. Here is the call graph for this function: ![]() |
|
|
Definition at line 184 of file i386/kernel/irq.c. References cached_21, cached_A1, cached_irq_mask, mask, and outb. Referenced by do_8259A_IRQ(). |
|
|
Definition at line 784 of file i386/kernel/irq.c. References depth, irq_desc, IRQ_DISABLED, printk, spin_lock_irqsave, and spin_unlock_irqrestore. |
|
|
Definition at line 101 of file i386/kernel/irq.c. Referenced by s390_free_irq(). |
|
||||||||||||
|
Definition at line 926 of file i386/kernel/irq.c. References irqaction::dev_id, irq_desc, IRQ_DISABLED, IRQ_INPROGRESS, kfree(), irqaction::next, NR_IRQS, NULL, out, p, printk, spin_lock_irqsave, spin_unlock_irqrestore, status, and udelay. Here is the call graph for this function: ![]() |
|
|
Definition at line 403 of file i386/kernel/irq.c. References irqdesc::action, atomic_read, cpu_logical_map, i, ipi_count, irq_desc, kernel_stat::irqs, j, kstat, kstat_irqs(), irqaction::name, irqaction::next, NR_IRQS, p, smp_num_cpus, and sprintf(). Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 724 of file i386/kernel/irq.c. Referenced by do_8259A_IRQ(), do_cobalt_IRQ(), do_edge_ioapic_IRQ(), do_level_ioapic_IRQ(), and s390_setup_irq(). |
|
|
Definition at line 195 of file i386/kernel/irq.c. References inb, mask, and x20. Referenced by startup_edge_ioapic_irq(). |
|
|
Definition at line 1086 of file i386/kernel/irq.c. References CALL_FUNCTION_VECTOR, FIRST_EXTERNAL_VECTOR, init_ISA_irqs(), init_VISWS_APIC_irqs(), interrupt, INVALIDATE_TLB_VECTOR, IRQ0_TRAP_VECTOR, LATCH, LOCAL_TIMER_VECTOR, NR_IRQS, outb, outb_p, request_region, RESCHEDULE_VECTOR, set_intr_gate(), setup_x86_irq(), SPURIOUS_APIC_VECTOR, STOP_CPU_VECTOR, SYSCALL_VECTOR, x20, x34, x40, x43, and xff. Here is the call graph for this function: ![]() |
|
|
Definition at line 1063 of file i386/kernel/irq.c. References irqdesc::action, irq_desc, IRQ_DISABLED, and NR_IRQS. Referenced by init_IRQ(). |
|
|
Definition at line 204 of file i386/kernel/irq.c. References disable_irq_nosync, enable_irq, io_apic_irqs, and irq_desc. Referenced by check_timer(), and init_IO_APIC_traps(). |
|
|
Definition at line 218 of file i386/kernel/irq.c. References cached_21, cached_A1, cached_irq_mask, inb, outb, x20, x60, and x62. Referenced by do_8259A_IRQ(). |
|
||||||||||||||||
|
Definition at line 382 of file i386/kernel/irq.c. References boot_cpu_data, cpuinfo_x86::hard_math, ignore_irq13, math_error(), outb, and xF0. Here is the call graph for this function: ![]() |
|
||||||||||||||||
|
Definition at line 367 of file i386/kernel/irq.c. Referenced by i8259_init(), and openpic_init(). |
|
|
Definition at line 1032 of file i386/kernel/irq.c. References IRQ_AUTODETECT, irq_desc, IRQ_WAITING, NR_IRQS, printk, spin_lock_irq, spin_unlock_irq, and status. |
|
|
Definition at line 972 of file i386/kernel/irq.c. References delay, HZ, IRQ_AUTODETECT, irq_desc, IRQ_WAITING, jiffies, NR_IRQS, spin_lock_irq, spin_unlock_irq, status, synchronize_irq, and time_after. |
|
||||||||||||||||||||||||
|
Definition at line 893 of file i386/kernel/irq.c. References irqaction::dev_id, EINVAL, ENOMEM, irqaction::flags, irqaction::handler, kfree(), kmalloc(), irqaction::mask, irqaction::name, irqaction::next, NR_IRQS, NULL, and setup_x86_irq(). Here is the call graph for this function: ![]() |
|
||||||||||||
|
Definition at line 839 of file i386/kernel/irq.c. References irqdesc::action, EBUSY, irqaction::flags, irq_desc, IRQ_DISABLED, irqaction::next, NULL, p, rand_initialize_irq(), SA_SHIRQ, spin_lock_irqsave, and spin_unlock_irqrestore. Referenced by __initfunc(), init_IRQ(), init_VISWS_APIC_irqs(), and request_irq(). Here is the call graph for this function: ![]() |
|
|
Definition at line 142 of file i386/kernel/irq.c. |
|
|
Definition at line 152 of file i386/kernel/irq.c. Referenced by disable_8259A_irq(), enable_8259A_irq(), i8259_mask_and_ack_irq(), mask_and_ack_8259A(), mask_irq(), probe_irq_off(), probe_irq_on(), and unmask_irq(). |
|
|
Initial value: {
"XT-PIC",
startup_8259A_irq,
shutdown_8259A_irq,
do_8259A_IRQ,
enable_8259A_irq,
disable_8259A_irq
}
Definition at line 130 of file i386/kernel/irq.c. |
|
|
Initial value: {
IRQLIST_16(0x0),
}
Definition at line 348 of file i386/kernel/irq.c. Referenced by advansys_interrupt(), cm206_interrupt(), do_int(), init_IRQ(), port_detect(), sc_exit(), sc_init(), setup_ports(), and ultrastor_14f_detect(). |
|
|
Definition at line 167 of file i386/kernel/irq.c. Referenced by make_8259A_irq(), setup_IO_APIC(), and smp_boot_cpus(). |
|
|
Definition at line 390 of file i386/kernel/irq.c. |
|
|
Definition at line 396 of file i386/kernel/irq.c. Referenced by __initfunc(). |
|
|
Definition at line 71 of file i386/kernel/irq.c. |
|
|
Definition at line 45 of file i386/kernel/irq.c. |
|
|
Definition at line 46 of file i386/kernel/irq.c. |
|
|
Definition at line 48 of file i386/kernel/irq.c. Referenced by do_nmi(). |
|
|
Initial value: {
"none",
startup_none,
shutdown_none,
do_none,
enable_none,
disable_none
}
Definition at line 108 of file i386/kernel/irq.c. Referenced by init_IO_APIC_traps(). |