|  | # SPDX-License-Identifier: GPL-2.0 | 
|  |  | 
|  | menu "UML-specific options" | 
|  |  | 
|  | config UML | 
|  | bool | 
|  | default y | 
|  | select ARCH_HAS_CPU_FINALIZE_INIT | 
|  | select ARCH_HAS_FORTIFY_SOURCE | 
|  | select ARCH_HAS_GCOV_PROFILE_ALL | 
|  | select ARCH_HAS_KCOV | 
|  | select ARCH_HAS_STRNCPY_FROM_USER | 
|  | select ARCH_HAS_STRNLEN_USER | 
|  | select ARCH_NO_PREEMPT | 
|  | select HAVE_ARCH_AUDITSYSCALL | 
|  | select HAVE_ARCH_KASAN if X86_64 | 
|  | select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN | 
|  | select HAVE_ARCH_SECCOMP_FILTER | 
|  | select HAVE_ASM_MODVERSIONS | 
|  | select HAVE_UID16 | 
|  | select HAVE_DEBUG_KMEMLEAK | 
|  | select HAVE_DEBUG_BUGVERBOSE | 
|  | select NO_DMA if !UML_DMA_EMULATION | 
|  | select OF_EARLY_FLATTREE if OF | 
|  | select GENERIC_IRQ_SHOW | 
|  | select GENERIC_CPU_DEVICES | 
|  | select HAVE_GCC_PLUGINS | 
|  | select ARCH_SUPPORTS_LTO_CLANG | 
|  | select ARCH_SUPPORTS_LTO_CLANG_THIN | 
|  | select TRACE_IRQFLAGS_SUPPORT | 
|  | select TTY # Needed for line.c | 
|  | select HAVE_ARCH_VMAP_STACK | 
|  | select HAVE_RUST			if X86_64 | 
|  |  | 
|  | config MMU | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config UML_DMA_EMULATION | 
|  | bool | 
|  |  | 
|  | config NO_IOMEM | 
|  | bool "disable IOMEM" if EXPERT | 
|  | depends on !INDIRECT_IOMEM | 
|  | default y | 
|  |  | 
|  | config UML_IOMEM_EMULATION | 
|  | bool | 
|  | select INDIRECT_IOMEM | 
|  | select GENERIC_PCI_IOMAP | 
|  | select GENERIC_IOMAP | 
|  | select NO_GENERIC_PCI_IOPORT_MAP | 
|  |  | 
|  | config NO_IOPORT_MAP | 
|  | def_bool y | 
|  |  | 
|  | config ISA | 
|  | bool | 
|  |  | 
|  | config SBUS | 
|  | bool | 
|  |  | 
|  | config LOCKDEP_SUPPORT | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config STACKTRACE_SUPPORT | 
|  | bool | 
|  | default y | 
|  | select STACKTRACE | 
|  |  | 
|  | config GENERIC_CALIBRATE_DELAY | 
|  | bool | 
|  | default y | 
|  |  | 
|  | config HZ | 
|  | int | 
|  | default 100 | 
|  |  | 
|  | config NR_CPUS | 
|  | int | 
|  | range 1 1 | 
|  | default 1 | 
|  |  | 
|  | config ARCH_HAS_CACHE_LINE_SIZE | 
|  | def_bool y | 
|  |  | 
|  | source "arch/$(HEADER_ARCH)/um/Kconfig" | 
|  |  | 
|  | config MAY_HAVE_RUNTIME_DEPS | 
|  | bool | 
|  |  | 
|  | config STATIC_LINK | 
|  | bool "Force a static link" | 
|  | depends on CC_CAN_LINK_STATIC_NO_RUNTIME_DEPS || !MAY_HAVE_RUNTIME_DEPS | 
|  | help | 
|  | This option gives you the ability to force a static link of UML. | 
|  | Normally, UML is linked as a shared binary.  This is inconvenient for | 
|  | use in a chroot jail.  So, if you intend to run UML inside a chroot, | 
|  | you probably want to say Y here. | 
|  | Additionally, this option enables using higher memory spaces (up to | 
|  | 2.75G) for UML. | 
|  |  | 
|  | NOTE: This option is incompatible with some networking features which | 
|  | depend on features that require being dynamically loaded (like NSS). | 
|  |  | 
|  | config LD_SCRIPT_STATIC | 
|  | bool | 
|  | default y | 
|  | depends on STATIC_LINK | 
|  |  | 
|  | config LD_SCRIPT_DYN | 
|  | bool | 
|  | default y | 
|  | depends on !LD_SCRIPT_STATIC | 
|  |  | 
|  | config LD_SCRIPT_DYN_RPATH | 
|  | bool "set rpath in the binary" if EXPERT | 
|  | default y | 
|  | depends on LD_SCRIPT_DYN | 
|  | help | 
|  | Add /lib (and /lib64 for 64-bit) to the linux binary's rpath | 
|  | explicitly. | 
|  |  | 
|  | You may need to turn this off if compiling for nix systems | 
|  | that have their libraries in random /nix directories and | 
|  | might otherwise unexpected use libraries from /lib or /lib64 | 
|  | instead of the desired ones. | 
|  |  | 
|  | config HOSTFS | 
|  | tristate "Host filesystem" | 
|  | help | 
|  | While the User-Mode Linux port uses its own root file system for | 
|  | booting and normal file access, this module lets the UML user | 
|  | access files stored on the host.  It does not require any | 
|  | network connection between the Host and UML.  An example use of | 
|  | this might be: | 
|  |  | 
|  | mount none /tmp/fromhost -t hostfs -o /tmp/umlshare | 
|  |  | 
|  | where /tmp/fromhost is an empty directory inside UML and | 
|  | /tmp/umlshare is a directory on the host with files the UML user | 
|  | wishes to access. | 
|  |  | 
|  | For more information, see | 
|  | <http://user-mode-linux.sourceforge.net/hostfs.html>. | 
|  |  | 
|  | If you'd like to be able to work with files stored on the host, | 
|  | say Y or M here; otherwise say N. | 
|  |  | 
|  | config MCONSOLE | 
|  | bool "Management console" | 
|  | depends on PROC_FS | 
|  | default y | 
|  | help | 
|  | The user mode linux management console is a low-level interface to | 
|  | the kernel, somewhat like the i386 SysRq interface.  Since there is | 
|  | a full-blown operating system running under every user mode linux | 
|  | instance, there is much greater flexibility possible than with the | 
|  | SysRq mechanism. | 
|  |  | 
|  | If you answer 'Y' to this option, to use this feature, you need the | 
|  | mconsole client (called uml_mconsole) which is present in CVS in | 
|  | 2.4.5-9um and later (path /tools/mconsole), and is also in the | 
|  | distribution RPM package in 2.4.6 and later. | 
|  |  | 
|  | It is safe to say 'Y' here. | 
|  |  | 
|  | config MAGIC_SYSRQ | 
|  | bool "Magic SysRq key" | 
|  | depends on MCONSOLE | 
|  | help | 
|  | If you say Y here, you will have some control over the system even | 
|  | if the system crashes for example during kernel debugging (e.g., you | 
|  | will be able to flush the buffer cache to disk, reboot the system | 
|  | immediately or dump some status information). A key for each of the | 
|  | possible requests is provided. | 
|  |  | 
|  | This is the feature normally accomplished by pressing a key | 
|  | while holding SysRq (Alt+PrintScreen). | 
|  |  | 
|  | On UML, this is accomplished by sending a "sysrq" command with | 
|  | mconsole, followed by the letter for the requested command. | 
|  |  | 
|  | The keys are documented in <file:Documentation/admin-guide/sysrq.rst>. Don't say Y | 
|  | unless you really know what this hack does. | 
|  |  | 
|  | config KERNEL_STACK_ORDER | 
|  | int "Kernel stack size order" | 
|  | default 2 if 64BIT | 
|  | range 2 10 if 64BIT | 
|  | default 1 if !64BIT | 
|  | help | 
|  | This option determines the size of UML kernel stacks.  They will | 
|  | be 1 << order pages.  The default is OK unless you're running Valgrind | 
|  | on UML, in which case, set this to 3. | 
|  | It is possible to reduce the stack to 1 for 64BIT and 0 for 32BIT on | 
|  | older (pre-2017) CPUs. It is not recommended on newer CPUs due to the | 
|  | increase in the size of the state which needs to be saved when handling | 
|  | signals. | 
|  |  | 
|  | config MMAPPER | 
|  | tristate "iomem emulation driver" | 
|  | help | 
|  | This driver allows a host file to be used as emulated IO memory inside | 
|  | UML. | 
|  |  | 
|  | config PGTABLE_LEVELS | 
|  | int | 
|  | default 3 if 3_LEVEL_PGTABLES | 
|  | default 2 | 
|  |  | 
|  | config UML_TIME_TRAVEL_SUPPORT | 
|  | bool | 
|  | prompt "Support time-travel mode (e.g. for test execution)" | 
|  | # inf-cpu mode is incompatible with the benchmarking | 
|  | depends on !RAID6_PQ_BENCHMARK | 
|  | depends on !SMP | 
|  | help | 
|  | Enable this option to support time travel inside the UML instance. | 
|  |  | 
|  | After enabling this option, two modes are accessible at runtime | 
|  | (selected by the kernel command line), see the kernel's command- | 
|  | line help for more details. | 
|  |  | 
|  | It is safe to say Y, but you probably don't need this. | 
|  |  | 
|  | config KASAN_SHADOW_OFFSET | 
|  | hex | 
|  | depends on KASAN | 
|  | default 0x100000000000 | 
|  | help | 
|  | This is the offset at which the ~16TB of shadow memory is | 
|  | mapped and used by KASAN for memory debugging. This can be any | 
|  | address that has at least KASAN_SHADOW_SIZE (total address space divided | 
|  | by 8) amount of space so that the KASAN shadow memory does not conflict | 
|  | with anything. The default is 0x100000000000, which works even if mem is | 
|  | set to a large value. On low-memory systems, try 0x7fff8000, as it fits | 
|  | into the immediate of most instructions, improving performance. | 
|  |  | 
|  | endmenu | 
|  |  | 
|  | source "arch/um/drivers/Kconfig" | 
|  |  | 
|  | config ARCH_SUSPEND_POSSIBLE | 
|  | def_bool y | 
|  |  | 
|  | menu "Power management options" | 
|  |  | 
|  | source "kernel/power/Kconfig" | 
|  |  | 
|  | endmenu |