summaryrefslogtreecommitdiff
path: root/ext2fs/bitmap.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1999-10-02 05:59:29 +0000
committerRoland McGrath <roland@gnu.org>1999-10-02 05:59:29 +0000
commit0093fda9e85344fe47f162e1a5627479c183947a (patch)
tree1632a2f3ab23adc385a0f0983b63e8555c130d28 /ext2fs/bitmap.c
parentc0becc25a2fadfd8b03c8dbf6b101a5925a6aeed (diff)
1999-10-02 Roland McGrath <roland@baalperazim.frob.com>
* bitmap.c (count_free, find_next_zero_bit, find_first_zero_bit): Make these all static inline. (ffz, ffz_nibble_map): Function and variable removed. (ffz): Replace decl with macro defined in terms of ffs. * ext2fs.h (count_free, find_next_zero_bit, find_first_zero_bit, ffz): Remove these declarations. * Makefile (SRCS): Remove bitmap.c. (LCLHDRS): Add bitmap.c here instead. * balloc.c, ialloc.c: #include "bitmap.c" here.
Diffstat (limited to 'ext2fs/bitmap.c')
-rw-r--r--ext2fs/bitmap.c34
1 files changed, 6 insertions, 28 deletions
diff --git a/ext2fs/bitmap.c b/ext2fs/bitmap.c
index b6c91127..fb6d2ada 100644
--- a/ext2fs/bitmap.c
+++ b/ext2fs/bitmap.c
@@ -1,6 +1,6 @@
/* Bitmap perusing routines
- Copyright (C) 1995, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1995 Free Software Foundation, Inc.
Converted to work under the hurd by Miles Bader <miles@gnu.ai.mit.edu>
@@ -18,6 +18,8 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
+#define ffz(word) (ffs (~(word)) - 1)
+
/*
* linux/fs/ext2/bitmap.c (&c)
*
@@ -29,6 +31,7 @@
static int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0};
+static inline
unsigned long count_free (char * map, unsigned int numchars)
{
unsigned int i;
@@ -44,31 +47,6 @@ unsigned long count_free (char * map, unsigned int numchars)
/* ---------------------------------------------------------------- */
-static int ffz_nibble_map[] = {0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0, 4};
-
-inline unsigned long ffz(unsigned long word)
-{
- int offset = 0;
- if ((word & 0xFFFF) == 0xFFFF)
- {
- word >>= 16;
- offset += 16;
- }
- if ((word & 0xFF) == 0xFF)
- {
- word >>= 8;
- offset += 8;
- }
- if ((word & 0xF) == 0xF)
- {
- word >>= 4;
- offset += 4;
- }
- return ffz_nibble_map[word & 0xF] + offset;
-}
-
-/* ---------------------------------------------------------------- */
-
/*
* Copyright 1994, David S. Miller (davem@caip.rutgers.edu).
*/
@@ -78,7 +56,7 @@ inline unsigned long ffz(unsigned long word)
* on Linus's ALPHA routines, which are pretty portable BTW.
*/
-inline unsigned long
+static inline unsigned long
find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
{
unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
@@ -121,7 +99,7 @@ found_middle:
* holds on the Sparc as it does for the ALPHA.
*/
-inline int
+static inline int
find_first_zero_bit(void *buf, unsigned len)
{
return find_next_zero_bit(buf, len, 0);