Skip to content

Commit

Permalink
qga: implement qmp_guest_set_memory_blocks() for Linux with sysfs
Browse files Browse the repository at this point in the history
We can change guest's online/offline state of memory blocks, by using
command 'guest-set-memory-blocks'.

Signed-off-by: zhanghailiang <zhang.zhanghailiang@huawei.com>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
  • Loading branch information
colo-ft authored and mdroth committed Feb 17, 2015
1 parent bd240fc commit 32ca792
Showing 1 changed file with 29 additions and 1 deletion.
30 changes: 29 additions & 1 deletion qga/commands-posix.c
Expand Up @@ -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;
}

Expand Down

0 comments on commit 32ca792

Please sign in to comment.