diff options
author | Anthony PERARD <anthony.perard@citrix.com> | 2013-06-26 16:54:30 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2013-06-26 17:46:49 +0100 |
commit | 3275031240b372d0f8c97f9662dec6b54e78c594 (patch) | |
tree | 26d1553ac9489a83a0b9e6d585cdcd188784a0f2 /tools/libxl | |
parent | 401e18fd9b5f226e1e35eec369a4e0db0f2248fc (diff) | |
download | xen-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.h | 2 | ||||
-rw-r--r-- | tools/libxl/libxl_qmp.c | 21 |
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) { |