aboutsummaryrefslogtreecommitdiffstats
path: root/tools/libxl
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2013-06-26 16:54:30 +0100
committerIan Campbell <ian.campbell@citrix.com>2013-06-26 17:46:49 +0100
commit3275031240b372d0f8c97f9662dec6b54e78c594 (patch)
tree26d1553ac9489a83a0b9e6d585cdcd188784a0f2 /tools/libxl
parent401e18fd9b5f226e1e35eec369a4e0db0f2248fc (diff)
downloadxen-3275031240b372d0f8c97f9662dec6b54e78c594.tar.gz
xen-3275031240b372d0f8c97f9662dec6b54e78c594.tar.bz2
xen-3275031240b372d0f8c97f9662dec6b54e78c594.zip
libxl: Add "cpu-add" QMP command.
Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Acked-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: George Dunlap <george.dunlap@eu.citrix.com> [ ijc -- rename index parameter to avoid Wshadow due to index(3) in strings.h ]
Diffstat (limited to 'tools/libxl')
-rw-r--r--tools/libxl/libxl_internal.h2
-rw-r--r--tools/libxl/libxl_qmp.c21
2 files changed, 23 insertions, 0 deletions
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 00ff6b96cd..f051d91ed9 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -1417,6 +1417,8 @@ _hidden int libxl__qmp_save(libxl__gc *gc, int domid, const char *filename);
/* Set dirty bitmap logging status */
_hidden int libxl__qmp_set_global_dirty_log(libxl__gc *gc, int domid, bool enable);
_hidden int libxl__qmp_insert_cdrom(libxl__gc *gc, int domid, const libxl_device_disk *disk);
+/* Add a virtual CPU */
+_hidden int libxl__qmp_cpu_add(libxl__gc *gc, int domid, int index);
/* close and free the QMP handler */
_hidden void libxl__qmp_close(libxl__qmp_handler *qmp);
/* remove the socket file, if the file has already been removed,
diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
index 644d2c0041..f681f3a4c6 100644
--- a/tools/libxl/libxl_qmp.c
+++ b/tools/libxl/libxl_qmp.c
@@ -668,6 +668,18 @@ static void qmp_parameters_add_bool(libxl__gc *gc,
qmp_parameters_common_add(gc, param, name, obj);
}
+static void qmp_parameters_add_integer(libxl__gc *gc,
+ libxl__json_object **param,
+ const char *name, const int i)
+{
+ libxl__json_object *obj;
+
+ obj = libxl__json_object_alloc(gc, JSON_INTEGER);
+ obj->u.i = i;
+
+ qmp_parameters_common_add(gc, param, name, obj);
+}
+
#define QMP_PARAMETERS_SPRINTF(args, name, format, ...) \
qmp_parameters_add_string(gc, args, name, \
libxl__sprintf(gc, format, __VA_ARGS__))
@@ -929,6 +941,15 @@ int libxl__qmp_insert_cdrom(libxl__gc *gc, int domid,
}
}
+int libxl__qmp_cpu_add(libxl__gc *gc, int domid, int idx)
+{
+ libxl__json_object *args = NULL;
+
+ qmp_parameters_add_integer(gc, &args, "id", idx);
+
+ return qmp_run_command(gc, domid, "cpu-add", args, NULL, NULL);
+}
+
int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
const libxl_domain_config *guest_config)
{