git: boot - Add a ton of features to the boot loader & adjust default menu

Matthew Dillon dillon at
Sat Oct 23 19:19:38 PDT 2010

commit 5b31b6dc0d4997729c172c7ce226fb880e01d5e9
Author: Matthew Dillon <dillon at>
Date:   Sat Oct 23 19:03:51 2010 -0700

    boot - Add a ton of features to the boot loader & adjust default menu
    * Add conditionals ifset ifexists else elseifexists and endif
    * Conditionalize to only present menu options for which
      the related kernels are present in /boot.
    * Set the default kernel to one of:
      kernel, kernel.GENERIC, kernel.GENERIC_SMP, kernel.X86_64_GENERIC,
      or kernel.X86_64_GENERIC_SMP.  The first one in the list found becomes
      the default.
    * If ${default_kernel}_SMP is available supply a menu option to change
      the default to that kernel, aka UP->SMP
    * If kernel.X86_64_GENERIC[_SMP] is available and the current default is
      not the same supply menu options to change the default to the 64-bit
      UP or SMP kernel.
      Note however that for this to work the related boot kernel directory
      had better have a loader.conf.local in it that points the root mount
      to a 64-bit root 'cause 64-bit kernels can't run 32 bit binaries yet.
    * Adjust the menu item execution code to copy the items before executing
      them, allowing recursive menu execution.  The recursive menu feature
      is a bit of a hack right now however.
    * NOTE: the optcd for people ESCaping into the boot prompt was moved
      to dloader.rc, when updating you may have to manually reinstall that
      file to get the functionality.

Summary of changes:
 sys/boot/common/bootstrap.h     |    9 ++-
 sys/boot/common/commands.c      |  141 ++++++++++++++++++++++++++++++++++++++-
 sys/boot/common/do_dloader.c    |    9 ++-
 sys/boot/dloader/cmds.c         |   42 ++++++++---
 sys/boot/dloader/dloader.h      |    3 +
 sys/boot/dloader/   |   65 ++++++++++++++++--
 sys/boot/dloader/subs.c         |   34 +++++++++-
 sys/boot/pc32/loader/dloader.rc |    1 +
 8 files changed, 277 insertions(+), 27 deletions(-)

DragonFly BSD source repository

More information about the Commits mailing list