Module Name: src Committed By: pgoyette Date: Fri Mar 16 08:10:27 UTC 2018
Modified Files: src/sys/compat/common [pgoyette-compat]: compat_60_mod.c compat_70_mod.c compat_mod.c compat_mod.h files.common kern_sa_60.c src/sys/compat/net [pgoyette-compat]: route_70.h src/sys/kern [pgoyette-compat]: kern_cpu.c src/sys/modules/compat_60 [pgoyette-compat]: Makefile src/sys/sys [pgoyette-compat]: cpu.h Log Message: Move closer to getting a compat_60 module - still needs more work To generate a diff of this commit: cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/sys/compat/common/compat_60_mod.c cvs rdiff -u -r1.1.2.3 -r1.1.2.4 src/sys/compat/common/compat_70_mod.c cvs rdiff -u -r1.24.14.12 -r1.24.14.13 src/sys/compat/common/compat_mod.c cvs rdiff -u -r1.1.42.1 -r1.1.42.2 src/sys/compat/common/compat_mod.h \ src/sys/compat/common/kern_sa_60.c cvs rdiff -u -r1.1.2.10 -r1.1.2.11 src/sys/compat/common/files.common cvs rdiff -u -r1.1.2.1 -r1.1.2.2 src/sys/compat/net/route_70.h cvs rdiff -u -r1.71.16.1 -r1.71.16.2 src/sys/kern/kern_cpu.c cvs rdiff -u -r1.1.2.2 -r1.1.2.3 src/sys/modules/compat_60/Makefile cvs rdiff -u -r1.42 -r1.42.2.1 src/sys/sys/cpu.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/compat_60_mod.c diff -u src/sys/compat/common/compat_60_mod.c:1.1.2.2 src/sys/compat/common/compat_60_mod.c:1.1.2.3 --- src/sys/compat/common/compat_60_mod.c:1.1.2.2 Fri Mar 16 01:16:29 2018 +++ src/sys/compat/common/compat_60_mod.c Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_60_mod.c,v 1.1.2.2 2018/03/16 01:16:29 pgoyette Exp $ */ +/* $NetBSD: compat_60_mod.c,v 1.1.2.3 2018/03/16 08:10:26 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat_60_mod.c,v 1.1.2.2 2018/03/16 01:16:29 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_60_mod.c,v 1.1.2.3 2018/03/16 08:10:26 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -44,18 +44,20 @@ __KERNEL_RCSID(0, "$NetBSD: compat_60_mo #include <sys/systm.h> #include <sys/module.h> #include <sys/sysctl.h> - -#include <net/if.h> -#include <net/route.h> +#include <sys/syscall.h> +#include <sys/syscallvar.h> +#include <sys/syscallargs.h> #include <compat/common/compat_util.h> #include <compat/common/compat_mod.h> static const struct syscall_package compat_60_syscalls[] = { - { SYS_compat_60_lwp_park, 0, (sy_call_t *)compat_60_sys__lwp_park }, + { SYS_compat_60__lwp_park, 0, (sy_call_t *)compat_60__lwp_park }, { NULL, 0, NULL } }; +#ifdef _MODULE + #define REQUIRED_60 "compat_70" /* XXX No compat_80 yet */ MODULE(MODULE_CLASS_EXEC, compat_60, REQUIRED_60); @@ -64,6 +66,11 @@ int (*orig_compat_6_cpu_ucode)(struct co int (*orig_compat6_cpu_ucode_apply)(const struct compat6_cpu_ucode *); #endif +static const struct syscall_package compat__60_syscalls[] = { + { SYS_compat_60__lwp_park, 0, (sy_call_t *)compat_60_sys__lwp_park }, + NULL, 0, NULL } +}; + static int compat_60_modcmd(modcmd_t cmd, void *arg) { @@ -71,29 +78,38 @@ compat_60_modcmd(modcmd_t cmd, void *arg switch (cmd) { case MODULE_CMD_INIT: - error = syscall_establish(NULL, compat_60_syscalls); - if (error != 0) - return error; -#ifdef CPU_UCODE - orig_get_version = vec_compat6_cpu_ucode_get_version; - *vec_compat6_cpu_ucode_get_version = - compat6_cpu_ucode_get_version; - orig_apply = vec_compat6_cpu_ucode_apply; - *vec_compat6_cpu_ucode_apply = compat6_cpu_ucode_apply; -#endif - return 0; - + return compat_60_init(); case MODULE_CMD_FINI: - *vec_compat6_cpu_ucode_get_version = orig_get_version; - *vec_compat6_cpu_ucode_apply = orig_apply; - error = syscall_disestablish(NULL, compat_60_syscalls); - if (error != 0) - return error; - return 0; - + return compat_60_init(); default: return ENOTTY; } } +#endif /* _MODULE */ +int compat_60_init(void) +{ + int error; + error = syscall_establish(NULL, compat_60_syscalls); + if (error != 0) + return error; +#ifdef CPU_UCODE + orig_get_version = vec_compat6_cpu_ucode_get_version; + *vec_compat6_cpu_ucode_get_version = compat6_cpu_ucode_get_version; + orig_apply = vec_compat6_cpu_ucode_apply; + *vec_compat6_cpu_ucode_apply = compat6_cpu_ucode_apply; +#endif + return 0; +} + +int compat_60_fini(void) +{ + int error; + + *vec_compat6_cpu_ucode_get_version = orig_get_version; + *vec_compat6_cpu_ucode_apply = orig_apply; + error = syscall_disestablish(NULL, compat_60_syscalls); + + return error; +} Index: src/sys/compat/common/compat_70_mod.c diff -u src/sys/compat/common/compat_70_mod.c:1.1.2.3 src/sys/compat/common/compat_70_mod.c:1.1.2.4 --- src/sys/compat/common/compat_70_mod.c:1.1.2.3 Fri Mar 16 01:16:29 2018 +++ src/sys/compat/common/compat_70_mod.c Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_70_mod.c,v 1.1.2.3 2018/03/16 01:16:29 pgoyette Exp $ */ +/* $NetBSD: compat_70_mod.c,v 1.1.2.4 2018/03/16 08:10:26 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat_70_mod.c,v 1.1.2.3 2018/03/16 01:16:29 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_70_mod.c,v 1.1.2.4 2018/03/16 08:10:26 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -54,8 +54,6 @@ __KERNEL_RCSID(0, "$NetBSD: compat_70_mo #include <compat/net/route.h> #include <compat/net/route_70.h> -MODULE(MODULE_CLASS_EXEC, compat_70, NULL); /* XXX No compat_80 yet */ - void compat_70_init(void) { @@ -70,6 +68,10 @@ void compat_70_fini(void) vec_ocreds_valid = false; } +#ifdef _MODULE + +MODULE(MODULE_CLASS_EXEC, compat_70, NULL); /* XXX No compat_80 yet */ + static int compat_70_modcmd(modcmd_t cmd, void *arg) { @@ -87,3 +89,4 @@ compat_70_modcmd(modcmd_t cmd, void *arg return ENOTTY; } } +#endif /* _MODULE */ Index: src/sys/compat/common/compat_mod.c diff -u src/sys/compat/common/compat_mod.c:1.24.14.12 src/sys/compat/common/compat_mod.c:1.24.14.13 --- src/sys/compat/common/compat_mod.c:1.24.14.12 Fri Mar 16 01:16:29 2018 +++ src/sys/compat/common/compat_mod.c Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_mod.c,v 1.24.14.12 2018/03/16 01:16:29 pgoyette Exp $ */ +/* $NetBSD: compat_mod.c,v 1.24.14.13 2018/03/16 08:10:26 pgoyette Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -34,7 +34,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: compat_mod.c,v 1.24.14.12 2018/03/16 01:16:29 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: compat_mod.c,v 1.24.14.13 2018/03/16 08:10:26 pgoyette Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -79,6 +79,7 @@ void if_50_fini(void); #endif #ifdef COMPAT_70 +#include <net/route.h> #include <compat/net/route.h> #include <compat/net/route_70.h> #endif @@ -285,7 +286,8 @@ compat_modcmd(modcmd_t cmd, void *arg) if_50_init(); #endif #ifdef COMPAT_60 - compat_60_init(); + if ((error = compat_60_init()) != 0) + return error; #endif #ifdef COMPAT_70 compat_70_init(); @@ -297,7 +299,8 @@ compat_modcmd(modcmd_t cmd, void *arg) compat_70_fini(); #endif #ifdef COMPAT_60 - compat_60_fini(); + if ((error = compat_60_fini()) != 0) + return error; #endif #ifdef COMPAT_10 vfs_syscalls_10_fini(); Index: src/sys/compat/common/compat_mod.h diff -u src/sys/compat/common/compat_mod.h:1.1.42.1 src/sys/compat/common/compat_mod.h:1.1.42.2 --- src/sys/compat/common/compat_mod.h:1.1.42.1 Fri Mar 16 01:16:29 2018 +++ src/sys/compat/common/compat_mod.h Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: compat_mod.h,v 1.1.42.1 2018/03/16 01:16:29 pgoyette Exp $ */ +/* $NetBSD: compat_mod.h,v 1.1.42.2 2018/03/16 08:10:26 pgoyette Exp $ */ /*- * Copyright (c) 2013 The NetBSD Foundation, Inc. @@ -41,7 +41,7 @@ void compat_sysctl_vfs(struct sysctllog void compat_70_init(void); void compat_70_fini(void); -void compat_60_init(void); -void compat_60_fini(void); +int compat_60_init(void); +int compat_60_fini(void); #endif /* !_COMPAT_MOD_H_ */ Index: src/sys/compat/common/kern_sa_60.c diff -u src/sys/compat/common/kern_sa_60.c:1.1.42.1 src/sys/compat/common/kern_sa_60.c:1.1.42.2 --- src/sys/compat/common/kern_sa_60.c:1.1.42.1 Fri Mar 16 01:16:29 2018 +++ src/sys/compat/common/kern_sa_60.c Fri Mar 16 08:10:26 2018 @@ -29,7 +29,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: kern_sa_60.c,v 1.1.42.1 2018/03/16 01:16:29 pgoyette Exp $"); +__KERNEL_RCSID(1, "$NetBSD: kern_sa_60.c,v 1.1.42.2 2018/03/16 08:10:26 pgoyette Exp $"); #include <sys/systm.h> #include <sys/syscall.h> @@ -82,23 +82,3 @@ compat_60_sys_sa_preempt(lwp_t *l, { return sys_nosys(l, uap, retval); } - -static const struct syscall_package compat__60_syscalls[] = { - { SYS_compat_60_sa_register, 0, - (sy_call_t *)compat_60_sys_sa_register }, - { SYS_compat_60_sa_stacks, 0, (sy_call_t *)compat_60_sys_sa_stacks }, - { SYS_compat_60_sa_enable, 0, (sy_call_t *)compat_60_sys_sa_enable }, - { SYS_compat_60_sa_setconcurrency, 0, - (sy_call_t *)compat_60_sys_sa_setconcurrency }, - { SYS_compat_60_sa_yield, 0, (sy_call_t *)compat_60_sys_sa_yield }, - { SYS_compat_60_sa_preempt, 0, (sy_call_t *)compat_60_sys_sa_preempt }, - { SYS_compat_60_lwp_park, 0, (sy_call_t *) - - -62 COMPAT_43 MODULAR compat \ - { int|sys||fstat(int fd, struct stat43 *sb); } fstat43 - - { SYS_compat_43_fstat43, 0, (sy_call_t *)compat_43_sys_fstat }, - - - Index: src/sys/compat/common/files.common diff -u src/sys/compat/common/files.common:1.1.2.10 src/sys/compat/common/files.common:1.1.2.11 --- src/sys/compat/common/files.common:1.1.2.10 Thu Mar 15 11:17:54 2018 +++ src/sys/compat/common/files.common Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -# $NetBSD: files.common,v 1.1.2.10 2018/03/15 11:17:54 pgoyette Exp $ +# $NetBSD: files.common,v 1.1.2.11 2018/03/16 08:10:26 pgoyette Exp $ # # Generic files, used by all compat options. @@ -66,11 +66,13 @@ file compat/common/uipc_syscalls_50.c co file compat/common/uvm_50.c compat_50 # Compatibility code for NetBSD 6.0 +file compat/common/compat_60_mod.c compat_60 file compat/common/kern_sa_60.c compat_60 file compat/common/tty_60.c compat_60 file compat/common/kern_time_60.c compat_60 # Compatibility code for NetBSD 7.0 +file compat/common/compat_70_mod.c compat_70 file compat/common/rtsock_70.c compat_70 file compat/common/uipc_usrreq_70.c compat_70 Index: src/sys/compat/net/route_70.h diff -u src/sys/compat/net/route_70.h:1.1.2.1 src/sys/compat/net/route_70.h:1.1.2.2 --- src/sys/compat/net/route_70.h:1.1.2.1 Thu Mar 15 05:10:05 2018 +++ src/sys/compat/net/route_70.h Fri Mar 16 08:10:26 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: route_70.h,v 1.1.2.1 2018/03/15 05:10:05 pgoyette Exp $ */ +/* $NetBSD: route_70.h,v 1.1.2.2 2018/03/16 08:10:26 pgoyette Exp $ */ /*- * Copyright (c) 2018 The NetBSD Foundation, Inc. @@ -32,6 +32,8 @@ #ifndef _COMPAT_NET_ROUTE_70_H_ #define _COMPAT_NET_ROUTE_70_H_ +#include <net/route.h> + /* compat interfaces */ void rtsock_70_init(void); Index: src/sys/kern/kern_cpu.c diff -u src/sys/kern/kern_cpu.c:1.71.16.1 src/sys/kern/kern_cpu.c:1.71.16.2 --- src/sys/kern/kern_cpu.c:1.71.16.1 Fri Mar 16 01:16:29 2018 +++ src/sys/kern/kern_cpu.c Fri Mar 16 08:10:27 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_cpu.c,v 1.71.16.1 2018/03/16 01:16:29 pgoyette Exp $ */ +/* $NetBSD: kern_cpu.c,v 1.71.16.2 2018/03/16 08:10:27 pgoyette Exp $ */ /*- * Copyright (c) 2007, 2008, 2009, 2010, 2012 The NetBSD Foundation, Inc. @@ -56,7 +56,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.71.16.1 2018/03/16 01:16:29 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.71.16.2 2018/03/16 08:10:27 pgoyette Exp $"); #include "opt_cpu_ucode.h" #include "opt_compat_netbsd.h" @@ -131,6 +131,7 @@ kcpuset_t * kcpuset_running __read_most static char cpu_model[128]; +#ifdef CPU_UCODE /* * routine vectors for compat code */ @@ -143,6 +144,7 @@ int (*vec_compat6_cpu_ucode_get_version) stub_compat_6_cpu_ucode; int (*vec_compat6_cpu_ucode_apply(const struct compat6_cpu_ucode *) = stub_compat_6_cpu_ucode; +#endif /* * mi_cpu_init: early initialisation of MI CPU related structures. Index: src/sys/modules/compat_60/Makefile diff -u src/sys/modules/compat_60/Makefile:1.1.2.2 src/sys/modules/compat_60/Makefile:1.1.2.3 --- src/sys/modules/compat_60/Makefile:1.1.2.2 Fri Mar 16 01:33:24 2018 +++ src/sys/modules/compat_60/Makefile Fri Mar 16 08:10:27 2018 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.1.2.2 2018/03/16 01:33:24 pgoyette Exp $ +# $NetBSD: Makefile,v 1.1.2.3 2018/03/16 08:10:27 pgoyette Exp $ .include "../Makefile.inc" @@ -13,6 +13,6 @@ CPPFLAGS+= -D COMPAT_60 -DCOMPAT_70 -DCO # # SRCS+= CPU_UCODE -SRCS+= kern_sa_60.c tty_60.c kern_time_60.c +SRCS+= compat_60_mod.c kern_sa_60.c tty_60.c kern_time_60.c .include <bsd.kmodule.mk> Index: src/sys/sys/cpu.h diff -u src/sys/sys/cpu.h:1.42 src/sys/sys/cpu.h:1.42.2.1 --- src/sys/sys/cpu.h:1.42 Sat Dec 16 00:37:51 2017 +++ src/sys/sys/cpu.h Fri Mar 16 08:10:27 2018 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.42 2017/12/16 00:37:51 mrg Exp $ */ +/* $NetBSD: cpu.h,v 1.42.2.1 2018/03/16 08:10:27 pgoyette Exp $ */ /*- * Copyright (c) 2007 YAMAMOTO Takashi, @@ -129,10 +129,16 @@ struct cpu_ucode_softc { int cpu_ucode_get_version(struct cpu_ucode_version *); int cpu_ucode_apply(const struct cpu_ucode *); + +int (*vec_compat6_cpu_ucode_get_version)(struct compat6_cpu_ucode *); +int (*vec_compat6_cpu_ucode_apply(const struct compat6_cpu_ucode *); + stub_compat_6_cpu_ucode; + #ifdef COMPAT_60 int compat6_cpu_ucode_get_version(struct compat6_cpu_ucode *); int compat6_cpu_ucode_apply(const struct compat6_cpu_ucode *); #endif + int cpu_ucode_load(struct cpu_ucode_softc *, const char *); int cpu_ucode_md_open(firmware_handle_t *, int, const char *); #endif