1 #ifndef _ASM_WORD_AT_A_TIME_H
2 #define _ASM_WORD_AT_A_TIME_H
4 #include <linux/kernel.h>
17 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
27 static inline long count_masked_bytes(
unsigned long mask)
29 return mask*0x0001020304050608ul >> 56;
35 static inline long count_masked_bytes(
long mask)
38 long a = (0x0ff0001+
mask) >> 23;
46 static inline unsigned long has_zero(
unsigned long a,
unsigned long *
bits,
const struct word_at_a_time *
c)
60 bits = (bits - 1) & ~bits;
65 #define zero_bytemask(mask) (mask)
67 static inline unsigned long find_zero(
unsigned long mask)
69 return count_masked_bytes(mask);
79 static inline unsigned long load_unaligned_zeropad(
const void *
addr)
86 ".section .fixup,\"ax\"\n"
98 :
"=&r" (ret),
"=&c" (dummy)
99 :
"m" (*(unsigned
long *)addr),