Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at c9a28fa7b9ac19b676deefa0a171ce7df8755c08 82 lines 2.2 kB view raw
1#ifndef _X86_64_PAGE_H 2#define _X86_64_PAGE_H 3 4#define PAGETABLE_LEVELS 4 5 6#define THREAD_ORDER 1 7#define THREAD_SIZE (PAGE_SIZE << THREAD_ORDER) 8#define CURRENT_MASK (~(THREAD_SIZE-1)) 9 10#define EXCEPTION_STACK_ORDER 0 11#define EXCEPTION_STKSZ (PAGE_SIZE << EXCEPTION_STACK_ORDER) 12 13#define DEBUG_STACK_ORDER (EXCEPTION_STACK_ORDER + 1) 14#define DEBUG_STKSZ (PAGE_SIZE << DEBUG_STACK_ORDER) 15 16#define IRQSTACK_ORDER 2 17#define IRQSTACKSIZE (PAGE_SIZE << IRQSTACK_ORDER) 18 19#define STACKFAULT_STACK 1 20#define DOUBLEFAULT_STACK 2 21#define NMI_STACK 3 22#define DEBUG_STACK 4 23#define MCE_STACK 5 24#define N_EXCEPTION_STACKS 5 /* hw limit: 7 */ 25 26#define __PAGE_OFFSET _AC(0xffff810000000000, UL) 27 28#define __PHYSICAL_START CONFIG_PHYSICAL_START 29#define __KERNEL_ALIGN 0x200000 30 31/* 32 * Make sure kernel is aligned to 2MB address. Catching it at compile 33 * time is better. Change your config file and compile the kernel 34 * for a 2MB aligned address (CONFIG_PHYSICAL_START) 35 */ 36#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0 37#error "CONFIG_PHYSICAL_START must be a multiple of 2MB" 38#endif 39 40#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) 41#define __START_KERNEL_map _AC(0xffffffff80000000, UL) 42 43/* See Documentation/x86_64/mm.txt for a description of the memory map. */ 44#define __PHYSICAL_MASK_SHIFT 46 45#define __VIRTUAL_MASK_SHIFT 48 46 47#define KERNEL_TEXT_SIZE (40*1024*1024) 48#define KERNEL_TEXT_START _AC(0xffffffff80000000, UL) 49 50#ifndef __ASSEMBLY__ 51void clear_page(void *page); 52void copy_page(void *to, void *from); 53 54extern unsigned long end_pfn; 55extern unsigned long end_pfn_map; 56extern unsigned long phys_base; 57 58extern unsigned long __phys_addr(unsigned long); 59#define __phys_reloc_hide(x) (x) 60 61/* 62 * These are used to make use of C type-checking.. 63 */ 64typedef unsigned long pteval_t; 65typedef unsigned long pmdval_t; 66typedef unsigned long pudval_t; 67typedef unsigned long pgdval_t; 68typedef unsigned long pgprotval_t; 69typedef unsigned long phys_addr_t; 70 71typedef struct { pteval_t pte; } pte_t; 72 73#define vmemmap ((struct page *)VMEMMAP_START) 74 75#endif /* !__ASSEMBLY__ */ 76 77#ifdef CONFIG_FLATMEM 78#define pfn_valid(pfn) ((pfn) < end_pfn) 79#endif 80 81 82#endif /* _X86_64_PAGE_H */