1*4487Swnj /* tty_tty.c 4.4 81/10/11 */ 235Sbill 335Sbill /* 43117Swnj * Indirect driver for controlling tty. 5*4487Swnj * 6*4487Swnj * THIS IS GARBAGE: MUST SOON BE DONE WITH struct inode * IN PROC TABLE. 735Sbill */ 835Sbill #include "../h/param.h" 935Sbill #include "../h/systm.h" 1035Sbill #include "../h/conf.h" 1135Sbill #include "../h/dir.h" 1235Sbill #include "../h/user.h" 1335Sbill #include "../h/tty.h" 1435Sbill #include "../h/proc.h" 1535Sbill 1635Sbill /*ARGSUSED*/ 1735Sbill syopen(dev, flag) 1835Sbill { 1935Sbill 202305Swnj if(u.u_ttyp == NULL || (u.u_procp->p_flag&SDETACH)) { 2135Sbill u.u_error = ENXIO; 2235Sbill return; 2335Sbill } 2435Sbill (*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag); 2535Sbill } 2635Sbill 2735Sbill /*ARGSUSED*/ 2835Sbill syread(dev) 2935Sbill { 3035Sbill 312305Swnj if (u.u_procp->p_flag&SDETACH) { 322305Swnj u.u_error = ENXIO; 332305Swnj return; 342305Swnj } 3535Sbill (*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd); 3635Sbill } 3735Sbill 3835Sbill /*ARGSUSED*/ 3935Sbill sywrite(dev) 4035Sbill { 4135Sbill 422305Swnj if (u.u_procp->p_flag&SDETACH) { 432305Swnj u.u_error = ENXIO; 442305Swnj return; 452305Swnj } 4635Sbill (*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd); 4735Sbill } 4835Sbill 4935Sbill /*ARGSUSED*/ 5035Sbill syioctl(dev, cmd, addr, flag) 5135Sbill caddr_t addr; 5235Sbill { 5335Sbill 542305Swnj if (u.u_procp->p_flag&SDETACH) { 552305Swnj u.u_error = ENXIO; 562305Swnj return; 572305Swnj } 5835Sbill (*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag); 5935Sbill } 60*4487Swnj 61*4487Swnj syselect(dev, flag) 62*4487Swnj { 63*4487Swnj 64*4487Swnj if (u.u_procp->p_flag&SDETACH) { 65*4487Swnj u.u_error = ENXIO; 66*4487Swnj return; 67*4487Swnj } 68*4487Swnj (*cdevsw[major(u.u_ttyd)].d_select)(dev, flag); 69*4487Swnj } 70