Deleted Added
full compact
kern_cons.c (46153) kern_cons.c (46676)
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.63 1999/04/27 12:21:03 phk Exp $
39 * $Id: cons.c,v 1.64 1999/04/28 10:52:04 dt Exp $
40 */
41
42#include "opt_devfs.h"
43
44#include <sys/param.h>
45#ifdef DEVFS
46#include <sys/devfsext.h>
47#endif /*DEVFS*/

--- 105 unchanged lines hidden (view full) ---

153 struct cdevsw *cdp;
154
155 if ((cn_tab == NULL) || cn_mute)
156 return;
157
158 /*
159 * Hook the open and close functions.
160 */
40 */
41
42#include "opt_devfs.h"
43
44#include <sys/param.h>
45#ifdef DEVFS
46#include <sys/devfsext.h>
47#endif /*DEVFS*/

--- 105 unchanged lines hidden (view full) ---

153 struct cdevsw *cdp;
154
155 if ((cn_tab == NULL) || cn_mute)
156 return;
157
158 /*
159 * Hook the open and close functions.
160 */
161 cdp = cdevsw[major(cn_tab->cn_dev)];
161 cdp = devsw(cn_tab->cn_dev);
162 cn_phys_close = cdp->d_close;
163 cdp->d_close = cnclose;
164 cn_phys_open = cdp->d_open;
165 cdp->d_open = cnopen;
166 cn_tp = (*cdp->d_devtotty)(cn_tab->cn_dev);
167 cn_dev_t = cn_tp->t_dev;
168}
169
170static void
171cnuninit(void)
172{
173 struct cdevsw *cdp;
174
175 if (cn_tab == NULL)
176 return;
177
178 /*
179 * Unhook the open and close functions.
180 */
162 cn_phys_close = cdp->d_close;
163 cdp->d_close = cnclose;
164 cn_phys_open = cdp->d_open;
165 cdp->d_open = cnopen;
166 cn_tp = (*cdp->d_devtotty)(cn_tab->cn_dev);
167 cn_dev_t = cn_tp->t_dev;
168}
169
170static void
171cnuninit(void)
172{
173 struct cdevsw *cdp;
174
175 if (cn_tab == NULL)
176 return;
177
178 /*
179 * Unhook the open and close functions.
180 */
181 cdp = cdevsw[major(cn_tab->cn_dev)];
181 cdp = devsw(cn_tab->cn_dev);
182 cdp->d_close = cn_phys_close;
183 cn_phys_close = NULL;
184 cdp->d_open = cn_phys_open;
185 cn_phys_open = NULL;
186 cn_tp = NULL;
187 cn_dev_t = 0;
188}
189

--- 126 unchanged lines hidden (view full) ---

316cnread(dev, uio, flag)
317 dev_t dev;
318 struct uio *uio;
319 int flag;
320{
321 if ((cn_tab == NULL) || cn_mute)
322 return (0);
323 dev = cn_tab->cn_dev;
182 cdp->d_close = cn_phys_close;
183 cn_phys_close = NULL;
184 cdp->d_open = cn_phys_open;
185 cn_phys_open = NULL;
186 cn_tp = NULL;
187 cn_dev_t = 0;
188}
189

--- 126 unchanged lines hidden (view full) ---

316cnread(dev, uio, flag)
317 dev_t dev;
318 struct uio *uio;
319 int flag;
320{
321 if ((cn_tab == NULL) || cn_mute)
322 return (0);
323 dev = cn_tab->cn_dev;
324 return ((*cdevsw[major(dev)]->d_read)(dev, uio, flag));
324 return ((*devsw(dev)->d_read)(dev, uio, flag));
325}
326
327static int
328cnwrite(dev, uio, flag)
329 dev_t dev;
330 struct uio *uio;
331 int flag;
332{
333 if ((cn_tab == NULL) || cn_mute) {
334 uio->uio_resid = 0; /* dump the data */
335 return (0);
336 }
337 if (constty)
338 dev = constty->t_dev;
339 else
340 dev = cn_tab->cn_dev;
325}
326
327static int
328cnwrite(dev, uio, flag)
329 dev_t dev;
330 struct uio *uio;
331 int flag;
332{
333 if ((cn_tab == NULL) || cn_mute) {
334 uio->uio_resid = 0; /* dump the data */
335 return (0);
336 }
337 if (constty)
338 dev = constty->t_dev;
339 else
340 dev = cn_tab->cn_dev;
341 return ((*cdevsw[major(dev)]->d_write)(dev, uio, flag));
341 return ((*devsw(dev)->d_write)(dev, uio, flag));
342}
343
344static int
345cnioctl(dev, cmd, data, flag, p)
346 dev_t dev;
347 u_long cmd;
348 caddr_t data;
349 int flag;

--- 10 unchanged lines hidden (view full) ---

360 if (cmd == TIOCCONS && constty) {
361 error = suser(p);
362 if (error)
363 return (error);
364 constty = NULL;
365 return (0);
366 }
367 dev = cn_tab->cn_dev;
342}
343
344static int
345cnioctl(dev, cmd, data, flag, p)
346 dev_t dev;
347 u_long cmd;
348 caddr_t data;
349 int flag;

--- 10 unchanged lines hidden (view full) ---

360 if (cmd == TIOCCONS && constty) {
361 error = suser(p);
362 if (error)
363 return (error);
364 constty = NULL;
365 return (0);
366 }
367 dev = cn_tab->cn_dev;
368 return ((*cdevsw[major(dev)]->d_ioctl)(dev, cmd, data, flag, p));
368 return ((*devsw(dev)->d_ioctl)(dev, cmd, data, flag, p));
369}
370
371static int
372cnpoll(dev, events, p)
373 dev_t dev;
374 int events;
375 struct proc *p;
376{
377 if ((cn_tab == NULL) || cn_mute)
378 return (1);
379
380 dev = cn_tab->cn_dev;
381
369}
370
371static int
372cnpoll(dev, events, p)
373 dev_t dev;
374 int events;
375 struct proc *p;
376{
377 if ((cn_tab == NULL) || cn_mute)
378 return (1);
379
380 dev = cn_tab->cn_dev;
381
382 return ((*cdevsw[major(dev)]->d_poll)(dev, events, p));
382 return ((*devsw(dev)->d_poll)(dev, events, p));
383}
384
385int
386cngetc()
387{
388 int c;
389 if ((cn_tab == NULL) || cn_mute)
390 return (-1);

--- 48 unchanged lines hidden ---
383}
384
385int
386cngetc()
387{
388 int c;
389 if ((cn_tab == NULL) || cn_mute)
390 return (-1);

--- 48 unchanged lines hidden ---