projects
/
unix-history
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
tags
|
clone url
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bug fixes from elz and utcsrgv!thomson
[unix-history]
/
usr
/
src
/
sys
/
kern
/
tty_tty.c
diff --git
a/usr/src/sys/kern/tty_tty.c
b/usr/src/sys/kern/tty_tty.c
index
4bbee83
..
57ed5b8
100644
(file)
--- a/
usr/src/sys/kern/tty_tty.c
+++ b/
usr/src/sys/kern/tty_tty.c
@@
-1,7
+1,9
@@
-/* tty_tty.c
3.1 %H%
*/
+/* tty_tty.c
4.9 82/03/31
*/
/*
/*
- * indirect driver for controlling tty.
+ * Indirect driver for controlling tty.
+ *
+ * THIS IS GARBAGE: MUST SOON BE DONE WITH struct inode * IN PROC TABLE.
*/
#include "../h/param.h"
#include "../h/systm.h"
*/
#include "../h/param.h"
#include "../h/systm.h"
@@
-15,7
+17,7
@@
syopen(dev, flag)
{
syopen(dev, flag)
{
- if(u.u_ttyp == NULL) {
+ if
(u.u_ttyp == NULL) {
u.u_error = ENXIO;
return;
}
u.u_error = ENXIO;
return;
}
@@
-26,6
+28,10
@@
syopen(dev, flag)
syread(dev)
{
syread(dev)
{
+ if (u.u_ttyp == NULL) {
+ u.u_error = ENXIO;
+ return;
+ }
(*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd);
}
(*cdevsw[major(u.u_ttyd)].d_read)(u.u_ttyd);
}
@@
-33,13
+39,40
@@
syread(dev)
sywrite(dev)
{
sywrite(dev)
{
+ if (u.u_ttyp == NULL) {
+ u.u_error = ENXIO;
+ return;
+ }
(*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd);
}
/*ARGSUSED*/
syioctl(dev, cmd, addr, flag)
(*cdevsw[major(u.u_ttyd)].d_write)(u.u_ttyd);
}
/*ARGSUSED*/
syioctl(dev, cmd, addr, flag)
-caddr_t addr;
+ dev_t dev;
+ int cmd;
+ caddr_t addr;
+ int flag;
{
{
+ if (cmd == TIOCNOTTY) {
+ u.u_ttyp = 0;
+ u.u_ttyd = 0;
+ u.u_procp->p_pgrp = 0;
+ return;
+ }
+ if (u.u_ttyp == NULL) {
+ u.u_error = ENXIO;
+ return;
+ }
(*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag);
}
(*cdevsw[major(u.u_ttyd)].d_ioctl)(u.u_ttyd, cmd, addr, flag);
}
+
+syselect(dev, flag)
+{
+
+ if (u.u_ttyp == NULL) {
+ u.u_error = ENXIO;
+ return (0);
+ }
+ return ((*cdevsw[major(u.u_ttyd)].d_select)(u.u_ttyd, flag));
+}