|
|
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__
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.