diff options
author | Roland McGrath <roland@gnu.org> | 1999-10-02 05:59:29 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 1999-10-02 05:59:29 +0000 |
commit | 0093fda9e85344fe47f162e1a5627479c183947a (patch) | |
tree | 1632a2f3ab23adc385a0f0983b63e8555c130d28 /ext2fs/bitmap.c | |
parent | c0becc25a2fadfd8b03c8dbf6b101a5925a6aeed (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.c | 34 |
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); |