Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CORE.LUA(8)		     System Manager's Manual		     CORE.LUA(8)

NAME
     core.lua -- bootloader core module

DESCRIPTION
     core.lua contains core functionality that does not have a more fitting mod-
     ule.

     Before  hooking  into  or	using the functionality provided by core.lua, it
     must be included with a statement such as the following:

	   local core = require("core")

   CONSTANTS
     The following raw key code constants are defined in core.lua:
	   KEY_BACKSPACE  The backspace code.  Should generally be checked along
			  with KEY_DELETE for backspace functionality.
	   KEY_ENTER	  The enter key, or hard return.
	   KEY_DELETE	  The delete code.  Should generally  be  checked  along
			  with KEY_BACKSPACE for backspace functionality.

     The following key-string constants are defined in core.lua:
	   KEYSTR_ESCAPE  The escape key.
	   KEYSTR_CSI	  The ANSI CSI sequence.

     The following menu entry type constants are defined in core.lua:
	   MENU_RETURN		Return to the parent menu.
	   MENU_ENTRY		A normal menu entry.
	   MENU_SEPARATOR	A menu entry that serves as a separator.
	   MENU_SUBMENU 	A menu entry that opens a submenu when selected.
	   MENU_CAROUSEL_ENTRY	A  menu  entry that rotates through items like a
				carousel upon selection of the menu entry.

     Please see menu.lua(8) for extended descriptions and usage  of  the  MENU_*
     constants.

   Exported functions
     The following functions are exported from core.lua:

	   core.setVerbose(verbose)
			       Sets or unsets boot_verbose.  If verbose is omit-
			       ted, toggle the current verbose setting.

	   core.setSingleUser(singleUser)
			       Sets  or  unsets  boot_single.	If singleUser is
			       omitted, toggle the current single user setting.

	   core.getACPI()      Return true if ACPI is both present and	not  ex-
			       plicitly disabled by hints.acpi.0.disabled.

	   core.hasACPI()      Checks whether ACPI support is present.	This re-
			       quires  the  loader  to	probe the system and set
			       acpi.rsdp early before starting the interpreter.

	   core.setACPI(acpi)  Sets or unsets  acpi_load,  hint.acpi.0.disabled,
			       and  loader.acpi_disabled_by_user.   If	acpi  is
			       omitted, toggle the current ACPI setting.

	   core.setSafeMode(safeMode)
			       Set  the  safe  mode  setting.	Sets  or  unsets
			       kern.smp.disabled,		 hw.ata.ata_dma,
			       hw.ata.atapi_dma,  kern.eventtimer.periodic,  and
			       kern.geom.part.check_integrity.	 If  safeMode is
			       omitted, toggle the current safe mode setting.

	   core.clearCachedKernels()
			       Clears out the cache of kernels to  be  displayed
			       on the boot menu.  This function is registered as
			       a config.reloaded hook.	It is used to invalidate
			       the kernel list whenever it may have changed, ei-
			       ther due to a boot environment change or a poten-
			       tial change in either kernel or kernels.

	   core.hasFeature(featureName)
			       Checks  whether	the named featureName is enabled
			       in the current loader.  This is specifically used
			       for detecting capabilities of the  loaded  loader
			       binary,	so  that  one  can  reasonably implement
			       backwards compatibility shims if needed.

	   core.kernelList()   Returns a table of kernels to display on the boot
			       menu.  This will combine kernel and kernels  from
			       loader.conf(5).	 If kernels_autodetect is set in
			       loader.conf(5), kernels will be autodetected from
			       the current system.

	   core.bootenvDefault()
			       Returns the default boot environment, nil if  un-
			       set.

	   core.bootenvFilter(func)
			       Installs  a  filter func into core.bootenvList().
			       If the func returns true, then the boot	environ-
			       ment  is  retained  in  the list.  Otherwise, the
			       boot environment is hidden.  The old  filter,  if
			       any, is returned to allow the caller to compose a
			       filter on top of another filter.

	   core.bootenvList()  Returns a table of boot environments, or an empty
			       table.	 These	will  be  picked  up  using  the
			       bootenvs  and  bootenvs_count  variables  set  by
			       loader(8).

	   core.setDefaults()  Resets  ACPI, safe mode, single user, and verbose
			       settings to their system defauilts.

	   core.autoboot(argstr)
			       Loads the kernel and specified modules, then  in-
			       vokes  the autoboot loader(8) command with argstr
			       as-is.

	   core.boot(argstr)   Loads the kernel and specified modules, then  in-
			       vokes  the boot loader(8) command with argstr as-
			       is.

	   core.isSingleUserBoot()
			       Returns true if boot_single is set to yes.

	   core.isZFSBoot()    Returns true  if  currdev  is  set  to  a  zfs(8)
			       dataset.

	   core.isSerialBoot()
			       Returns true if we are booting over serial.  This
			       checks console, boot_serial, and boot_multicons.

	   core.deepCopyTable(tbl)
			       Recursively  deep  copies tbl and returns the re-
			       sult.

	   core.popFrontTable(tbl)
			       Pops the front element off of  tbl,  and  returns
			       two  return  values:  the  front element, and the
			       rest of the table.  If  there  are  no  elements,
			       this  returns  nil and nil.  If there is one ele-
			       ment, this returns the front element and an empty
			       table.  This will not operate on  truly	associa-
			       tive tables; numeric indices are required.

	   core.loaderTooOld()
			       Returns	true if the loader is too old.	Specifi-
			       cally, this means, is the loader  old  enough  to
			       require	one  or  more workarounds in the current
			       lua base modules.

SEE ALSO
     loader.conf(5), loader(8), menu.lua(8)

AUTHORS
     The  core.lua  file  was	originally   written   by   Pedro   Souza   <pe-
     drosouza@FreeBSD.org>.  Later work and this manual page was done by
     Kyle Evans <kevans@FreeBSD.org>.

FreeBSD ports 15.quarterly	  April 8, 2026 		     CORE.LUA(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=core.lua&manpath=FreeBSD+15.1-RELEASE+and+Ports.quarterly>

home | help