1 /* tty_tty.c 4.8 82/01/24 */ 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 16 /*ARGSUSED*/ 17 syopen(dev, flag) 18 { 19 20 if (u.u_ttyp == NULL) { 21 u.u_error = ENXIO; 22 return; 23 } 24 (*cdevsw[major(u.u_ttyd)].d_open)(u.u_ttyd, flag); 25 } 26 27 /*ARGSUSED*/ 28 syread(dev) 29 { 30 31 if (u.u_ttyp == NULL) { 32 u.u_error = ENXIO; 33 return; 34 } 35 (*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd); 36 } 37 38 /*ARGSUSED*/ 39 sywrite(dev) 40 { 41 42 if (u.u_ttyp == NULL) { 43 u.u_error = ENXIO; 44 return; 45 } 46 (*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd); 47 } 48 49 /*ARGSUSED*/ 50 syioctl(dev, cmd, addr, flag) 51 dev_t dev; 52 int cmd; 53 caddr_t addr; 54 int flag; 55 { 56 57 if (cmd == TIOCNOTTY) { 58 u.u_ttyp = 0; 59 u.u_ttyd = 0; 60 u.u_procp->p_pgrp = 0; 61 return; 62 } 63 if (u.u_ttyp == NULL) { 64 u.u_error = ENXIO; 65 return; 66 } 67 (*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag); 68 } 69 70 syselect(dev, flag) 71 { 72 73 if (u.u_ttyp == NULL) { 74 u.u_error = ENXIO; 75 return (0); 76 } 77 return ((*cdevsw[major(u.u_ttyd)].d_select)(dev, flag)); 78 } 79