From: Jens Axboe Date: Tue, 9 Apr 2013 18:49:34 +0000 (+0200) Subject: gfio: add support for FIO_OPT_INT options with posval X-Git-Tag: fio-2.1~57^2~10 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=c27d66bf53be3d2353ff50f828fa2f793d302d59 gfio: add support for FIO_OPT_INT options with posval Signed-off-by: Jens Axboe --- diff --git a/goptions.c b/goptions.c index b78accda..a52410b3 100644 --- a/goptions.c +++ b/goptions.c @@ -893,18 +893,29 @@ static void gopt_set_option(struct gopt_job_view *gjv, struct fio_option *o, gopt_int_set_val(i, *ullp); break; } - case FIO_OPT_INT: { - unsigned int *ip = NULL; - struct gopt_int *i; + case FIO_OPT_INT: + if (o->posval[0].ival) { + unsigned int *ip = NULL; + struct gopt_combo *c; - if (o->off1) - ip = td_var(to, o->off1); + if (o->off1) + ip = td_var(to, o->off1); - i = container_of(gopt, struct gopt_int, gopt); - if (ip) - gopt_int_set_val(i, *ip); - break; + c = container_of(gopt, struct gopt_combo, gopt); + if (ip) + gopt_combo_int_set_val(c, *ip); + } else { + unsigned int *ip = NULL; + struct gopt_int *i; + + if (o->off1) + ip = td_var(to, o->off1); + + i = container_of(gopt, struct gopt_int, gopt); + if (ip) + gopt_int_set_val(i, *ip); } + break; case FIO_OPT_STR_SET: case FIO_OPT_BOOL: { unsigned int *ip = NULL; @@ -1017,15 +1028,23 @@ static void gopt_add_option(struct gopt_job_view *gjv, GtkWidget *hbox, go = gopt_new_ullong(gjv, o, ullp, opt_index); break; } - case FIO_OPT_INT: { - unsigned int *ip = NULL; + case FIO_OPT_INT: + if (o->posval[0].ival) { + unsigned int *ip = NULL; - if (o->off1) - ip = td_var(to, o->off1); + if (o->off1) + ip = td_var(to, o->off1); - go = gopt_new_int(gjv, o, ip, opt_index); - break; + go = gopt_new_combo_int(gjv, o, ip, opt_index); + } else { + unsigned int *ip = NULL; + + if (o->off1) + ip = td_var(to, o->off1); + + go = gopt_new_int(gjv, o, ip, opt_index); } + break; case FIO_OPT_STR_SET: case FIO_OPT_BOOL: { unsigned int *ip = NULL;