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
       module.

       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 functional-
			    ity.

       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  se-
				  lected.
	     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
				 omitted, toggle the current verbose setting.

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

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

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

	     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 dis-
				 played	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, either due to a boot en-
				 vironment change or a potential change	in ei-
				 ther kernel or	kernels.

	     core.hasFeature(featureName)
				 Checks	 whether  the named featureName	is en-
				 abled in the current loader.  This is specif-
				 ically	used for detecting capabilities	of the
				 loaded	loader binary, so that one can reason-
				 ably 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
				 unset.

	     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 ver-
				 bose settings to their	system defauilts.

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

	     core.boot(argstr)	 Loads the kernel and specified	modules,  then
				 invokes   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
				 result.

	     core.popFrontTable(tbl)
				 Pops the front	element	off of	tbl,  and  re-
				 turns	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  element, this	returns	the front ele-
				 ment and an empty table.  This	will not oper-
				 ate on	truly associative tables; numeric  in-
				 dices are required.

	     core.loaderTooOld()
				 Returns  true	if  the	 loader	 is  too  old.
				 Specifically, 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
       <pedrosouza@FreeBSD.org>.  Later	work and this manual page was done by
       Kyle Evans <kevans@FreeBSD.org>.

FreeBSD	14.3			March 29, 2025			   CORE.LUA(8)

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

home | help