-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
x86: move common declarations to hw_irq.h
Move the common declarations from hw_irq_32/64 into hw_irq.h Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
- Loading branch information
Thomas Gleixner
authored and
Ingo Molnar
committed
May 12, 2008
1 parent
6859a84
commit 2e08843
Showing
3 changed files
with
81 additions
and
129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,86 @@ | ||
#ifndef _ASM_HW_IRQ_H | ||
#define _ASM_HW_IRQ_H | ||
|
||
/* | ||
* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | ||
* | ||
* moved some of the old arch/i386/kernel/irq.h to here. VY | ||
* | ||
* IRQ/IPI changes taken from work by Thomas Radke | ||
* <tomsoft@informatik.tu-chemnitz.de> | ||
* | ||
* hacked by Andi Kleen for x86-64. | ||
* unified by tglx | ||
*/ | ||
|
||
#define NMI_VECTOR 0x02 | ||
|
||
#ifndef __ASSEMBLY__ | ||
|
||
#include <linux/percpu.h> | ||
#include <linux/profile.h> | ||
#include <linux/smp.h> | ||
|
||
#include <asm/atomic.h> | ||
#include <asm/irq.h> | ||
#include <asm/sections.h> | ||
|
||
#define platform_legacy_irq(irq) ((irq) < 16) | ||
|
||
/* Interrupt handlers registered during init_IRQ */ | ||
extern void apic_timer_interrupt(void); | ||
extern void error_interrupt(void); | ||
extern void spurious_interrupt(void); | ||
extern void thermal_interrupt(void); | ||
extern void reschedule_interrupt(void); | ||
|
||
extern void invalidate_interrupt(void); | ||
extern void invalidate_interrupt0(void); | ||
extern void invalidate_interrupt1(void); | ||
extern void invalidate_interrupt2(void); | ||
extern void invalidate_interrupt3(void); | ||
extern void invalidate_interrupt4(void); | ||
extern void invalidate_interrupt5(void); | ||
extern void invalidate_interrupt6(void); | ||
extern void invalidate_interrupt7(void); | ||
|
||
extern void irq_move_cleanup_interrupt(void); | ||
extern void threshold_interrupt(void); | ||
|
||
extern void call_function_interrupt(void); | ||
|
||
/* PIC specific functions */ | ||
extern void disable_8259A_irq(unsigned int irq); | ||
extern void enable_8259A_irq(unsigned int irq); | ||
extern int i8259A_irq_pending(unsigned int irq); | ||
extern void make_8259A_irq(unsigned int irq); | ||
extern void init_8259A(int aeoi); | ||
|
||
/* IOAPIC */ | ||
#define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) | ||
extern unsigned long io_apic_irqs; | ||
|
||
extern void init_VISWS_APIC_irqs(void); | ||
extern void setup_IO_APIC(void); | ||
extern void disable_IO_APIC(void); | ||
extern void print_IO_APIC(void); | ||
extern int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); | ||
extern void setup_ioapic_dest(void); | ||
|
||
/* IPI functions */ | ||
extern void send_IPI_self(int vector); | ||
extern void send_IPI(int dest, int vector); | ||
|
||
/* Statistics */ | ||
extern atomic_t irq_err_count; | ||
extern atomic_t irq_mis_count; | ||
|
||
#endif /* !ASSEMBLY_ */ | ||
|
||
#ifdef CONFIG_X86_32 | ||
# include "hw_irq_32.h" | ||
#else | ||
# include "hw_irq_64.h" | ||
#endif | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,66 +1,5 @@ | ||
#ifndef _ASM_HW_IRQ_H | ||
#define _ASM_HW_IRQ_H | ||
|
||
/* | ||
* linux/include/asm/hw_irq.h | ||
* | ||
* (C) 1992, 1993 Linus Torvalds, (C) 1997 Ingo Molnar | ||
* | ||
* moved some of the old arch/i386/kernel/irq.h to here. VY | ||
* | ||
* IRQ/IPI changes taken from work by Thomas Radke | ||
* <tomsoft@informatik.tu-chemnitz.de> | ||
*/ | ||
|
||
#include <linux/profile.h> | ||
#include <asm/atomic.h> | ||
#include <asm/irq.h> | ||
#include <asm/sections.h> | ||
|
||
#define NMI_VECTOR 0x02 | ||
|
||
/* | ||
* Various low-level irq details needed by irq.c, process.c, | ||
* time.c, io_apic.c and smp.c | ||
* | ||
* Interrupt entry/exit code at both C and assembly level | ||
*/ | ||
|
||
extern void (*const interrupt[NR_IRQS])(void); | ||
|
||
#ifdef CONFIG_SMP | ||
void reschedule_interrupt(void); | ||
void invalidate_interrupt(void); | ||
void call_function_interrupt(void); | ||
#endif | ||
|
||
#ifdef CONFIG_X86_LOCAL_APIC | ||
void apic_timer_interrupt(void); | ||
void error_interrupt(void); | ||
void spurious_interrupt(void); | ||
void thermal_interrupt(void); | ||
#define platform_legacy_irq(irq) ((irq) < 16) | ||
#endif | ||
|
||
void disable_8259A_irq(unsigned int irq); | ||
void enable_8259A_irq(unsigned int irq); | ||
int i8259A_irq_pending(unsigned int irq); | ||
void make_8259A_irq(unsigned int irq); | ||
void init_8259A(int aeoi); | ||
void send_IPI_self(int vector); | ||
void init_VISWS_APIC_irqs(void); | ||
void setup_IO_APIC(void); | ||
void disable_IO_APIC(void); | ||
void print_IO_APIC(void); | ||
int IO_APIC_get_PCI_irq_vector(int bus, int slot, int fn); | ||
void send_IPI(int dest, int vector); | ||
void setup_ioapic_dest(void); | ||
|
||
extern unsigned long io_apic_irqs; | ||
|
||
extern atomic_t irq_err_count; | ||
extern atomic_t irq_mis_count; | ||
|
||
#define IO_APIC_IRQ(x) (((x) >= 16) || ((1<<(x)) & io_apic_irqs)) | ||
|
||
#endif /* _ASM_HW_IRQ_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters