#
# For a description of the syntax of this configuration file,
# see scripts/kbuild/config-language.txt.
#

menu "Linux Module Utilities"

config MODPROBE_SMALL
	bool "Simplified modutils"
	default n
	help
	  Simplified modutils.

	  With this option modprobe does not require modules.dep file
	  and does not use /etc/modules.conf file.
	  It scans module files in /lib/modules/`uname -r` and
	  determines dependencies and module alias names on the fly.
	  This may make module loading slower, most notably
	  when one needs to load module by alias (this requires
	  scanning through module _bodies_).

	  At the first attempt to load a module by alias modprobe
	  will try to generate modules.dep.bb file in order to speed up
	  future loads by alias. Failure to do so (read-only /lib/modules,
	  etc) is not reported, and future modprobes will be slow too.

	  NB: modules.dep.bb file format is not compatible
	  with modules.dep file as created/used by standard module tools.

	  Additional module parameters can be stored in
	  /etc/modules/$module_name files.

	  Apart from modprobe, other utilities are also provided:
	  - insmod is an alias to modprobe
	  - rmmod is an alias to modprobe -r
	  - depmod generates modules.dep.bb

	  As of 2008-07, this code is experimental. It is 14kb smaller
	  than "non-small" modutils.

config FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE
	bool "Accept module options on modprobe command line"
	default n
	depends on MODPROBE_SMALL
	help
	  Allow insmod and modprobe take module options from command line.
	  N.B. Very bloaty.

config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
	bool "Skip loading of already loaded modules"
	default n
	depends on MODPROBE_SMALL
	help
	  Check if the module is already loaded.
	  N.B. It's racy.

config DEPMOD
	bool "depmod"
	default n
	depends on !MODPROBE_SMALL
	help
	  depmod generates modules.dep (FIXME: elaborate)

config FEATURE_DEPMOD_PRUNE_FANCY
	bool "Fancy dependency pruning"
	default n
	depends on DEPMOD
	help
	  By default modules.dep contains all dependencies as listed by
	  the modules.
	  If you enable this option then we remove implied modules from
	  the dependencies.
	  This makes depmod somewhat bigger but generates a smaller
	  modules.dep file.

	  If unsure, say N.

config FEATURE_DEPMOD_ALIAS
	bool "Alias support"
	default n
	depends on DEPMOD
	help
	  By default modules.dep does not contain alias information.
	  Enable this to emit aliases of the form:

	    alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs

config INSMOD
	bool "insmod"
	default n
	depends on !MODPROBE_SMALL
	help
	  insmod is used to load specified modules in the running kernel.

config FEATURE_INSMOD_VERSION_CHECKING
	bool "Module version checking"
	default n
	depends on INSMOD && FEATURE_2_4_MODULES
	help
	  Support checking of versions for modules. This is used to
	  ensure that the kernel and module are made for each other.

config FEATURE_INSMOD_KSYMOOPS_SYMBOLS
	bool "Add module symbols to kernel symbol table"
	default n
	depends on INSMOD && FEATURE_2_4_MODULES
	help
	  By adding module symbols to the kernel symbol table, Oops messages
	  occuring within kernel modules can be properly debugged. By enabling
	  this feature, module symbols will always be added to the kernel symbol
	  table for properly debugging support. If you are not interested in
	  Oops messages from kernel modules, say N.

config FEATURE_INSMOD_LOADINKMEM
	bool "In kernel memory optimization (uClinux only)"
	default n
	depends on INSMOD && FEATURE_2_4_MODULES
	help
	  This is a special uClinux only memory optimization that lets insmod
	  load the specified kernel module directly into kernel space, reducing
	  memory usage by preventing the need for two copies of the module
	  being loaded into memory.

config FEATURE_INSMOD_LOAD_MAP
	bool "Enable load map (-m) option"
	default n
	depends on INSMOD && ( FEATURE_2_4_MODULES || FEATURE_2_6_MODULES )
	help
	  Enabling this, one would be able to get a load map
	  output on stdout. This makes kernel module debugging
	  easier.
	  If you don't plan to debug kernel modules, you
	  don't need this option.

config FEATURE_INSMOD_LOAD_MAP_FULL
	bool "Symbols in load map"
	default y
	depends on FEATURE_INSMOD_LOAD_MAP
	help
	  Without this option, -m will only output section
	  load map. With this option, -m will also output
	  symbols load map.

config RMMOD
	bool "rmmod"
	default n
	depends on !MODPROBE_SMALL
	help
	  rmmod is used to unload specified modules from the kernel.

config LSMOD
	bool "lsmod"
	default n
	depends on !MODPROBE_SMALL
	help
	  lsmod is used to display a list of loaded modules.

config FEATURE_LSMOD_PRETTY_2_6_OUTPUT
	bool "Pretty output for 2.6.x Linux kernels"
	default n
	depends on LSMOD
	help
	  This option makes output format of lsmod adjusted to
	  the format of module-init-tools for Linux kernel 2.6.

config MODPROBE
	bool "modprobe"
	default n
	depends on !MODPROBE_SMALL
	help
	  Handle the loading of modules, and their dependencies on a high
	  level.

	  Note that in the state, modprobe does not understand multiple
	  module options from the configuration file. See option below.

config FEATURE_MODPROBE_MULTIPLE_OPTIONS
	bool
	prompt "Multiple options parsing"
	default y
	depends on MODPROBE
	help
	  Allow modprobe to understand more than one option to pass to
	  modules.

	  This is a WIP, while waiting for a common argument parsing
	  common amongst all BB applets (shell, modprobe, etc...) and
	  adds around 600 bytes on x86, 700 bytes on ARM. The code is
	  biggish and uggly, but just works.

	  Saying Y here is not a bad idea if you're not that short
	  on storage capacity.

config FEATURE_MODPROBE_FANCY_ALIAS
	bool
	prompt "Fancy alias parsing"
	default y
	depends on MODPROBE && FEATURE_2_6_MODULES
	help
	  Say 'y' here to enable parsing of aliases with underscore/dash
	  mismatch between module name and file name, along with bus-specific
	  aliases (such as pci:... or usb:... aliases).

config FEATURE_MODPROBE_BLACKLIST
	bool
	prompt "Blacklist support"
	default n
	depends on MODPROBE && FEATURE_2_6_MODULES
	help
	  Say 'y' here to enable support for the 'blacklist' command in
	  modprobe.conf. This prevents the alias resolver to resolve
	  blacklisted modules. This is useful if you want to prevent your
	  hardware autodetection scripts to load modules like evdev, frame
	  buffer drivers etc.

comment "Options common to multiple modutils"
	depends on INSMOD || RMMOD || MODPROBE || LSMOD || DEPMOD

config FEATURE_CHECK_TAINTED_MODULE
	# Simulate indentation
	bool "Support tainted module checking with new kernels"
	default y
	depends on INSMOD || LSMOD
	help
	  Support checking for tainted modules. These are usually binary
	  only modules that will make the linux-kernel list ignore your
	  support request.
	  This option is required to support GPLONLY modules.

config FEATURE_2_4_MODULES
	# Simulate indentation
	bool "Support version 2.2.x to 2.4.x Linux kernels"
	default y
	depends on INSMOD || RMMOD || MODPROBE
	help
	  Support module loading for 2.2.x and 2.4.x Linux kernels.

	  Note:
	  This is automatically enabled if 2.6 modules are not enabled.

config FEATURE_2_6_MODULES
	# Simulate indentation
	bool "Support version 2.6.x Linux kernels"
	default y
	depends on INSMOD || RMMOD || MODPROBE
	help
	  Support module loading for newer 2.6.x Linux kernels.

config DEFAULT_MODULES_DIR
	# Simulate indentation
	string "Default directory containing modules"
	default "/lib/modules"
	depends on INSMOD || RMMOD || MODPROBE || MODPROBE_SMALL || DEPMOD
	help
	  Directory that contains kernel modules.
	  Defaults to "/lib/modules"

config DEFAULT_DEPMOD_FILE
	# Simulate indentation
	string "Default name of modules.dep"
	default "modules.dep"
	depends on INSMOD || RMMOD || MODPROBE || MODPROBE_SMALL || DEPMOD
	help
	  Filename that contains kernel modules dependencies.
	  Defaults to "modules.dep"

config FEATURE_QUERY_MODULE_INTERFACE
	bool
	default y
	depends on FEATURE_2_4_MODULES && !FEATURE_2_6_MODULES

endmenu
