qemu-option: Make uses of find_desc_by_name() more similar
This is to make the next commit easier to review. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Greg Kurz <groug@kaod.org> Message-Id: <20200707160613.848843-9-armbru@redhat.com>
This commit is contained in:
parent
c6ecec43b2
commit
9da7197a80
@ -270,6 +270,7 @@ static void qemu_opt_del_all(QemuOpts *opts, const char *name)
|
|||||||
const char *qemu_opt_get(QemuOpts *opts, const char *name)
|
const char *qemu_opt_get(QemuOpts *opts, const char *name)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
|
const QemuOptDesc *desc;
|
||||||
|
|
||||||
if (opts == NULL) {
|
if (opts == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -277,7 +278,7 @@ const char *qemu_opt_get(QemuOpts *opts, const char *name)
|
|||||||
|
|
||||||
opt = qemu_opt_find(opts, name);
|
opt = qemu_opt_find(opts, name);
|
||||||
if (!opt) {
|
if (!opt) {
|
||||||
const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
if (desc && desc->def_value_str) {
|
if (desc && desc->def_value_str) {
|
||||||
return desc->def_value_str;
|
return desc->def_value_str;
|
||||||
}
|
}
|
||||||
@ -348,6 +349,7 @@ static bool qemu_opt_get_bool_helper(QemuOpts *opts, const char *name,
|
|||||||
bool defval, bool del)
|
bool defval, bool del)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
|
const QemuOptDesc *desc;
|
||||||
bool ret = defval;
|
bool ret = defval;
|
||||||
|
|
||||||
if (opts == NULL) {
|
if (opts == NULL) {
|
||||||
@ -356,7 +358,7 @@ static bool qemu_opt_get_bool_helper(QemuOpts *opts, const char *name,
|
|||||||
|
|
||||||
opt = qemu_opt_find(opts, name);
|
opt = qemu_opt_find(opts, name);
|
||||||
if (opt == NULL) {
|
if (opt == NULL) {
|
||||||
const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
if (desc && desc->def_value_str) {
|
if (desc && desc->def_value_str) {
|
||||||
parse_option_bool(name, desc->def_value_str, &ret, &error_abort);
|
parse_option_bool(name, desc->def_value_str, &ret, &error_abort);
|
||||||
}
|
}
|
||||||
@ -384,6 +386,7 @@ static uint64_t qemu_opt_get_number_helper(QemuOpts *opts, const char *name,
|
|||||||
uint64_t defval, bool del)
|
uint64_t defval, bool del)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
|
const QemuOptDesc *desc;
|
||||||
uint64_t ret = defval;
|
uint64_t ret = defval;
|
||||||
|
|
||||||
if (opts == NULL) {
|
if (opts == NULL) {
|
||||||
@ -392,7 +395,7 @@ static uint64_t qemu_opt_get_number_helper(QemuOpts *opts, const char *name,
|
|||||||
|
|
||||||
opt = qemu_opt_find(opts, name);
|
opt = qemu_opt_find(opts, name);
|
||||||
if (opt == NULL) {
|
if (opt == NULL) {
|
||||||
const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
if (desc && desc->def_value_str) {
|
if (desc && desc->def_value_str) {
|
||||||
parse_option_number(name, desc->def_value_str, &ret, &error_abort);
|
parse_option_number(name, desc->def_value_str, &ret, &error_abort);
|
||||||
}
|
}
|
||||||
@ -421,6 +424,7 @@ static uint64_t qemu_opt_get_size_helper(QemuOpts *opts, const char *name,
|
|||||||
uint64_t defval, bool del)
|
uint64_t defval, bool del)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
|
const QemuOptDesc *desc;
|
||||||
uint64_t ret = defval;
|
uint64_t ret = defval;
|
||||||
|
|
||||||
if (opts == NULL) {
|
if (opts == NULL) {
|
||||||
@ -429,7 +433,7 @@ static uint64_t qemu_opt_get_size_helper(QemuOpts *opts, const char *name,
|
|||||||
|
|
||||||
opt = qemu_opt_find(opts, name);
|
opt = qemu_opt_find(opts, name);
|
||||||
if (opt == NULL) {
|
if (opt == NULL) {
|
||||||
const QemuOptDesc *desc = find_desc_by_name(opts->list->desc, name);
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
if (desc && desc->def_value_str) {
|
if (desc && desc->def_value_str) {
|
||||||
parse_option_size(name, desc->def_value_str, &ret, &error_abort);
|
parse_option_size(name, desc->def_value_str, &ret, &error_abort);
|
||||||
}
|
}
|
||||||
@ -540,18 +544,18 @@ void qemu_opt_set_bool(QemuOpts *opts, const char *name, bool val,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
const QemuOptDesc *desc = opts->list->desc;
|
const QemuOptDesc *desc;
|
||||||
|
|
||||||
opt = g_malloc0(sizeof(*opt));
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
opt->desc = find_desc_by_name(desc, name);
|
if (!desc && !opts_accepts_any(opts)) {
|
||||||
if (!opt->desc && !opts_accepts_any(opts)) {
|
|
||||||
error_setg(errp, QERR_INVALID_PARAMETER, name);
|
error_setg(errp, QERR_INVALID_PARAMETER, name);
|
||||||
g_free(opt);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opt = g_malloc0(sizeof(*opt));
|
||||||
opt->name = g_strdup(name);
|
opt->name = g_strdup(name);
|
||||||
opt->opts = opts;
|
opt->opts = opts;
|
||||||
|
opt->desc = desc;
|
||||||
opt->value.boolean = !!val;
|
opt->value.boolean = !!val;
|
||||||
opt->str = g_strdup(val ? "on" : "off");
|
opt->str = g_strdup(val ? "on" : "off");
|
||||||
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
|
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
|
||||||
@ -561,18 +565,18 @@ void qemu_opt_set_number(QemuOpts *opts, const char *name, int64_t val,
|
|||||||
Error **errp)
|
Error **errp)
|
||||||
{
|
{
|
||||||
QemuOpt *opt;
|
QemuOpt *opt;
|
||||||
const QemuOptDesc *desc = opts->list->desc;
|
const QemuOptDesc *desc;
|
||||||
|
|
||||||
opt = g_malloc0(sizeof(*opt));
|
desc = find_desc_by_name(opts->list->desc, name);
|
||||||
opt->desc = find_desc_by_name(desc, name);
|
if (!desc && !opts_accepts_any(opts)) {
|
||||||
if (!opt->desc && !opts_accepts_any(opts)) {
|
|
||||||
error_setg(errp, QERR_INVALID_PARAMETER, name);
|
error_setg(errp, QERR_INVALID_PARAMETER, name);
|
||||||
g_free(opt);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
opt = g_malloc0(sizeof(*opt));
|
||||||
opt->name = g_strdup(name);
|
opt->name = g_strdup(name);
|
||||||
opt->opts = opts;
|
opt->opts = opts;
|
||||||
|
opt->desc = desc;
|
||||||
opt->value.uint = val;
|
opt->value.uint = val;
|
||||||
opt->str = g_strdup_printf("%" PRId64, val);
|
opt->str = g_strdup_printf("%" PRId64, val);
|
||||||
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
|
QTAILQ_INSERT_TAIL(&opts->head, opt, next);
|
||||||
|
Loading…
Reference in New Issue
Block a user