xref: /csrg-svn/sys/kern/tty_tty.c (revision 2305)
1*2305Swnj /*	tty_tty.c	4.2	01/28/81	*/
235Sbill 
335Sbill /*
435Sbill  *	indirect driver for controlling tty.
535Sbill  */
635Sbill #include "../h/param.h"
735Sbill #include "../h/systm.h"
835Sbill #include "../h/conf.h"
935Sbill #include "../h/dir.h"
1035Sbill #include "../h/user.h"
1135Sbill #include "../h/tty.h"
1235Sbill #include "../h/proc.h"
1335Sbill 
1435Sbill /*ARGSUSED*/
1535Sbill syopen(dev, flag)
1635Sbill {
1735Sbill 
18*2305Swnj 	if(u.u_ttyp == NULL || (u.u_procp->p_flag&SDETACH)) {
1935Sbill 		u.u_error = ENXIO;
2035Sbill 		return;
2135Sbill 	}
2235Sbill 	(*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag);
2335Sbill }
2435Sbill 
2535Sbill /*ARGSUSED*/
2635Sbill syread(dev)
2735Sbill {
2835Sbill 
29*2305Swnj 	if (u.u_procp->p_flag&SDETACH) {
30*2305Swnj 		u.u_error = ENXIO;
31*2305Swnj 		return;
32*2305Swnj 	}
3335Sbill 	(*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd);
3435Sbill }
3535Sbill 
3635Sbill /*ARGSUSED*/
3735Sbill sywrite(dev)
3835Sbill {
3935Sbill 
40*2305Swnj 	if (u.u_procp->p_flag&SDETACH) {
41*2305Swnj 		u.u_error = ENXIO;
42*2305Swnj 		return;
43*2305Swnj 	}
4435Sbill 	(*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd);
4535Sbill }
4635Sbill 
4735Sbill /*ARGSUSED*/
4835Sbill syioctl(dev, cmd, addr, flag)
4935Sbill caddr_t addr;
5035Sbill {
5135Sbill 
52*2305Swnj 	if (u.u_procp->p_flag&SDETACH) {
53*2305Swnj 		u.u_error = ENXIO;
54*2305Swnj 		return;
55*2305Swnj 	}
5635Sbill 	(*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag);
5735Sbill }
58