X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=parse.c;h=0bbb0b30dafd5c8b57ac842e28bdaeba789c6022;hb=122d4b1cf4989337cc4006bdce8e61ec04b166fd;hp=c8b7545a27b85ee3649d95798940b5746ae3576b;hpb=6eaf09d6e9ca1f8accb057cdb18620b7e53ae33f;p=fio.git diff --git a/parse.c b/parse.c index c8b7545a..0bbb0b30 100644 --- a/parse.c +++ b/parse.c @@ -14,6 +14,7 @@ #include "parse.h" #include "debug.h" #include "options.h" +#include "minmax.h" static struct fio_option *fio_options; extern unsigned int fio_get_kb_base(void *); @@ -220,7 +221,7 @@ static unsigned long long get_mult_bytes(const char *str, int len, void *data, /* * Convert string into a floating number. Return 1 for success and 0 otherwise. */ -static int str_to_float(const char *str, double *val) +int str_to_float(const char *str, double *val) { return (1 == sscanf(str, "%lf", val)); } @@ -430,13 +431,13 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data, break; if (o->maxval && ull > o->maxval) { - log_err("max value out of range: %lld" - " (%d max)\n", ull, o->maxval); + log_err("max value out of range: %llu" + " (%u max)\n", ull, o->maxval); return 1; } if (o->minval && ull < o->minval) { - log_err("min value out of range: %lld" - " (%d min)\n", ull, o->minval); + log_err("min value out of range: %llu" + " (%u min)\n", ull, o->minval); return 1; } @@ -505,7 +506,7 @@ static int __handle_option(struct fio_option *o, const char *ptr, void *data, o->maxlen); return 1; } - if(!str_to_float(ptr, &uf)){ + if (!str_to_float(ptr, &uf)){ log_err("not a floating point value: %s\n", ptr); return 1; } @@ -1087,6 +1088,10 @@ void option_init(struct fio_option *o) o->minval = 0; o->maxval = 1; } + if (o->type == FIO_OPT_INT) { + if (!o->maxval) + o->maxval = UINT_MAX; + } if (o->type == FIO_OPT_FLOAT_LIST) { o->minfp = NAN; o->maxfp = NAN;