|
|
1.1 root 1: /*
2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
3: *
4: * @APPLE_LICENSE_HEADER_START@
5: *
6: * The contents of this file constitute Original Code as defined in and
7: * are subject to the Apple Public Source License Version 1.1 (the
8: * "License"). You may not use this file except in compliance with the
9: * License. Please obtain a copy of the License at
10: * http://www.apple.com/publicsource and read it before using this file.
11: *
12: * This Original Code and all software distributed under the License are
13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17: * License for the specific language governing rights and limitations
18: * under the License.
19: *
20: * @APPLE_LICENSE_HEADER_END@
21: */
22: /*
23: * @OSF_COPYRIGHT@
24: */
25:
26: /*
27: * Mach Operating System
28: * Copyright (c) 1991,1990,1989 Carnegie Mellon University
29: * All Rights Reserved.
30: *
31: * Permission to use, copy, modify and distribute this software and its
32: * documentation is hereby granted, provided that both the copyright
33: * notice and this permission notice appear in all copies of the
34: * software, derivative works or modified versions, and any portions
35: * thereof, and that both notices appear in supporting documentation.
36: *
37: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
38: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
39: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
40: *
41: * Carnegie Mellon requests users of this software to return to
42: *
43: * Software Distribution Coordinator or [email protected]
44: * School of Computer Science
45: * Carnegie Mellon University
46: * Pittsburgh PA 15213-3890
47: *
48: * any improvements or extensions that they make and grant Carnegie Mellon
49: * the rights to redistribute these changes.
50: */
51: /*
52: */
53:
54: /*
55: Copyright (c) 1988,1989 Prime Computer, Inc. Natick, MA 01760
56: All Rights Reserved.
57:
58: Permission to use, copy, modify, and distribute this
59: software and its documentation for any purpose and
60: without fee is hereby granted, provided that the above
61: copyright notice appears in all copies and that both the
62: copyright notice and this permission notice appear in
63: supporting documentation, and that the name of Prime
64: Computer, Inc. not be used in advertising or publicity
65: pertaining to distribution of the software without
66: specific, written prior permission.
67:
68: THIS SOFTWARE IS PROVIDED "AS IS", AND PRIME COMPUTER,
69: INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
70: SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
71: MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN
72: NO EVENT SHALL PRIME COMPUTER, INC. BE LIABLE FOR ANY
73: SPECIAL, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
74: DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
75: PROFITS, WHETHER IN ACTION OF CONTRACT, NEGLIGENCE, OR
76: OTHER TORTIOUS ACTION, ARISING OUR OF OR IN CONNECTION
77: WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
78: */
79:
80: #ifndef _I386_PIC_H_
81: #define _I386_PIC_H_
82:
83: #include <platforms.h>
84:
85: #define NINTR 0x10
86: #define NPICS 0x02
87:
88: /*
89: ** The following are definitions used to locate the PICs in the system
90: */
91:
92: #define ADDR_PIC_BASE 0x20
93: #define OFF_ICW 0x00
94: #define OFF_OCW 0x01
95: #define SIZE_PIC 0x80
96:
97: /*
98: ** The following banks of definitions ICW1, ICW2, ICW3, and ICW4 are used
99: ** to define the fields of the various ICWs for initialisation of the PICs
100: */
101:
102: /*
103: ** ICW1
104: */
105:
106: #define ICW_TEMPLATE 0x10
107:
108: #define LEVL_TRIGGER 0x08
109: #define EDGE_TRIGGER 0x00
110: #define ADDR_INTRVL4 0x04
111: #define ADDR_INTRVL8 0x00
112: #define SINGLE__MODE 0x02
113: #define CASCADE_MODE 0x00
114: #define ICW4__NEEDED 0x01
115: #define NO_ICW4_NEED 0x00
116:
117: /*
118: ** ICW2
119: */
120:
121: #define PICM_VECTBASE 0x40
122: #define PICS_VECTBASE PICM_VECTBASE + 0x08
123:
124: /*
125: ** ICW3
126: */
127:
128: #define SLAVE_ON_IR0 0x01
129: #define SLAVE_ON_IR1 0x02
130: #define SLAVE_ON_IR2 0x04
131: #define SLAVE_ON_IR3 0x08
132: #define SLAVE_ON_IR4 0x10
133: #define SLAVE_ON_IR5 0x20
134: #define SLAVE_ON_IR6 0x40
135: #define SLAVE_ON_IR7 0x80
136:
137: #define I_AM_SLAVE_0 0x00
138: #define I_AM_SLAVE_1 0x01
139: #define I_AM_SLAVE_2 0x02
140: #define I_AM_SLAVE_3 0x03
141: #define I_AM_SLAVE_4 0x04
142: #define I_AM_SLAVE_5 0x05
143: #define I_AM_SLAVE_6 0x06
144: #define I_AM_SLAVE_7 0x07
145:
146: /*
147: ** ICW4
148: */
149:
150: #define SNF_MODE_ENA 0x10
151: #define SNF_MODE_DIS 0x00
152: #define BUFFERD_MODE 0x08
153: #define NONBUFD_MODE 0x00
154: #define AUTO_EOI_MOD 0x02
155: #define NRML_EOI_MOD 0x00
156: #define I8086_EMM_MOD 0x01
157: #define SET_MCS_MODE 0x00
158:
159: /*
160: ** OCW1
161: */
162: #define PICM_MASK 0xFF
163: #define PICS_MASK 0xFF
164: /*
165: ** OCW2
166: */
167:
168: #define NON_SPEC_EOI 0x20
169: #define SPECIFIC_EOI 0x30
170: #define ROT_NON_SPEC 0x50
171: #define SET_ROT_AEOI 0x40
172: #define RSET_ROTAEOI 0x00
173: #define ROT_SPEC_EOI 0x70
174: #define SET_PRIORITY 0x60
175: #define NO_OPERATION 0x20
176:
177: #define SEND_EOI_IR0 0x00
178: #define SEND_EOI_IR1 0x01
179: #define SEND_EOI_IR2 0x02
180: #define SEND_EOI_IR3 0x03
181: #define SEND_EOI_IR4 0x04
182: #define SEND_EOI_IR5 0x05
183: #define SEND_EOI_IR6 0x06
184: #define SEND_EOI_IR7 0x07
185:
186: /*
187: ** OCW3
188: */
189:
190: #define OCW_TEMPLATE 0x08
191: #define SPECIAL_MASK 0x40
192: #define MASK_MDE_SET 0x20
193: #define MASK_MDE_RST 0x00
194: #define POLL_COMMAND 0x04
195: #define NO_POLL_CMND 0x00
196: #define READ_NEXT_RD 0x02
197: #define READ_IR_ONRD 0x00
198: #define READ_IS_ONRD 0x01
199:
200: #endif /* _I386_PIC_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.