freebsd-dev/sys/boot/forth/menu.rc
Devin Teske 55f9ff659d Since the introduction of the new advanced boot menu (r222417), options like
"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
2012-10-14 06:52:49 +00:00

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