Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-14487 libcfs: remove references to Sun Trademark.
[fs/lustre-release.git]
/
libcfs
/
include
/
libcfs
/
bitmap.h
diff --git
a/libcfs/include/libcfs/bitmap.h
b/libcfs/include/libcfs/bitmap.h
index
5991ccd
..
b2bd599
100644
(file)
--- a/
libcfs/include/libcfs/bitmap.h
+++ b/
libcfs/include/libcfs/bitmap.h
@@
-15,85
+15,94
@@
*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
*
* You should have received a copy of the GNU General Public License
* version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
*
* GPL HEADER END
*/
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
* GPL HEADER END
*/
/*
* Copyright (c) 2008, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2012, 2014, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
*/
/*
* This file is part of Lustre, http://www.lustre.org/
- * Lustre is a trademark of Sun Microsystems, Inc.
*/
#ifndef _LIBCFS_BITMAP_H_
#define _LIBCFS_BITMAP_H_
*/
#ifndef _LIBCFS_BITMAP_H_
#define _LIBCFS_BITMAP_H_
+#include <linux/interrupt.h>
+#include <libcfs/libcfs_private.h>
-
typedef struct
{
-
int
size;
-
unsigned long
data[0];
-}
cfs_bitmap_t
;
+
struct cfs_bitmap
{
+
unsigned int
size;
+
unsigned long
data[0];
+};
#define CFS_BITMAP_SIZE(nbits) \
#define CFS_BITMAP_SIZE(nbits) \
-
(((nbits/BITS_PER_LONG)+1)*sizeof(long)+sizeof(cfs_bitmap_t
))
+
(BITS_TO_LONGS(nbits) * sizeof(long) + sizeof(struct cfs_bitmap
))
static inline
static inline
-
cfs_bitmap_t
*CFS_ALLOCATE_BITMAP(int size)
+
struct cfs_bitmap
*CFS_ALLOCATE_BITMAP(int size)
{
{
- cfs_bitmap_t *ptr;
+ struct cfs_bitmap *ptr;
+
+ LIBCFS_ALLOC(ptr, CFS_BITMAP_SIZE(size));
+ if (ptr == NULL)
+ RETURN(ptr);
- OBD_ALLOC(ptr, CFS_BITMAP_SIZE(size));
- if (ptr == NULL)
- RETURN(ptr);
+ ptr->size = size;
- ptr->size = size;
+ RETURN(ptr);
+}
+
+static inline void CFS_RESET_BITMAP(struct cfs_bitmap *bitmap)
+{
+ if (bitmap->size > 0) {
+ int nbits = bitmap->size;
- RETURN (ptr);
+ memset(bitmap, 0, CFS_BITMAP_SIZE(nbits));
+ bitmap->size = nbits;
+ }
}
}
-#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
static inline
-void cfs_bitmap_set(
cfs_bitmap_t
*bitmap, int nbit)
+void cfs_bitmap_set(
struct cfs_bitmap
*bitmap, int nbit)
{
set_bit(nbit, bitmap->data);
}
static inline
{
set_bit(nbit, bitmap->data);
}
static inline
-void cfs_bitmap_clear(
cfs_bitmap_t
*bitmap, int nbit)
+void cfs_bitmap_clear(
struct cfs_bitmap
*bitmap, int nbit)
{
test_and_clear_bit(nbit, bitmap->data);
}
static inline
{
test_and_clear_bit(nbit, bitmap->data);
}
static inline
-int cfs_bitmap_check(
cfs_bitmap_t
*bitmap, int nbit)
+int cfs_bitmap_check(
struct cfs_bitmap
*bitmap, int nbit)
{
return test_bit(nbit, bitmap->data);
}
static inline
{
return test_bit(nbit, bitmap->data);
}
static inline
-int cfs_bitmap_test_and_clear(
cfs_bitmap_t
*bitmap, int nbit)
+int cfs_bitmap_test_and_clear(
struct cfs_bitmap
*bitmap, int nbit)
{
return test_and_clear_bit(nbit, bitmap->data);
}
/* return 0 is bitmap has none set bits */
static inline
{
return test_and_clear_bit(nbit, bitmap->data);
}
/* return 0 is bitmap has none set bits */
static inline
-int cfs_bitmap_check_empty(
cfs_bitmap_t
*bitmap)
+int cfs_bitmap_check_empty(
struct cfs_bitmap
*bitmap)
{
return find_first_bit(bitmap->data, bitmap->size) == bitmap->size;
}
static inline
{
return find_first_bit(bitmap->data, bitmap->size) == bitmap->size;
}
static inline
-void cfs_bitmap_copy(
cfs_bitmap_t *new, cfs_bitmap_t
*old)
+void cfs_bitmap_copy(
struct cfs_bitmap *new, struct cfs_bitmap
*old)
{
{
-
in
t newsize;
+
size_
t newsize;
LASSERT(new->size >= old->size);
newsize = new->size;
LASSERT(new->size >= old->size);
newsize = new->size;