Date: Fri, 13 Jul 2018 16:43:29 +0000 (UTC) From: Warner Losh <imp@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r336247 - in head/stand: common efi/loader i386/libi386 userboot/userboot Message-ID: <201807131643.w6DGhTqV089013@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: imp Date: Fri Jul 13 16:43:29 2018 New Revision: 336247 URL: https://svnweb.freebsd.org/changeset/base/336247 Log: Transition to boot_env_to_howto and boot_howto_to_env in the boot loader. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D16205 Modified: head/stand/common/boot.c head/stand/common/bootstrap.h head/stand/common/metadata.c head/stand/efi/loader/bootinfo.c head/stand/efi/loader/main.c head/stand/i386/libi386/bootinfo.c head/stand/userboot/userboot/bootinfo.c Modified: head/stand/common/boot.c ============================================================================== --- head/stand/common/boot.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/common/boot.c Fri Jul 13 16:43:29 2018 (r336247) @@ -160,30 +160,6 @@ autoboot_maybe() autoboot(-1, NULL); /* try to boot automatically */ } -int -bootenv_flags() -{ - int i, howto; - char *val; - - for (howto = 0, i = 0; howto_names[i].ev != NULL; i++) { - val = getenv(howto_names[i].ev); - if (val != NULL && strcasecmp(val, "no") != 0) - howto |= howto_names[i].mask; - } - return (howto); -} - -void -bootenv_set(int howto) -{ - int i; - - for (i = 0; howto_names[i].ev != NULL; i++) - if (howto & howto_names[i].mask) - setenv(howto_names[i].ev, "YES", 1); -} - static int autoboot(int timeout, char *prompt) { Modified: head/stand/common/bootstrap.h ============================================================================== --- head/stand/common/bootstrap.h Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/common/bootstrap.h Fri Jul 13 16:43:29 2018 (r336247) @@ -63,8 +63,6 @@ int parse(int *argc, char ***argv, const char *str); /* boot.c */ void autoboot_maybe(void); int getrootmount(char *rootdev); -int bootenv_flags(void); -void bootenv_set(int); /* misc.c */ char *unargv(int argc, char *argv[]); Modified: head/stand/common/metadata.c ============================================================================== --- head/stand/common/metadata.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/common/metadata.c Fri Jul 13 16:43:29 2018 (r336247) @@ -101,7 +101,7 @@ md_getboothowto(char *kargs) /* Parse kargs */ howto = boot_parse_cmdline(kargs); - howto |= bootenv_flags(); + howto |= boot_env_to_howto(); #if defined(__sparc64__) if (md_bootserial() != -1) howto |= RB_SERIAL; Modified: head/stand/efi/loader/bootinfo.c ============================================================================== --- head/stand/efi/loader/bootinfo.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/efi/loader/bootinfo.c Fri Jul 13 16:43:29 2018 (r336247) @@ -34,6 +34,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/linker.h> #include <sys/reboot.h> +#include <sys/boot.h> #include <machine/cpufunc.h> #include <machine/elf.h> #include <machine/metadata.h> @@ -59,12 +60,6 @@ int bi_load(char *args, vm_offset_t *modulep, vm_offse extern EFI_SYSTEM_TABLE *ST; -static const char howto_switches[] = "aCdrgDmphsv"; -static int howto_masks[] = { - RB_ASKNAME, RB_CDROM, RB_KDB, RB_DFLTROOT, RB_GDB, RB_MULTIPLE, - RB_MUTE, RB_PAUSE, RB_SERIAL, RB_SINGLE, RB_VERBOSE -}; - static int bi_getboothowto(char *kargs) { @@ -73,7 +68,8 @@ bi_getboothowto(char *kargs) char *console; int howto; - howto = bootenv_flags(); + howto = boot_parse_cmdline(kargs); + howto |= boot_env_to_howto(); console = getenv("console"); if (console != NULL) { @@ -81,21 +77,6 @@ bi_getboothowto(char *kargs) howto |= RB_SERIAL; if (strcmp(console, "nullconsole") == 0) howto |= RB_MUTE; - } - - /* Parse kargs */ - if (kargs == NULL) - return (howto); - - opts = strchr(kargs, '-'); - while (opts != NULL) { - while (*(++opts) != '\0') { - sw = strchr(howto_switches, *opts); - if (sw == NULL) - break; - howto |= howto_masks[sw - howto_switches]; - } - opts = strchr(opts, '-'); } return (howto); Modified: head/stand/efi/loader/main.c ============================================================================== --- head/stand/efi/loader/main.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/efi/loader/main.c Fri Jul 13 16:43:29 2018 (r336247) @@ -28,11 +28,13 @@ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); +#include <stand.h> + #include <sys/disk.h> #include <sys/param.h> #include <sys/reboot.h> +#include <sys/boot.h> #include <stdint.h> -#include <stand.h> #include <string.h> #include <setjmp.h> #include <disk.h> @@ -481,7 +483,7 @@ main(int argc, CHAR16 *argv[]) howto = parse_args(argc, argv, has_kbd); - bootenv_set(howto); + boot_howto_to_env(howto); /* * XXX we need fallback to this stuff after looking at the ConIn, ConOut and ConErr variables Modified: head/stand/i386/libi386/bootinfo.c ============================================================================== --- head/stand/i386/libi386/bootinfo.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/i386/libi386/bootinfo.c Fri Jul 13 16:43:29 2018 (r336247) @@ -44,7 +44,7 @@ bi_getboothowto(char *kargs) int vidconsole; howto = boot_parse_cmdline(kargs); - howto |= bootenv_flags(); + howto |= boot_env_to_howto(); /* Enable selected consoles */ string = next = strdup(getenv("console")); @@ -80,7 +80,7 @@ void bi_setboothowto(int howto) { - bootenv_set(howto); + boot_howto_to_env(howto); } /* Modified: head/stand/userboot/userboot/bootinfo.c ============================================================================== --- head/stand/userboot/userboot/bootinfo.c Fri Jul 13 16:43:23 2018 (r336246) +++ head/stand/userboot/userboot/bootinfo.c Fri Jul 13 16:43:29 2018 (r336247) @@ -44,7 +44,7 @@ bi_getboothowto(char *kargs) int vidconsole; howto = boot_parse_cmdline(kargs); - howto |= bootenv_flags(); + howto |= boot_env_to_howto(); /* Enable selected consoles */ string = next = strdup(getenv("console")); @@ -81,7 +81,7 @@ void bi_setboothowto(int howto) { - bootenv_set(howto); + boot_howto_to_env(howto); } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807131643.w6DGhTqV089013>