]>
Commit | Line | Data |
---|---|---|
5cd16ee9 ME |
1 | #ifndef _ASM_POWERPC_PAGE_32_H |
2 | #define _ASM_POWERPC_PAGE_32_H | |
3 | ||
4 | #define VM_DATA_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS32 | |
5 | ||
6 | #ifndef __ASSEMBLY__ | |
7 | /* | |
8 | * The basic type of a PTE - 64 bits for those CPUs with > 32 bit | |
9 | * physical addressing. For now this just the IBM PPC440. | |
10 | */ | |
11 | #ifdef CONFIG_PTE_64BIT | |
12 | typedef unsigned long long pte_basic_t; | |
13 | #define PTE_SHIFT (PAGE_SHIFT - 3) /* 512 ptes per page */ | |
14 | #define PTE_FMT "%16Lx" | |
15 | #else | |
16 | typedef unsigned long pte_basic_t; | |
17 | #define PTE_SHIFT (PAGE_SHIFT - 2) /* 1024 ptes per page */ | |
18 | #define PTE_FMT "%.8lx" | |
19 | #endif | |
20 | ||
21 | struct page; | |
22 | extern void clear_pages(void *page, int order); | |
23 | static inline void clear_page(void *page) { clear_pages(page, 0); } | |
24 | extern void copy_page(void *to, void *from); | |
25 | ||
26 | /* Pure 2^n version of get_order */ | |
27 | extern __inline__ int get_order(unsigned long size) | |
28 | { | |
29 | int lz; | |
30 | ||
31 | size = (size-1) >> PAGE_SHIFT; | |
32 | asm ("cntlzw %0,%1" : "=r" (lz) : "r" (size)); | |
33 | return 32 - lz; | |
34 | } | |
35 | ||
36 | #endif /* __ASSEMBLY__ */ | |
37 | ||
38 | #endif /* _ASM_POWERPC_PAGE_32_H */ |