1 /* 2 * Copyright (c) 1988 University of Utah. 3 * Copyright (c) 1992 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 and Ralph Campbell. 9 * 10 * %sccs.include.redist.c% 11 * 12 * from: Utah $Hdr: cons.c 1.1 90/07/09$ 13 * 14 * @(#)cons.c 7.3 (Berkeley) 03/07/92 15 */ 16 17 #include "param.h" 18 #include "proc.h" 19 #include "systm.h" 20 #include "buf.h" 21 #include "ioctl.h" 22 #include "tty.h" 23 #include "file.h" 24 #include "conf.h" 25 26 #include "../include/machMon.h" 27 28 /* 29 * Console output may be redirected to another tty 30 * (e.g. a window); if so, constty will point to the current 31 * virtual console. 32 */ 33 struct tty *constty; /* virtual console output device */ 34 35 /* 36 * Get character from console. 37 */ 38 cngetc() 39 { 40 int (*f)(); 41 #include "dc.h" 42 #if NDC > 0 43 #include "machine/dc7085cons.h" 44 #include "../dev/pdma.h" 45 extern struct pdma dcpdma[]; 46 47 /* check to be sure device has been initialized */ 48 if (dcpdma[0].p_addr) 49 return (dcKBDGetc()); 50 f = (int (*)())MACH_MON_GETCHAR; 51 return (*f)(); 52 #else 53 f = (int (*)())MACH_MON_GETCHAR; 54 return (*f)(); 55 #endif 56 } 57 58 /* 59 * Print a character on console. 60 */ 61 cnputc(c) 62 register int c; 63 { 64 #include "pm.h" 65 #if NPM > 0 66 pmPutc(c); 67 #else 68 #include "cfb.h" 69 #if NCFB > 0 70 cfbPutc(c); 71 #else 72 int s; 73 void (*f)() = (void (*)())MACH_MON_PUTCHAR; 74 75 s = splhigh(); 76 (*f)(c); 77 splx(s); 78 #endif 79 #endif 80 } 81