Module Name:    src
Committed By:   pgoyette
Date:           Tue Sep  4 02:21:59 UTC 2018

Modified Files:
        src/sys/compat/common [pgoyette-compat]: tty_60.c
        src/sys/compat/sys [pgoyette-compat]: ttycom.h
        src/sys/kern [pgoyette-compat]: tty.c tty_ptm.c
        src/sys/sys [pgoyette-compat]: tty.h

Log Message:
Separate COMPAT_BSDPTY stuff from tty COMPAT_60 stuff.  Enables
building of COMPAT_60 module whether or not COMPAT_BSDPTY is
defined in the kernel.


To generate a diff of this commit:
cvs rdiff -u -r1.4.16.3 -r1.4.16.4 src/sys/compat/common/tty_60.c
cvs rdiff -u -r1.2 -r1.2.40.1 src/sys/compat/sys/ttycom.h
cvs rdiff -u -r1.275.2.2 -r1.275.2.3 src/sys/kern/tty.c
cvs rdiff -u -r1.37 -r1.37.16.1 src/sys/kern/tty_ptm.c
cvs rdiff -u -r1.94.2.1 -r1.94.2.2 src/sys/sys/tty.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/compat/common/tty_60.c
diff -u src/sys/compat/common/tty_60.c:1.4.16.3 src/sys/compat/common/tty_60.c:1.4.16.4
--- src/sys/compat/common/tty_60.c:1.4.16.3	Sun Mar 18 23:34:25 2018
+++ src/sys/compat/common/tty_60.c	Tue Sep  4 02:21:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty_60.c,v 1.4.16.3 2018/03/18 23:34:25 pgoyette Exp $	*/
+/*	$NetBSD: tty_60.c,v 1.4.16.4 2018/09/04 02:21:58 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty_60.c,v 1.4.16.3 2018/03/18 23:34:25 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty_60.c,v 1.4.16.4 2018/09/04 02:21:58 pgoyette Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -92,14 +92,14 @@ compat_60_ptmget_ioctl(dev_t dev, u_long
  * COMPAT_60 versions of ttioctl and ptmioctl.
  */
 int
-compat_60_ttioctl(struct tty *tp, u_long cmd, void *data, int flag,
+compat_60_ttioctl(dev_t dev, u_long cmd, void *data, int flag,
 	struct lwp *l)
 {
 
 	switch (cmd) {
 	case COMPAT_60_TIOCPTMGET:
 	case COMPAT_60_TIOCPTSNAME:
-		return compat_60_ptmget_ioctl(tp->t_dev, cmd, data, flag, l);
+		return compat_60_ptmget_ioctl(dev, cmd, data, flag, l);
 	default:
 		return EPASSTHROUGH;
 	}
@@ -122,12 +122,12 @@ kern_tty_60_init(void)
 {
 
 	vec_compat_ttioctl_60 = compat_60_ttioctl;
-/*	vec_compat_ptmioctl_60 = compat_60_ptmioctl;	XXX NOT-YET */
+	vec_compat_ptmioctl_60 = compat_60_ptmioctl;
 }
 
 void
 kern_tty_60_fini(void)
 {
 	vec_compat_ttioctl_60 = NULL;
-/*	vec_compat_ptmioctl_60 = NULL;			XXX NOT-YET */
+	vec_compat_ptmioctl_60 = stub_compat_ptmioctl_60;
 }

Index: src/sys/compat/sys/ttycom.h
diff -u src/sys/compat/sys/ttycom.h:1.2 src/sys/compat/sys/ttycom.h:1.2.40.1
--- src/sys/compat/sys/ttycom.h:1.2	Fri Oct 19 17:16:55 2012
+++ src/sys/compat/sys/ttycom.h	Tue Sep  4 02:21:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: ttycom.h,v 1.2 2012/10/19 17:16:55 apb Exp $	*/
+/*	$NetBSD: ttycom.h,v 1.2.40.1 2018/09/04 02:21:58 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2012 The NetBSD Foundation, Inc.
@@ -57,7 +57,7 @@ struct compat_60_ptmget {
 #define COMPAT_60_TIOCPTSNAME 	 _IOR('t', 72, struct compat_60_ptmget)
 
 #ifdef _KERNEL
-int compat_60_ttioctl(struct tty *, u_long, void *, int, struct lwp *);
+int compat_60_ttioctl(dev_t, u_long, void *, int, struct lwp *);
 int compat_60_ptmioctl(dev_t, u_long, void *, int, struct lwp *);
 #endif
 

Index: src/sys/kern/tty.c
diff -u src/sys/kern/tty.c:1.275.2.2 src/sys/kern/tty.c:1.275.2.3
--- src/sys/kern/tty.c:1.275.2.2	Sat Apr  7 04:12:19 2018
+++ src/sys/kern/tty.c	Tue Sep  4 02:21:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty.c,v 1.275.2.2 2018/04/07 04:12:19 pgoyette Exp $	*/
+/*	$NetBSD: tty.c,v 1.275.2.3 2018/09/04 02:21:58 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -63,7 +63,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.275.2.2 2018/04/07 04:12:19 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty.c,v 1.275.2.3 2018/09/04 02:21:58 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -209,7 +209,11 @@ struct ttylist_head ttylist = TAILQ_HEAD
 int tty_count;
 kmutex_t tty_lock;
 krwlock_t ttcompat_lock;
-int (*vec_compat_ttioctl_60)(struct tty *, u_long, void *, int, struct lwp *);
+int (*vec_compat_ttioctl_60)(dev_t, u_long, void *, int, struct lwp *) = NULL;
+int (*vec_compat_ptmioctl_60)(dev_t, u_long, void *, int, struct lwp *) =
+    stub_compat_ptmioctl_60;
+
+struct ptm_pty *ptm = NULL;
 
 uint64_t tk_cancc;
 uint64_t tk_nin;
@@ -1420,7 +1424,7 @@ ttioctl(struct tty *tp, u_long cmd, void
 				return EPASSTHROUGH;
 			}
 		}
-		error = (*vec_compat_ttioctl_60)(tp, cmd, data, flag, l);
+		error = (*vec_compat_ttioctl_60)(tp->t_dev, cmd, data, flag, l);
 		rw_exit(&ttcompat_lock);
 		return error;
 	}
@@ -3064,3 +3068,11 @@ tty_try_xonxoff(struct tty *tp, unsigned
     }
     return EAGAIN;
 }
+
+int
+stub_compat_ptmioctl_60(dev_t dev, u_long cmd, void *data, int flag,
+    struct lwp *l)
+{
+
+	return EPASSTHROUGH;
+}

Index: src/sys/kern/tty_ptm.c
diff -u src/sys/kern/tty_ptm.c:1.37 src/sys/kern/tty_ptm.c:1.37.16.1
--- src/sys/kern/tty_ptm.c:1.37	Mon Aug 24 22:50:32 2015
+++ src/sys/kern/tty_ptm.c	Tue Sep  4 02:21:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty_ptm.c,v 1.37 2015/08/24 22:50:32 pooka Exp $	*/
+/*	$NetBSD: tty_ptm.c,v 1.37.16.1 2018/09/04 02:21:58 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 1.37 2015/08/24 22:50:32 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 1.37.16.1 2018/09/04 02:21:58 pgoyette Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd.h"
@@ -56,9 +56,7 @@ __KERNEL_RCSID(0, "$NetBSD: tty_ptm.c,v 
 
 #include <miscfs/specfs/specdev.h>
 
-#ifdef COMPAT_60
 #include <compat/sys/ttycom.h>
-#endif /* COMPAT_60 */
 
 #include "ioconf.h"
 
@@ -85,7 +83,6 @@ const struct cdevsw ptm_cdevsw = {
 };
 #else
 
-static struct ptm_pty *ptm;
 int pts_major, ptc_major;
 
 static dev_t pty_getfree(void);
@@ -405,11 +402,9 @@ ptmioctl(dev_t dev, u_long cmd, void *da
 			goto bad2;
 		return 0;
 	default:
-#ifdef COMPAT_60
-		error = compat_60_ptmioctl(dev, cmd, data, flag, l);
+		error = (*vec_compat_ptmioctl_60)(dev, cmd, data, flag, l);
 		if (error != EPASSTHROUGH)
 			return error;
-#endif /* COMPAT_60 */
 		DPRINTF(("ptmioctl EINVAL\n"));
 		return EINVAL;
 	}

Index: src/sys/sys/tty.h
diff -u src/sys/sys/tty.h:1.94.2.1 src/sys/sys/tty.h:1.94.2.2
--- src/sys/sys/tty.h:1.94.2.1	Sun Mar 18 12:07:00 2018
+++ src/sys/sys/tty.h	Tue Sep  4 02:21:58 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: tty.h,v 1.94.2.1 2018/03/18 12:07:00 pgoyette Exp $	*/
+/*	$NetBSD: tty.h,v 1.94.2.2 2018/09/04 02:21:58 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -313,8 +313,16 @@ bool	 ttypull(struct tty *);
 int	clalloc(struct clist *, int, int);
 void	clfree(struct clist *);
 
-extern int (*vec_compat_ttioctl_60)(struct tty *, u_long, void *, int,
+extern int (*vec_compat_ttioctl_60)(dev_t, u_long, void *, int,
     struct lwp *);
+extern int (*vec_compat_ptmioctl_60)(dev_t, u_long, void *, int,
+    struct lwp *);
+int stub_compat_ptmioctl_60(dev_t, u_long, void *, int, struct lwp *);
+
+/* overwritten to be non-null if ptm(4) is present */
+
+struct ptm_pty;
+extern struct ptm_pty *ptm;
 
 unsigned char tty_getctrlchar(struct tty *, unsigned /*which*/);
 void tty_setctrlchar(struct tty *, unsigned /*which*/, unsigned char /*val*/);

Reply via email to