Module Name: src Committed By: rin Date: Mon May 30 14:48:09 UTC 2022
Modified Files: src/sys/arch/powerpc/include: cpu.h src/sys/arch/powerpc/powerpc: powerpc_machdep.c Log Message: Export CPU capability of unaligned memory access to userland as machdep.no_unaligned sysctl(7) variable. This will be used for ld.so.conf in order to provide strictly- aligned versions of libc routines. To generate a diff of this commit: cvs rdiff -u -r1.121 -r1.122 src/sys/arch/powerpc/include/cpu.h cvs rdiff -u -r1.85 -r1.86 src/sys/arch/powerpc/powerpc/powerpc_machdep.c 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/powerpc/include/cpu.h diff -u src/sys/arch/powerpc/include/cpu.h:1.121 src/sys/arch/powerpc/include/cpu.h:1.122 --- src/sys/arch/powerpc/include/cpu.h:1.121 Mon May 30 14:05:36 2022 +++ src/sys/arch/powerpc/include/cpu.h Mon May 30 14:48:08 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: cpu.h,v 1.121 2022/05/30 14:05:36 rin Exp $ */ +/* $NetBSD: cpu.h,v 1.122 2022/05/30 14:48:08 rin Exp $ */ /* * Copyright (C) 1999 Wolfgang Solfrank. @@ -511,5 +511,6 @@ void __syncicache(void *, size_t); #define CPU_BOOTED_KERNEL 10 /* string: kernel we booted */ #define CPU_EXECPROT 11 /* bool: PROT_EXEC works */ #define CPU_FPU 12 +#define CPU_NO_UNALIGNED 13 /* No HW support for unaligned access */ #endif /* _POWERPC_CPU_H_ */ Index: src/sys/arch/powerpc/powerpc/powerpc_machdep.c diff -u src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.85 src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.86 --- src/sys/arch/powerpc/powerpc/powerpc_machdep.c:1.85 Fri May 20 19:34:22 2022 +++ src/sys/arch/powerpc/powerpc/powerpc_machdep.c Mon May 30 14:48:08 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: powerpc_machdep.c,v 1.85 2022/05/20 19:34:22 andvar Exp $ */ +/* $NetBSD: powerpc_machdep.c,v 1.86 2022/05/30 14:48:08 rin Exp $ */ /* * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.85 2022/05/20 19:34:22 andvar Exp $"); +__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.86 2022/05/30 14:48:08 rin Exp $"); #ifdef _KERNEL_OPT #include "opt_altivec.h" @@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: powerpc_mach #include "opt_modular.h" #include "opt_multiprocessor.h" #include "opt_ppcarch.h" +#include "opt_ppcopts.h" #endif #include <sys/param.h> @@ -301,6 +302,17 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysc #endif NULL, 0, CTL_MACHDEP, CPU_FPU, CTL_EOL); + sysctl_createv(clog, 0, NULL, NULL, + CTLFLAG_PERMANENT|CTLFLAG_IMMEDIATE, + CTLTYPE_INT, "no_unaligned", NULL, + NULL, +#if defined(PPC_NO_UNALIGNED) + 1, +#else + 0, +#endif + NULL, 0, + CTL_MACHDEP, CPU_NO_UNALIGNED, CTL_EOL); } /*