From: Jens Axboe Date: Sat, 18 Jul 2009 06:25:35 +0000 (+0200) Subject: Make kb_base apply to parser k/m/g etc values X-Git-Tag: fio-1.32~3^2~1 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=a639f0bbd278365a2fa15031afd29a24dc917437 Make kb_base apply to parser k/m/g etc values Signed-off-by: Jens Axboe --- diff --git a/options.c b/options.c index c273da76..bd7a85e5 100644 --- a/options.c +++ b/options.c @@ -15,6 +15,8 @@ #include "parse.h" #include "lib/fls.h" +unsigned int fio_kb_base = 1024; + #define td_var_offset(var) ((size_t) &((struct thread_options *)0)->var) /* @@ -637,6 +639,7 @@ static int kb_base_verify(struct fio_option *o, void *data) return 1; } + fio_kb_base = td->o.kb_base; return 0; } @@ -678,9 +681,10 @@ static struct fio_option options[] = { .name = "kb_base", .type = FIO_OPT_INT, .off1 = td_var_offset(kb_base), - .help = "How many bytes per KB for reporting (1000 or 1024)", .verify = kb_base_verify, + .prio = 1, .def = "1024", + .help = "How many bytes per KB for reporting (1000 or 1024)", }, { .name = "lockfile", diff --git a/parse.c b/parse.c index 2a49b63c..0bf28a5b 100644 --- a/parse.c +++ b/parse.c @@ -14,6 +14,7 @@ #include "debug.h" static struct fio_option *fio_options; +extern unsigned int fio_kb_base; static int vp_cmp(const void *p1, const void *p2) { @@ -114,25 +115,30 @@ static unsigned long get_mult_time(char c) static unsigned long long get_mult_bytes(char c) { + unsigned long long ret = 1; + switch (c) { - case 'k': - case 'K': - return 1024; - case 'm': - case 'M': - return 1024 * 1024; - case 'g': - case 'G': - return 1024 * 1024 * 1024; - case 't': - case 'T': - return 1024 * 1024 * 1024 * 1024UL; + default: + break; case 'p': case 'P': - return 1024 * 1024 * 1024 * 1024ULL * 1024ULL; - default: - return 1; + ret *= (unsigned long long) fio_kb_base; + case 't': + case 'T': + ret *= (unsigned long long) fio_kb_base; + case 'g': + case 'G': + ret *= (unsigned long long) fio_kb_base; + case 'm': + case 'M': + ret *= (unsigned long long) fio_kb_base; + case 'k': + case 'K': + ret *= (unsigned long long) fio_kb_base; + break; } + + return ret; } /*