kern_cons.c (718) | kern_cons.c (798) |
---|---|
1/* 2 * Copyright (c) 1988 University of Utah. 3 * Copyright (c) 1991 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. --- 22 unchanged lines hidden (view full) --- 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: @(#)cons.c 7.2 (Berkeley) 5/9/91 | 1/* 2 * Copyright (c) 1988 University of Utah. 3 * Copyright (c) 1991 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. --- 22 unchanged lines hidden (view full) --- 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: @(#)cons.c 7.2 (Berkeley) 5/9/91 |
39 * $Id: cons.c,v 1.4 1993/10/18 14:21:48 davidg Exp $ | 39 * $Id: cons.c,v 1.5 1993/11/07 17:41:32 wollman Exp $ |
40 */ 41 42 43#include "sys/param.h" 44#include "sys/proc.h" 45#include "sys/user.h" 46#include "sys/systm.h" 47#include "sys/buf.h" --- 20 unchanged lines hidden (view full) --- 68 { 0 }, 69}; 70/* end XXX */ 71 72struct tty *constty = 0; /* virtual console output device */ 73struct consdev *cn_tab; /* physical console device info */ 74struct tty *cn_tty; /* XXX: console tty struct for tprintf */ 75 | 40 */ 41 42 43#include "sys/param.h" 44#include "sys/proc.h" 45#include "sys/user.h" 46#include "sys/systm.h" 47#include "sys/buf.h" --- 20 unchanged lines hidden (view full) --- 68 { 0 }, 69}; 70/* end XXX */ 71 72struct tty *constty = 0; /* virtual console output device */ 73struct consdev *cn_tab; /* physical console device info */ 74struct tty *cn_tty; /* XXX: console tty struct for tprintf */ 75 |
76void |
|
76cninit() 77{ 78 register struct consdev *cp; 79 80 /* 81 * Collect information about all possible consoles 82 * and find the one with highest priority 83 */ --- 10 unchanged lines hidden (view full) --- 94 return; 95 /* 96 * Turn on console 97 */ 98 cn_tty = cp->cn_tp; 99 (*cp->cn_init)(cp); 100} 101 | 77cninit() 78{ 79 register struct consdev *cp; 80 81 /* 82 * Collect information about all possible consoles 83 * and find the one with highest priority 84 */ --- 10 unchanged lines hidden (view full) --- 95 return; 96 /* 97 * Turn on console 98 */ 99 cn_tty = cp->cn_tp; 100 (*cp->cn_init)(cp); 101} 102 |
103int |
|
102cnopen(dev, flag, mode, p) 103 dev_t dev; 104 int flag, mode; 105 struct proc *p; 106{ 107 if (cn_tab == NULL) 108 return (0); 109 dev = cn_tab->cn_dev; 110 return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); 111} 112 | 104cnopen(dev, flag, mode, p) 105 dev_t dev; 106 int flag, mode; 107 struct proc *p; 108{ 109 if (cn_tab == NULL) 110 return (0); 111 dev = cn_tab->cn_dev; 112 return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p)); 113} 114 |
115int |
|
113cnclose(dev, flag, mode, p) 114 dev_t dev; 115 int flag, mode; 116 struct proc *p; 117{ 118 if (cn_tab == NULL) 119 return (0); 120 dev = cn_tab->cn_dev; 121 return ((*cdevsw[major(dev)].d_close)(dev, flag, mode, p)); 122} 123 | 116cnclose(dev, flag, mode, p) 117 dev_t dev; 118 int flag, mode; 119 struct proc *p; 120{ 121 if (cn_tab == NULL) 122 return (0); 123 dev = cn_tab->cn_dev; 124 return ((*cdevsw[major(dev)].d_close)(dev, flag, mode, p)); 125} 126 |
127int |
|
124cnread(dev, uio, flag) 125 dev_t dev; 126 struct uio *uio; | 128cnread(dev, uio, flag) 129 dev_t dev; 130 struct uio *uio; |
131 int flag; |
|
127{ 128 if (cn_tab == NULL) 129 return (0); 130 dev = cn_tab->cn_dev; 131 return ((*cdevsw[major(dev)].d_read)(dev, uio, flag)); 132} 133 | 132{ 133 if (cn_tab == NULL) 134 return (0); 135 dev = cn_tab->cn_dev; 136 return ((*cdevsw[major(dev)].d_read)(dev, uio, flag)); 137} 138 |
139int |
|
134cnwrite(dev, uio, flag) 135 dev_t dev; 136 struct uio *uio; | 140cnwrite(dev, uio, flag) 141 dev_t dev; 142 struct uio *uio; |
143 int flag; |
|
137{ 138 if (cn_tab == NULL) 139 return (0); 140 if (constty) /* 16 Aug 92*/ 141 dev = constty->t_dev; 142 else 143 dev = cn_tab->cn_dev; 144 return ((*cdevsw[major(dev)].d_write)(dev, uio, flag)); 145} 146 | 144{ 145 if (cn_tab == NULL) 146 return (0); 147 if (constty) /* 16 Aug 92*/ 148 dev = constty->t_dev; 149 else 150 dev = cn_tab->cn_dev; 151 return ((*cdevsw[major(dev)].d_write)(dev, uio, flag)); 152} 153 |
154int |
|
147cnioctl(dev, cmd, data, flag, p) 148 dev_t dev; | 155cnioctl(dev, cmd, data, flag, p) 156 dev_t dev; |
157 int cmd; |
|
149 caddr_t data; | 158 caddr_t data; |
159 int flag; |
|
150 struct proc *p; 151{ 152 int error; 153 154 if (cn_tab == NULL) 155 return (0); 156 /* 157 * Superuser can always use this to wrest control of console --- 6 unchanged lines hidden (view full) --- 164 constty = NULL; 165 return (0); 166 } 167 dev = cn_tab->cn_dev; 168 return ((*cdevsw[major(dev)].d_ioctl)(dev, cmd, data, flag, p)); 169} 170 171/*ARGSUSED*/ | 160 struct proc *p; 161{ 162 int error; 163 164 if (cn_tab == NULL) 165 return (0); 166 /* 167 * Superuser can always use this to wrest control of console --- 6 unchanged lines hidden (view full) --- 174 constty = NULL; 175 return (0); 176 } 177 dev = cn_tab->cn_dev; 178 return ((*cdevsw[major(dev)].d_ioctl)(dev, cmd, data, flag, p)); 179} 180 181/*ARGSUSED*/ |
182int |
|
172cnselect(dev, rw, p) 173 dev_t dev; 174 int rw; 175 struct proc *p; 176{ 177 if (cn_tab == NULL) 178 return (1); 179 return (ttselect(cn_tab->cn_dev, rw, p)); 180} 181 | 183cnselect(dev, rw, p) 184 dev_t dev; 185 int rw; 186 struct proc *p; 187{ 188 if (cn_tab == NULL) 189 return (1); 190 return (ttselect(cn_tab->cn_dev, rw, p)); 191} 192 |
193int |
|
182cngetc() 183{ 184 if (cn_tab == NULL) 185 return (0); 186 return ((*cn_tab->cn_getc)(cn_tab->cn_dev)); 187} 188 | 194cngetc() 195{ 196 if (cn_tab == NULL) 197 return (0); 198 return ((*cn_tab->cn_getc)(cn_tab->cn_dev)); 199} 200 |
201void |
|
189cnputc(c) 190 register int c; 191{ 192 if (cn_tab == NULL) 193 return; 194 if (c) { 195 (*cn_tab->cn_putc)(cn_tab->cn_dev, c); 196 if (c == '\n') --- 13 unchanged lines hidden --- | 202cnputc(c) 203 register int c; 204{ 205 if (cn_tab == NULL) 206 return; 207 if (c) { 208 (*cn_tab->cn_putc)(cn_tab->cn_dev, c); 209 if (c == '\n') --- 13 unchanged lines hidden --- |