138517a78SLukasz Majewski /* 238517a78SLukasz Majewski * Copyright (c) 2011 Samsung Electronics 338517a78SLukasz Majewski * Lukasz Majewski <l.majewski@samsung.com> 438517a78SLukasz Majewski * 538517a78SLukasz Majewski * This is a Linux kernel compatibility layer for USB Gadget 638517a78SLukasz Majewski * 71a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 838517a78SLukasz Majewski */ 938517a78SLukasz Majewski 1038517a78SLukasz Majewski #ifndef __LIN_COMPAT_H__ 1138517a78SLukasz Majewski #define __LIN_COMPAT_H__ 1238517a78SLukasz Majewski 13*1b48bbddSMasahiro Yamada #include <linux/bitops.h> 146777a3cfSMike Frysinger #include <linux/compat.h> 156777a3cfSMike Frysinger 1638517a78SLukasz Majewski /* common */ 177010f5b9SLukasz Majewski #define DECLARE_BITMAP(name, bits) \ 187010f5b9SLukasz Majewski unsigned long name[BITS_TO_LONGS(bits)] 197010f5b9SLukasz Majewski 207010f5b9SLukasz Majewski #define small_const_nbits(nbits) \ 217010f5b9SLukasz Majewski (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG) 227010f5b9SLukasz Majewski bitmap_zero(unsigned long * dst,int nbits)237010f5b9SLukasz Majewskistatic inline void bitmap_zero(unsigned long *dst, int nbits) 247010f5b9SLukasz Majewski { 257010f5b9SLukasz Majewski if (small_const_nbits(nbits)) 267010f5b9SLukasz Majewski *dst = 0UL; 277010f5b9SLukasz Majewski else { 287010f5b9SLukasz Majewski int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); 297010f5b9SLukasz Majewski memset(dst, 0, len); 307010f5b9SLukasz Majewski } 317010f5b9SLukasz Majewski } 327010f5b9SLukasz Majewski 3338517a78SLukasz Majewski #define dma_cache_maint(addr, size, mode) cache_flush() 3438517a78SLukasz Majewski void cache_flush(void); 3538517a78SLukasz Majewski 3638517a78SLukasz Majewski #endif /* __LIN_COMPAT_H__ */ 37