|
|
1.1 root 1: /* univec.c 4.1 11/9/80 */
2:
3: #include "../h/param.h"
4: #include "../h/vm.h"
5:
6: /* DEV puts controller no. in bits 27-31 of ISR addr */
7: #define DEV(x,n) (int (*)())((int)(x) + 0x08000000 * n)
8:
9: /* DMA sets low bit to activate pseudo-dma code */
10: #define DMA(x) (int (*)())((int)(x) + 1)
11:
12: /* dzxint is, in reality, a pseudo-dma entry */
13: #define dzxint DMA(dzdma)
14:
15: /*
16: * Definitions of functions to be placed in UNIvec.
17: */
18: extern ubastray();
19: #include "dz.h"
20: #if NDZ11 > 0
21: extern dzrint(), dzdma();
22: #else
23: #define dzrint ubastray
24: #define dzxint ubastray
25: #endif
26:
27: #include "dh.h"
28: #if NDH11 > 0
29: extern dhrint(), dhxint();
30: #else
31: #define dhrint ubastray
32: #define dhxint ubastray
33: #endif
34:
35: #include "up.h"
36: #if NUP > 0
37: extern upintr();
38: #else
39: #define upintr ubastray
40: #endif
41:
42: #include "vp.h"
43: #if NVP > 0
44: extern vpintr();
45: #else
46: #define vpintr ubastray
47: #endif
48:
49: #include "va.h"
50: #if NVA > 0
51: extern vaintr();
52: #else
53: #define vaintr ubastray
54: #endif
55:
56: #define ___ ubastray /* fill in the blank! */
57:
58: int (*UNIvec[NBPG/NBPW])() = {
59:
60: /* 0x0 */ ___, ___, ___, ___,
61: /* 0x10 */ ___, ___, ___, ___,
62: /* 0x20 */ ___, ___, ___, ___,
63: /* 0x30 */ ___, ___, ___, ___,
64: /* 0x40 */ ___, ___, ___, ___,
65: /* 0x50 */ ___, ___, ___, ___,
66: /* 0x60 */ ___, ___, ___, ___,
67: /* 0x70 */ ___, ___, vaintr, vpintr,
68: /* 0x80 */ vpintr, ___, ___, ___,
69: /* 0x90 */ ___, ___, ___, ___,
70: /* 0xa0 */ ___, ___, ___, upintr,
71: /* 0xb0 */ ___, ___, ___, ___,
72: #if NDZ11 > 0
73: /* 0xc0 */ DEV(dzrint,0), DEV(dzxint,0),
74: #else
75: /* 0xc0 */ ___, ___,
76: #endif
77: #if NDZ11 > 1
78: /* 0xc8 */ DEV(dzrint,1), DEV(dzxint,1),
79: #else
80: /* 0xc8 */ ___, ___,
81: #endif
82: #if NDZ11 > 2
83: /* 0xd0 */ DEV(dzrint,2), DEV(dzxint,2),
84: #else
85: /* 0xd0 */ ___, ___,
86: #endif
87: #if NDZ11 > 3
88: /* 0xd8 */ DEV(dzrint,3), DEV(dzxint,3),
89: #else
90: /* 0xd8 */ ___, ___,
91: #endif
92: #if NDH11 > 0
93: /* 0xe0 */ DEV(dhrint,0), DEV(dhxint,0),
94: #else
95: /* 0xe0 */ ___, ___,
96: #endif
97: #if NDH11 > 16
98: /* 0xe0 */ DEV(dhrint,1), DEV(dhxint,1),
99: #else
100: /* 0xf0 */ ___, ___,
101: #endif
102: /* 0xf0 */ ___, ___, ___, ___,
103: /* 0x100 */ ___, ___, ___, ___,
104: /* 0x110 */ ___, ___, ___, ___,
105: /* 0x120 */ ___, ___, ___, ___,
106: /* 0x130 */ ___, ___, ___, ___,
107: /* 0x140 */ ___, ___, ___, ___,
108: /* 0x150 */ ___, ___, ___, ___,
109: /* 0x160 */ ___, ___, ___, ___,
110: /* 0x170 */ ___, ___, ___, ___,
111: /* 0x180 */ ___, ___, ___, ___,
112: /* 0x190 */ ___, ___, ___, ___,
113: /* 0x1a0 */ ___, ___, ___, ___,
114: /* 0x1b0 */ ___, ___, ___, ___,
115: /* 0x1c0 */ ___, ___, ___, ___,
116: /* 0x1d0 */ ___, ___, ___, ___,
117: /* 0x1e0 */ ___, ___, ___, ___,
118: /* 0x1f0 */ ___, ___, ___, ___,
119: };
120:
121: #undef ___
122:
123: ubastray()
124: {
125: register int i;
126:
127: #ifdef lint
128: i = 0;
129: #else
130: asm("movl r3,r11"); /* magic */
131: #endif
132: printf("stray UBA interrupt: 0x%X\n", i);
133: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.