| 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 */ | ||||