#
# For a description of the syntax of this configuration file,
# see Linux's Documentation/kbuild/kconfig-language.txt.
#
mainmenu "Akaros/$SRCARCH Kernel Configuration"

# This is info, not a setable option.  Must make ARCH=arch to change.
config SRCARCH
	string
	option env="ARCH"

config 64BIT
	bool "64-bit kernel"
	default n
	help
		Say yes to build a 64-bit kernel, amd64 / x86_64, riscv64, etc.

menuconfig RUN_INIT_SCRIPT
	bool "Run init script after boot"
	default n
	help
		Run an init script after boot instead of dropping into the monitor

config INIT_SCRIPT_PATH_AND_ARGS
    depends on RUN_INIT_SCRIPT
    string "Path to init script, followed by its arguments."
    default /bin/init.sh
    help
		Path to the init script run at boot time, followed by a space separated
		list of arguments

source "kern/arch/$SRCARCH/Kconfig"

source "kern/src/net/Kconfig"

source "kern/drivers/Kconfig"

menu "Filesystems"

config KFS
	bool "KFS filesystem"
	default y
	help
		KFS is an initramfs bundled into the kernel, and contains your root
		filesystem.

config KFS_PATHS
	depends on KFS
	string "KFS/Initramfs paths"
	default kern/kfs
	help
		Space separated list of paths to directories to bundle into KFS.  This
		will be your root filesystem.

config KFS_CPIO_BIN
	depends on KFS
	string "KFS CPIO helper"
	default ""
	help
		This binary (relative to the root directory) will be run before
		bundling the KFS Paths into the CPIO.

config EXT2FS
	bool "Ext2 filesystem"
	default n
	help
		Build in support for ext2.  Extremely experimental, and only works with
		a block device image, which will be mounted at /mnt.  If you select
		this, you must specify a block device.

config EXT2_BDEV
	depends on EXT2FS
	string "Ext2 image file"
	default mnt/ext2fs.img
	help
		This file needs to be an ext2 image (file that looks like a block
		device).  You should be able to mount this file in your host OS.  It
		will be bundled into the kernel and mounted at /mnt.

endmenu

menu "Memory Management"

config PAGE_COLORING
	bool "Page coloring"
	default n
	help
		Turns on internal support for page coloring.  When turned off, the page
		allocator acts like there is only one color.  Hasn't been used in a few
		years.

config BOXBORO
	depends on PAGE_COLORING
	bool "Boxboro-specific page coloring"
	default n
	help
		Say 'n'.

endmenu

menu "Kernel Debugging"

menu "Per-cpu Tracers"

config TRACE_KMSGS
	bool "KMSG Tracing"
	default n
	help
		Turns on KMSG tracing, using the per-cpu ring buffer (holds about 256
		events).  You can access this from the monitor via "trace pcpui".  Turn
		this off for a slight performance improvement on every KMSG (and every
		MCP proc_yield).

config TRACE_LOCKS
	bool "Lock Tracing"
	depends on SPINLOCK_DEBUG
	default n
	help
		Turns on lock tracing, using the per-cpu ring buffer.  This records the
		a timestamp and lock address, in an over-write tracing style (meaning
		it'll clobber older events).  If you have locking issues, this may give
		you clues as to which locks were grabbed recently.

endmenu

config DEVELOPMENT_ASSERTIONS
	bool "dasserts"
	default n
	help
		Turn on dassert() in code, dassert will compile to assert().

config SPINLOCK_DEBUG
	bool "Spinlock debugging"
	default n
	help
		Turns on debugging, which tracks the last time a lock was acquired and
		detects improper lock acquisition based on IRQ levels (e.g. using
		spin_lock() in IRQ context).  This will slow down all lock
		acquisitions.

config SEQLOCK_DEBUG
	bool "Seqlock debugging"
	default n
	help
		Provides asserts to detect seqlock errors.  This will allow a malicious
		userspace to trigger a panic in the kernel.

config SEMAPHORE_DEBUG
	bool "Semaphore debugging"
	default n
	help
		Turns on debugging, which tracks the last time and location that a
		semaphore was downed, and provides a linked list of all semaphores that
		have waiters.  This will slow down all semaphore ups and downs.

config SEM_SPINWAIT
	bool "Semaphore spinwaiting"
	default n
	help
		Turns on semaphore spinwaiting.  In lieu of intelligent Adaptive
		Mutexes, busy semaphores will just spin for a while before fully
		sleeping.

config SEM_SPINWAIT_NR_LOOPS
	int "Number of polls before sleeping"
	depends on SEM_SPINWAIT
	default 100
	help
		How many times to poll a busy semaphore before going to sleep.

config SEM_TRACE_BLOCKERS
	bool "Semaphore Blocker Tracing"
	default n
	help
		Drops a TRACEME whenever a semaphore would block (barring slight
		races).  To access the trace data, you'll need to use the opcontrols
		and process the data with op2.

config RESET_STACKS
	bool "Reset Stacks"
	default y
	help
		When idling, the kernel will reset the stack of its kernel thread to
		the top of the stack, abandoning its context.  This is useful so we do
		not run off the end of our stacks, but makes backtracing difficult.

config LARGE_KSTACKS
	bool "Large (two-page) Kernel Stacks"
	default y
	help
		Ideally, we'd like to use single-page stacks, which are easier on the
		memory allocator.  Some of the Plan 9 code hogs stack space, and we may
		run off the end of a single-page stack.

		Say 'y' to play it safe and use the larger, slower stacks.  Say 'n' for
		higher performance, and mention this setting if you have any weird
		crashes or panics.

config KTHREAD_POISON
	bool "Kthread Poison Canary"
	default n
	help
		Kthreads will use a bit of storage at the bottom of the stack to track
		the state of the kthread.  This is useful to catch various bugs with
		kthreading, such as launching the same kthread twice concurrently.

config DISABLE_SMT
	bool "Disables symmetric multithreading"
	default n
	help
		Disables hyperthreading by telling the kernel to never give out even
		numbered cores to MCPs.  This does not check to see if the threads are
		in fact siblings, or if the target machine is hyperthreaded.

config PRINTK_NO_BACKSPACE
	bool "Printk with no backspace"
	default n
	help
		One of the serial devices I was using a while back had issues printing
		backspaces.  This was an old hack to deal with that.

config SYSCALL_STRING_SAVING
	bool "Syscall string saving"
	default n
	help
		Kmallocs a small buffer for each syscall and attaches it to the
		kthread, which can be viewed when debugging semaphores.  Individual
		syscalls can save info in this buffer.

config BLOCK_EXTRAS
	bool "Block Extra Data"
	default y
	help
		Extends blocks to have a list of other memory blocks.  Useful for
		networking performance.  This is only an option while we debug the
		implementation.  Say y.  If you have networking bugs, try turning this
		off, and if that helps, tell someone.

endmenu

config VM
	bool "Virtual Machine support"
	default n
	help
		VM support -- not working! Based on KVM.

menuconfig NIX
	bool "NIX support"
	default n
	help
		NIX support -- Sort of working. You can start kernels that don't enable
		interrupts.

if NIX

config NIX_IMG_PADDR
	hex "Physical address for the NIX image"
	depends on NIX
	default 0x40000000
	help
		Physical address that the NIX device will allocate during
		initialization.

config NIX_IMG_SIZE
	hex "Size of the NIX image"
	depends on NIX
	default 0x40000000
	help
		Size in bytes of the NIX image.  Must be a power of two.

endif # NIX

menu "Misc/Old Options"

config ARSC_SERVER
	bool "Asynchronous remote syscalls"
	default n
	help
		Code to run a syscall-server on a core.  A process can submit syscalls
		and get the results asynchronously.  Hasn't been used in years.  Say
		'n' unless you want to play around.

# SPARC auto-selects this
config APPSERVER
	bool "Appserver"
	default n
	help
		Old school I/O was through a remote machine.  Not sure if anyone uses
		this anymore.

config SERIAL_IO
	bool "Serial IO"
	default n
	help
		Like the appserver, serial I/O was an old attempt to process I/O on a
		remote machine across the serial port.

config SINGLE_CORE
	bool "Single core"
	default n
	help
		Have the kernel boot only a single core.  Can be useful for debugging,
		but hasn't been used in years.

config BSD_ON_CORE0
	bool "BSD on core 0"
	default n
	help
		This was an old joke.  Say 'n', since we can't simply #include <bsd>.

endmenu

source "kern/src/ktest/Kconfig"
