summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/clog2.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/clog2.c b/src/lib/clog2.c
index c6fe6f6cc8..b908762917 100644
--- a/src/lib/clog2.c
+++ b/src/lib/clog2.c
@@ -27,3 +27,18 @@ unsigned long log2(unsigned long x)
return pow;
}
+
+unsigned long log2_ceil(unsigned long x)
+{
+ unsigned long pow;
+
+ if (! x)
+ return -1;
+
+ pow = log2(x);
+
+ if (x > (1ULL << pow))
+ pow++;
+
+ return pow;
+}