41 lines
735 B
C
41 lines
735 B
C
|
/* interrupt.h */
|
||
|
#ifndef _LINUX_INTERRUPT_H
|
||
|
#define _LINUX_INTERRUPT_H
|
||
|
|
||
|
struct bh_struct {
|
||
|
void (*routine)(void *);
|
||
|
void *data;
|
||
|
};
|
||
|
|
||
|
extern unsigned long bh_active;
|
||
|
extern unsigned long bh_mask;
|
||
|
extern struct bh_struct bh_base[32];
|
||
|
|
||
|
/* Who gets which entry in bh_base. Things which will occur most often
|
||
|
should come first. */
|
||
|
enum {
|
||
|
TIMER_BH = 0,
|
||
|
CONSOLE_BH,
|
||
|
SERIAL_BH,
|
||
|
TTY_BH,
|
||
|
INET_BH,
|
||
|
KEYBOARD_BH
|
||
|
};
|
||
|
|
||
|
extern inline void mark_bh(int nr)
|
||
|
{
|
||
|
__asm__ __volatile__("btsl %1,%0":"=m" (bh_active):"ir" (nr));
|
||
|
}
|
||
|
|
||
|
extern inline void disable_bh(int nr)
|
||
|
{
|
||
|
__asm__ __volatile__("btcl %1,%0":"=m" (bh_mask):"ir" (nr));
|
||
|
}
|
||
|
|
||
|
extern inline void enable_bh(int nr)
|
||
|
{
|
||
|
__asm__ __volatile__("btsl %1,%0":"=m" (bh_mask):"ir" (nr));
|
||
|
}
|
||
|
|
||
|
#endif
|