Module Name: src
Committed By: pgoyette
Date: Sat Mar 24 23:52:19 UTC 2018
Modified Files:
src/sys/compat/common [pgoyette-compat]: Makefile.sysio compat_50_mod.c
src/sys/dev/wscons [pgoyette-compat]: files.wscons wsevent.c
src/sys/kern [pgoyette-compat]: compat_stub.c
src/sys/modules/compat_50 [pgoyette-compat]: Makefile
src/sys/sys [pgoyette-compat]: compat_stub.h
Added Files:
src/sys/dev/wscons [pgoyette-compat]: wsevent_50.c wsevent_50.h
Log Message:
Move the compat_50-specific code out of wscons/wsevent.c into its own
source file, which is now part of the compat_50 module.
To generate a diff of this commit:
cvs rdiff -u -r1.7.18.11 -r1.7.18.12 src/sys/compat/common/Makefile.sysio
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/compat/common/compat_50_mod.c
cvs rdiff -u -r1.55 -r1.55.2.1 src/sys/dev/wscons/files.wscons
cvs rdiff -u -r1.37 -r1.37.2.1 src/sys/dev/wscons/wsevent.c
cvs rdiff -u -r0 -r1.1.2.1 src/sys/dev/wscons/wsevent_50.c \
src/sys/dev/wscons/wsevent_50.h
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/kern/compat_stub.c
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/modules/compat_50/Makefile
cvs rdiff -u -r1.1.2.6 -r1.1.2.7 src/sys/sys/compat_stub.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/Makefile.sysio
diff -u src/sys/compat/common/Makefile.sysio:1.7.18.11 src/sys/compat/common/Makefile.sysio:1.7.18.12
--- src/sys/compat/common/Makefile.sysio:1.7.18.11 Sat Mar 24 08:24:40 2018
+++ src/sys/compat/common/Makefile.sysio Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.sysio,v 1.7.18.11 2018/03/24 08:24:40 pgoyette Exp $
+# $NetBSD: Makefile.sysio,v 1.7.18.12 2018/03/24 23:52:19 pgoyette Exp $
# Sources for syscall and ioctl compatibility across the versions.
@@ -56,3 +56,7 @@ SRCS+= rf_compat80.c
# Puffs compatability code for NetBSD 5.0
.PATH: ${S}/fs/puffs
SRCS+= puffs_compat.c
+
+# wsevent compatability code for NetBSD 5.0
+.PATH: ${S}/dev/wscons
+SRCS+= wsevent_50.c
Index: src/sys/compat/common/compat_50_mod.c
diff -u src/sys/compat/common/compat_50_mod.c:1.1.2.6 src/sys/compat/common/compat_50_mod.c:1.1.2.7
--- src/sys/compat/common/compat_50_mod.c:1.1.2.6 Sat Mar 24 08:11:12 2018
+++ src/sys/compat/common/compat_50_mod.c Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_50_mod.c,v 1.1.2.6 2018/03/24 08:11:12 pgoyette Exp $ */
+/* $NetBSD: compat_50_mod.c,v 1.1.2.7 2018/03/24 23:52:19 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: compat_50_mod.c,v 1.1.2.6 2018/03/24 08:11:12 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: compat_50_mod.c,v 1.1.2.7 2018/03/24 23:52:19 pgoyette Exp $");
#include <sys/systm.h>
#include <sys/module.h>
@@ -53,6 +53,8 @@ __KERNEL_RCSID(0, "$NetBSD: compat_50_mo
#include <dev/raidframe/rf_compat50_mod.h>
+#include <dev/wscons/wsevent_50.h>
+
#include <fs/puffs/puffs_sys.h>
int
@@ -83,6 +85,7 @@ compat_50_init(void)
cryptodev_50_init();
raidframe_50_init();
puffs_50_init();
+ wsevent_50_init();
return error;
@@ -103,6 +106,7 @@ compat_50_fini(void)
{
int error = 0;
+ wsevent_50_fini();
puffs_50_fini();
raidframe_50_fini();
cryptodev_50_fini();
@@ -144,6 +148,7 @@ compat_50_fini(void)
cryptodev_50_init();
raidframe_50_init();
puffs_50_init();
+ wsevent_50_init();
return error;
}
Index: src/sys/dev/wscons/files.wscons
diff -u src/sys/dev/wscons/files.wscons:1.55 src/sys/dev/wscons/files.wscons:1.55.2.1
--- src/sys/dev/wscons/files.wscons:1.55 Mon Dec 18 18:59:32 2017
+++ src/sys/dev/wscons/files.wscons Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-# $NetBSD: files.wscons,v 1.55 2017/12/18 18:59:32 jmcneill Exp $
+# $NetBSD: files.wscons,v 1.55.2.1 2018/03/24 23:52:19 pgoyette Exp $
#
# "Workstation Console" glue; attaches frame buffer to emulator & keyboard,
@@ -58,6 +58,7 @@ file dev/wscons/wsemul_vt100_subr.c wsdi
file dev/wscons/wsemul_vt100_chars.c wsdisplay & wsemul_vt100
file dev/wscons/wsemul_vt100_keys.c wsdisplay & wsemul_vt100
file dev/wscons/wsevent.c wsdisplay | wskbd | wsmouse | wsmux
+file dev/wscons/wsevent_50.c compat_50
file dev/wscons/wskbd.c wskbd needs-flag
file dev/wscons/wskbdutil.c wskbd needs-flag
file dev/wscons/wsmouse.c wsmouse needs-flag
Index: src/sys/dev/wscons/wsevent.c
diff -u src/sys/dev/wscons/wsevent.c:1.37 src/sys/dev/wscons/wsevent.c:1.37.2.1
--- src/sys/dev/wscons/wsevent.c:1.37 Wed Oct 25 08:12:39 2017
+++ src/sys/dev/wscons/wsevent.c Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: wsevent.c,v 1.37 2017/10/25 08:12:39 maya Exp $ */
+/* $NetBSD: wsevent.c,v 1.37.2.1 2018/03/24 23:52:19 pgoyette Exp $ */
/*-
* Copyright (c) 2006, 2008 The NetBSD Foundation, Inc.
@@ -104,12 +104,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsevent.c,v 1.37 2017/10/25 08:12:39 maya Exp $");
-
-#ifdef _KERNEL_OPT
-#include "opt_compat_netbsd.h"
-#include "opt_modular.h"
-#endif
+__KERNEL_RCSID(0, "$NetBSD: wsevent.c,v 1.37.2.1 2018/03/24 23:52:19 pgoyette Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -120,6 +115,7 @@ __KERNEL_RCSID(0, "$NetBSD: wsevent.c,v
#include <sys/vnode.h>
#include <sys/select.h>
#include <sys/poll.h>
+#include <sys/compat_stub.h>
#include <dev/wscons/wsconsio.h>
#include <dev/wscons/wseventvar.h>
@@ -188,47 +184,18 @@ wsevent_fini(struct wseventvar *ev)
softint_disestablish(ev->sih);
}
-#if defined(COMPAT_50) || defined(MODULAR)
-static int
-wsevent_copyout_events50(const struct wscons_event *events, int cnt,
- struct uio *uio)
-{
- int i;
-
- for (i = 0; i < cnt; i++) {
- const struct wscons_event *ev = &events[i];
- struct owscons_event ev50;
- int error;
-
- ev50.type = ev->type;
- ev50.value = ev->value;
- timespec_to_timespec50(&ev->time, &ev50.time);
-
- error = uiomove(&ev50, sizeof(ev50), uio);
- if (error) {
- return error;
- }
- }
- return 0;
-}
-#else /* defined(COMPAT_50) || defined(MODULAR) */
-static int
-wsevent_copyout_events50(const struct wscons_event *events, int cnt,
- struct uio *uio)
-{
-
- return EINVAL;
-}
-#endif /* defined(COMPAT_50) || defined(MODULAR) */
-
static int
wsevent_copyout_events(const struct wscons_event *events, int cnt,
struct uio *uio, int ver)
{
+ int error;
switch (ver) {
case 0:
- return wsevent_copyout_events50(events, cnt, uio);
+ error = (*wsevent_50_copyout_events)(events, cnt, uio);
+ if (error == ENOSYS)
+ error = EINVAL;
+ return error;
case WSEVENT_VERSION:
return uiomove(__UNCONST(events), cnt * sizeof(*events), uio);
default:
Index: src/sys/kern/compat_stub.c
diff -u src/sys/kern/compat_stub.c:1.1.2.6 src/sys/kern/compat_stub.c:1.1.2.7
--- src/sys/kern/compat_stub.c:1.1.2.6 Sat Mar 24 08:24:40 2018
+++ src/sys/kern/compat_stub.c Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.c,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $ */
+/* $NetBSD: compat_stub.c,v 1.1.2.7 2018/03/24 23:52:19 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -87,3 +87,9 @@ int (*puffs50_compat_outgoing)(struct pu
ssize_t *) = (void *)enosys;
void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *) =
(void *)voidop;
+
+/*
+ * wsevents compatability
+ */
+int (*wsevent_50_copyout_events)(const struct wscons_event *, int,
+ struct uio *) = (void *)enosys;
Index: src/sys/modules/compat_50/Makefile
diff -u src/sys/modules/compat_50/Makefile:1.1.2.6 src/sys/modules/compat_50/Makefile:1.1.2.7
--- src/sys/modules/compat_50/Makefile:1.1.2.6 Sat Mar 24 08:24:40 2018
+++ src/sys/modules/compat_50/Makefile Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $
+# $NetBSD: Makefile,v 1.1.2.7 2018/03/24 23:52:19 pgoyette Exp $
.include "../Makefile.inc"
@@ -26,4 +26,8 @@ SRCS+= rf_compat50.c
SRCS+= puffs_compat.c
+.PATH: ${S}/dev/wscons
+
+SRCS+= wsevent_50.c
+
.include <bsd.kmodule.mk>
Index: src/sys/sys/compat_stub.h
diff -u src/sys/sys/compat_stub.h:1.1.2.6 src/sys/sys/compat_stub.h:1.1.2.7
--- src/sys/sys/compat_stub.h:1.1.2.6 Sat Mar 24 08:24:40 2018
+++ src/sys/sys/compat_stub.h Sat Mar 24 23:52:19 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: compat_stub.h,v 1.1.2.6 2018/03/24 08:24:40 pgoyette Exp $ */
+/* $NetBSD: compat_stub.h,v 1.1.2.7 2018/03/24 23:52:19 pgoyette Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -90,4 +90,14 @@ extern int (*puffs50_compat_outgoing)(st
ssize_t *);
extern void (*puffs50_compat_incoming)(struct puffs_req *, struct puffs_req *);
+/*
+ * wsevents compatability
+ */
+
+struct wscons_event;
+struct uio;
+
+extern int (*wsevent_50_copyout_events)(const struct wscons_event *, int,
+ struct uio *);
+
#endif /* _SYS_COMPAT_STUB_H */
Added files:
Index: src/sys/dev/wscons/wsevent_50.c
diff -u /dev/null src/sys/dev/wscons/wsevent_50.c:1.1.2.1
--- /dev/null Sat Mar 24 23:52:19 2018
+++ src/sys/dev/wscons/wsevent_50.c Sat Mar 24 23:52:19 2018
@@ -0,0 +1,159 @@
+/* $NetBSD: wsevent_50.c,v 1.1.2.1 2018/03/24 23:52:19 pgoyette Exp $ */
+
+/*-
+ * Copyright (c) 2006, 2008 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Julio M. Merino Vidal.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1996, 1997 Christopher G. Demetriou. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by Christopher G. Demetriou
+ * for the NetBSD Project.
+ * 4. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This software was developed by the Computer Systems Engineering group
+ * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and
+ * contributed to Berkeley.
+ *
+ * All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Lawrence Berkeley Laboratory.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)event.c 8.1 (Berkeley) 6/11/93
+ */
+
+/*
+ * Internal "wscons_event" queue interface for the keyboard and mouse drivers.
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: wsevent_50.c,v 1.1.2.1 2018/03/24 23:52:19 pgoyette Exp $");
+
+#include <sys/param.h>
+#include <sys/kernel.h>
+#include <sys/fcntl.h>
+#include <sys/kmem.h>
+#include <sys/proc.h>
+#include <sys/systm.h>
+#include <sys/vnode.h>
+#include <sys/select.h>
+#include <sys/poll.h>
+#include <sys/compat_stub.h>
+
+#include <dev/wscons/wsconsio.h>
+#include <dev/wscons/wseventvar.h>
+#include <dev/wscons/wsevent_50.h>
+
+static int
+wsevent_copyout_events50(const struct wscons_event *events, int cnt,
+ struct uio *uio)
+{
+ int i;
+
+ for (i = 0; i < cnt; i++) {
+ const struct wscons_event *ev = &events[i];
+ struct owscons_event ev50;
+ int error;
+
+ ev50.type = ev->type;
+ ev50.value = ev->value;
+ timespec_to_timespec50(&ev->time, &ev50.time);
+
+ error = uiomove(&ev50, sizeof(ev50), uio);
+ if (error) {
+ return error;
+ }
+ }
+ return 0;
+}
+
+void
+wsevent_50_init(void)
+{
+
+ wsevent_50_copyout_events = wsevent_copyout_events50;
+}
+
+void
+wsevent_50_fini(void)
+{
+
+ wsevent_50_copyout_events = (void *)enosys;
+}
Index: src/sys/dev/wscons/wsevent_50.h
diff -u /dev/null src/sys/dev/wscons/wsevent_50.h:1.1.2.1
--- /dev/null Sat Mar 24 23:52:19 2018
+++ src/sys/dev/wscons/wsevent_50.h Sat Mar 24 23:52:19 2018
@@ -0,0 +1,38 @@
+/* $NetBSD: wsevent_50.h,v 1.1.2.1 2018/03/24 23:52:19 pgoyette Exp $ */
+
+/*-
+ * Copyright (c) 2018 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Paul Goyette
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _DEV_WSCONS_WSEVENT_50_H
+#define _DEV_WSCONS_WSEVENT_50_H
+
+void wsevent_50_init(void);
+void wsevent_50_fini(void);
+
+#endif /* _DEV_WSCONS_WSEVENT_50_H */