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