X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Fbitmap.h;h=1ef4db7dd65dc3ad0bf054af41de0c86db0a4a51;hp=4c86e8cbf2c0421209e44ef26661b52ddf0fccc0;hb=19075957acebe990aa124a68a27d5c1e9d5d20e0;hpb=e64d9101cc8ebc61924d6e9db6d7ab3cfa94767c diff --git a/libcfs/include/libcfs/bitmap.h b/libcfs/include/libcfs/bitmap.h index 4c86e8c..1ef4db7 100644 --- a/libcfs/include/libcfs/bitmap.h +++ b/libcfs/include/libcfs/bitmap.h @@ -36,6 +36,13 @@ #ifndef _LIBCFS_BITMAP_H_ #define _LIBCFS_BITMAP_H_ +#if !defined(__linux__) || !defined(__KERNEL__) +#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) +#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, 8 * sizeof(long)) + +#define DECLARE_BITMAP(name, bits) \ + unsigned long name[BITS_TO_LONGS(bits)] +#endif typedef struct { int size; @@ -48,18 +55,18 @@ typedef struct { static inline cfs_bitmap_t *CFS_ALLOCATE_BITMAP(int size) { - cfs_bitmap_t *ptr; + cfs_bitmap_t *ptr; - OBD_ALLOC(ptr, CFS_BITMAP_SIZE(size)); - if (ptr == NULL) - RETURN(ptr); + LIBCFS_ALLOC(ptr, CFS_BITMAP_SIZE(size)); + if (ptr == NULL) + RETURN(ptr); - ptr->size = size; + ptr->size = size; - RETURN (ptr); + RETURN(ptr); } -#define CFS_FREE_BITMAP(ptr) OBD_FREE(ptr, CFS_BITMAP_SIZE(ptr->size)) +#define CFS_FREE_BITMAP(ptr) LIBCFS_FREE(ptr, CFS_BITMAP_SIZE(ptr->size)) static inline void cfs_bitmap_set(cfs_bitmap_t *bitmap, int nbit)