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 v2.6.25-rc5 91 lines 2.5 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 PUD_PAGE_SIZE (_AC(1, UL) << PUD_SHIFT) 27#define PUD_PAGE_MASK (~(PUD_PAGE_SIZE-1)) 28 29#define __PAGE_OFFSET _AC(0xffff810000000000, UL) 30 31#define __PHYSICAL_START CONFIG_PHYSICAL_START 32#define __KERNEL_ALIGN 0x200000 33 34/* 35 * Make sure kernel is aligned to 2MB address. Catching it at compile 36 * time is better. Change your config file and compile the kernel 37 * for a 2MB aligned address (CONFIG_PHYSICAL_START) 38 */ 39#if (CONFIG_PHYSICAL_START % __KERNEL_ALIGN) != 0 40#error "CONFIG_PHYSICAL_START must be a multiple of 2MB" 41#endif 42 43#define __START_KERNEL (__START_KERNEL_map + __PHYSICAL_START) 44#define __START_KERNEL_map _AC(0xffffffff80000000, UL) 45 46/* See Documentation/x86_64/mm.txt for a description of the memory map. */ 47#define __PHYSICAL_MASK_SHIFT 46 48#define __VIRTUAL_MASK_SHIFT 48 49 50/* 51 * Kernel image size is limited to 128 MB (see level2_kernel_pgt in 52 * arch/x86/kernel/head_64.S), and it is mapped here: 53 */ 54#define KERNEL_IMAGE_SIZE (128*1024*1024) 55#define KERNEL_IMAGE_START _AC(0xffffffff80000000, UL) 56 57#ifndef __ASSEMBLY__ 58void clear_page(void *page); 59void copy_page(void *to, void *from); 60 61extern unsigned long end_pfn; 62extern unsigned long end_pfn_map; 63extern unsigned long phys_base; 64 65extern unsigned long __phys_addr(unsigned long); 66#define __phys_reloc_hide(x) (x) 67 68/* 69 * These are used to make use of C type-checking.. 70 */ 71typedef unsigned long pteval_t; 72typedef unsigned long pmdval_t; 73typedef unsigned long pudval_t; 74typedef unsigned long pgdval_t; 75typedef unsigned long pgprotval_t; 76typedef unsigned long phys_addr_t; 77 78typedef struct page *pgtable_t; 79 80typedef struct { pteval_t pte; } pte_t; 81 82#define vmemmap ((struct page *)VMEMMAP_START) 83 84#endif /* !__ASSEMBLY__ */ 85 86#ifdef CONFIG_FLATMEM 87#define pfn_valid(pfn) ((pfn) < end_pfn) 88#endif 89 90 91#endif /* _X86_64_PAGE_H */