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.
This commit is contained in:
parent
2ca271943c
commit
3f93e51ec6
|
@ -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.
|
* 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_BOOTED_KERNEL 10 /* string: kernel we booted */
|
||||||
#define CPU_EXECPROT 11 /* bool: PROT_EXEC works */
|
#define CPU_EXECPROT 11 /* bool: PROT_EXEC works */
|
||||||
#define CPU_FPU 12
|
#define CPU_FPU 12
|
||||||
|
#define CPU_NO_UNALIGNED 13 /* No HW support for unaligned access */
|
||||||
|
|
||||||
#endif /* _POWERPC_CPU_H_ */
|
#endif /* _POWERPC_CPU_H_ */
|
||||||
|
|
|
@ -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.
|
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#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
|
#ifdef _KERNEL_OPT
|
||||||
#include "opt_altivec.h"
|
#include "opt_altivec.h"
|
||||||
|
@ -40,6 +40,7 @@ __KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.85 2022/05/20 19:34:22 andvar
|
||||||
#include "opt_modular.h"
|
#include "opt_modular.h"
|
||||||
#include "opt_multiprocessor.h"
|
#include "opt_multiprocessor.h"
|
||||||
#include "opt_ppcarch.h"
|
#include "opt_ppcarch.h"
|
||||||
|
#include "opt_ppcopts.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
@ -301,6 +302,17 @@ SYSCTL_SETUP(sysctl_machdep_setup, "sysctl machdep subtree setup")
|
||||||
#endif
|
#endif
|
||||||
NULL, 0,
|
NULL, 0,
|
||||||
CTL_MACHDEP, CPU_FPU, CTL_EOL);
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue