|
|
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: cons.c 1.5 89/08/22$ ! 39: * ! 40: * @(#)cons.c 7.4 (Berkeley) 5/5/91 ! 41: */ ! 42: ! 43: #include "sys/param.h" ! 44: #include "samachdep.h" ! 45: #include "../hp300/cons.h" ! 46: ! 47: #ifdef ITECONSOLE ! 48: int iteprobe(), iteinit(), itegetchar(), iteputchar(); ! 49: #endif ! 50: #ifdef DCACONSOLE ! 51: int dcaprobe(), dcainit(), dcagetchar(), dcaputchar(); ! 52: #endif ! 53: #ifdef DCMCONSOLE ! 54: int dcmprobe(), dcminit(), dcmgetchar(), dcmputchar(); ! 55: #endif ! 56: ! 57: struct consdev constab[] = { ! 58: #ifdef ITECONSOLE ! 59: { iteprobe, iteinit, itegetchar, iteputchar }, ! 60: #endif ! 61: #ifdef DCACONSOLE ! 62: { dcaprobe, dcainit, dcagetchar, dcaputchar }, ! 63: #endif ! 64: #ifdef DCMCONSOLE ! 65: { dcmprobe, dcminit, dcmgetchar, dcmputchar }, ! 66: #endif ! 67: { 0 }, ! 68: }; ! 69: ! 70: struct consdev *cn_tab; ! 71: int noconsole; ! 72: ! 73: cninit() ! 74: { ! 75: register struct consdev *cp; ! 76: ! 77: cn_tab = NULL; ! 78: noconsole = 1; ! 79: for (cp = constab; cp->cn_probe; cp++) { ! 80: (*cp->cn_probe)(cp); ! 81: if (cp->cn_pri > CN_DEAD && ! 82: (cn_tab == NULL || cp->cn_pri > cn_tab->cn_pri)) ! 83: cn_tab = cp; ! 84: } ! 85: if (cn_tab) { ! 86: (*cn_tab->cn_init)(cn_tab); ! 87: noconsole = 0; ! 88: } ! 89: } ! 90: ! 91: cngetc() ! 92: { ! 93: if (cn_tab) ! 94: return((*cn_tab->cn_getc)()); ! 95: return(0); ! 96: } ! 97: ! 98: cnputc(c) ! 99: int c; ! 100: { ! 101: if (cn_tab) ! 102: (*cn_tab->cn_putc)(c); ! 103: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.