[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [XEN][RFC PATCH 13/15] xl-qmp: add device model id to qmp f
From: |
Julien Grall |
Subject: |
[Qemu-devel] [XEN][RFC PATCH 13/15] xl-qmp: add device model id to qmp function |
Date: |
Thu, 22 Mar 2012 15:59:34 +0000 |
With the support of multiple device, the qmp library needs to know
which device model is currently used.
Signed-off-by: Julien Grall <address@hidden>
---
tools/libxl/libxl_internal.h | 9 +++++----
tools/libxl/libxl_qmp.c | 24 +++++++++++++-----------
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
index 247bdb9..52a2429 100644
--- a/tools/libxl/libxl_internal.h
+++ b/tools/libxl/libxl_internal.h
@@ -1022,7 +1022,8 @@ typedef struct libxl__qmp_handler libxl__qmp_handler;
* Return an handler or NULL if there is an error
*/
_hidden libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc,
- uint32_t domid);
+ uint32_t domid,
+ uint32_t dmid);
/* ask to QEMU the serial port information and store it in xenstore. */
_hidden int libxl__qmp_query_serial(libxl__qmp_handler *qmp);
_hidden int libxl__qmp_pci_add(libxl__gc *gc, int d, libxl_device_pci *pcidev);
@@ -1034,12 +1035,12 @@ _hidden int libxl__qmp_migrate(libxl__gc *gc, int
domid, int fd);
_hidden void libxl__qmp_close(libxl__qmp_handler *qmp);
/* remove the socket file, if the file has already been removed,
* nothing happen */
-_hidden void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid);
+_hidden void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid, uint32_t
deamonid);
/* this helper calls qmp_initialize, query_serial and qmp_close */
_hidden int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
- const libxl_domain_config
*guest_config);
-
+ const libxl_domain_config *guest_config,
+ uint32_t dmid);
/* from libxl_json */
#include <yajl/yajl_gen.h>
diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
index f5a3edc..89d3f48 100644
--- a/tools/libxl/libxl_qmp.c
+++ b/tools/libxl/libxl_qmp.c
@@ -624,7 +624,8 @@ static void qmp_free_handler(libxl__qmp_handler *qmp)
* API
*/
-libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
+libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid,
+ uint32_t dmid)
{
int ret = 0;
libxl__qmp_handler *qmp = NULL;
@@ -632,8 +633,8 @@ libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc,
uint32_t domid)
qmp = qmp_init_handler(gc, domid);
- qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
- libxl_run_dir_path(), domid);
+ qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
+ libxl_run_dir_path(), domid, dmid);
if ((ret = qmp_open(qmp, qmp_socket, QMP_SOCKET_CONNECT_TIMEOUT)) < 0) {
LIBXL__LOG_ERRNO(qmp->ctx, LIBXL__LOG_ERROR, "Connection error");
qmp_free_handler(qmp);
@@ -665,13 +666,13 @@ void libxl__qmp_close(libxl__qmp_handler *qmp)
qmp_free_handler(qmp);
}
-void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid)
+void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid, uint32_t dmid)
{
libxl_ctx *ctx = libxl__gc_owner(gc);
char *qmp_socket;
- qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
- libxl_run_dir_path(), domid);
+ qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
+ libxl_run_dir_path(), domid, dmid);
if (unlink(qmp_socket) == -1) {
if (errno != ENOENT) {
LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
@@ -744,7 +745,7 @@ int libxl__qmp_pci_add(libxl__gc *gc, int domid,
libxl_device_pci *pcidev)
char *hostaddr = NULL;
int rc = 0;
- qmp = libxl__qmp_initialize(gc, domid);
+ qmp = libxl__qmp_initialize(gc, domid, 0);
if (!qmp)
return -1;
@@ -789,7 +790,7 @@ static int qmp_device_del(libxl__gc *gc, int domid, char
*id)
libxl_key_value_list args = NULL;
int rc = 0;
- qmp = libxl__qmp_initialize(gc, domid);
+ qmp = libxl__qmp_initialize(gc, domid, 0);
if (!qmp)
return ERROR_FAIL;
@@ -850,7 +851,7 @@ int libxl__qmp_migrate(libxl__gc *gc, int domid, int fd)
libxl_key_value_list args = NULL;
int rc = 0;
- qmp = libxl__qmp_initialize(gc, domid);
+ qmp = libxl__qmp_initialize(gc, domid, 0);
if (!qmp)
return ERROR_FAIL;
@@ -904,13 +905,14 @@ static int qmp_change(libxl__gc *gc, libxl__qmp_handler
*qmp,
}
int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
- const libxl_domain_config *guest_config)
+ const libxl_domain_config *guest_config,
+ uint32_t dmid)
{
const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
libxl__qmp_handler *qmp = NULL;
int ret = 0;
- qmp = libxl__qmp_initialize(gc, domid);
+ qmp = libxl__qmp_initialize(gc, domid, dmid);
if (!qmp)
return -1;
ret = libxl__qmp_query_serial(qmp);
--
Julien Grall
- [Qemu-devel] [XEN][RFC PATCH 00/15] QEMU disaggregation, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 03/15] hvm-pci: Handle PCI config space in Xen, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 01/15] hvm: Modify interface to support multiple ioreq server, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 05/15] hvm: Modify hvm_op, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 11/15] xc: Fix python build, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 07/15] hvm-io: send invalidate map cache to each registered servers, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 13/15] xl-qmp: add device model id to qmp function,
Julien Grall <=
- [Qemu-devel] [XEN][RFC PATCH 09/15] xc: Add the hypercall for multiple servers, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 02/15] hvm: Add functions to handle ioreq servers, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 04/15] hvm: Change initialization/destruction of an hvm, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 06/15] hvm-io: IO refactoring with ioreq server, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 08/15] hvm-io: Handle server in buffered IO, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 10/15] xc: Add argument to allocate more special pages, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 14/15] xl-parsing: Parse the new option device_models, Julien Grall, 2012/03/22
- [Qemu-devel] [XEN][RFC PATCH 12/15] xl: Add interface to handle multiple device models, Julien Grall, 2012/03/22