sbin/newfs_hammer: Link against sbin/hammer/misc.o
authorTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Thu, 11 Aug 2016 07:44:39 +0000 (16:44 +0900)
committerTomohiro Kusumi <kusumi.tomohiro@gmail.com>
Thu, 11 Aug 2016 12:40:08 +0000 (21:40 +0900)
Make /sbin/newfs_hammer link to sbin/hammer/misc.o, and use
sizetostr() via sbin/hammer/misc.o instead of having its own one,
by moving sbin/hammer/misc.c prototypes to hammer_util.h.

It's okay to do this because /sbin/newfs_hammer fully depends on
data structures of sbin/hammer/*. It's just better to make use of
sbin/hammer/misc.o except that the binary becomes a bit larger.

The difference between hammer.h and hammer_util.h is that hammer.h
is specific to /sbin/hammer. hammer_util.h seems to have been made
for more general stuff that could be used by other programs like
/sbin/hammer (but not outbox programs as the header isn't exposed
to outside the dfly source).

sbin/hammer/hammer.h
sbin/hammer/hammer_util.h
sbin/newfs_hammer/Makefile
sbin/newfs_hammer/newfs_hammer.c

index 34b200c..fd2b839 100644 (file)
@@ -134,10 +134,6 @@ void hammer_reset_cycle(void);
 int getpfs(struct hammer_ioc_pseudofs_rw *pfs, char *path);
 void relpfs(int fd, struct hammer_ioc_pseudofs_rw *pfs);
 void dump_pfsd(hammer_pseudofs_data_t, int);
-int getyn(void);
-const char *sizetostr(off_t size);
-int hammer_fs_to_vol(const char *fs, struct hammer_ioc_volume_list *iocp);
-int hammer_fs_to_rootvol(const char *fs, char *buf, int len);
 void hammer_softprune_scandir(struct softprune **basep,
                          struct hammer_ioc_prune *template,
                          const char *dirname);
index cd29e4c..60a5f39 100644 (file)
@@ -199,6 +199,11 @@ void hammer_cache_del(struct cache_info *cache);
 void hammer_cache_used(struct cache_info *cache);
 void hammer_cache_flush(void);
 
+int getyn(void);
+const char *sizetostr(off_t size);
+int hammer_fs_to_vol(const char *fs, struct hammer_ioc_volume_list *iocp);
+int hammer_fs_to_rootvol(const char *fs, char *buf, int len);
+
 struct zone_stat *hammer_init_zone_stat(void);
 struct zone_stat *hammer_init_zone_stat_bits(void);
 void hammer_cleanup_zone_stat(struct zone_stat *stats);
index 2aa9b3a..7c6842e 100644 (file)
@@ -9,6 +9,6 @@ SRCS= newfs_hammer.c
 .PATH: ${.CURDIR}/../../sys/libkern
 SRCS+= crc32.c icrc32.c
 .PATH: ${.CURDIR}/../hammer
-SRCS+= ondisk.c cache.c blockmap.c
+SRCS+= ondisk.c cache.c blockmap.c misc.c
 
 .include <bsd.prog.mk>
index 6845721..f669d90 100644 (file)
@@ -38,7 +38,6 @@
 #include "hammer_util.h"
 
 static int64_t getsize(const char *str, int64_t minval, int64_t maxval, int pw);
-static const char *sizetostr(off_t size);
 static int trim_volume(struct volume_info *vol);
 static void format_volume(struct volume_info *vol, int nvols,const char *label);
 static hammer_off_t format_root_directory(const char *label);
@@ -279,33 +278,6 @@ usage(void)
        exit(1);
 }
 
-/*
- * Convert the size in bytes to a human readable string.
- */
-static
-const char *
-sizetostr(off_t size)
-{
-       static char buf[32];
-
-       if (size < 1024 / 2) {
-               snprintf(buf, sizeof(buf), "%6.2f", (double)size);
-       } else if (size < 1024 * 1024 / 2) {
-               snprintf(buf, sizeof(buf), "%6.2fKB",
-                       (double)size / 1024);
-       } else if (size < 1024 * 1024 * 1024LL / 2) {
-               snprintf(buf, sizeof(buf), "%6.2fMB",
-                       (double)size / (1024 * 1024));
-       } else if (size < 1024 * 1024 * 1024LL * 1024LL / 2) {
-               snprintf(buf, sizeof(buf), "%6.2fGB",
-                       (double)size / (1024 * 1024 * 1024LL));
-       } else {
-               snprintf(buf, sizeof(buf), "%6.2fTB",
-                       (double)size / (1024 * 1024 * 1024LL * 1024LL));
-       }
-       return(buf);
-}
-
 /*
  * Convert a string to a 64 bit signed integer with various requirements.
  */