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);
 }
 
 /*

Reply via email to