1*7824Sroot /* tty_tty.c 4.10 82/08/22 */ 235Sbill 335Sbill /* 43117Swnj * Indirect driver for controlling tty. 54487Swnj * 64487Swnj * 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" 15*7824Sroot #include "../h/uio.h" 1635Sbill 1735Sbill /*ARGSUSED*/ 1835Sbill syopen(dev, flag) 1935Sbill { 2035Sbill 215576Swnj if (u.u_ttyp == NULL) { 2235Sbill u.u_error = ENXIO; 2335Sbill return; 2435Sbill } 2535Sbill (*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag); 2635Sbill } 2735Sbill 2835Sbill /*ARGSUSED*/ 29*7824Sroot syread(dev, uio) 30*7824Sroot dev_t dev; 31*7824Sroot struct uio *uio; 3235Sbill { 3335Sbill 345576Swnj if (u.u_ttyp == NULL) { 352305Swnj u.u_error = ENXIO; 362305Swnj return; 372305Swnj } 38*7824Sroot (*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd, uio); 3935Sbill } 4035Sbill 4135Sbill /*ARGSUSED*/ 42*7824Sroot sywrite(dev, uio) 43*7824Sroot dev_t dev; 44*7824Sroot struct uio *uio; 4535Sbill { 4635Sbill 475576Swnj if (u.u_ttyp == NULL) { 482305Swnj u.u_error = ENXIO; 492305Swnj return; 502305Swnj } 51*7824Sroot (*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd, uio); 5235Sbill } 5335Sbill 5435Sbill /*ARGSUSED*/ 5535Sbill syioctl(dev, cmd, addr, flag) 565618Sroot dev_t dev; 575618Sroot int cmd; 585618Sroot caddr_t addr; 595618Sroot int flag; 6035Sbill { 6135Sbill 625390Swnj if (cmd == TIOCNOTTY) { 635390Swnj u.u_ttyp = 0; 645390Swnj u.u_ttyd = 0; 655390Swnj u.u_procp->p_pgrp = 0; 665390Swnj return; 675390Swnj } 685576Swnj if (u.u_ttyp == NULL) { 692305Swnj u.u_error = ENXIO; 702305Swnj return; 712305Swnj } 7235Sbill (*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag); 7335Sbill } 744487Swnj 754487Swnj syselect(dev, flag) 764487Swnj { 774487Swnj 785576Swnj if (u.u_ttyp == NULL) { 794487Swnj u.u_error = ENXIO; 805390Swnj return (0); 814487Swnj } 826385Swnj return ((*cdevsw[major(u.u_ttyd)].d_select)(u.u_ttyd, flag)); 834487Swnj } 84