[SeaBIOS] [RFC PATCH v2 11/21] Implement dimm_add and dimm_del hmp/qmp commands
Vasilis Liaskovitis
vasilis.liaskovitis at profitbricks.com
Wed Jul 11 12:31:56 CEST 2012
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 at profitbricks.com>
---
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
+ at item dimm_del @var{config}
+ at 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
+ at item dimm_add @var{config}
+ at 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
More information about the SeaBIOS
mailing list