mirror of https://gitee.com/openkylin/qemu.git
chardev: add hmp hotplug commands
Add chardev-add and chardev-remove commands to the human monitor. chardev-add accepts the same syntax as -chardev, chardev-remove expects a chardev id. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
f1a1a35638
commit
f108890891
|
@ -1482,6 +1482,38 @@ Password is invalidated at the given time. @var{nsec} are the seconds
|
|||
passed since 1970, i.e. unix epoch.
|
||||
|
||||
@end table
|
||||
ETEXI
|
||||
|
||||
{
|
||||
.name = "chardev-add",
|
||||
.args_type = "args:s",
|
||||
.params = "args",
|
||||
.help = "add chardev",
|
||||
.mhandler.cmd = hmp_chardev_add,
|
||||
},
|
||||
|
||||
STEXI
|
||||
@item chardev_add args
|
||||
@findex chardev_add
|
||||
|
||||
chardev_add accepts the same parameters as the -chardev command line switch.
|
||||
|
||||
ETEXI
|
||||
|
||||
{
|
||||
.name = "chardev-remove",
|
||||
.args_type = "id:s",
|
||||
.params = "id",
|
||||
.help = "remove chardev",
|
||||
.mhandler.cmd = hmp_chardev_remove,
|
||||
},
|
||||
|
||||
STEXI
|
||||
@item chardev_remove id
|
||||
@findex chardev_remove
|
||||
|
||||
Removes the chardev @var{id}.
|
||||
|
||||
ETEXI
|
||||
|
||||
{
|
||||
|
|
23
hmp.c
23
hmp.c
|
@ -1336,3 +1336,26 @@ void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict)
|
|||
qmp_nbd_server_stop(&errp);
|
||||
hmp_handle_error(mon, &errp);
|
||||
}
|
||||
|
||||
void hmp_chardev_add(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
const char *args = qdict_get_str(qdict, "args");
|
||||
Error *err = NULL;
|
||||
QemuOpts *opts;
|
||||
|
||||
opts = qemu_opts_parse(qemu_find_opts("chardev"), args, 1);
|
||||
if (opts == NULL) {
|
||||
error_setg(&err, "Parsing chardev args failed\n");
|
||||
} else {
|
||||
qemu_chr_new_from_opts(opts, NULL, &err);
|
||||
}
|
||||
hmp_handle_error(mon, &err);
|
||||
}
|
||||
|
||||
void hmp_chardev_remove(Monitor *mon, const QDict *qdict)
|
||||
{
|
||||
Error *local_err = NULL;
|
||||
|
||||
qmp_chardev_remove(qdict_get_str(qdict, "id"), &local_err);
|
||||
hmp_handle_error(mon, &local_err);
|
||||
}
|
||||
|
|
2
hmp.h
2
hmp.h
|
@ -80,5 +80,7 @@ void hmp_screen_dump(Monitor *mon, const QDict *qdict);
|
|||
void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
|
||||
void hmp_nbd_server_add(Monitor *mon, const QDict *qdict);
|
||||
void hmp_nbd_server_stop(Monitor *mon, const QDict *qdict);
|
||||
void hmp_chardev_add(Monitor *mon, const QDict *qdict);
|
||||
void hmp_chardev_remove(Monitor *mon, const QDict *qdict);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue