#
fdafd315 |
|
24-Nov-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Automated cleanup of cdefs and other formatting Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
b6858861 |
|
15-May-2023 |
Kyle Evans <kevans@FreeBSD.org> |
arm64: simplify expression !a != !b -> a != b; this part was lifted from NetBSD, and I clearly did not reconsider that these are bools (I'm guessing they were ints in an earlier iteration of the NetBSD implementation). while we're here, it should be easy to see that we've covered all of the cases but let's add in an __assert_unreachable() to make it easier on the eyes. Reported by: jrtc27
|
#
4b500174 |
|
15-May-2023 |
Kyle Evans <kevans@FreeBSD.org> |
arm64: emulate swp/swpb instructions Add another undefined instruction handler for compat32 and watch out for SWP/SWPB instructions. SWP/SWPB were deprecated in ARMv6 and declared obsolete in ARMv7, but this implementation is motivated by some proprietary software that still uses SWP/SWPB. Because it's deprecated, emulation is pushed back behind a sysctl that defaults to OFF in GENERIC so that it doesn't potentially adversely affect package builds; it's unknown whether software may test for a functional swp/swpb instruction with the desire of using it later, so we err on the side of caution to ensure we don't end up with swp/swpb use in freebsd/arm packages (which are built on aarch64). The EMUL_SWP config option may be used to enable emulation by default in environments where emulation is desired and won't really be turned off. Reviewed by: andrew, mmel (both earlier version) Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D39667
|
#
67dc576b |
|
07-Feb-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Fix the signal code on 32-bit breakpoints on arm64 When debugging 32-bit programs a debugger may insert a instruction that will raise the undefined instruction trap. The kernel handles these by raising a SIGTRAP, however the code was incorrect. Fix this by using the expected TRAP_BRKPT signal code. Sponsored by: The FreeBSD Foundation
|
#
8c9c3144 |
|
13-Jan-2019 |
Olivier Houchard <cognet@FreeBSD.org> |
Impleent COMPAT_FREEBSD32 for arm64. This is based on early work by andrew@.
|
#
c7637c4d |
|
27-Sep-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Move the undefined instruction handler to identcpu.c so we have access to the registers from boot. Approved by: re (kib) Sponsored by: ABT Systems Ltd Differential Revision: https://reviews.freebsd.org/D17301
|
#
39881061 |
|
14-Aug-2018 |
Andrew Turner <andrew@FreeBSD.org> |
Support reading from the arm64 ID registers from userspace. Trap reads to the arm64 ID registers and write a safe value into them. This will allow us to put more useful values in these later and have userland check them to find what features the hardware supports. These are currently safe defaults, but will later be populated with better values from the hardware. Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D16533
|
#
bcf2b954 |
|
14-Sep-2017 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for handling undefined instructions in userspace and the kernel. We can register callbacks to perform the required operation on the saved registers before returning. This is initially used to work around a bug in old versions of QEMU that trigger such an exception when reading from an ID register when it should load z zero value. I expect this could be used with other exception types, e.g. to emulate special register access from userland. Sponsored by: DARPA, AFRL
|