# default config.  While this is x86 specific, when config'd for RISCV, the x86
# specific items will be ignored.
#
CONFIG_64BIT=y
CONFIG_X86=y
CONFIG_X86_64=y
CONFIG_RUN_INIT_SCRIPT=y
CONFIG_INIT_SCRIPT_PATH_AND_ARGS="/bin/init.sh"

#
# x86 Options
#
# CONFIG_PCI_VERBOSE is not set
# CONFIG_NOFASTCALL_FSBASE is not set

#
# x86 Hacks
#
CONFIG_NOMTRRS=y
# CONFIG_KB_CORE0_ONLY is not set
CONFIG_NETWORKING=y
CONFIG_SOCKET=y
# CONFIG_ETH_AUDIO is not set

#
# Drivers
#
# CONFIG_E1000 is not set
# CONFIG_RL8168 is not set
# CONFIG_NE2K is not set

#
# Filesystems
#
CONFIG_KFS=y
CONFIG_KFS_PATHS="kern/kfs"
CONFIG_KFS_CPIO_BIN=""

#
# Kernel Debugging
#
# CONFIG_SPINLOCK_DEBUG is not set
# CONFIG_SEQLOCK_DEBUG is not set
# CONFIG_DISABLE_SMT is not set
# CONFIG_PRINTK_NO_BACKSPACE is not set

#
# Misc/Old Options
#
# CONFIG_ARSC_SERVER is not set
# CONFIG_APPSERVER is not set
# CONFIG_SERIAL_IO is not set
# CONFIG_SINGLE_CORE is not set
# CONFIG_BSD_ON_CORE0 is not set
