diff --git a/fio.h b/fio.h
index e8c025d..28104cd 100644
--- a/fio.h
+++ b/fio.h
@@ -568,6 +568,8 @@
 extern void options_mem_free(struct thread_data *);
 extern void td_fill_rand_seeds(struct thread_data *);
 extern void add_job_opts(const char **);
+extern char *num2str(unsigned long, int, int, int);
+
 #define FIO_GETOPT_JOB		0x89988998
 #define FIO_NR_OPTIONS		(FIO_MAX_OPTS + 128)
 
@@ -653,49 +655,6 @@
 	return 0;
 }
 
-/*
- * Cheesy number->string conversion, complete with carry rounding error.
- */
-static inline char *num2str(unsigned long num, int maxlen, int base, int pow2)
-{
-	char postfix[] = { ' ', 'K', 'M', 'G', 'P', 'E' };
-	unsigned int thousand;
-	char *buf;
-	int i;
-
-	if (pow2)
-		thousand = 1024;
-	else
-		thousand = 1000;
-
-	buf = malloc(128);
-
-	for (i = 0; base > 1; i++)
-		base /= thousand;
-
-	do {
-		int len, carry = 0;
-
-		len = sprintf(buf, "%'lu", num);
-		if (len <= maxlen) {
-			if (i >= 1) {
-				buf[len] = postfix[i];
-				buf[len + 1] = '\0';
-			}
-			return buf;
-		}
-
-		if ((num % thousand) >= (thousand / 2))
-			carry = 1;
-
-		num /= thousand;
-		num += carry;
-		i++;
-	} while (i <= 5);
-
-	return buf;
-}
-
 static inline int __should_check_rate(struct thread_data *td,
 				      enum fio_ddir ddir)
 {
