aboutsummaryrefslogtreecommitdiff
path: root/sys/compat/freebsd32
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2025-10-26 02:44:45 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2025-10-27 14:33:50 +0000
commite02c57ff374ea3eed69e5f43f19a41fa559b7e2d (patch)
tree0ff8bfaad490eda4b0f1826b350ab8a495512bfb /sys/compat/freebsd32
parent190d0a96cf5672c6cf0ce86eb91dd1f19d35baac (diff)
kern: Introduce kexec system feature (MI)
Introduce a new system call and reboot method to support booting a new kernel directly from FreeBSD. Linux has included a system call, kexec_load(), since 2005, which permits booting a new kernel at reboot instead of requiring a full reboot cycle through the BIOS/firmware. This change brings that same system call to FreeBSD. Other changesets will add the MD components for some of our architectures, with stubs for the rest until the MD components have been written. kexec_load() supports loading up to an arbitrary limit of 16 memory segments. These segments must be contained inside memory bounded in vm_phys_segs (vm.phys_segs sysctl), and a segment must be contained within a single vm.phys_segs segment, cannot cross adjacent segments. Reviewed by: imp, kib Sponsored by: Juniper Networks, Inc. Differential Revision: https://reviews.freebsd.org/D51619
Diffstat (limited to 'sys/compat/freebsd32')
-rw-r--r--sys/compat/freebsd32/syscalls.conf3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/compat/freebsd32/syscalls.conf b/sys/compat/freebsd32/syscalls.conf
index 72006631c89e..9308d1529c63 100644
--- a/sys/compat/freebsd32/syscalls.conf
+++ b/sys/compat/freebsd32/syscalls.conf
@@ -48,10 +48,11 @@ obsol="getkerninfo"
# Syscalls without implementations:
# __mac_* - should be implemented
# afs3_syscall - requires significant porting, probably doesn't make sense
+# kexec_load - makes little sense on 64-bit hardware
# kldsym - can't be implemented (kernel virtual addresses can't fit in 32-bits)
# lgetfh - should be implemented
# nlm_syscall - requires significant porting, probably doesn't make sense
# nnpfs_syscall - requires significant porting, probably doesn't make sense
# ntp_gettime - should be implemented
# thr_create - was unimplemented and appears to be unnecessary
-unimpl="afs3_syscall kldsym __mac_get_proc __mac_set_proc __mac_get_fd __mac_get_file __mac_set_fd __mac_set_file __mac_get_pid __mac_get_link __mac_set_link __mac_execve nfssvc nlm_syscall ntp_gettime lgetfh nnpfs_syscall thr_create"
+unimpl="afs3_syscall kexec_load kldsym __mac_get_proc __mac_set_proc __mac_get_fd __mac_get_file __mac_set_fd __mac_set_file __mac_get_pid __mac_get_link __mac_set_link __mac_execve nfssvc nlm_syscall ntp_gettime lgetfh nnpfs_syscall thr_create"