root/tools/testing/radix-tree/bitmap.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. bitmap_clear

   1 /* lib/bitmap.c pulls in at least two other files. */
   2 
   3 #include <linux/bitmap.h>
   4 
   5 void bitmap_clear(unsigned long *map, unsigned int start, int len)
   6 {
   7         unsigned long *p = map + BIT_WORD(start);
   8         const unsigned int size = start + len;
   9         int bits_to_clear = BITS_PER_LONG - (start % BITS_PER_LONG);
  10         unsigned long mask_to_clear = BITMAP_FIRST_WORD_MASK(start);
  11 
  12         while (len - bits_to_clear >= 0) {
  13                 *p &= ~mask_to_clear;
  14                 len -= bits_to_clear;
  15                 bits_to_clear = BITS_PER_LONG;
  16                 mask_to_clear = ~0UL;
  17                 p++;
  18         }
  19         if (len) {
  20                 mask_to_clear &= BITMAP_LAST_WORD_MASK(size);
  21                 *p &= ~mask_to_clear;
  22         }
  23 }

/* [<][>][^][v][top][bottom][index][help] */