blob: ebfae530a3799b075c201df143394d1694ef74e7 [file] [log] [blame]
Michael Ellerman5cd16ee2005-11-11 14:25:24 +11001#ifndef _ASM_POWERPC_PAGE_32_H
2#define _ASM_POWERPC_PAGE_32_H
3
Kumar Gala37dd2ba2008-04-22 04:22:34 +10004#if defined(CONFIG_PHYSICAL_ALIGN) && (CONFIG_PHYSICAL_START != 0)
5#if (CONFIG_PHYSICAL_START % CONFIG_PHYSICAL_ALIGN) != 0
6#error "CONFIG_PHYSICAL_START must be a multiple of CONFIG_PHYSICAL_ALIGN"
7#endif
8#endif
9
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110010#define VM_DATA_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS32
11
Benjamin Herrenschmidt52142e72007-11-19 19:25:06 +110012#ifdef CONFIG_NOT_COHERENT_CACHE
13#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
14#endif
15
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110016#ifndef __ASSEMBLY__
17/*
18 * The basic type of a PTE - 64 bits for those CPUs with > 32 bit
19 * physical addressing. For now this just the IBM PPC440.
20 */
21#ifdef CONFIG_PTE_64BIT
22typedef unsigned long long pte_basic_t;
23#define PTE_SHIFT (PAGE_SHIFT - 3) /* 512 ptes per page */
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110024#else
25typedef unsigned long pte_basic_t;
26#define PTE_SHIFT (PAGE_SHIFT - 2) /* 1024 ptes per page */
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110027#endif
28
29struct page;
30extern void clear_pages(void *page, int order);
31static inline void clear_page(void *page) { clear_pages(page, 0); }
32extern void copy_page(void *to, void *from);
33
David Howellsef55d532006-12-08 02:37:53 -080034#include <asm-generic/page.h>
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110035
36#endif /* __ASSEMBLY__ */
37
Michael Ellerman5cd16ee2005-11-11 14:25:24 +110038#endif /* _ASM_POWERPC_PAGE_32_H */