X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.h;h=28104cd83b376f13fc10388df8b1cd73b20e68cd;hp=e8c025d6880e2d3613abf43578acf3efbbd8dab5;hb=1ec3d69b0ed8cc7a3eba0192685034d5442989e4;hpb=bd4d7e1ecd2388b89254148209ac2b172def8ebf diff --git a/fio.h b/fio.h index e8c025d6..28104cd8 100644 --- a/fio.h +++ b/fio.h @@ -568,6 +568,8 @@ extern void options_mem_dupe(struct thread_data *); 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 @@ static inline int fio_fill_issue_time(struct thread_data *td) 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) {