|
|
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.