summaryrefslogtreecommitdiff
path: root/kern/bitmap.h
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2013-05-15 20:51:15 +0200
committerRichard Braun <rbraun@sceen.net>2013-05-15 20:51:15 +0200
commit0a508edac7b34eebf1456e3a826ec1c468eafe34 (patch)
tree2b2cfdef99a03063ada4e9229ed2d764d182738f /kern/bitmap.h
parent564fd3aefe3fcb27de4c8fc375fc10293a002fa9 (diff)
kern/bitmap: move helper functions to bitmap_i.h
Although the dinstinction between those and the public interface was already easy to make, it's a bit more consistent and elegant this way.
Diffstat (limited to 'kern/bitmap.h')
-rw-r--r--kern/bitmap.h45
1 files changed, 1 insertions, 44 deletions
diff --git a/kern/bitmap.h b/kern/bitmap.h
index 526824d6..05741b3a 100644
--- a/kern/bitmap.h
+++ b/kern/bitmap.h
@@ -24,56 +24,13 @@
#ifndef _KERN_BITMAP_H
#define _KERN_BITMAP_H
+#include <kern/bitmap_i.h>
#include <kern/limits.h>
-#include <kern/macros.h>
#include <kern/string.h>
#include <machine/atomic.h>
-#define BITMAP_LONGS(nr_bits) DIV_CEIL(nr_bits, LONG_BIT)
-
-/*
- * Declare a bitmap.
- */
#define BITMAP_DECLARE(name, nr_bits) unsigned long name[BITMAP_LONGS(nr_bits)]
-/*
- * Helper functions.
- */
-
-/*
- * Adjust the bitmap pointer and the bit index so that the latter refers
- * to a bit inside the word pointed by the former.
- *
- * Implemented as a macro for const-correctness.
- */
-#define bitmap_lookup(bm, bit) \
-MACRO_BEGIN \
- int i; \
- \
- i = BITMAP_LONGS((bit) + 1) - 1; \
- (bm) += i; \
- (bit) -= i * LONG_BIT; \
-MACRO_END
-
-static inline unsigned long
-bitmap_mask(int bit)
-{
- return (1UL << bit);
-}
-
-/*
- * Return the index of the next set bit in the bitmap, starting (and
- * including) the given bit index, or -1 if the bitmap is empty. If
- * complement is true, bits are toggled before searching so that the
- * result is the index of the next zero bit.
- */
-int bitmap_find_next_bit(const unsigned long *bm, int nr_bits, int bit,
- int complement);
-
-/*
- * Public interface.
- */
-
static inline void
bitmap_zero(unsigned long *bm, int nr_bits)
{