1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0+ 2*4882a593Smuzhiyun #ifndef __LINUX_BITMAP_H 3*4882a593Smuzhiyun #define __LINUX_BITMAP_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <asm/types.h> 6*4882a593Smuzhiyun #include <linux/types.h> 7*4882a593Smuzhiyun #include <linux/bitops.h> 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun #define small_const_nbits(nbits) \ 10*4882a593Smuzhiyun (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG) 11*4882a593Smuzhiyun bitmap_zero(unsigned long * dst,int nbits)12*4882a593Smuzhiyunstatic inline void bitmap_zero(unsigned long *dst, int nbits) 13*4882a593Smuzhiyun { 14*4882a593Smuzhiyun if (small_const_nbits(nbits)) { 15*4882a593Smuzhiyun *dst = 0UL; 16*4882a593Smuzhiyun } else { 17*4882a593Smuzhiyun int len = BITS_TO_LONGS(nbits) * sizeof(unsigned long); 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun memset(dst, 0, len); 20*4882a593Smuzhiyun } 21*4882a593Smuzhiyun } 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #endif /* __LINUX_BITMAP_H */ 24