[PATCH] LOG2: Alter get_order() so that it can make use of ilog2() on a constant
[deliverable/linux.git] / include / asm-powerpc / page_32.h
CommitLineData
5cd16ee9
ME
1#ifndef _ASM_POWERPC_PAGE_32_H
2#define _ASM_POWERPC_PAGE_32_H
88ced031 3#ifdef __KERNEL__
5cd16ee9
ME
4
5#define VM_DATA_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS32
6
493f25ef
PM
7#define PPC_MEMSTART 0
8
5cd16ee9
ME
9#ifndef __ASSEMBLY__
10/*
11 * The basic type of a PTE - 64 bits for those CPUs with > 32 bit
12 * physical addressing. For now this just the IBM PPC440.
13 */
14#ifdef CONFIG_PTE_64BIT
15typedef unsigned long long pte_basic_t;
16#define PTE_SHIFT (PAGE_SHIFT - 3) /* 512 ptes per page */
17#define PTE_FMT "%16Lx"
18#else
19typedef unsigned long pte_basic_t;
20#define PTE_SHIFT (PAGE_SHIFT - 2) /* 1024 ptes per page */
21#define PTE_FMT "%.8lx"
22#endif
23
24struct page;
25extern void clear_pages(void *page, int order);
26static inline void clear_page(void *page) { clear_pages(page, 0); }
27extern void copy_page(void *to, void *from);
28
29/* Pure 2^n version of get_order */
30extern __inline__ int get_order(unsigned long size)
31{
32 int lz;
33
34 size = (size-1) >> PAGE_SHIFT;
35 asm ("cntlzw %0,%1" : "=r" (lz) : "r" (size));
36 return 32 - lz;
37}
38
39#endif /* __ASSEMBLY__ */
40
88ced031 41#endif /* __KERNEL__ */
5cd16ee9 42#endif /* _ASM_POWERPC_PAGE_32_H */
This page took 0.186323 seconds and 5 git commands to generate.