From 0093fda9e85344fe47f162e1a5627479c183947a Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Sat, 2 Oct 1999 05:59:29 +0000 Subject: 1999-10-02 Roland McGrath * 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. --- ext2fs/Makefile | 4 ++-- ext2fs/balloc.c | 3 +-- ext2fs/bitmap.c | 34 ++++++---------------------------- ext2fs/ext2fs.h | 9 --------- ext2fs/ialloc.c | 1 + 5 files changed, 10 insertions(+), 41 deletions(-) diff --git a/ext2fs/Makefile b/ext2fs/Makefile index 07bb3f95..2d2fb95e 100644 --- a/ext2fs/Makefile +++ b/ext2fs/Makefile @@ -20,10 +20,10 @@ dir := ext2fs makemode := server target = ext2fs -SRCS = balloc.c bitmap.c dir.c ext2fs.c getblk.c hyper.c ialloc.c \ +SRCS = balloc.c dir.c ext2fs.c getblk.c hyper.c ialloc.c \ inode.c pager.c pokel.c truncate.c storeinfo.c msg.c OBJS = $(SRCS:.c=.o) -LCLHDRS = ext2fs.h ext2_fs.h ext2_fs_i.h +LCLHDRS = ext2fs.h ext2_fs.h ext2_fs_i.h bitmap.h HURDLIBS=diskfs pager iohelp fshelp store ports threads ihash shouldbeinlibc include ../Makeconf diff --git a/ext2fs/balloc.c b/ext2fs/balloc.c index 661894f6..437febaa 100644 --- a/ext2fs/balloc.c +++ b/ext2fs/balloc.c @@ -42,7 +42,7 @@ #include #include "ext2fs.h" - +#include "bitmap.c" /* Returns a pointer to the first occurence of CH in the buffer BUF of len LEN, or BUF + LEN if CH doesn't occur. */ @@ -52,7 +52,6 @@ memscan (void *buf, unsigned char ch, size_t len) return memchr (buf, ch, len) ?: buf + len; } - #define in_range(b, first, len) ((b) >= (first) && (b) <= (first) + (len) - 1) void 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 @@ -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); diff --git a/ext2fs/ext2fs.h b/ext2fs/ext2fs.h index 9a36e99c..722f0e56 100644 --- a/ext2fs/ext2fs.h +++ b/ext2fs/ext2fs.h @@ -147,15 +147,6 @@ clear_bit (unsigned num, char *bitmap) else return 0; } - -/* Counts the number of bits unset in MAP, a bitmap NUMCHARS long. */ -unsigned long count_free (char * map, unsigned int numchars); - -extern int find_first_zero_bit(void * addr, unsigned size); - -extern int find_next_zero_bit (void * addr, int size, int offset); - -extern unsigned long ffz(unsigned long word); /* ---------------------------------------------------------------- */ diff --git a/ext2fs/ialloc.c b/ext2fs/ialloc.c index 1386af81..2ccfb08d 100644 --- a/ext2fs/ialloc.c +++ b/ext2fs/ialloc.c @@ -42,6 +42,7 @@ */ #include "ext2fs.h" +#include "bitmap.c" /* ---------------------------------------------------------------- */ -- cgit v1.2.3