summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext2fs/Makefile4
-rw-r--r--ext2fs/balloc.c3
-rw-r--r--ext2fs/bitmap.c34
-rw-r--r--ext2fs/ext2fs.h9
-rw-r--r--ext2fs/ialloc.c1
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 <string.h>
#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 <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);
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"
/* ---------------------------------------------------------------- */