55f9ff659d
"boot verbose", "single user mode", "ACPI" and more are now stateful boolean menuitems rather than direct action-items. A short-coming in this new menu system is that when a user sets a non-default value in loader.conf(5), this non-default state is not reflected in the menu -- leading to confusion as to whether the option was taking effect or not. This patch adds dynamic menuitem constructors _and_ the necessary Forth callbacks to initialize these stateful menuitems -- causing the aforementioned menuitems to adhere to loader.conf(5) settings. PR: bin/172529 Approved by: adrian (co-mentor) MFC after: 21 days
2.5 KiB
2.5 KiB
\ Menu.rc
\ $FreeBSD$
\
\ Load required Forth modules
include /boot/version.4th
include /boot/brand.4th
include /boot/menu.4th
include /boot/menu-commands.4th
include /boot/shortcuts.4th
\ Screen prep
clear \ clear the screen (see `screen.4th')
print_version \ print version string (bottom-right; see `version.4th')
draw-beastie \ draw freebsd mascot (on right; see `beastie.4th')
draw-brand \ draw the FreeBSD title (top-left; see `brand.4th')
menu-init \ initialize the menu area (see `menu.4th')
\ Initialize main menu constructs (see `menu.4th')
\ NOTE: To use the `ansi' variants, add `loader_color=1' to loader.conf(5)
set menu_caption[1]="Boot [Enter]"
set menu_command[1]="boot"
set ansi_caption[1]="Boot [Enter]"
set menu_keycode[1]="98"
set menu_caption[2]="[Esc]ape to loader prompt"
set menu_command[2]="goto_prompt"
set menu_keycode[2]="27"
set ansi_caption[2]="Escape to loader prompt"
\ Enable built-in "Reboot" trailing menuitem
\ NOTE: appears before menu_options if configured
\
set menu_reboot
\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
\ separator is inserted before that menuitem number.
\
set menu_options=4
set menu_caption[4]="[A]CPI Support off"
set toggled_text[4]="[A]CPI Support On"
set menu_command[4]="toggle_acpi"
set menu_keycode[4]="97"
set menu_acpi=4
set ansi_caption[4]="ACPI Support Off"
set toggled_ansi[4]="ACPI Support On"
set menu_caption[5]="Safe [M]ode... off"
set toggled_text[5]="Safe [M]ode... On"
set menu_init[5]="init_safemode"
set menu_command[5]="toggle_safemode"
set menu_keycode[5]="109"
set ansi_caption[5]="Safe Mode... Off"
set toggled_ansi[5]="Safe Mode... On"
set menu_caption[6]="[S]ingle User. off"
set toggled_text[6]="[S]ingle User. On"
set menu_init[6]="init_singleuser"
set menu_command[6]="toggle_singleuser"
set menu_keycode[6]="115"
set ansi_caption[6]="Single User. Off"
set toggled_ansi[6]="Single User. On"
set menu_caption[7]="[V]erbose..... off"
set toggled_text[7]="[V]erbose..... On"
set menu_init[7]="init_verbose"
set menu_command[7]="toggle_verbose"
set menu_keycode[7]="118"
set ansi_caption[7]="Verbose..... Off"
set toggled_ansi[7]="Verbose..... On"
\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
\ customize the timeout; default is 10-seconds)
\
set menu_timeout_command="boot"
\ Display the main menu (see `menu.4th')
menu-display
\ $FreeBSD$
\
\ Load required Forth modules
include /boot/version.4th
include /boot/brand.4th
include /boot/menu.4th
include /boot/menu-commands.4th
include /boot/shortcuts.4th
\ Screen prep
clear \ clear the screen (see `screen.4th')
print_version \ print version string (bottom-right; see `version.4th')
draw-beastie \ draw freebsd mascot (on right; see `beastie.4th')
draw-brand \ draw the FreeBSD title (top-left; see `brand.4th')
menu-init \ initialize the menu area (see `menu.4th')
\ Initialize main menu constructs (see `menu.4th')
\ NOTE: To use the `ansi' variants, add `loader_color=1' to loader.conf(5)
set menu_caption[1]="Boot [Enter]"
set menu_command[1]="boot"
set ansi_caption[1]="Boot [Enter]"
set menu_keycode[1]="98"
set menu_caption[2]="[Esc]ape to loader prompt"
set menu_command[2]="goto_prompt"
set menu_keycode[2]="27"
set ansi_caption[2]="Escape to loader prompt"
\ Enable built-in "Reboot" trailing menuitem
\ NOTE: appears before menu_options if configured
\
set menu_reboot
\ Enable "Options:" separator. When set to a numerical value (1-8), a visual
\ separator is inserted before that menuitem number.
\
set menu_options=4
set menu_caption[4]="[A]CPI Support off"
set toggled_text[4]="[A]CPI Support On"
set menu_command[4]="toggle_acpi"
set menu_keycode[4]="97"
set menu_acpi=4
set ansi_caption[4]="ACPI Support Off"
set toggled_ansi[4]="ACPI Support On"
set menu_caption[5]="Safe [M]ode... off"
set toggled_text[5]="Safe [M]ode... On"
set menu_init[5]="init_safemode"
set menu_command[5]="toggle_safemode"
set menu_keycode[5]="109"
set ansi_caption[5]="Safe Mode... Off"
set toggled_ansi[5]="Safe Mode... On"
set menu_caption[6]="[S]ingle User. off"
set toggled_text[6]="[S]ingle User. On"
set menu_init[6]="init_singleuser"
set menu_command[6]="toggle_singleuser"
set menu_keycode[6]="115"
set ansi_caption[6]="Single User. Off"
set toggled_ansi[6]="Single User. On"
set menu_caption[7]="[V]erbose..... off"
set toggled_text[7]="[V]erbose..... On"
set menu_init[7]="init_verbose"
set menu_command[7]="toggle_verbose"
set menu_keycode[7]="118"
set ansi_caption[7]="Verbose..... Off"
set toggled_ansi[7]="Verbose..... On"
\ Enable automatic booting (add ``autoboot_delay=N'' to loader.conf(5) to
\ customize the timeout; default is 10-seconds)
\
set menu_timeout_command="boot"
\ Display the main menu (see `menu.4th')
menu-display