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. */
  16 enum {
  17         TIMER_BH = 0,
  18         CONSOLE_BH,
  19         SERIAL_BH,
  20         TTY_BH,
  21         INET_BH,
  22         KEYBOARD_BH
  23 };
  24 
  25 extern inline void mark_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  26 {
  27         __asm__ __volatile__("orl %1,%0":"=m" (bh_active):"ir" (1<<nr));
  28 }
  29 
  30 extern inline void disable_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  31 {
  32         __asm__ __volatile__("andl %1,%0":"=m" (bh_mask):"ir" (~(1<<nr)));
  33 }
  34 
  35 extern inline void enable_bh(int nr)
     /* [previous][next][first][last][top][bottom][index][help] */
  36 {
  37         __asm__ __volatile__("orl %1,%0":"=m" (bh_mask):"ir" (1<<nr));
  38 }
  39 
  40 #endif

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