diff options
author | Juan Quintela <quintela@redhat.com> | 2017-05-16 11:37:45 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2017-05-18 18:04:54 +0200 |
commit | f4a06d1391acf919da3f4291f2d6a70344d21c66 (patch) | |
tree | d655255b69242a4ac838b536f40eadbf4d7c08b1 | |
parent | 5d214a92acb38979ee1abd1883a225903cb171b6 (diff) |
hmp: Use visitor api for hmp_migrate_set_parameter()
We only use it for int64 at this point, I am not able to find a way to
parse an int with MiB units.
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
-rw-r--r-- | hmp.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -29,6 +29,7 @@ #include "monitor/qdev.h" #include "qapi/opts-visitor.h" #include "qapi/qmp/qerror.h" +#include "qapi/string-input-visitor.h" #include "qapi/string-output-visitor.h" #include "qapi/util.h" #include "qapi-visit.h" @@ -1524,8 +1525,9 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) { const char *param = qdict_get_str(qdict, "parameter"); const char *valuestr = qdict_get_str(qdict, "value"); + Visitor *v = string_input_visitor_new(valuestr); uint64_t valuebw = 0; - long valueint = 0; + int64_t valueint = 0; Error *err = NULL; bool use_int_value = false; int i, ret; @@ -1583,9 +1585,8 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) } if (use_int_value) { - if (qemu_strtol(valuestr, NULL, 10, &valueint) < 0) { - error_setg(&err, "Unable to parse '%s' as an int", - valuestr); + visit_type_int(v, param, &valueint, &err); + if (err) { goto cleanup; } /* Set all integers; only one has_FOO will be set, and @@ -1609,6 +1610,7 @@ void hmp_migrate_set_parameter(Monitor *mon, const QDict *qdict) } cleanup: + visit_free(v); if (err) { error_report_err(err); } |