|
|
1.1 ! root 1: /* (-lgl ! 2: * COHERENT Driver Kit Version 2.0 ! 3: * Copyright (c) 1982, 1992 by Mark Williams Company. ! 4: * All rights reserved. May not be copied without permission. ! 5: -lgl) */ ! 6: /* ! 7: * Machine dependent stuff. ! 8: * 8086/8088 & 286 Coherent PC/XT/AT. ! 9: */ ! 10: #ifndef I8086_H ! 11: #define I8086_H ! 12: ! 13: /* ! 14: * Useful definitions. ! 15: */ ! 16: #define PIC 0x20 /* 8259 command port */ ! 17: #define PICM 0x21 /* 8259 mask port */ ! 18: #define SPIC 0xA0 /* Slave 8259 command port */ ! 19: #define SPICM 0xA1 /* Slave 8259 mask port */ ! 20: #define MFTTB 0x0100 /* Trace trap bit */ ! 21: #define MFINT 0x0200 /* Interupt enable */ ! 22: #define MUERR 0x0002 /* Location of errno */ ! 23: ! 24: /* ! 25: * Trap codes. ! 26: * Passed in the upper 8 bits of ! 27: * the "id" passed to "trap". ! 28: */ ! 29: #define SIDIV 0 /* Divide overflow */ ! 30: #define SISST 1 /* Single step */ ! 31: #define SINMI 2 /* NMI (parity) */ ! 32: #define SIBPT 3 /* Breakpoint */ ! 33: #define SIOVF 4 /* Overflow */ ! 34: #define SIBND 5 /* Bound */ ! 35: #define SIOP 6 /* Invalid opcode */ ! 36: #define SIXNP 7 /* Processor extension not available */ ! 37: #define SIDBL 8 /* Double exception */ ! 38: #define SIXS 9 /* Processor extension segment overrun */ ! 39: #define SITS 10 /* Invalid task state segment */ ! 40: #define SINP 11 /* Segment not present */ ! 41: #define SISS 12 /* Stack segment overrun/not present */ ! 42: #define SIGP 13 /* General protection */ ! 43: #define SISYS 32 /* System call */ ! 44: #define SIRAN 33 /* Random interrupt */ ! 45: #define SIDEV 64 /* Device interrupt */ ! 46: ! 47: /* ! 48: * The saved registers are accessed ! 49: * via constant offsets from the top of the ! 50: * user area stack. The "O" symbols, defined below, ! 51: * are the offsets, in words, from the initial system ! 52: * stack. The offsets depend on the actual save order ! 53: * defined by "tsave" in the assist. ! 54: */ ! 55: #define regl ((int *)((char *)&u+UPASIZE)) ! 56: ! 57: #define OFW -1 ! 58: #define OCS -2 ! 59: #define OIP -3 ! 60: #define OID -4 ! 61: #define OSS -5 ! 62: #define OSP -6 ! 63: #define ODS -7 ! 64: #define OBX -8 ! 65: #define OAX -9 ! 66: #define ODX -10 ! 67: #define OCX -11 ! 68: #define OES -12 ! 69: #define ORA -13 ! 70: #define OSI -14 ! 71: #define ODI -15 ! 72: #define OBP -16 ! 73: ! 74: /* ! 75: * For accessing high and low words of a long. ! 76: */ ! 77: struct l { ! 78: int l_lo; ! 79: int l_hi; ! 80: }; ! 81: ! 82: #ifdef KERNEL ! 83: /* ! 84: * Global variables. ! 85: */ ! 86: extern unsigned ucs; /* User code segment */ ! 87: extern unsigned ucl; /* Length of code segment */ ! 88: extern unsigned uds; /* User data segment */ ! 89: extern unsigned udl; /* Length of data segment */ ! 90: extern char depth; /* Stack depth */ ! 91: ! 92: #endif ! 93: ! 94: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.