aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ppc/page.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ppc/page.h')
-rw-r--r--include/asm-ppc/page.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/include/asm-ppc/page.h b/include/asm-ppc/page.h
index 4789dc024240..538e0c8ab243 100644
--- a/include/asm-ppc/page.h
+++ b/include/asm-ppc/page.h
@@ -1,9 +1,12 @@
1#ifndef _PPC_PAGE_H 1#ifndef _PPC_PAGE_H
2#define _PPC_PAGE_H 2#define _PPC_PAGE_H
3 3
4#include <linux/config.h>
5#include <asm/asm-compat.h>
6
4/* PAGE_SHIFT determines the page size */ 7/* PAGE_SHIFT determines the page size */
5#define PAGE_SHIFT 12 8#define PAGE_SHIFT 12
6#define PAGE_SIZE (1UL << PAGE_SHIFT) 9#define PAGE_SIZE (ASM_CONST(1) << PAGE_SHIFT)
7 10
8/* 11/*
9 * Subtle: this is an int (not an unsigned long) and so it 12 * Subtle: this is an int (not an unsigned long) and so it
@@ -34,6 +37,17 @@ typedef unsigned long pte_basic_t;
34#define PTE_FMT "%.8lx" 37#define PTE_FMT "%.8lx"
35#endif 38#endif
36 39
40/* align addr on a size boundary - adjust address up/down if needed */
41#define _ALIGN_UP(addr,size) (((addr)+((size)-1))&(~((size)-1)))
42#define _ALIGN_DOWN(addr,size) ((addr)&(~((size)-1)))
43
44/* align addr on a size boundary - adjust address up if needed */
45#define _ALIGN(addr,size) _ALIGN_UP(addr,size)
46
47/* to align the pointer to the (next) page boundary */
48#define PAGE_ALIGN(addr) _ALIGN(addr, PAGE_SIZE)
49
50
37#undef STRICT_MM_TYPECHECKS 51#undef STRICT_MM_TYPECHECKS
38 52
39#ifdef STRICT_MM_TYPECHECKS 53#ifdef STRICT_MM_TYPECHECKS
@@ -76,13 +90,6 @@ typedef unsigned long pgprot_t;
76 90
77#endif 91#endif
78 92
79
80/* align addr on a size boundary - adjust address up if needed -- Cort */
81#define _ALIGN(addr,size) (((addr)+(size)-1)&(~((size)-1)))
82
83/* to align the pointer to the (next) page boundary */
84#define PAGE_ALIGN(addr) (((addr)+PAGE_SIZE-1)&PAGE_MASK)
85
86struct page; 93struct page;
87extern void clear_pages(void *page, int order); 94extern void clear_pages(void *page, int order);
88static inline void clear_page(void *page) { clear_pages(page, 0); } 95static inline void clear_page(void *page) { clear_pages(page, 0); }
@@ -165,5 +172,8 @@ extern __inline__ int get_order(unsigned long size)
165#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ 172#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
166 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 173 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
167 174
175/* We do define AT_SYSINFO_EHDR but don't use the gate mecanism */
176#define __HAVE_ARCH_GATE_AREA 1
177
168#endif /* __KERNEL__ */ 178#endif /* __KERNEL__ */
169#endif /* _PPC_PAGE_H */ 179#endif /* _PPC_PAGE_H */