X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Fbitmap%2Fbitmap.h;h=9e6c2bbc51912d797eec56000963756598d48592;hb=3da02efb4c0e0694ae773289d09162f59251a1f4;hp=6c8d7e4d4593e0f1745704c92761e69121fd25dd;hpb=b9c9f5d934cda9717e373824e81670ec075fe001;p=ccan diff --git a/ccan/bitmap/bitmap.h b/ccan/bitmap/bitmap.h index 6c8d7e4d..9e6c2bbc 100644 --- a/ccan/bitmap/bitmap.h +++ b/ccan/bitmap/bitmap.h @@ -187,6 +187,9 @@ static inline bool bitmap_empty(const bitmap *bitmap, unsigned long nbits) return true; } +unsigned long bitmap_ffs(const bitmap *bitmap, + unsigned long n, unsigned long m); + /* * Allocation functions */ @@ -200,7 +203,8 @@ static inline bitmap *bitmap_alloc0(unsigned long nbits) bitmap *bitmap; bitmap = bitmap_alloc(nbits); - bitmap_zero(bitmap, nbits); + if (bitmap) + bitmap_zero(bitmap, nbits); return bitmap; } @@ -209,7 +213,8 @@ static inline bitmap *bitmap_alloc1(unsigned long nbits) bitmap *bitmap; bitmap = bitmap_alloc(nbits); - bitmap_fill(bitmap, nbits); + if (bitmap) + bitmap_fill(bitmap, nbits); return bitmap; } @@ -218,7 +223,7 @@ static inline bitmap *bitmap_realloc0(bitmap *bitmap, { bitmap = realloc(bitmap, bitmap_sizeof(nbits)); - if (nbits > obits) + if ((nbits > obits) && bitmap) bitmap_zero_range(bitmap, obits, nbits); return bitmap; @@ -229,7 +234,7 @@ static inline bitmap *bitmap_realloc1(bitmap *bitmap, { bitmap = realloc(bitmap, bitmap_sizeof(nbits)); - if (nbits > obits) + if ((nbits > obits) && bitmap) bitmap_fill_range(bitmap, obits, nbits); return bitmap;