ftrace: remove unneeded documentation
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / asm-x86 / page_32.h
blobccf0ba3c3abac74f4329221876987df4b284ac95
1 #ifndef _ASM_X86_PAGE_32_H
2 #define _ASM_X86_PAGE_32_H
4 /*
5 * This handles the memory map.
7 * A __PAGE_OFFSET of 0xC0000000 means that the kernel has
8 * a virtual address space of one gigabyte, which limits the
9 * amount of physical memory you can use to about 950MB.
11 * If you want more physical memory than this then see the CONFIG_HIGHMEM4G
12 * and CONFIG_HIGHMEM64G options in the kernel configuration.
14 #define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
16 #ifdef CONFIG_X86_PAE
17 /* 44=32+12, the limit we can fit into an unsigned long pfn */
18 #define __PHYSICAL_MASK_SHIFT 44
19 #define __VIRTUAL_MASK_SHIFT 32
20 #define PAGETABLE_LEVELS 3
22 #ifndef __ASSEMBLY__
23 typedef u64 pteval_t;
24 typedef u64 pmdval_t;
25 typedef u64 pudval_t;
26 typedef u64 pgdval_t;
27 typedef u64 pgprotval_t;
28 typedef u64 phys_addr_t;
30 typedef union {
31 struct {
32 unsigned long pte_low, pte_high;
34 pteval_t pte;
35 } pte_t;
36 #endif /* __ASSEMBLY__
38 #else /* !CONFIG_X86_PAE */
39 #define __PHYSICAL_MASK_SHIFT 32
40 #define __VIRTUAL_MASK_SHIFT 32
41 #define PAGETABLE_LEVELS 2
43 #ifndef __ASSEMBLY__
44 typedef unsigned long pteval_t;
45 typedef unsigned long pmdval_t;
46 typedef unsigned long pudval_t;
47 typedef unsigned long pgdval_t;
48 typedef unsigned long pgprotval_t;
49 typedef unsigned long phys_addr_t;
51 typedef union {
52 pteval_t pte;
53 pteval_t pte_low;
54 } pte_t;
56 #endif /* __ASSEMBLY__ */
57 #endif /* CONFIG_X86_PAE */
59 #ifndef __ASSEMBLY__
60 typedef struct page *pgtable_t;
61 #endif
63 #ifdef CONFIG_HUGETLB_PAGE
64 #define HAVE_ARCH_HUGETLB_UNMAPPED_AREA
65 #endif
67 #ifndef __ASSEMBLY__
68 #define __phys_addr(x) ((x) - PAGE_OFFSET)
69 #define __phys_reloc_hide(x) RELOC_HIDE((x), 0)
71 #ifdef CONFIG_FLATMEM
72 #define pfn_valid(pfn) ((pfn) < max_mapnr)
73 #endif /* CONFIG_FLATMEM */
75 extern int nx_enabled;
78 * This much address space is reserved for vmalloc() and iomap()
79 * as well as fixmap mappings.
81 extern unsigned int __VMALLOC_RESERVE;
82 extern int sysctl_legacy_va_layout;
84 #define VMALLOC_RESERVE ((unsigned long)__VMALLOC_RESERVE)
85 #define MAXMEM (-__PAGE_OFFSET - __VMALLOC_RESERVE)
87 #ifdef CONFIG_X86_USE_3DNOW
88 #include <asm/mmx.h>
90 static inline void clear_page(void *page)
92 mmx_clear_page(page);
95 static inline void copy_page(void *to, void *from)
97 mmx_copy_page(to, from);
99 #else /* !CONFIG_X86_USE_3DNOW */
100 #include <linux/string.h>
102 static inline void clear_page(void *page)
104 memset(page, 0, PAGE_SIZE);
107 static inline void copy_page(void *to, void *from)
109 memcpy(to, from, PAGE_SIZE);
111 #endif /* CONFIG_X86_3DNOW */
112 #endif /* !__ASSEMBLY__ */
114 #endif /* _ASM_X86_PAGE_32_H */