config LKL
       def_bool y
       depends on !SMP && !MMU && !COREDUMP && !SECCOMP && !UPROBES && !COMPAT && !USER_RETURN_NOTIFIER
       select ARCH_THREAD_STACK_ALLOCATOR
       select GENERIC_ATOMIC64
       select GENERIC_HWEIGHT
       select FLATMEM
       select GENERIC_CLOCKEVENTS
       select GENERIC_CPU_DEVICES
       select NO_HZ_IDLE
       select NO_PREEMPT
       select ARCH_WANT_FRAME_POINTERS
       select NET
       select MULTIUSER
       select INET
       select IPV6
       select IP_PNP
       select IP_PNP_DHCP
       select TCP_CONG_ADVANCED
       select TCP_CONG_BBR
       select HIGH_RES_TIMERS
       select NET_SCHED
       select NET_SCH_FQ
       select IP_MULTICAST
       select IPV6_MULTICAST
       select IP_MULTIPLE_TABLES
       select IPV6_MULTIPLE_TABLES
       select IP_ROUTE_MULTIPATH
       select IPV6_ROUTE_MULTIPATH
       select IP_ADVANCED_ROUTER
       select IPV6_ADVANCED_ROUTER
       select BLK_DEV_NVME
       select UACCESS_MEMCPY
       select GENERIC_STRNCPY_FROM_USER
       select GENERIC_STRNLEN_USER
       select HAVE_ARCH_KASAN
       select TRACING

config LKL_FUZZING
       bool "LLVM fuzzing instrumentation"
       default n
       help
         This configuration option enables fuzzing instrumentation
         for the Linux kernel source files to enable coverage-guided
         fuzzing. At the moment LKL supports libFuzzer fuzzing
         engine only.

config LKL_LINE_COV
       bool "Code coverage instrumentation for fuzzers"
       depends on LKL_FUZZING && CC_IS_CLANG
       default n
       help
         This configuration option enables line code coverage
         instrumentation for the Linux kernel to generate fuzzing
         code coverage reports. When this option is enabled the
         kernel source files are built with LLVM SanitizerCoverage
         instrumentation.

config OUTPUT_FORMAT
       string "Output format"
       default ""

config ARCH_DMA_ADDR_T_64BIT
       def_bool 64BIT

config PHYS_ADDR_T_64BIT
       def_bool 64BIT

config 64BIT
       bool "64bit kernel"
       default n

config COREDUMP
       def_bool n

config CPU_BIG_ENDIAN
       bool "Big-endian kernel"
       default n

config GENERIC_CSUM
       def_bool y

config GENERIC_HWEIGHT
       def_bool y

config NO_IOPORT_MAP
       def_bool y

config HZ
        int
        default 100

config CONSOLE_LOGLEVEL_QUIET
	int "quiet console loglevel (1-15)"
	range 1 15
	default "4"
	help
	  loglevel to use when "quiet" is passed on the kernel commandline.

	  When "quiet" is passed on the kernel commandline this loglevel
	  will be used as the loglevel. IOW passing "quiet" will be the
	  equivalent of passing "loglevel=<CONSOLE_LOGLEVEL_QUIET>"

config PCI
	bool "PCI support"
	select NO_GENERIC_PCI_IOPORT_MAP
	select GENERIC_PCI_IOMAP
	select HAS_DMA
	select DMA_OPS
	default y

config RAID6_PQ_BENCHMARK
	bool
	default n

config STACKTRACE_SUPPORT
       def_bool y

if KASAN
config KASAN_SHADOW_OFFSET
       hex "KASAN shadow offset"
       default "0"

config KASAN_SHADOW_SIZE
       hex "KASAN shadow size"
       default "0"
endif

config BUILTIN_CMDLINE
	string "Built-in kernel command string"
	default ""
	help
	  Enter arguments here that should be compiled into the kernel
	  image and used at boot time. The command line provided to
	  lkl_start_kernel is appended to this string to form the full
	  command line.

config LKL_HOST_MEMCPY
	bool "Host provides memcpy"
	default n
	help
	  This options should be set (in tools/lkl/Makefile.autoconf)
	  if the host provides a memcpy implementation.

config LKL_HOST_MEMSET
	bool "Host provides memset"
	default n
	help
	  This options should be set (in tools/lkl/Makefile.autoconf)
	  if the host provides a memset implementation.

config LKL_HOST_MEMMOVE
	bool "Host provides memmove"
	default n
	help
	  This options should be set (in tools/lkl/Makefile.autoconf)
	  if the host provides a memmove implementation.
