This source file includes following definitions.
- mark_bh
- disable_bh
- enable_bh
1
2 #ifndef _LINUX_INTERRUPT_H
3 #define _LINUX_INTERRUPT_H
4
5 struct bh_struct {
6 void (*routine)(void *);
7 void *data;
8 };
9
10 extern unsigned long bh_active;
11 extern unsigned long bh_mask;
12 extern struct bh_struct bh_base[32];
13
14
15
16
17 enum {
18 TIMER_BH = 0,
19 CONSOLE_BH,
20 TQUEUE_BH,
21 SERIAL_BH,
22 NET_BH,
23 IMMEDIATE_BH,
24 KEYBOARD_BH,
25 CYCLADES_BH
26 };
27
28 extern inline void mark_bh(int nr)
29 {
30 __asm__ __volatile__("orl %1,%0":"=m" (bh_active):"ir" (1<<nr));
31 }
32
33 extern inline void disable_bh(int nr)
34 {
35 __asm__ __volatile__("andl %1,%0":"=m" (bh_mask):"ir" (~(1<<nr)));
36 }
37
38 extern inline void enable_bh(int nr)
39 {
40 __asm__ __volatile__("orl %1,%0":"=m" (bh_mask):"ir" (1<<nr));
41 }
42
43 #endif