menu "Host processor type and features"

source "arch/x86/Kconfig.cpu"

endmenu

config UML_X86
	bool
	default y

config 64BIT
	bool
	default n

config SEMAPHORE_SLEEPERS
	bool
	default y

choice
	prompt "Host memory split"
	default HOST_VMSPLIT_3G
	help
        This is needed when the host kernel on which you run has a non-default
	(like 2G/2G) memory split, instead of the customary 3G/1G. If you did
	not recompile your own kernel but use the default distro's one, you can
	safely accept the "Default split" option.

	It can be enabled on recent (>=2.6.16-rc2) vanilla kernels via
	CONFIG_VM_SPLIT_*, or on previous kernels with special patches (-ck
	patchset by Con Kolivas, or other ones) - option names match closely the
	host CONFIG_VM_SPLIT_* ones.

	A lower setting (where 1G/3G is lowest and 3G/1G is higher) will
	tolerate even more "normal" host kernels, but an higher setting will be
	stricter.

	So, if you do not know what to do here, say 'Default split'.

config HOST_VMSPLIT_3G
	bool "Default split (3G/1G user/kernel host split)"
config HOST_VMSPLIT_3G_OPT
	bool "3G/1G user/kernel host split (for full 1G low memory)"
config HOST_VMSPLIT_2G
	bool "2G/2G user/kernel host split"
config HOST_VMSPLIT_1G
	bool "1G/3G user/kernel host split"
endchoice

config TOP_ADDR
	hex
	default 0xB0000000 if HOST_VMSPLIT_3G_OPT
	default 0x78000000 if HOST_VMSPLIT_2G
	default 0x40000000 if HOST_VMSPLIT_1G
	default 0xC0000000

config 3_LEVEL_PGTABLES
	bool "Three-level pagetables (EXPERIMENTAL)"
	default n
	depends on EXPERIMENTAL
	help
	Three-level pagetables will let UML have more than 4G of physical
	memory.  All the memory that can't be mapped directly will be treated
	as high memory.

	However, this it experimental on 32-bit architectures, so if unsure say
	N (on x86-64 it's automatically enabled, instead, as it's safe there).

config ARCH_HAS_SC_SIGNALS
	bool
	default y

config ARCH_REUSE_HOST_VSYSCALL_AREA
	bool
	default y

config GENERIC_HWEIGHT
	bool
	default y

