#ifndef _ASM_WORD_AT_A_TIME_H
#define _ASM_WORD_AT_A_TIME_H
#include <linux/bitops.h>
#include <linux/wordpart.h>
struct word_at_a_time { … };
#define WORD_AT_A_TIME_CONSTANTS …
static inline unsigned long has_zero(unsigned long a, unsigned long *bits, const struct word_at_a_time *c)
{ … }
static inline unsigned long prep_zero_mask(unsigned long a, unsigned long bits, const struct word_at_a_time *c)
{ … }
#ifdef CONFIG_64BIT
#define create_zero_mask(bits) …
static inline unsigned long zero_bytemask(unsigned long bits)
{ … }
#define find_zero(bits) …
#else
static inline unsigned long create_zero_mask(unsigned long bits)
{
bits = (bits - 1) & ~bits;
return bits >> 7;
}
#define zero_bytemask …
static inline unsigned long find_zero(unsigned long mask)
{
long a = (0x0ff0001+mask) >> 23;
return a & mask;
}
#endif
static inline unsigned long load_unaligned_zeropad(const void *addr)
{ … }
#endif