|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1988 University of Utah. ! 3: * Copyright (c) 1990 The Regents of the University of California. ! 4: * All rights reserved. ! 5: * ! 6: * This code is derived from software contributed to Berkeley by ! 7: * the Systems Programming Group of the University of Utah Computer ! 8: * Science Department. ! 9: * ! 10: * Redistribution and use in source and binary forms, with or without ! 11: * modification, are permitted provided that the following conditions ! 12: * are met: ! 13: * 1. Redistributions of source code must retain the above copyright ! 14: * notice, this list of conditions and the following disclaimer. ! 15: * 2. Redistributions in binary form must reproduce the above copyright ! 16: * notice, this list of conditions and the following disclaimer in the ! 17: * documentation and/or other materials provided with the distribution. ! 18: * 3. All advertising materials mentioning features or use of this software ! 19: * must display the following acknowledgement: ! 20: * This product includes software developed by the University of ! 21: * California, Berkeley and its contributors. ! 22: * 4. Neither the name of the University nor the names of its contributors ! 23: * may be used to endorse or promote products derived from this software ! 24: * without specific prior written permission. ! 25: * ! 26: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 27: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 28: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 29: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 30: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 31: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 32: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 33: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 34: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 35: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 36: * SUCH DAMAGE. ! 37: * ! 38: * from: Utah $Hdr: itevar.h 1.1 90/07/09$ ! 39: * ! 40: * @(#)itevar.h 7.2 (Berkeley) 11/4/90 ! 41: */ ! 42: ! 43: #define UNIT(dev) minor(dev) ! 44: ! 45: struct itesw { ! 46: int (*ite_init)(); ! 47: int (*ite_deinit)(); ! 48: int (*ite_clear)(); ! 49: int (*ite_putc)(); ! 50: int (*ite_cursor)(); ! 51: int (*ite_scroll)(); ! 52: }; ! 53: ! 54: /* maximum number of argument characters (<CSI>33;34;3m for example) */ ! 55: #define ARGBUF_SIZE 256 ! 56: ! 57: struct ite_softc { ! 58: int flags; ! 59: int type; ! 60: struct grf_softc *grf; ! 61: void *priv; ! 62: short curx, cury; ! 63: short cursorx, cursory; ! 64: u_char *font; ! 65: u_char *cursor; ! 66: u_char font_lo, font_hi; ! 67: short rows, cols; ! 68: short cpl; ! 69: short ftheight, ftwidth; ! 70: short attribute; ! 71: u_char *attrbuf; ! 72: short planemask; ! 73: short pos; ! 74: char imode, fpd, hold; ! 75: u_char escape; ! 76: /* not currently used, but maintained */ ! 77: char GL, GR, G0, G1, G2, G3; ! 78: char linefeed_newline; ! 79: char argbuf[ARGBUF_SIZE], *ap; ! 80: char emul_level, eightbit_C1; ! 81: int top_margin, bottom_margin, inside_margins; ! 82: short save_curx, save_cury; ! 83: }; ! 84: ! 85: /* emulation levels: */ ! 86: #define EMUL_VT100 1 ! 87: #define EMUL_VT300_8 2 ! 88: #define EMUL_VT300_7 3 ! 89: ! 90: /* Flags */ ! 91: #define ITE_ALIVE 0x01 /* hardware exists */ ! 92: #define ITE_INITED 0x02 /* device has been initialized */ ! 93: #define ITE_CONSOLE 0x04 /* device can be console */ ! 94: #define ITE_ISCONS 0x08 /* device is console */ ! 95: #define ITE_ACTIVE 0x10 /* device is being used as ITE */ ! 96: #define ITE_INGRF 0x20 /* device in use as non-ITE */ ! 97: ! 98: /* Types - indices into itesw */ ! 99: #define ITE_CUSTOMCHIPS 0 ! 100: #define ITE_TIGA_A2410 1 ! 101: ! 102: #define attrloc(ip, y, x) \ ! 103: (ip->attrbuf + ((y) * ip->cols) + (x)) ! 104: ! 105: #define attrclr(ip, sy, sx, h, w) \ ! 106: bzero(ip->attrbuf + ((sy) * ip->cols) + (sx), (h) * (w)) ! 107: ! 108: #define attrmov(ip, sy, sx, dy, dx, h, w) \ ! 109: bcopy(ip->attrbuf + ((sy) * ip->cols) + (sx), \ ! 110: ip->attrbuf + ((dy) * ip->cols) + (dx), \ ! 111: (h) * (w)) ! 112: ! 113: #define attrtest(ip, attr) \ ! 114: ((* (u_char *) attrloc(ip, ip->cury, ip->curx)) & attr) ! 115: ! 116: #define attrset(ip, attr) \ ! 117: ((* (u_char *) attrloc(ip, ip->cury, ip->curx)) = attr) ! 118: ! 119: /* ! 120: * X and Y location of character 'c' in the framebuffer, in pixels. ! 121: */ ! 122: #define charX(ip,c) \ ! 123: (((c) % (ip)->cpl) * (ip)->ftwidth + (ip)->fontx) ! 124: ! 125: #define charY(ip,c) \ ! 126: (((c) / (ip)->cpl) * (ip)->ftheight + (ip)->fonty) ! 127: ! 128: /* Character attributes */ ! 129: #define ATTR_NOR 0x0 /* normal */ ! 130: #define ATTR_INV 0x1 /* inverse */ ! 131: #define ATTR_UL 0x2 /* underline */ ! 132: #define ATTR_BOLD 0x4 /* bold */ ! 133: #define ATTR_BLINK 0x8 /* blink */ ! 134: #define ATTR_ALL (ATTR_INV | ATTR_UL) ! 135: ! 136: /* Keyboard attributes */ ! 137: #define ATTR_KPAD 0x80 /* keypad transmit */ ! 138: ! 139: /* Replacement Rules */ ! 140: #define RR_CLEAR 0x0 ! 141: #define RR_COPY 0x3 ! 142: #define RR_XOR 0x6 ! 143: #define RR_COPYINVERTED 0xc ! 144: ! 145: #define SCROLL_UP 0x01 ! 146: #define SCROLL_DOWN 0x02 ! 147: #define SCROLL_LEFT 0x03 ! 148: #define SCROLL_RIGHT 0x04 ! 149: #define DRAW_CURSOR 0x05 ! 150: #define ERASE_CURSOR 0x06 ! 151: #define MOVE_CURSOR 0x07 ! 152: ! 153: ! 154: /* special key codes */ ! 155: #define KBD_LEFT_SHIFT 0x60 ! 156: #define KBD_RIGHT_SHIFT 0x61 ! 157: #define KBD_CAPS_LOCK 0x62 ! 158: #define KBD_CTRL 0x63 ! 159: #define KBD_LEFT_ALT 0x64 ! 160: #define KBD_RIGHT_ALT 0x65 ! 161: #define KBD_LEFT_META 0x66 ! 162: #define KBD_RIGHT_META 0x67 ! 163: ! 164: /* modifier map for use in itefilter() */ ! 165: #define KBD_MOD_LSHIFT (1<<0) ! 166: #define KBD_MOD_RSHIFT (1<<1) ! 167: #define KBD_MOD_SHIFT (KBD_MOD_LSHIFT | KBD_MOD_RSHIFT) ! 168: #define KBD_MOD_CTRL (1<<2) ! 169: #define KBD_MOD_LALT (1<<3) ! 170: #define KBD_MOD_RALT (1<<4) ! 171: #define KBD_MOD_ALT (KBD_MOD_LALT | KBD_MOD_RALT) ! 172: #define KBD_MOD_LMETA (1<<5) ! 173: #define KBD_MOD_RMETA (1<<6) ! 174: #define KBD_MOD_META (KBD_MOD_LMETA | KBD_MOD_RMETA) ! 175: #define KBD_MOD_CAPS (1<<7) ! 176: ! 177: /* type for the second argument to itefilter(). Note that the ! 178: driver doesn't support key-repeat for console-mode, since it can't use ! 179: timeout() for polled I/O. */ ! 180: ! 181: enum caller { ITEFILT_TTY, ITEFILT_CONSOLE, ITEFILT_REPEATER }; ! 182: ! 183: #define TABSIZE 8 ! 184: #define TABEND(u) (ite_tty[u]->t_winsize.ws_col - TABSIZE) ! 185: ! 186: #ifdef KERNEL ! 187: extern struct ite_softc ite_softc[]; ! 188: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.