00001
00002 #ifndef _LINUX_INTERRUPT_H
00003 #define _LINUX_INTERRUPT_H
00004
00005 #include <linux/kernel.h>
00006 #include <asm/bitops.h>
00007 #include <asm/atomic.h>
00008 #include <asm/ptrace.h>
00009
00010 struct irqaction {
00011 void (*handler)(int, void *, struct pt_regs *);
00012 unsigned long flags;
00013 unsigned long mask;
00014 const char *name;
00015 void *dev_id;
00016 struct irqaction *next;
00017 };
00018
00019 extern volatile unsigned char bh_running;
00020
00021 extern atomic_t bh_mask_count[32];
00022 extern unsigned long bh_active;
00023 extern unsigned long bh_mask;
00024 extern void (*bh_base[32])(void);
00025
00026 asmlinkage void do_bottom_half(void);
00027
00028
00029
00030
00031 enum {
00032 TIMER_BH = 0,
00033 CONSOLE_BH,
00034 TQUEUE_BH,
00035 DIGI_BH,
00036 SERIAL_BH,
00037 RISCOM8_BH,
00038 SPECIALIX_BH,
00039 AURORA_BH,
00040 ESP_BH,
00041 NET_BH,
00042 SCSI_BH,
00043 IMMEDIATE_BH,
00044 KEYBOARD_BH,
00045 CYCLADES_BH,
00046 CM206_BH,
00047 JS_BH,
00048 MACSERIAL_BH,
00049 ISICOM_BH
00050 };
00051
00052 #include <asm/hardirq.h>
00053 #include <asm/softirq.h>
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082 extern unsigned long probe_irq_on(void);
00083 extern int probe_irq_off(unsigned long);
00084
00085 #endif