Hot-add hmp syntax: dimm_add dimmid Hot-remove hmp syntax: dimm_del dimmid Respective qmp commands are "dimm-add", "dimm-del". Signed-off-by: Vasilis Liaskovitis <vasilis.liaskovitis@xxxxxxxxxxxxxxxx> --- hmp-commands.hx | 32 ++++++++++++++++++++++++++++++++ monitor.c | 11 +++++++++++ monitor.h | 3 +++ qmp-commands.hx | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 0 deletions(-) diff --git a/hmp-commands.hx b/hmp-commands.hx index f5d9d91..012c150 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -618,6 +618,38 @@ Add device. ETEXI { + .name = "dimm_del", + .args_type = "id:s", + .params = "id", + .help = "hot-remove memory (dimm device)", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_dimm_del, + }, + +STEXI +@item dimm_del @var{config} +@findex dimm_del + +Hot-remove dimm. +ETEXI + + { + .name = "dimm_add", + .args_type = "id:s", + .params = "id", + .help = "hot-add memory (dimm device)", + .user_print = monitor_user_noop, + .mhandler.cmd_new = do_dimm_add, + }, + +STEXI +@item dimm_add @var{config} +@findex dimm_add + +Hot-add dimm. +ETEXI + + { .name = "device_del", .args_type = "id:s", .params = "device", diff --git a/monitor.c b/monitor.c index f6107ba..d3d95a6 100644 --- a/monitor.c +++ b/monitor.c @@ -67,6 +67,7 @@ #include "qmp-commands.h" #include "hmp.h" #include "qemu-thread.h" +#include "hw/dimm.h" /* for pic/irq_info */ #if defined(TARGET_SPARC) @@ -4813,3 +4814,13 @@ int monitor_read_block_device_key(Monitor *mon, const char *device, return monitor_read_bdrv_key_start(mon, bs, completion_cb, opaque); } + +int do_dimm_add(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ + return dimm_do(mon, qdict, true); +} + +int do_dimm_del(Monitor *mon, const QDict *qdict, QObject **ret_data) +{ + return dimm_do(mon, qdict, false); +} diff --git a/monitor.h b/monitor.h index 5f4de1b..afdd721 100644 --- a/monitor.h +++ b/monitor.h @@ -86,4 +86,7 @@ int qmp_qom_set(Monitor *mon, const QDict *qdict, QObject **ret); int qmp_qom_get(Monitor *mon, const QDict *qdict, QObject **ret); +int do_dimm_add(Monitor *mon, const QDict *qdict, QObject **ret_data); +int do_dimm_del(Monitor *mon, const QDict *qdict, QObject **ret_data); + #endif /* !MONITOR_H */ diff --git a/qmp-commands.hx b/qmp-commands.hx index 2e1a38e..7efd628 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -2209,3 +2209,42 @@ EQMP .args_type = "implements:s?,abstract:b?", .mhandler.cmd_new = qmp_marshal_input_qom_list_types, }, + { + .name = "dimm-add", + .args_type = "id:s", + .mhandler.cmd_new = do_dimm_add, + }, +SQMP +dimm-add +------------- + +Hot-add memory DIMM + +Will hotplug memory DIMMs with given id. + +Example: + +-> { "execute": "dimm-add", "arguments": { "id": "dimm0" } } +<- { "return": {} } + +EQMP + + { + .name = "dimm-del", + .args_type = "id:s", + .mhandler.cmd_new = do_dimm_del, + }, +SQMP +dimm-del +------------- + +Hot-remove memory DIMM + +Will hot-unplug memory DIMMs with given id. + +Example: + +-> { "execute": "dimm-del", "arguments": { "id": "dimm0" } } +<- { "return": {} } + +EQMP -- 1.7.9 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html