diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/clog2.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/lib/clog2.c b/src/lib/clog2.c index b908762917..5e0d591de4 100644 --- a/src/lib/clog2.c +++ b/src/lib/clog2.c @@ -1,9 +1,4 @@ -#undef DEBUG_LOG2 - -#ifdef DEBUG_LOG2 #include <console/console.h> -#endif - #include <lib.h> /* Assume 8 bits per byte */ @@ -11,28 +6,26 @@ unsigned long log2(unsigned long x) { - // assume 8 bits per byte. - unsigned long i = 1ULL << (sizeof(x)* CHAR_BIT - 1ULL); - unsigned long pow = sizeof(x) * CHAR_BIT - 1ULL; + /* assume 8 bits per byte. */ + unsigned long pow = sizeof(x) * CHAR_BIT - 1ULL; + unsigned long i = 1ULL << pow; - if (! x) { -#ifdef DEBUG_LOG2 - printk(BIOS_WARNING, "%s called with invalid parameter of 0\n", + if (!x) { + printk(BIOS_WARNING, "%s called with invalid parameter of 0\n", __func__); -#endif - return -1; - } - for(; i > x; i >>= 1, pow--) - ; + return -1; + } - return pow; + for (; i > x; i >>= 1, pow--); + + return pow; } unsigned long log2_ceil(unsigned long x) { unsigned long pow; - if (! x) + if (!x) return -1; pow = log2(x); |