| #
24038d69
|
| 09-Feb-2026 |
Konstantin Belousov <kib@FreeBSD.org> |
Revert "pcb.h: mark struct pcb to be preserved"
kgdb only uses the marked fields from dumppcb for initial frame reconstruction.
This reverts commit 8f23665fed2fbaf4481359b4d2fcdd7b9feb40e3.
|
| #
8f23665f
|
| 06-Feb-2026 |
Minsoo Choo <minsoochoo0122@proton.me> |
pcb.h: mark struct pcb to be preserved
There are programs that depend on this structure (e.g. kernel debuggers) that breaks when the ABI changes.
Signed-off-by: Minsoo Choo <minsoochoo0122@proton.m
pcb.h: mark struct pcb to be preserved
There are programs that depend on this structure (e.g. kernel debuggers) that breaks when the ABI changes.
Signed-off-by: Minsoo Choo <minsoochoo0122@proton.me> Reviewed by: kib MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D55149
show more ...
|
| #
a7c5c88c
|
| 15-Oct-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Stop trashing x28 in savectx
While here make it return void, we don't set any useful return value and nothing checks for it.
Sponsored by: Arm Ltd
|
| #
332c4263
|
| 27-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Initial SVE support
Add initial kernel support for SVE. This detects if SVE is present on all CPUs, and if so allows for the use of SVE in the future.
As the SVE registers are a superset of
arm64: Initial SVE support
Add initial kernel support for SVE. This detects if SVE is present on all CPUs, and if so allows for the use of SVE in the future.
As the SVE registers are a superset of the VFP registers we don't need to restore the VFP registers when SVE is enabled.
Ths interface to enable SVE is provided, but not used until SVE is supported in signals and with ptrace.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43306
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
d5d97bed
|
| 25-Jul-2023 |
Mike Karels <karels@FreeBSD.org> |
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 wh
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 when building with -m32. Ifdef the arm64 headers that are installed in /usr/include/machine and used by user-level software (including references from /usr/include/*.h) so that if __arm__ is defined when including the arm64 version, <arm/foo.h> is included rather than using the rest of the file's contents. Some arm headers had no arm64 equivalent; headers were added just to do the redirection. These files use #error if __arm__ is not defined to guard against confusion. Also add an include/arm Makefile, and modify Makefiles as needed to install everything, including the arm files in /usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h.
The new arm64 headers are: acle-compat.h cpuinfo.h sysreg.h
Reviewed by: jrtc27, imp Differential Revision: https://reviews.freebsd.org/D40944
show more ...
|
| #
6a9c2e63
|
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://review
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39777
show more ...
|
| #
fb421e96
|
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Make arm64 pcb padding explicit
There is padding between some fields. Mark those I have found so they can be reused later if needed.
Sponsored by: Arm Ltd
|
| #
1c1f31a5
|
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm Ltd Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35378
show more ...
|
| #
1c33a94a
|
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: A
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: Arm Ltd
show more ...
|
| #
376025cf
|
| 06-Sep-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Move the non-exported PCB_FP_* flags to the upper bits
To make way for a flag for SVE move the PCB_FP_* flags we don't export to userspace to the upper bits.
Sponsored by: The FreeBSD Foundation
|
| #
5f66d5a3
|
| 21-Dec-2020 |
mhorne <mhorne@FreeBSD.org> |
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus.
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus. Rather than writing to this field in more places, it can be removed in favor of using the value in the link register.
To make this clearer, pcb->pcb_x[30] is renamed to pcb->pcb_lr, similar to what already exists in struct trapframe. Also, prefer lr to x30 in assembly, as it better conveys intention.
This improves PC_REGS() for kdb_thread != curthread. It is required for a functional gdb(4) stub, fixing the output of `info threads`, in particular.
The space occupied by pcb_pc is retained, for compatibility with kgdb.
Reviewed by: markj, jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27720
show more ...
|
| #
05f39d1a
|
| 03-Nov-2019 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to set hardware breakpoints.
The struct dbreg is based on Linux to ease adding hardware breakpoint support to debuggers.
Reviewed by: jhb Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22195
show more ...
|
| #
a7c5c88c
|
| 15-Oct-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Stop trashing x28 in savectx
While here make it return void, we don't set any useful return value and nothing checks for it.
Sponsored by: Arm Ltd
|
| #
332c4263
|
| 27-Sep-2024 |
Andrew Turner <andrew@FreeBSD.org> |
arm64: Initial SVE support
Add initial kernel support for SVE. This detects if SVE is present on all CPUs, and if so allows for the use of SVE in the future.
As the SVE registers are a superset of
arm64: Initial SVE support
Add initial kernel support for SVE. This detects if SVE is present on all CPUs, and if so allows for the use of SVE in the future.
As the SVE registers are a superset of the VFP registers we don't need to restore the VFP registers when SVE is enabled.
Ths interface to enable SVE is provided, but not used until SVE is supported in signals and with ptrace.
Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D43306
show more ...
|
| #
95ee2897
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern
Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
| #
d5d97bed
|
| 25-Jul-2023 |
Mike Karels <karels@FreeBSD.org> |
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 wh
arm64 lib32: prepare arm64 headers to redirect to arm
In order to compile lib32 libraries and other 32-bit code on arm64, <machine/foo.h> needs to be redirected to an arm header rather than arm64 when building with -m32. Ifdef the arm64 headers that are installed in /usr/include/machine and used by user-level software (including references from /usr/include/*.h) so that if __arm__ is defined when including the arm64 version, <arm/foo.h> is included rather than using the rest of the file's contents. Some arm headers had no arm64 equivalent; headers were added just to do the redirection. These files use #error if __arm__ is not defined to guard against confusion. Also add an include/arm Makefile, and modify Makefiles as needed to install everything, including the arm files in /usr/include/arm. fenv.h comes from lib/msun/arm/fenv.h.
The new arm64 headers are: acle-compat.h cpuinfo.h sysreg.h
Reviewed by: jrtc27, imp Differential Revision: https://reviews.freebsd.org/D40944
show more ...
|
| #
6a9c2e63
|
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://review
Add padding for future use on arm64
Allow new features to be supported without changing the size of existing structures.
Reviewed by: kib Sponsored by: Arm Ltd Differential Revision: https://reviews.freebsd.org/D39777
show more ...
|
| #
fb421e96
|
| 24-Apr-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Make arm64 pcb padding explicit
There is padding between some fields. Mark those I have found so they can be reused later if needed.
Sponsored by: Arm Ltd
|
| #
1c1f31a5
|
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm
Remove unused registes from the arm pcb
These were kept for ABI reasons. Remove them and bump __FreeBSD_version so debuggers can be updated to use the new layout.
Reviewed by: jhb Sponsored by: Arm Ltd Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D35378
show more ...
|
| #
1c33a94a
|
| 22-Mar-2023 |
Andrew Turner <andrew@FreeBSD.org> |
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: A
Add macros for arm64 pcb register offsets
Add macros for offsets of macros we set in the arm64 pcb pcb_x array. This will simplift reducing the size of this array in a later change.
Sponsored by: Arm Ltd
show more ...
|
| #
376025cf
|
| 06-Sep-2022 |
Andrew Turner <andrew@FreeBSD.org> |
Move the non-exported PCB_FP_* flags to the upper bits
To make way for a flag for SVE move the PCB_FP_* flags we don't export to userspace to the upper bits.
Sponsored by: The FreeBSD Foundation
|
| #
5f66d5a3
|
| 21-Dec-2020 |
mhorne <mhorne@FreeBSD.org> |
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus.
arm64: remove pcb_pc
The program counter field in the PCB is written in exactly one place, makectx(), upon entry to the debugger. For threads other than curthread, its value will be empty, or bogus. Rather than writing to this field in more places, it can be removed in favor of using the value in the link register.
To make this clearer, pcb->pcb_x[30] is renamed to pcb->pcb_lr, similar to what already exists in struct trapframe. Also, prefer lr to x30 in assembly, as it better conveys intention.
This improves PC_REGS() for kdb_thread != curthread. It is required for a functional gdb(4) stub, fixing the output of `info threads`, in particular.
The space occupied by pcb_pc is retained, for compatibility with kgdb.
Reviewed by: markj, jhb MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D27720
show more ...
|
| #
05f39d1a
|
| 03-Nov-2019 |
Andrew Turner <andrew@FreeBSD.org> |
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to
Add support for setting hardware breakpoints from ptrace on arm64.
Implement get/fill_dbregs on arm64. This is used by ptrace with the PT_GETDBREGS and PT_SETDBREGS requests. It allows userspace to set hardware breakpoints.
The struct dbreg is based on Linux to ease adding hardware breakpoint support to debuggers.
Reviewed by: jhb Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D22195
show more ...
|
| #
b754c279
|
| 13-Sep-2017 |
Navdeep Parhar <np@FreeBSD.org> |
MFH @ r323558.
|