From 307843fc9ea934892d22dcaecb3ce3ae9fe87996 Mon Sep 17 00:00:00 2001
From: Geoff Lywood <glywood@vmware.com>
Date: Tue, 4 May 2010 14:18:04 -0700
Subject: [PATCH] Fix bitmaps on 64-bit

---
 src/core/bitmap.c         |    2 +-
 src/include/gpxe/bitmap.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/core/bitmap.c b/src/core/bitmap.c
index bbe9cba..cd8dd2d 100644
--- a/src/core/bitmap.c
+++ b/src/core/bitmap.c
@@ -76,7 +76,7 @@ int bitmap_test ( struct bitmap *bitmap, unsigned int bit ) {
 
 	if ( bit >= bitmap->length )
 		return 0;
-	return ( bitmap->blocks[index] & mask );
+	return ( bitmap->blocks[index] & mask ) != 0;
 }
 
 /**
diff --git a/src/include/gpxe/bitmap.h b/src/include/gpxe/bitmap.h
index d6911a5..7b43038 100644
--- a/src/include/gpxe/bitmap.h
+++ b/src/include/gpxe/bitmap.h
@@ -33,7 +33,7 @@ typedef unsigned long bitmap_block_t;
  * @v bit		Bit index
  * @ret mask		Block mask
  */
-#define BITMAP_MASK( bit ) ( 1 << ( (bit) % BITMAP_BLKSIZE ) )
+#define BITMAP_MASK( bit ) ( (bitmap_block_t)1 << ( (bit) % BITMAP_BLKSIZE ) )
 
 /** A bitmap */
 struct bitmap {
-- 
1.7.0

