From 594ef813266053a7d6777b91be7724ee5b62ff7a Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Mon, 13 Jan 2014 00:49:49 -0600 Subject: lib: Add log2 ceiling function Change-Id: Ifb41050e729a0ce314e4d4918e46f82bc7e16bed Signed-off-by: Alexandru Gagniuc Reviewed-on: http://review.coreboot.org/4684 Tested-by: build bot (Jenkins) Reviewed-by: Ronald G. Minnich --- src/lib/clog2.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/lib/clog2.c') 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; +} -- cgit v1.2.3