blob: a96b5d986b6e8b1f05fb896adacae85b4243149c [file] [log] [blame]
Stephen Rothwellfd4fd5a2005-09-03 15:54:30 -07001#ifndef _ASM_GENERIC_PAGE_H
2#define _ASM_GENERIC_PAGE_H
3
4#ifdef __KERNEL__
5#ifndef __ASSEMBLY__
6
Linus Torvalds38f33232007-03-06 19:38:01 -08007#include <linux/compiler.h>
Stephen Rothwellfd4fd5a2005-09-03 15:54:30 -07008
Linus Torvalds38f33232007-03-06 19:38:01 -08009/* Pure 2^n version of get_order */
10static __inline__ __attribute_const__ int get_order(unsigned long size)
Stephen Rothwellfd4fd5a2005-09-03 15:54:30 -070011{
12 int order;
13
Linus Torvalds38f33232007-03-06 19:38:01 -080014 size = (size - 1) >> (PAGE_SHIFT - 1);
Stephen Rothwellfd4fd5a2005-09-03 15:54:30 -070015 order = -1;
16 do {
17 size >>= 1;
18 order++;
19 } while (size);
20 return order;
21}
Stephen Rothwellfd4fd5a2005-09-03 15:54:30 -070022
23#endif /* __ASSEMBLY__ */
24#endif /* __KERNEL__ */
25
26#endif /* _ASM_GENERIC_PAGE_H */