menu "Host processor type and features"

source "arch/x86/Kconfig.cpu"

endmenu

config UML_X86
	bool
	default y

config X86_32
       bool
       default y

config RWSEM_XCHGADD_ALGORITHM
	def_bool 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

