#define _ALPHA_BITOPS_H
#include <linux/config.h>
-#include <linux/kernel.h>
#include <asm/compiler.h>
/*
#endif
/* Compute powers of two for the given integer. */
-static inline int floor_log2(unsigned long word)
+static inline long floor_log2(unsigned long word)
{
#if defined(__alpha_cix__) && defined(__alpha_fix__)
return 63 - __kernel_ctlz(word);
#endif
}
-static inline int ceil_log2(unsigned int word)
+static inline long ceil_log2(unsigned long word)
{
long bit = floor_log2(word);
return bit + (word > (1UL << bit));
* Find next zero bit in a bitmap reasonably efficiently..
*/
static inline unsigned long
-find_next_zero_bit(void * addr, unsigned long size, unsigned long offset)
+find_next_zero_bit(const void *addr, unsigned long size, unsigned long offset)
{
- unsigned long * p = ((unsigned long *) addr) + (offset >> 6);
+ const unsigned long *p = addr;
unsigned long result = offset & ~63UL;
unsigned long tmp;
+ p += offset >> 6;
if (offset >= size)
return size;
size -= result;
* Find next one bit in a bitmap reasonably efficiently.
*/
static inline unsigned long
-find_next_bit(void * addr, unsigned long size, unsigned long offset)
+find_next_bit(const void * addr, unsigned long size, unsigned long offset)
{
- unsigned long * p = ((unsigned long *) addr) + (offset >> 6);
+ const unsigned long *p = addr;
unsigned long result = offset & ~63UL;
unsigned long tmp;
+ p += offset >> 6;
if (offset >= size)
return size;
size -= result;