From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44197) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNqrd-0006sn-1h for qemu-devel@nongnu.org; Tue, 17 Feb 2015 17:43:33 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YNqrW-0002OI-3z for qemu-devel@nongnu.org; Tue, 17 Feb 2015 17:43:32 -0500 Received: from e32.co.us.ibm.com ([32.97.110.150]:56342) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YNqrV-0002O1-Sw for qemu-devel@nongnu.org; Tue, 17 Feb 2015 17:43:26 -0500 Received: from /spool/local by e32.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 17 Feb 2015 15:43:25 -0700 Received: from b03cxnp07028.gho.boulder.ibm.com (b03cxnp07028.gho.boulder.ibm.com [9.17.130.15]) by d03dlp01.boulder.ibm.com (Postfix) with ESMTP id 7DD441FF0043 for ; Tue, 17 Feb 2015 15:34:33 -0700 (MST) Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by b03cxnp07028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id t1HMfib817039364 for ; Tue, 17 Feb 2015 15:41:53 -0700 Received: from d03av02.boulder.ibm.com (localhost [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id t1HMgmfp014818 for ; Tue, 17 Feb 2015 15:42:49 -0700 From: Michael Roth Date: Tue, 17 Feb 2015 16:40:23 -0600 Message-Id: <1424212826-27606-8-git-send-email-mdroth@linux.vnet.ibm.com> In-Reply-To: <1424212826-27606-1-git-send-email-mdroth@linux.vnet.ibm.com> References: <1424212826-27606-1-git-send-email-mdroth@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH 07/10] qga: implement qmp_guest_set_memory_blocks() for Linux with sysfs List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: peter.maydell@linaro.org, zhanghailiang From: zhanghailiang We can change guest's online/offline state of memory blocks, by using command 'guest-set-memory-blocks'. Signed-off-by: zhanghailiang Signed-off-by: Michael Roth --- qga/commands-posix.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/qga/commands-posix.c b/qga/commands-posix.c index 5d4101d..0fd5d95 100644 --- a/qga/commands-posix.c +++ b/qga/commands-posix.c @@ -2232,7 +2232,35 @@ GuestMemoryBlockList *qmp_guest_get_memory_blocks(Error **errp) GuestMemoryBlockResponseList * qmp_guest_set_memory_blocks(GuestMemoryBlockList *mem_blks, Error **errp) { - error_set(errp, QERR_UNSUPPORTED); + GuestMemoryBlockResponseList *head, **link; + Error *local_err = NULL; + + head = NULL; + link = &head; + + while (mem_blks != NULL) { + GuestMemoryBlockResponse *result; + GuestMemoryBlockResponseList *entry; + GuestMemoryBlock *current_mem_blk = mem_blks->value; + + result = g_malloc0(sizeof(*result)); + result->phys_index = current_mem_blk->phys_index; + transfer_memory_block(current_mem_blk, false, result, &local_err); + if (local_err) { /* should never happen */ + goto err; + } + entry = g_malloc0(sizeof *entry); + entry->value = result; + + *link = entry; + link = &entry->next; + mem_blks = mem_blks->next; + } + + return head; +err: + qapi_free_GuestMemoryBlockResponseList(head); + error_propagate(errp, local_err); return NULL; } -- 1.9.1