Annotation of Net2/arch/i386/isa/icu.h, revision 1.1.1.3

1.1       root        1: /*-
                      2:  * Copyright (c) 1990 The Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * This code is derived from software contributed to Berkeley by
                      6:  * William Jolitz.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. All advertising materials mentioning features or use of this software
                     17:  *    must display the following acknowledgement:
                     18:  *     This product includes software developed by the University of
                     19:  *     California, Berkeley and its contributors.
                     20:  * 4. Neither the name of the University nor the names of its contributors
                     21:  *    may be used to endorse or promote products derived from this software
                     22:  *    without specific prior written permission.
                     23:  *
                     24:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
                     25:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     26:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     27:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
                     28:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     29:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     30:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     31:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     32:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     33:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     34:  * SUCH DAMAGE.
                     35:  *
1.1.1.3 ! root       36:  *     from: @(#)icu.h 5.6 (Berkeley) 5/9/91
        !            37:  *     icu.h,v 1.6 1993/07/19 08:27:06 cgd Exp
1.1       root       38:  */
                     39: 
                     40: /*
                     41:  * AT/386 Interrupt Control constants
                     42:  * W. Jolitz 8/89
                     43:  */
                     44: 
                     45: #ifndef        __ICU__
                     46: #define        __ICU__
                     47: 
                     48: #ifndef        LOCORE
                     49: 
                     50: /*
                     51:  * Interrupt "level" mechanism variables, masks, and macros
                     52:  */
1.1.1.3 ! root       53: extern unsigned imen;          /* interrupt mask enable */
        !            54: extern unsigned cpl;           /* current priority level mask */
1.1       root       55: 
1.1.1.3 ! root       56: extern unsigned highmask;      /* group of interrupts masked with splhigh() */
        !            57: extern unsigned ttymask;       /* group of interrupts masked with spltty() */
        !            58: extern unsigned biomask;       /* group of interrupts masked with splbio() */
        !            59: extern unsigned netmask;       /* group of interrupts masked with splnet() */
        !            60: extern unsigned impmask;       /* group of interrupts masked with splimp() */
        !            61: 
        !            62: #define        INTREN(s)       (imen &= ~(s), SET_ICUS())
        !            63: #define        INTRDIS(s)      (imen |= (s), SET_ICUS())
        !            64: #define        INTRMASK(msk,s) (msk |= (s))
        !            65: #if 0
        !            66: #define SET_ICUS()     (outb(IO_ICU1 + 1, imen), outb(IU_ICU2 + 1, imen >> 8))
1.1       root       67: #else
                     68: /*
1.1.1.3 ! root       69:  * XXX - IO_ICU* are defined in isa.h, not icu.h, and nothing much bothers to
        !            70:  * include isa.h, while too many things include icu.h.
1.1       root       71:  */
1.1.1.3 ! root       72: #define SET_ICUS()     (outb(0x21, imen), outb(0xa1, imen >> 8))
        !            73: #endif
1.1       root       74: 
                     75: #endif
                     76: 
                     77: /*
                     78:  * Interrupt enable bits -- in order of priority
                     79:  */
                     80: #define        IRQ0            0x0001          /* highest priority - timer */
                     81: #define        IRQ1            0x0002
                     82: #define        IRQ_SLAVE       0x0004
                     83: #define        IRQ8            0x0100
                     84: #define        IRQ9            0x0200
                     85: #define        IRQ2            IRQ9
                     86: #define        IRQ10           0x0400
                     87: #define        IRQ11           0x0800
                     88: #define        IRQ12           0x1000
                     89: #define        IRQ13           0x2000
                     90: #define        IRQ14           0x4000
                     91: #define        IRQ15           0x8000
                     92: #define        IRQ3            0x0008
                     93: #define        IRQ4            0x0010
                     94: #define        IRQ5            0x0020
                     95: #define        IRQ6            0x0040
                     96: #define        IRQ7            0x0080          /* lowest - parallel printer */
                     97: 
                     98: /*
                     99:  * Interrupt Control offset into Interrupt descriptor table (IDT)
                    100:  */
                    101: #define        ICU_OFFSET      32              /* 0-31 are processor exceptions */
                    102: #define        ICU_LEN         16              /* 32-47 are ISA interrupts */
                    103: 
                    104: #endif __ICU__

unix.superglobalmegacorp.com

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