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

menu "Linux Module Utilities"

INSERT

config MODPROBE_SMALL
	bool "Simplified modutils"
	default y
	select PLATFORM_LINUX
	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 y
	depends on MODPROBE_SMALL || MODPROBE
	select PLATFORM_LINUX
	help
	  Allow insmod and modprobe take module options from command line.

config FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED
	bool "Skip loading of already loaded modules"
	default y
	depends on MODPROBE_SMALL || MODPROBE
	help
	  Check if the module is already loaded.

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

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

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

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

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

config FEATURE_MODPROBE_BLACKLIST
	bool "Blacklist support"
	default n
	depends on MODPROBE
	select PLATFORM_LINUX
	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.

config DEPMOD
	bool "depmod"
	default n
	depends on !MODPROBE_SMALL
	select PLATFORM_LINUX
	help
	  depmod generates modules.dep (and potentially modules.alias
	  and modules.symbols) that contain dependency information
	  for modprobe.

comment "Options common to multiple modutils"

config FEATURE_2_4_MODULES
	bool "Support version 2.2/2.4 Linux kernels"
	default n
	depends on INSMOD || RMMOD || LSMOD
	select PLATFORM_LINUX
	help
	  Support module loading for 2.2.x and 2.4.x Linux kernels.
	  This increases size considerably. Say N unless you plan
	  to run ancient kernels.

config FEATURE_INSMOD_TRY_MMAP
	bool "Try to load module from a mmap'ed area"
	default n
	depends on INSMOD || MODPROBE_SMALL
	select PLATFORM_LINUX
	help
	  This option causes module loading code to try to mmap
	  module first. If it does not work (for example,
	  it does not work for compressed modules), module will be read
	  (and unpacked if needed) into a memory block allocated by malloc.

	  The only case when mmap works but malloc does not is when
	  you are trying to load a big module on a very memory-constrained
	  machine. Malloc will momentarily need 2x as much memory as mmap.

	  Choosing N saves about 250 bytes of code (on 32-bit x86).

config FEATURE_INSMOD_VERSION_CHECKING
	bool "Enable module version checking"
	default n
	depends on FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
	select PLATFORM_LINUX
	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 FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
	select PLATFORM_LINUX
	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 proper 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 FEATURE_2_4_MODULES && (INSMOD || MODPROBE)
	select PLATFORM_LINUX
	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 insmod load map (-m) option"
	default n
	depends on FEATURE_2_4_MODULES && INSMOD
	select PLATFORM_LINUX
	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 && !MODPROBE_SMALL
	select PLATFORM_LINUX
	help
	  Without this option, -m will only output section
	  load map. With this option, -m will also output
	  symbols load map.

config FEATURE_CHECK_TAINTED_MODULE
	bool "Support tainted module checking with new kernels"
	default y
	depends on (LSMOD || FEATURE_2_4_MODULES) && !MODPROBE_SMALL
	select PLATFORM_LINUX
	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_MODUTILS_ALIAS
	bool "Support for module.aliases file"
	default y
	depends on DEPMOD || MODPROBE
	select PLATFORM_LINUX
	help
	  Generate and parse modules.alias containing aliases for bus
	  identifiers:
	    alias pcmcia:m*c*f03fn*pfn*pa*pb*pc*pd* parport_cs

	  and aliases for logical modules names e.g.:
	    alias padlock_aes aes
	    alias aes_i586 aes
	    alias aes_generic aes

	  Say Y if unsure.

config FEATURE_MODUTILS_SYMBOLS
	bool "Support for module.symbols file"
	default y
	depends on DEPMOD || MODPROBE
	select PLATFORM_LINUX
	help
	  Generate and parse modules.symbols containing aliases for
	  symbol_request() kernel calls, such as:
	    alias symbol:usb_sg_init usbcore

	  Say Y if unsure.

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

endmenu
