1 /* tty_tty.c 4.12 82/10/17 */ 2 3 /* 4 * Indirect driver for controlling tty. 5 * 6 * THIS IS GARBAGE: MUST SOON BE DONE WITH struct inode * IN PROC TABLE. 7 */ 8 #include "../h/param.h" 9 #include "../h/systm.h" 10 #include "../h/conf.h" 11 #include "../h/dir.h" 12 #include "../h/user.h" 13 #include "../h/tty.h" 14 #include "../h/proc.h" 15 #include "../h/uio.h" 16 17 /*ARGSUSED*/ 18 syopen(dev, flag) 19 dev_t dev; 20 int flag; 21 { 22 23 if (u.u_ttyp == NULL) 24 return (ENXIO); 25 return ((*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag)); 26 } 27 28 /*ARGSUSED*/ 29 syread(dev, uio) 30 dev_t dev; 31 struct uio *uio; 32 { 33 34 if (u.u_ttyp == NULL) 35 return (ENXIO); 36 return ((*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd, uio)); 37 } 38 39 /*ARGSUSED*/ 40 sywrite(dev, uio) 41 dev_t dev; 42 struct uio *uio; 43 { 44 45 if (u.u_ttyp == NULL) 46 return (ENXIO); 47 return ((*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd, uio)); 48 } 49 50 /*ARGSUSED*/ 51 syioctl(dev, cmd, addr, flag) 52 dev_t dev; 53 int cmd; 54 caddr_t addr; 55 int flag; 56 { 57 58 if (cmd == TIOCNOTTY) { 59 u.u_ttyp = 0; 60 u.u_ttyd = 0; 61 u.u_procp->p_pgrp = 0; 62 return (0); 63 } 64 if (u.u_ttyp == NULL) 65 return (ENXIO); 66 return ((*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag)); 67 } 68 69 syselect(dev, flag) 70 { 71 72 if (u.u_ttyp == NULL) { 73 u.u_error = ENXIO; 74 return (0); 75 } 76 return ((*cdevsw[major(u.u_ttyd)].d_select)(u.u_ttyd, flag)); 77 } 78