xref: /csrg-svn/sys/kern/tty_tty.c (revision 3117)
1*3117Swnj /*	tty_tty.c	4.3	81/03/09	*/
235Sbill 
335Sbill /*
4*3117Swnj  * 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 
182305Swnj 	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 
292305Swnj 	if (u.u_procp->p_flag&SDETACH) {
302305Swnj 		u.u_error = ENXIO;
312305Swnj 		return;
322305Swnj 	}
3335Sbill 	(*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd);
3435Sbill }
3535Sbill 
3635Sbill /*ARGSUSED*/
3735Sbill sywrite(dev)
3835Sbill {
3935Sbill 
402305Swnj 	if (u.u_procp->p_flag&SDETACH) {
412305Swnj 		u.u_error = ENXIO;
422305Swnj 		return;
432305Swnj 	}
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 
522305Swnj 	if (u.u_procp->p_flag&SDETACH) {
532305Swnj 		u.u_error = ENXIO;
542305Swnj 		return;
552305Swnj 	}
5635Sbill 	(*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag);
5735Sbill }
58