git: 7429d6158ca9 - main - kboot: Initialize archsw at compile time

From: Warner Losh <imp_at_FreeBSD.org>
Date: Mon, 26 May 2025 15:33:31 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=7429d6158ca91195b30c807127b4758424887128

commit 7429d6158ca91195b30c807127b4758424887128
Author:     Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-05-25 15:17:53 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-05-26 15:30:37 +0000

    kboot: Initialize archsw at compile time
    
    No need to initialize this at runtime. This trades .bss space + code in
    .text for just .data and is net smaller.
    
    Sponsored by:           Netflix
---
 stand/kboot/kboot/main.c | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)

diff --git a/stand/kboot/kboot/main.c b/stand/kboot/kboot/main.c
index 5b7bfa246f55..668e5ac2706d 100644
--- a/stand/kboot/kboot/main.c
+++ b/stand/kboot/kboot/main.c
@@ -37,9 +37,6 @@
 #include "stand.h"
 #include <smbios.h>
 
-struct arch_switch	archsw;
-extern void *_end;
-
 int kboot_getdev(void **vdev, const char *devspec, const char **path);
 ssize_t kboot_copyin(const void *src, vm_offset_t dest, const size_t len);
 ssize_t kboot_copyout(vm_offset_t src, void *dest, const size_t len);
@@ -47,6 +44,16 @@ ssize_t kboot_readin(readin_handle_t fd, vm_offset_t dest, const size_t len);
 int kboot_autoload(void);
 static void kboot_zfs_probe(void);
 
+struct arch_switch	archsw = {
+	.arch_getdev = kboot_getdev,
+	.arch_copyin = kboot_copyin,
+	.arch_copyout = kboot_copyout,
+	.arch_readin = kboot_readin,
+	.arch_autoload = kboot_autoload,
+	.arch_zfs_probe = kboot_zfs_probe,
+};
+extern void *_end;
+
 extern int command_fdt_internal(int argc, char *argv[]);
 
 /*
@@ -346,13 +353,6 @@ main(int argc, const char **argv)
 	const size_t heapsize = 64*1024*1024;
 	const char *bootdev;
 
-	archsw.arch_getdev = kboot_getdev;
-	archsw.arch_copyin = kboot_copyin;
-	archsw.arch_copyout = kboot_copyout;
-	archsw.arch_readin = kboot_readin;
-	archsw.arch_autoload = kboot_autoload;
-	archsw.arch_zfs_probe = kboot_zfs_probe;
-
 	/* Give us a sane world if we're running as init */
 	do_init();