7543c1de84
Impact: simplification We only need to map the kernel in head_32.S, not the whole of lowmem. We use 512MB as a reasonable (but arbitrary) limit on the maximum size of the kernel image. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
66 lines
1.7 KiB
C
66 lines
1.7 KiB
C
#ifndef _ASM_X86_PAGE_32_DEFS_H
|
|
#define _ASM_X86_PAGE_32_DEFS_H
|
|
|
|
#include <linux/const.h>
|
|
|
|
/*
|
|
* This handles the memory map.
|
|
*
|
|
* A __PAGE_OFFSET of 0xC0000000 means that the kernel has
|
|
* a virtual address space of one gigabyte, which limits the
|
|
* amount of physical memory you can use to about 950MB.
|
|
*
|
|
* If you want more physical memory than this then see the CONFIG_HIGHMEM4G
|
|
* and CONFIG_HIGHMEM64G options in the kernel configuration.
|
|
*/
|
|
#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
|
|
|
|
#ifdef CONFIG_4KSTACKS
|
|
#define THREAD_ORDER 0
|
|
#else
|
|
#define THREAD_ORDER 1
|
|
#endif
|
|
#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER)
|
|
|
|
#define STACKFAULT_STACK 0
|
|
#define DOUBLEFAULT_STACK 1
|
|
#define NMI_STACK 0
|
|
#define DEBUG_STACK 0
|
|
#define MCE_STACK 0
|
|
#define N_EXCEPTION_STACKS 1
|
|
|
|
#ifdef CONFIG_X86_PAE
|
|
/* 44=32+12, the limit we can fit into an unsigned long pfn */
|
|
#define __PHYSICAL_MASK_SHIFT 44
|
|
#define __VIRTUAL_MASK_SHIFT 32
|
|
|
|
#else /* !CONFIG_X86_PAE */
|
|
#define __PHYSICAL_MASK_SHIFT 32
|
|
#define __VIRTUAL_MASK_SHIFT 32
|
|
#endif /* CONFIG_X86_PAE */
|
|
|
|
/*
|
|
* Kernel image size is limited to 512 MB (see in arch/x86/kernel/head_32.S)
|
|
*/
|
|
#define KERNEL_IMAGE_SIZE (512 * 1024 * 1024)
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
/*
|
|
* This much address space is reserved for vmalloc() and iomap()
|
|
* as well as fixmap mappings.
|
|
*/
|
|
extern unsigned int __VMALLOC_RESERVE;
|
|
extern int sysctl_legacy_va_layout;
|
|
|
|
extern void find_low_pfn_range(void);
|
|
extern unsigned long init_memory_mapping(unsigned long start,
|
|
unsigned long end);
|
|
extern void initmem_init(unsigned long, unsigned long);
|
|
extern void free_initmem(void);
|
|
extern void setup_bootmem_allocator(void);
|
|
|
|
#endif /* !__ASSEMBLY__ */
|
|
|
|
#endif /* _ASM_X86_PAGE_32_DEFS_H */
|