@@ -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",
@@ -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);
+}
@@ -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 */
@@ -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
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@profitbricks.com> --- hmp-commands.hx | 32 ++++++++++++++++++++++++++++++++ monitor.c | 11 +++++++++++ monitor.h | 3 +++ qmp-commands.hx | 39 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 85 insertions(+), 0 deletions(-)