xref: /original-bsd/sys/kern/tty_tty.c (revision f71cd02e)
1 /*	tty_tty.c	6.2	84/08/29	*/
2 
3 /*
4  * Indirect driver for controlling tty.
5  *
6  * THIS IS GARBAGE: MUST SOON BE DONE WITH struct inode * IN PROC TABLE.
7  */
8 #include "param.h"
9 #include "systm.h"
10 #include "conf.h"
11 #include "dir.h"
12 #include "user.h"
13 #include "ioctl.h"
14 #include "tty.h"
15 #include "proc.h"
16 #include "uio.h"
17 
18 /*ARGSUSED*/
19 syopen(dev, flag)
20 	dev_t dev;
21 	int flag;
22 {
23 
24 	if (u.u_ttyp == NULL)
25 		return (ENXIO);
26 	return ((*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag));
27 }
28 
29 /*ARGSUSED*/
30 syread(dev, uio)
31 	dev_t dev;
32 	struct uio *uio;
33 {
34 
35 	if (u.u_ttyp == NULL)
36 		return (ENXIO);
37 	return ((*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd, uio));
38 }
39 
40 /*ARGSUSED*/
41 sywrite(dev, uio)
42 	dev_t dev;
43 	struct uio *uio;
44 {
45 
46 	if (u.u_ttyp == NULL)
47 		return (ENXIO);
48 	return ((*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd, uio));
49 }
50 
51 /*ARGSUSED*/
52 syioctl(dev, cmd, addr, flag)
53 	dev_t dev;
54 	int cmd;
55 	caddr_t addr;
56 	int flag;
57 {
58 
59 	if (cmd == TIOCNOTTY) {
60 		u.u_ttyp = 0;
61 		u.u_ttyd = 0;
62 		u.u_procp->p_pgrp = 0;
63 		return (0);
64 	}
65 	if (u.u_ttyp == NULL)
66 		return (ENXIO);
67 	return ((*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag));
68 }
69 
70 /*ARGSUSED*/
71 syselect(dev, flag)
72 	dev_t dev;
73 	int flag;
74 {
75 
76 	if (u.u_ttyp == NULL) {
77 		u.u_error = ENXIO;
78 		return (0);
79 	}
80 	return ((*cdevsw[major(u.u_ttyd)].d_select)(u.u_ttyd, flag));
81 }
82