Annotation of Gnu-Mach/linux/dev/kernel/softirq.c, revision 1.1

1.1     ! root        1: /*
        !             2:  *    linux/kernel/softirq.c
        !             3:  *
        !             4:  *      Copyright (C) 1992 Linus Torvalds
        !             5:  *
        !             6:  * do_bottom_half() runs at normal kernel priority: all interrupts
        !             7:  * enabled.  do_bottom_half() is atomic with respect to itself: a
        !             8:  * bottom_half handler need not be re-entrant.
        !             9:  */
        !            10: 
        !            11: #define MACH_INCLUDE
        !            12: #include <linux/ptrace.h>
        !            13: #include <linux/interrupt.h>
        !            14: #include <asm/system.h>
        !            15: 
        !            16: int bh_mask_count[32];
        !            17: unsigned long bh_active = 0;
        !            18: unsigned long bh_mask = 0;
        !            19: void (*bh_base[32]) (void);
        !            20: 
        !            21: void
        !            22: linux_soft_intr (void)
        !            23: {
        !            24:   unsigned long active;
        !            25:   unsigned long mask, left;
        !            26:   void (**bh) (void);
        !            27: 
        !            28:   sti ();
        !            29:   bh = bh_base;
        !            30:   active = bh_active & bh_mask;
        !            31:   for (mask = 1, left = ~0; left & active; bh++, mask += mask, left += left)
        !            32:     {
        !            33:       if (mask & active)
        !            34:        {
        !            35:          void (*fn) (void);
        !            36:          bh_active &= ~mask;
        !            37:          fn = *bh;
        !            38:          if (!fn)
        !            39:            goto bad_bh;
        !            40:          fn ();
        !            41:        }
        !            42:     }
        !            43:   return;
        !            44: bad_bh:
        !            45:   printk ("linux_soft_intr:bad interrupt handler entry %08lx\n", mask);
        !            46: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.