]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
util: Use unsigned long as a base type for virBitmap
authorJiri Denemark <jdenemar@redhat.com>
Thu, 10 Feb 2011 10:11:15 +0000 (11:11 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 24 Feb 2011 11:00:52 +0000 (12:00 +0100)
src/util/bitmap.c

index 974166890d3c001c1a1febd951e991cf1db5d4c4..978ec9b6495dd76fc90ac956cddc67e900c24314 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * bitmap.h: Simple bitmap operations
  *
- * Copyright (C) 2010 Red Hat, Inc.
+ * Copyright (C) 2010-2011 Red Hat, Inc.
  * Copyright (C) 2010 Novell, Inc.
  *
  * This library is free software; you can redistribute it and/or
 
 struct _virBitmap {
     size_t size;
-    uint32_t *map;
+    unsigned long *map;
 };
 
 
-#define VIR_BITMAP_BITS_PER_UNIT  (sizeof(uint32_t) * CHAR_BIT)
+#define VIR_BITMAP_BITS_PER_UNIT  ((int) sizeof(unsigned long) * CHAR_BIT)
 #define VIR_BITMAP_UNIT_OFFSET(b) ((b) / VIR_BITMAP_BITS_PER_UNIT)
 #define VIR_BITMAP_BIT_OFFSET(b)  ((b) % VIR_BITMAP_BITS_PER_UNIT)
+#define VIR_BITMAP_BIT(b)         (1UL << VIR_BITMAP_BIT_OFFSET(b))
 
 
 /**
@@ -105,7 +106,7 @@ int virBitmapSetBit(virBitmapPtr bitmap, size_t b)
     if (bitmap->size <= b)
         return -1;
 
-    bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] |= (1 << VIR_BITMAP_BIT_OFFSET(b));
+    bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] |= VIR_BITMAP_BIT(b);
     return 0;
 }
 
@@ -123,7 +124,7 @@ int virBitmapClearBit(virBitmapPtr bitmap, size_t b)
     if (bitmap->size <= b)
         return -1;
 
-    bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] &= ~(1 << VIR_BITMAP_BIT_OFFSET(b));
+    bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] &= ~VIR_BITMAP_BIT(b);
     return 0;
 }
 
@@ -140,14 +141,9 @@ int virBitmapClearBit(virBitmapPtr bitmap, size_t b)
  */
 int virBitmapGetBit(virBitmapPtr bitmap, size_t b, bool *result)
 {
-    uint32_t bit;
-
     if (bitmap->size <= b)
         return -1;
 
-    bit = bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] &
-            (1 << VIR_BITMAP_BIT_OFFSET(b));
-
-    *result = bit != 0;
+    *result = !!(bitmap->map[VIR_BITMAP_UNIT_OFFSET(b)] & VIR_BITMAP_BIT(b));
     return 0;
 }