diff options
Diffstat (limited to 'include/usb/lin_gadget_compat.h')
| -rw-r--r-- | include/usb/lin_gadget_compat.h | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/include/usb/lin_gadget_compat.h b/include/usb/lin_gadget_compat.h index 8287b9de9..5bdcb8d79 100644 --- a/include/usb/lin_gadget_compat.h +++ b/include/usb/lin_gadget_compat.h @@ -44,6 +44,25 @@  #define ENOTSUPP	524	/* Operation is not supported */ +#define BITS_PER_BYTE				8 +#define BITS_TO_LONGS(nr) \ +	DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) +#define DECLARE_BITMAP(name, bits) \ +	unsigned long name[BITS_TO_LONGS(bits)] + +#define small_const_nbits(nbits) \ +	(__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG) + +static inline void bitmap_zero(unsigned long *dst, int nbits) +{ +	if (small_const_nbits(nbits)) +		*dst = 0UL; +	else { +		int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); +		memset(dst, 0, len); +	} +} +  #define dma_cache_maint(addr, size, mode) cache_flush()  void cache_flush(void); |