Module Name: src Committed By: drochner Date: Wed Oct 17 20:19:55 UTC 2012
Modified Files: src/sys/arch/x86/include: cpu_ucode.h src/sys/arch/x86/x86: cpu_ucode.c cpu_ucode_amd.c cpu_ucode_intel.c src/sys/arch/xen/xen: xen_ucode.c src/sys/kern: kern_cpu.c src/sys/sys: cpu.h Log Message: put binary compatibility support for the old AMD-only CPU microcode update API inside COMPAT_60 To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/include/cpu_ucode.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/x86/x86/cpu_ucode.c cvs rdiff -u -r1.4 -r1.5 src/sys/arch/x86/x86/cpu_ucode_amd.c cvs rdiff -u -r1.1 -r1.2 src/sys/arch/x86/x86/cpu_ucode_intel.c cvs rdiff -u -r1.2 -r1.3 src/sys/arch/xen/xen/xen_ucode.c cvs rdiff -u -r1.58 -r1.59 src/sys/kern/kern_cpu.c cvs rdiff -u -r1.36 -r1.37 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/arch/x86/include/cpu_ucode.h diff -u src/sys/arch/x86/include/cpu_ucode.h:1.2 src/sys/arch/x86/include/cpu_ucode.h:1.3 --- src/sys/arch/x86/include/cpu_ucode.h:1.2 Wed Aug 29 17:13:22 2012 +++ src/sys/arch/x86/include/cpu_ucode.h Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_ucode.h,v 1.2 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: cpu_ucode.h,v 1.3 2012/10/17 20:19:55 drochner Exp $ */ /* * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -48,8 +48,9 @@ struct cpu_ucode_version_intel1 { #include <dev/firmload.h> int cpu_ucode_amd_get_version(struct cpu_ucode_version *); -/* XXX COMPAT */ +#ifdef COMPAT_60 int compat6_cpu_ucode_amd_get_version(struct compat6_cpu_ucode *); +#endif int cpu_ucode_amd_firmware_open(firmware_handle_t *, const char *); int cpu_ucode_amd_apply(struct cpu_ucode_softc *, int); Index: src/sys/arch/x86/x86/cpu_ucode.c diff -u src/sys/arch/x86/x86/cpu_ucode.c:1.2 src/sys/arch/x86/x86/cpu_ucode.c:1.3 --- src/sys/arch/x86/x86/cpu_ucode.c:1.2 Wed Aug 29 17:13:22 2012 +++ src/sys/arch/x86/x86/cpu_ucode.c Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_ucode.c,v 1.2 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: cpu_ucode.c,v 1.3 2012/10/17 20:19:55 drochner Exp $ */ /* * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -29,9 +29,10 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.2 2012/08/29 17:13:22 drochner Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu_ucode.c,v 1.3 2012/10/17 20:19:55 drochner Exp $"); #include "opt_cpu_ucode.h" +#include "opt_compat_netbsd.h" #include <sys/param.h> #include <sys/cpuio.h> @@ -62,7 +63,7 @@ cpu_ucode_get_version(struct cpu_ucode_v return 0; } -/* XXX COMPAT */ +#ifdef COMPAT_60 int compat6_cpu_ucode_get_version(struct compat6_cpu_ucode *data) { @@ -76,6 +77,7 @@ compat6_cpu_ucode_get_version(struct com return 0; } +#endif int cpu_ucode_md_open(firmware_handle_t *fwh, int loader_version, const char *fwname) @@ -120,7 +122,7 @@ cpu_ucode_apply(const struct cpu_ucode * return error; } -/* XXX COMPAT */ +#ifdef COMPAT_60 int compat6_cpu_ucode_apply(const struct compat6_cpu_ucode *data) { @@ -143,3 +145,4 @@ compat6_cpu_ucode_apply(const struct com sc->sc_blobsize = 0; return error; } +#endif Index: src/sys/arch/x86/x86/cpu_ucode_amd.c diff -u src/sys/arch/x86/x86/cpu_ucode_amd.c:1.4 src/sys/arch/x86/x86/cpu_ucode_amd.c:1.5 --- src/sys/arch/x86/x86/cpu_ucode_amd.c:1.4 Wed Aug 29 17:13:22 2012 +++ src/sys/arch/x86/x86/cpu_ucode_amd.c Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_ucode_amd.c,v 1.4 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: cpu_ucode_amd.c,v 1.5 2012/10/17 20:19:55 drochner Exp $ */ /* * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -29,10 +29,11 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu_ucode_amd.c,v 1.4 2012/08/29 17:13:22 drochner Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu_ucode_amd.c,v 1.5 2012/10/17 20:19:55 drochner Exp $"); #include "opt_xen.h" #include "opt_cpu_ucode.h" +#include "opt_compat_netbsd.h" #include <sys/param.h> #include <sys/conf.h> @@ -115,6 +116,7 @@ cpu_ucode_amd_get_version(struct cpu_uco return copyout(&data, ucode->data, sizeof(data)); } +#ifdef COMPAT_60 int compat6_cpu_ucode_amd_get_version(struct compat6_cpu_ucode *ucode) { @@ -127,6 +129,7 @@ compat6_cpu_ucode_amd_get_version(struct ucode->version = uclevel; return 0; } +#endif int cpu_ucode_amd_firmware_open(firmware_handle_t *fwh, const char *fwname) Index: src/sys/arch/x86/x86/cpu_ucode_intel.c diff -u src/sys/arch/x86/x86/cpu_ucode_intel.c:1.1 src/sys/arch/x86/x86/cpu_ucode_intel.c:1.2 --- src/sys/arch/x86/x86/cpu_ucode_intel.c:1.1 Wed Aug 29 17:13:22 2012 +++ src/sys/arch/x86/x86/cpu_ucode_intel.c Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu_ucode_intel.c,v 1.1 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: cpu_ucode_intel.c,v 1.2 2012/10/17 20:19:55 drochner Exp $ */ /* * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -29,10 +29,11 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cpu_ucode_intel.c,v 1.1 2012/08/29 17:13:22 drochner Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cpu_ucode_intel.c,v 1.2 2012/10/17 20:19:55 drochner Exp $"); #include "opt_xen.h" #include "opt_cpu_ucode.h" +#include "opt_compat_netbsd.h" #include <sys/param.h> #include <sys/conf.h> Index: src/sys/arch/xen/xen/xen_ucode.c diff -u src/sys/arch/xen/xen/xen_ucode.c:1.2 src/sys/arch/xen/xen/xen_ucode.c:1.3 --- src/sys/arch/xen/xen/xen_ucode.c:1.2 Wed Aug 29 17:13:22 2012 +++ src/sys/arch/xen/xen/xen_ucode.c Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: xen_ucode.c,v 1.2 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: xen_ucode.c,v 1.3 2012/10/17 20:19:55 drochner Exp $ */ /* * Copyright (c) 2012 The NetBSD Foundation, Inc. * All rights reserved. @@ -29,9 +29,10 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: xen_ucode.c,v 1.2 2012/08/29 17:13:22 drochner Exp $"); +__KERNEL_RCSID(0, "$NetBSD: xen_ucode.c,v 1.3 2012/10/17 20:19:55 drochner Exp $"); #include "opt_cpu_ucode.h" +#include "opt_compat_netbsd.h" #include <sys/param.h> #include <sys/cpuio.h> @@ -62,7 +63,7 @@ cpu_ucode_get_version(struct cpu_ucode_v return 0; } -/* XXX COMPAT */ +#ifdef COMPAT_60 int compat6_cpu_ucode_get_version(struct compat6_cpu_ucode *data) { @@ -76,6 +77,7 @@ compat6_cpu_ucode_get_version(struct com return 0; } +#endif int cpu_ucode_md_open(firmware_handle_t *fwh, int loader_version, const char *fwname) @@ -119,6 +121,7 @@ cpu_ucode_apply(const struct cpu_ucode * return error; } +#ifdef COMPAT_60 int compat6_cpu_ucode_apply(const struct compat6_cpu_ucode *data) { @@ -143,3 +146,4 @@ compat6_cpu_ucode_apply(const struct com sc->sc_blobsize = 0; return error; } +#endif Index: src/sys/kern/kern_cpu.c diff -u src/sys/kern/kern_cpu.c:1.58 src/sys/kern/kern_cpu.c:1.59 --- src/sys/kern/kern_cpu.c:1.58 Sat Sep 1 00:24:43 2012 +++ src/sys/kern/kern_cpu.c Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_cpu.c,v 1.58 2012/09/01 00:24:43 matt Exp $ */ +/* $NetBSD: kern_cpu.c,v 1.59 2012/10/17 20:19:55 drochner 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.58 2012/09/01 00:24:43 matt Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kern_cpu.c,v 1.59 2012/10/17 20:19:55 drochner Exp $"); #include "opt_cpu_ucode.h" #include "opt_compat_netbsd.h" @@ -275,10 +275,11 @@ cpuctl_ioctl(dev_t dev, u_long cmd, void error = cpu_ucode_get_version((struct cpu_ucode_version *)data); break; - /* XXX ifdef COMPAT */ +#ifdef COMPAT_60 case OIOC_CPU_UCODE_GET_VERSION: error = compat6_cpu_ucode_get_version((struct compat6_cpu_ucode *)data); break; +#endif case IOC_CPU_UCODE_APPLY: error = kauth_authorize_machdep(l->l_cred, @@ -289,7 +290,7 @@ cpuctl_ioctl(dev_t dev, u_long cmd, void error = cpu_ucode_apply((const struct cpu_ucode *)data); break; - /* XXX ifdef COMPAT */ +#ifdef COMPAT_60 case OIOC_CPU_UCODE_APPLY: error = kauth_authorize_machdep(l->l_cred, KAUTH_MACHDEP_CPU_UCODE_APPLY, @@ -299,6 +300,7 @@ cpuctl_ioctl(dev_t dev, u_long cmd, void error = compat6_cpu_ucode_apply((const struct compat6_cpu_ucode *)data); break; #endif +#endif default: error = ENOTTY; Index: src/sys/sys/cpu.h diff -u src/sys/sys/cpu.h:1.36 src/sys/sys/cpu.h:1.37 --- src/sys/sys/cpu.h:1.36 Wed Aug 29 17:13:22 2012 +++ src/sys/sys/cpu.h Wed Oct 17 20:19:55 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.36 2012/08/29 17:13:22 drochner Exp $ */ +/* $NetBSD: cpu.h,v 1.37 2012/10/17 20:19:55 drochner Exp $ */ /*- * Copyright (c) 2007 YAMAMOTO Takashi, @@ -45,10 +45,10 @@ void cpu_idle(void); #ifdef CPU_UCODE #include <sys/cpuio.h> #include <dev/firmload.h> - -/* XXX ifdef COMPAT */ +#ifdef COMPAT_60 #include <compat/sys/cpuio.h> #endif +#endif /* * cpu_need_resched() must always be called with the target CPU @@ -120,11 +120,11 @@ struct cpu_ucode_softc { }; int cpu_ucode_get_version(struct cpu_ucode_version *); -/* XXX ifdef COMPAT */ -int compat6_cpu_ucode_get_version(struct compat6_cpu_ucode *); int cpu_ucode_apply(const struct cpu_ucode *); -/* XXX ifdef COMPAT */ +#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