root/include/linux/interrupt.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. mark_bh
  2. disable_bh
  3. enable_bh

   1 /* interrupt.h */
   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 /* Who gets which entry in bh_base.  Things which will occur most often
  15    should come first - in which case NET should be up the top with SERIAL/TQUEUE! */
  16    
  17 enum {
  18         TIMER_BH = 0,
  19         CONSOLE_BH,
  20         TQUEUE_BH,
  21         SERIAL_BH,
  22         NET_BH,
  23         KEYBOARD_BH
  24 };
  25 
  26 extern inline void mark_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  27 {
  28         __asm__ __volatile__("orl %1,%0":"=m" (bh_active):"ir" (1<<nr));
  29 }
  30 
  31 extern inline void disable_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  32 {
  33         __asm__ __volatile__("andl %1,%0":"=m" (bh_mask):"ir" (~(1<<nr)));
  34 }
  35 
  36 extern inline void enable_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  37 {
  38         __asm__ __volatile__("orl %1,%0":"=m" (bh_mask):"ir" (1<<nr));
  39 }
  40 
  41 #endif

/* [previous][next][first][last][top][bottom][index][help] */