X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=parse.c;h=4d4fdddeae573f12e10270291785401029399d53;hb=5761ab72a4e5007e08b996888d39e1b9c476c5b5;hp=518c2dff45f0052c1a7c7da01f61db751b7835d2;hpb=d694a6a7c02f577b2bb5d0ad24331b775acf6869;p=fio.git diff --git a/parse.c b/parse.c index 518c2dff..4d4fddde 100644 --- a/parse.c +++ b/parse.c @@ -135,6 +135,7 @@ static unsigned long long get_mult_time(const char *str, int len, const char *p = str; char *c; unsigned long long mult = 1; + int i; /* * Go forward until we hit a non-digit, or +/- sign @@ -153,7 +154,7 @@ static unsigned long long get_mult_time(const char *str, int len, } c = strdup(p); - for (int i = 0; i < strlen(c); i++) + for (i = 0; i < strlen(c); i++) c[i] = tolower(c[i]); if (!strncmp("us", c, 2) || !strncmp("usec", c, 4)) @@ -167,7 +168,7 @@ static unsigned long long get_mult_time(const char *str, int len, else if (!strcmp("h", c)) mult = 60 * 60 * 1000000UL; else if (!strcmp("d", c)) - mult = 24 * 60 * 60 * 1000000UL; + mult = 24 * 60 * 60 * 1000000ULL; free(c); return mult; @@ -1319,6 +1320,23 @@ void options_init(struct fio_option *options) } } +void options_mem_dupe(struct fio_option *options, void *data) +{ + struct fio_option *o; + char **ptr; + + dprint(FD_PARSE, "dup options\n"); + + for (o = &options[0]; o->name; o++) { + if (o->type != FIO_OPT_STR_STORE) + continue; + + ptr = td_var(data, o, o->off1); + if (*ptr) + *ptr = strdup(*ptr); + } +} + void options_free(struct fio_option *options, void *data) { struct fio_option *o;