diff --git a/disk-utils/fsck.minix.c b/disk-utils/fsck.minix.c index c9bd65359..31b5ef6c2 100644 --- a/disk-utils/fsck.minix.c +++ b/disk-utils/fsck.minix.c @@ -100,12 +100,12 @@ #include #include #include -#include #include #include "minix.h" #include "nls.h" #include "pathnames.h" +#include "bitops.h" #define ROOT_INO 1 @@ -166,8 +166,8 @@ static unsigned char * zone_count = NULL; static void recursive_check(unsigned int ino); static void recursive_check2(unsigned int ino); -#define inode_in_use(x) (isset(inode_map,(x))) -#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1)) +#define inode_in_use(x) (isset(inode_map,(x)) != 0) +#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1) != 0) #define mark_inode(x) (setbit(inode_map,(x)),changed=1) #define unmark_inode(x) (clrbit(inode_map,(x)),changed=1) diff --git a/disk-utils/mkfs.minix.c b/disk-utils/mkfs.minix.c index ebef5188e..391f09b84 100644 --- a/disk-utils/mkfs.minix.c +++ b/disk-utils/mkfs.minix.c @@ -68,7 +68,6 @@ #include #include #include -#include #include #include @@ -76,6 +75,7 @@ #include "minix.h" #include "nls.h" #include "pathnames.h" +#include "bitops.h" #define MINIX_ROOT_INO 1 #define MINIX_BAD_INO 2 @@ -131,8 +131,7 @@ static unsigned short good_blocks_table[MAX_GOOD_BLOCKS]; static int used_good_blocks = 0; static unsigned long req_nr_inodes = 0; -#define inode_in_use(x) (isset(inode_map,(x))) -#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1)) +#define zone_in_use(x) (isset(zone_map,(x)-FIRSTZONE+1) != 0) #define mark_inode(x) (setbit(inode_map,(x))) #define unmark_inode(x) (clrbit(inode_map,(x))) diff --git a/include/bitops.h b/include/bitops.h index e6eaff18c..e283b8355 100644 --- a/include/bitops.h +++ b/include/bitops.h @@ -4,6 +4,22 @@ #include #include +/* + * Bit map related macros. Usually provided by libc. + */ +#include + +#ifndef NBBY +# define NBBY CHAR_BIT +#endif + +#ifndef setbit +# define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) +# define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) +# define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) +# define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) +#endif + #if !defined __BYTE_ORDER || !(__BYTE_ORDER == __LITTLE_ENDIAN) && !(__BYTE_ORDER == __BIG_ENDIAN) #error missing __BYTE_ORDER #endif