5 #ifndef __BITMAP_TYPES_H__
6 #define __BITMAP_TYPES_H__
20 typedef uint32_t bitmap32_t;
21 typedef uint64_t bitmap64_t;
23 bitmap64_t __submap[2];
30 bitmap->__submap[0] = 0x0ULL;
31 bitmap->__submap[1] = 0x0ULL;
38 bitmap->__submap[0] = 0xFFFFFFFFFFFFFFFFULL;
39 bitmap->__submap[1] = 0xFFFFFFFFFFFFFFFFULL;
47 return ( bitmap->__submap[1] & 1ULL<<(pos-64) ) > 0;
49 return ( bitmap->__submap[0] & 1ULL<<pos ) > 0;
57 bitmap->__submap[1] |= 1ULL<<(pos-64);
59 bitmap->__submap[0] |= 1ULL<<(pos);
67 bitmap->__submap[1] &= ~(1ULL << (pos-64));
69 bitmap->__submap[0] &= ~(1ULL << pos);
76 if( bitmap->__submap[0] == 0x0 && bitmap->__submap[1] == 0x0)
89 result.__submap[0] = bitmap1->__submap[0]&bitmap2->__submap[0];
90 result.__submap[1] = bitmap1->__submap[1]&bitmap2->__submap[1];
100 if( (bitmap->__submap[0]&mask->__submap[0]) != bitmap->__submap[0])
103 return (bitmap->__submap[1]&mask->__submap[1]) == bitmap->__submap[1];
105 #endif //__BITMAP_TYPES_H__
static void bitmap128_clean(bitmap128_t *bitmap)
Set bitmap to 0.
static bool bitmap128_is_bit_set(const bitmap128_t *bitmap, unsigned int pos)
Check if bit is set in the 128bit bitmap.
static bool bitmap128_is_empty(bitmap128_t *bitmap)
Is bitmap empty.
static bool bitmap128_check_mask(bitmap128_t *bitmap, bitmap128_t *mask)
Check whether a bitmap is within a certain mask (bitmap&mask == bitmap)
static bitmap128_t bitmap128_and(bitmap128_t *bitmap1, bitmap128_t *bitmap2)
Make a logical and over to bitmaps.
static void bitmap128_set_all(bitmap128_t *bitmap)
Set bitmap to 1.
static void bitmap128_unset(bitmap128_t *bitmap, unsigned int pos)
Unset(zero) a bit in the 128bit bitmap.
static void bitmap128_set(bitmap128_t *bitmap, unsigned int pos)
Set a bit in the 128bit bitmap.