From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:44310) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SouDa-0003T1-Gr for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SouDT-0005rQ-US for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:26 -0400 Received: from mail-bk0-f45.google.com ([209.85.214.45]:52569) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SouDT-0005nz-NO for qemu-devel@nongnu.org; Wed, 11 Jul 2012 06:32:19 -0400 Received: by mail-bk0-f45.google.com with SMTP id ji1so712845bkc.4 for ; Wed, 11 Jul 2012 03:32:18 -0700 (PDT) From: Vasilis Liaskovitis Date: Wed, 11 Jul 2012 12:31:56 +0200 Message-Id: <1342002726-18258-12-git-send-email-vasilis.liaskovitis@profitbricks.com> In-Reply-To: <1342002726-18258-1-git-send-email-vasilis.liaskovitis@profitbricks.com> References: <1342002726-18258-1-git-send-email-vasilis.liaskovitis@profitbricks.com> Subject: [Qemu-devel] [RFC PATCH v2 11/21] Implement dimm_add and dimm_del hmp/qmp commands List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, kvm@vger.kernel.org, seabios@seabios.org Cc: gleb@redhat.com, Vasilis Liaskovitis , kevin@koconnor.net, avi@redhat.com, anthony@codemonkey.ws, imammedo@redhat.com 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 --- 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