Arnd Bergmann | 5b17e1c | 2009-05-13 22:56:30 +0000 | [diff] [blame] | 1 | #ifndef __ASM_GENERIC_GETORDER_H |
2 | #define __ASM_GENERIC_GETORDER_H | ||||
3 | |||||
4 | #ifndef __ASSEMBLY__ | ||||
5 | |||||
6 | #include <linux/compiler.h> | ||||
7 | |||||
8 | /* Pure 2^n version of get_order */ | ||||
9 | static inline __attribute_const__ int get_order(unsigned long size) | ||||
10 | { | ||||
11 | int order; | ||||
12 | |||||
13 | size = (size - 1) >> (PAGE_SHIFT - 1); | ||||
14 | order = -1; | ||||
15 | do { | ||||
16 | size >>= 1; | ||||
17 | order++; | ||||
18 | } while (size); | ||||
19 | return order; | ||||
20 | } | ||||
21 | |||||
22 | #endif /* __ASSEMBLY__ */ | ||||
23 | |||||
24 | #endif /* __ASM_GENERIC_GETORDER_H */ |