xref: /original-bsd/sys/kern/tty_tty.c (revision 0b685140)
1 /*	tty_tty.c	4.8	82/01/24	*/
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 "../h/param.h"
9 #include "../h/systm.h"
10 #include "../h/conf.h"
11 #include "../h/dir.h"
12 #include "../h/user.h"
13 #include "../h/tty.h"
14 #include "../h/proc.h"
15 
16 /*ARGSUSED*/
17 syopen(dev, flag)
18 {
19 
20 	if (u.u_ttyp == NULL) {
21 		u.u_error = ENXIO;
22 		return;
23 	}
24 	(*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag);
25 }
26 
27 /*ARGSUSED*/
28 syread(dev)
29 {
30 
31 	if (u.u_ttyp == NULL) {
32 		u.u_error = ENXIO;
33 		return;
34 	}
35 	(*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd);
36 }
37 
38 /*ARGSUSED*/
39 sywrite(dev)
40 {
41 
42 	if (u.u_ttyp == NULL) {
43 		u.u_error = ENXIO;
44 		return;
45 	}
46 	(*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd);
47 }
48 
49 /*ARGSUSED*/
50 syioctl(dev, cmd, addr, flag)
51 	dev_t dev;
52 	int cmd;
53 	caddr_t addr;
54 	int flag;
55 {
56 
57 	if (cmd == TIOCNOTTY) {
58 		u.u_ttyp = 0;
59 		u.u_ttyd = 0;
60 		u.u_procp->p_pgrp = 0;
61 		return;
62 	}
63 	if (u.u_ttyp == NULL) {
64 		u.u_error = ENXIO;
65 		return;
66 	}
67 	(*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag);
68 }
69 
70 syselect(dev, flag)
71 {
72 
73 	if (u.u_ttyp == NULL) {
74 		u.u_error = ENXIO;
75 		return (0);
76 	}
77 	return ((*cdevsw[major(u.u_ttyd)].d_select)(dev, flag));
78 }
79