interrupt.h

Go to the documentation of this file.
00001 /// interrupt.h 
00002 #ifndef _LINUX_INTERRUPT_H
00003 #define _LINUX_INTERRUPT_H
00004 
00005 struct bh_struct {
00006         void (*routine)(void *);
00007         void *data;
00008 };
00009 
00010 extern unsigned long bh_active;
00011 extern unsigned long bh_mask;
00012 extern struct bh_struct bh_base[32];
00013 
00014 /**
00015 *
00016  Who gets which entry in bh_base.  Things which will occur most often
00017 
00018 
00019 */
00020 enum {
00021         TIMER_BH = 0,
00022         CONSOLE_BH,
00023         SERIAL_BH,
00024         TTY_BH,
00025         INET_BH,
00026         KEYBOARD_BH
00027 };
00028 
00029 extern inline void mark_bh(int nr)
00030 {
00031         __asm__ __volatile__("orl %1,%0":"=m" (bh_active):"ir" (1<<nr));
00032 }
00033 
00034 extern inline void disable_bh(int nr)
00035 {
00036         __asm__ __volatile__("andl %1,%0":"=m" (bh_mask):"ir" (~(1<<nr)));
00037 }
00038 
00039 extern inline void enable_bh(int nr)
00040 {
00041         __asm__ __volatile__("orl %1,%0":"=m" (bh_mask):"ir" (1<<nr));
00042 }
00043 
00044 #endif

Generated on Mon May 1 21:47:00 2006 for KernelAPI by  doxygen 1.4.6-5