"OPT_FLOAT_LIST",
"OPT_STR_SET",
"OPT_DEPRECATED",
+ "OPT_SOFT_DEPRECATED",
"OPT_UNSUPPORTED",
};
}
static void show_option_range(const struct fio_option *o,
- size_t (*logger)(const char *format, ...))
+ ssize_t (*logger)(const char *format, ...))
{
if (o->type == FIO_OPT_FLOAT_LIST) {
+ const char *sep = "";
if (!o->minfp && !o->maxfp)
return;
- if (o->minfp != DBL_MIN)
- logger("%20s: min=%f", "range", o->minfp);
+ logger("%20s: ", "range");
+ if (o->minfp != DBL_MIN) {
+ logger("min=%f", o->minfp);
+ sep = ", ";
+ }
if (o->maxfp != DBL_MAX)
- logger(", max=%f", o->maxfp);
+ logger("%smax=%f", sep, o->maxfp);
logger("\n");
} else if (!o->posval[0].ival) {
if (!o->minval && !o->maxval)
"deprecated",
"unsupported",
};
- size_t (*logger)(const char *format, ...);
+ ssize_t (*logger)(const char *format, ...);
if (is_err)
logger = log_err;
break;
}
case FIO_OPT_DEPRECATED:
- log_info("Option %s is deprecated\n", o->name);
ret = 1;
+ case FIO_OPT_SOFT_DEPRECATED:
+ log_info("Option %s is deprecated\n", o->name);
break;
default:
log_err("Bad option type %u\n", o->type);
if (!o)
return;
- if (!org)
- org = o;
p = name;
depth = level;
for (o = &options[0]; o->name; o++) {
int match = 0;
- if (o->type == FIO_OPT_DEPRECATED)
+ if (o->type == FIO_OPT_DEPRECATED ||
+ o->type == FIO_OPT_SOFT_DEPRECATED)
continue;
if (!exec_profile && o->prof_name)
continue;
static void option_init(struct fio_option *o)
{
- if (o->type == FIO_OPT_DEPRECATED || o->type == FIO_OPT_UNSUPPORTED)
+ if (o->type == FIO_OPT_DEPRECATED || o->type == FIO_OPT_UNSUPPORTED ||
+ o->type == FIO_OPT_SOFT_DEPRECATED)
return;
if (o->name && !o->lname)
log_err("Option %s: missing long option name\n", o->name);