From: Gonglei <arei.gong...@huawei.com> Add HMP set-bootindex wrapper to allow setting devcie's bootindex via monitor.
Signed-off-by: Gonglei <arei.gong...@huawei.com> Signed-off-by: Chenliang <chenlian...@huawei.com> --- hmp-commands.hx | 15 +++++++++++++++ hmp.c | 13 +++++++++++++ hmp.h | 1 + 3 files changed, 29 insertions(+) diff --git a/hmp-commands.hx b/hmp-commands.hx index d0943b1..31ef24e 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -688,6 +688,21 @@ Remove device @var{id}. ETEXI { + .name = "set-bootindex", + .args_type = "id:s,bootindex:l,suffix:s?", + .params = "device bootindex [suffix]", + .help = "set bootindex of a device(e.g. set-bootindex disk0 1 '/disk@0')", + .mhandler.cmd = hmp_set_bootindex, + }, + +STEXI +@item set-bootindex @var{id} @var{bootindex} +@findex set-bootindex + +Set bootindex of a device. +ETEXI + + { .name = "cpu", .args_type = "index:i", .params = "index", diff --git a/hmp.c b/hmp.c index 4d1838e..95f7eeb 100644 --- a/hmp.c +++ b/hmp.c @@ -1714,3 +1714,16 @@ void hmp_info_memdev(Monitor *mon, const QDict *qdict) monitor_printf(mon, "\n"); } + +void hmp_set_bootindex(Monitor *mon, const QDict *qdict) +{ + Error *err = NULL; + + const char *id = qdict_get_str(qdict, "id"); + int64_t bootindex = qdict_get_int(qdict, "bootindex"); + bool has_suffix = qdict_haskey(qdict, "suffix"); + const char *suffix = qdict_get_try_str(qdict, "suffix"); + + qmp_set_bootindex(id, bootindex, has_suffix, suffix, &err); + hmp_handle_error(mon, &err); +} diff --git a/hmp.h b/hmp.h index 4fd3c4a..eb2641a 100644 --- a/hmp.h +++ b/hmp.h @@ -94,6 +94,7 @@ void hmp_cpu_add(Monitor *mon, const QDict *qdict); void hmp_object_add(Monitor *mon, const QDict *qdict); void hmp_object_del(Monitor *mon, const QDict *qdict); void hmp_info_memdev(Monitor *mon, const QDict *qdict); +void hmp_set_bootindex(Monitor *mon, const QDict *qdict); void object_add_completion(ReadLineState *rs, int nb_args, const char *str); void object_del_completion(ReadLineState *rs, int nb_args, const char *str); void device_add_completion(ReadLineState *rs, int nb_args, const char *str); -- 1.7.12.4