summaryrefslogtreecommitdiff
path: root/include/asm-generic/getorder.h
diff options
context:
space:
mode:
authorStephen Rothwell <sfr@canb.auug.org.au>2009-05-18 17:55:24 +1000
committerStephen Rothwell <sfr@canb.auug.org.au>2009-05-18 17:55:24 +1000
commita42bc5ef61cd6a1e7b9ef9a04a16bae628e23d6c (patch)
treee41ef340022a85abeefa9cba070c30acda5e0b06 /include/asm-generic/getorder.h
parentfe8b44a9ede7df70b886e53d3ca609eaa675aaf1 (diff)
parent52f9ce5dd9c55445b658cde1d3883afa871b4828 (diff)
Merge commit 'asm-generic/next'
Diffstat (limited to 'include/asm-generic/getorder.h')
-rw-r--r--include/asm-generic/getorder.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/asm-generic/getorder.h b/include/asm-generic/getorder.h
new file mode 100644
index 000000000000..67e7245dc9b3
--- /dev/null
+++ b/include/asm-generic/getorder.h
@@ -0,0 +1,24 @@
+#ifndef __ASM_GENERIC_GETORDER_H
+#define __ASM_GENERIC_GETORDER_H
+
+#ifndef __ASSEMBLY__
+
+#include <linux/compiler.h>
+
+/* Pure 2^n version of get_order */
+static inline __attribute_const__ int get_order(unsigned long size)
+{
+ int order;
+
+ size = (size - 1) >> (PAGE_SHIFT - 1);
+ order = -1;
+ do {
+ size >>= 1;
+ order++;
+ } while (size);
+ return order;
+}
+
+#endif /* __ASSEMBLY__ */
+
+#endif /* __ASM_GENERIC_GETORDER_H */