diff options
Diffstat (limited to 'include/asm-ppc/page.h')
-rw-r--r-- | include/asm-ppc/page.h | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/include/asm-ppc/page.h b/include/asm-ppc/page.h deleted file mode 100644 index 37e4756b6b2d..000000000000 --- a/include/asm-ppc/page.h +++ /dev/null | |||
@@ -1,140 +0,0 @@ | |||
1 | #ifndef _PPC_PAGE_H | ||
2 | #define _PPC_PAGE_H | ||
3 | |||
4 | #include <asm/asm-compat.h> | ||
5 | |||
6 | /* PAGE_SHIFT determines the page size */ | ||
7 | #define PAGE_SHIFT 12 | ||
8 | #define PAGE_SIZE (ASM_CONST(1) << PAGE_SHIFT) | ||
9 | |||
10 | /* | ||
11 | * Subtle: this is an int (not an unsigned long) and so it | ||
12 | * gets extended to 64 bits the way want (i.e. with 1s). -- paulus | ||
13 | */ | ||
14 | #define PAGE_MASK (~((1 << PAGE_SHIFT) - 1)) | ||
15 | |||
16 | #ifdef __KERNEL__ | ||
17 | |||
18 | /* This must match what is in arch/ppc/Makefile */ | ||
19 | #define PAGE_OFFSET CONFIG_KERNEL_START | ||
20 | #define KERNELBASE PAGE_OFFSET | ||
21 | #define is_kernel_addr(x) ((x) >= PAGE_OFFSET) | ||
22 | |||
23 | #ifndef __ASSEMBLY__ | ||
24 | |||
25 | /* | ||
26 | * The basic type of a PTE - 64 bits for those CPUs with > 32 bit | ||
27 | * physical addressing. For now this just the IBM PPC440. | ||
28 | */ | ||
29 | #ifdef CONFIG_PTE_64BIT | ||
30 | typedef unsigned long long pte_basic_t; | ||
31 | #define PTE_SHIFT (PAGE_SHIFT - 3) /* 512 ptes per page */ | ||
32 | #define PTE_FMT "%16Lx" | ||
33 | #else | ||
34 | typedef unsigned long pte_basic_t; | ||
35 | #define PTE_SHIFT (PAGE_SHIFT - 2) /* 1024 ptes per page */ | ||
36 | #define PTE_FMT "%.8lx" | ||
37 | #endif | ||
38 | |||
39 | /* align addr on a size boundary - adjust address up/down if needed */ | ||
40 | #define _ALIGN_UP(addr,size) (((addr)+((size)-1))&(~((size)-1))) | ||
41 | #define _ALIGN_DOWN(addr,size) ((addr)&(~((size)-1))) | ||
42 | |||
43 | /* align addr on a size boundary - adjust address up if needed */ | ||
44 | #define _ALIGN(addr,size) _ALIGN_UP(addr,size) | ||
45 | |||
46 | /* to align the pointer to the (next) page boundary */ | ||
47 | #define PAGE_ALIGN(addr) _ALIGN(addr, PAGE_SIZE) | ||
48 | |||
49 | |||
50 | #undef STRICT_MM_TYPECHECKS | ||
51 | |||
52 | #ifdef STRICT_MM_TYPECHECKS | ||
53 | /* | ||
54 | * These are used to make use of C type-checking.. | ||
55 | */ | ||
56 | typedef struct { pte_basic_t pte; } pte_t; | ||
57 | typedef struct { unsigned long pmd; } pmd_t; | ||
58 | typedef struct { unsigned long pgd; } pgd_t; | ||
59 | typedef struct { unsigned long pgprot; } pgprot_t; | ||
60 | |||
61 | #define pte_val(x) ((x).pte) | ||
62 | #define pmd_val(x) ((x).pmd) | ||
63 | #define pgd_val(x) ((x).pgd) | ||
64 | #define pgprot_val(x) ((x).pgprot) | ||
65 | |||
66 | #define __pte(x) ((pte_t) { (x) } ) | ||
67 | #define __pmd(x) ((pmd_t) { (x) } ) | ||
68 | #define __pgd(x) ((pgd_t) { (x) } ) | ||
69 | #define __pgprot(x) ((pgprot_t) { (x) } ) | ||
70 | |||
71 | #else | ||
72 | /* | ||
73 | * .. while these make it easier on the compiler | ||
74 | */ | ||
75 | typedef pte_basic_t pte_t; | ||
76 | typedef unsigned long pmd_t; | ||
77 | typedef unsigned long pgd_t; | ||
78 | typedef unsigned long pgprot_t; | ||
79 | |||
80 | #define pte_val(x) (x) | ||
81 | #define pmd_val(x) (x) | ||
82 | #define pgd_val(x) (x) | ||
83 | #define pgprot_val(x) (x) | ||
84 | |||
85 | #define __pte(x) (x) | ||
86 | #define __pmd(x) (x) | ||
87 | #define __pgd(x) (x) | ||
88 | #define __pgprot(x) (x) | ||
89 | |||
90 | #endif | ||
91 | |||
92 | struct page; | ||
93 | extern void clear_pages(void *page, int order); | ||
94 | static inline void clear_page(void *page) { clear_pages(page, 0); } | ||
95 | extern void copy_page(void *to, void *from); | ||
96 | extern void clear_user_page(void *page, unsigned long vaddr, struct page *pg); | ||
97 | extern void copy_user_page(void *to, void *from, unsigned long vaddr, | ||
98 | struct page *pg); | ||
99 | |||
100 | #define PPC_MEMSTART 0 | ||
101 | #define PPC_MEMOFFSET PAGE_OFFSET | ||
102 | |||
103 | #define ___pa(vaddr) ((vaddr)-PPC_MEMOFFSET) | ||
104 | #define ___va(paddr) ((paddr)+PPC_MEMOFFSET) | ||
105 | |||
106 | extern int page_is_ram(unsigned long pfn); | ||
107 | |||
108 | #define __pa(x) ___pa((unsigned long)(x)) | ||
109 | #define __va(x) ((void *)(___va((unsigned long)(x)))) | ||
110 | |||
111 | #define ARCH_PFN_OFFSET 0 | ||
112 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) | ||
113 | #define page_to_virt(page) __va(page_to_pfn(page) << PAGE_SHIFT) | ||
114 | |||
115 | #define pfn_valid(pfn) ((pfn) < max_mapnr) | ||
116 | #define virt_addr_valid(kaddr) pfn_valid(__pa(kaddr) >> PAGE_SHIFT) | ||
117 | |||
118 | /* Pure 2^n version of get_order */ | ||
119 | extern __inline__ int get_order(unsigned long size) | ||
120 | { | ||
121 | int lz; | ||
122 | |||
123 | size = (size-1) >> PAGE_SHIFT; | ||
124 | asm ("cntlzw %0,%1" : "=r" (lz) : "r" (size)); | ||
125 | return 32 - lz; | ||
126 | } | ||
127 | |||
128 | typedef struct page *pgtable_t; | ||
129 | |||
130 | #endif /* __ASSEMBLY__ */ | ||
131 | |||
132 | #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ | ||
133 | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) | ||
134 | |||
135 | /* We do define AT_SYSINFO_EHDR but don't use the gate mechanism */ | ||
136 | #define __HAVE_ARCH_GATE_AREA 1 | ||
137 | |||
138 | #include <asm-generic/memory_model.h> | ||
139 | #endif /* __KERNEL__ */ | ||
140 | #endif /* _PPC_PAGE_H */ | ||