|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V2 1/3] libxl_qmp: Use GC instead of CTX as parameter for _initialize.
On Thu, 2012-02-09 at 14:06 +0000, Anthony PERARD wrote:
> This make things a bit easier.
It's also the correct thing for a libxl__ function to take. BTW you can
use the CTX macro as a shorthand for the libxl__gc_owner stuff.
> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> ---
> tools/libxl/libxl_create.c | 2 +-
> tools/libxl/libxl_internal.h | 4 ++--
> tools/libxl/libxl_qmp.c | 27 ++++++++++++---------------
> 3 files changed, 15 insertions(+), 18 deletions(-)
>
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index f28d814..9148b26 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -594,7 +594,7 @@ static int do_domain_create(libxl__gc *gc,
> libxl_domain_config *d_config,
> if (dm_starting) {
> if (d_config->b_info.device_model_version
> == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) {
> - libxl__qmp_initializations(ctx, domid);
> + libxl__qmp_initializations(gc, domid);
> }
> ret = libxl__confirm_device_model_startup(gc, &state, dm_starting);
> if (ret < 0) {
> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
> index 832cf35..972c818 100644
> --- a/tools/libxl/libxl_internal.h
> +++ b/tools/libxl/libxl_internal.h
> @@ -991,7 +991,7 @@ typedef struct libxl__qmp_handler libxl__qmp_handler;
> /* Initialise and connect to the QMP socket.
> * Return an handler or NULL if there is an error
> */
> -_hidden libxl__qmp_handler *libxl__qmp_initialize(libxl_ctx *ctx,
> +_hidden libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc,
> uint32_t domid);
> /* ask to QEMU the serial port information and store it in xenstore. */
> _hidden int libxl__qmp_query_serial(libxl__qmp_handler *qmp);
> @@ -1007,7 +1007,7 @@ _hidden void libxl__qmp_close(libxl__qmp_handler *qmp);
> _hidden void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid);
>
> /* this helper calls qmp_initialize, query_serial and qmp_close */
> -_hidden int libxl__qmp_initializations(libxl_ctx *ctx, uint32_t domid);
> +_hidden int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid);
>
> /* from libxl_json */
> #include <yajl/yajl_gen.h>
> diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
> index e0642e3..ab34d1d 100644
> --- a/tools/libxl/libxl_qmp.c
> +++ b/tools/libxl/libxl_qmp.c
> @@ -289,17 +289,17 @@ static int qmp_handle_response(libxl__qmp_handler *qmp,
> * Handler functions
> */
>
> -static libxl__qmp_handler *qmp_init_handler(libxl_ctx *ctx, uint32_t domid)
> +static libxl__qmp_handler *qmp_init_handler(libxl__gc *gc, uint32_t domid)
> {
> libxl__qmp_handler *qmp = NULL;
>
> qmp = calloc(1, sizeof (libxl__qmp_handler));
> if (qmp == NULL) {
> - LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
> + LIBXL__LOG_ERRNO(libxl__gc_owner(gc), LIBXL__LOG_ERROR,
> "Failed to allocate qmp_handler");
> return NULL;
> }
> - qmp->ctx = ctx;
> + qmp->ctx = libxl__gc_owner(gc);
> qmp->domid = domid;
> qmp->timeout = 5;
>
> @@ -621,20 +621,18 @@ static void qmp_free_handler(libxl__qmp_handler *qmp)
> * API
> */
>
> -libxl__qmp_handler *libxl__qmp_initialize(libxl_ctx *ctx, uint32_t domid)
> +libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
> {
> int ret = 0;
> libxl__qmp_handler *qmp = NULL;
> char *qmp_socket;
> - GC_INIT(ctx);
>
> - qmp = qmp_init_handler(ctx, domid);
> + qmp = qmp_init_handler(gc, domid);
>
> qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
> libxl_run_dir_path(), domid);
> if ((ret = qmp_open(qmp, qmp_socket, QMP_SOCKET_CONNECT_TIMEOUT)) < 0) {
> - LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Connection error");
> - GC_FREE;
> + LIBXL__LOG_ERRNO(qmp->ctx, LIBXL__LOG_ERROR, "Connection error");
> qmp_free_handler(qmp);
> return NULL;
> }
> @@ -648,9 +646,8 @@ libxl__qmp_handler *libxl__qmp_initialize(libxl_ctx *ctx,
> uint32_t domid)
> }
> }
>
> - GC_FREE;
> if (!qmp->connected) {
> - LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Failed to connect to QMP");
> + LIBXL__LOG(qmp->ctx, LIBXL__LOG_ERROR, "Failed to connect to QMP");
> libxl__qmp_close(qmp);
> return NULL;
> }
> @@ -744,7 +741,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(libxl__gc_owner(gc), domid);
> + qmp = libxl__qmp_initialize(gc, domid);
> if (!qmp)
> return -1;
>
> @@ -789,7 +786,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(libxl__gc_owner(gc), domid);
> + qmp = libxl__qmp_initialize(gc, domid);
> if (!qmp)
> return ERROR_FAIL;
>
> @@ -850,7 +847,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(libxl__gc_owner(gc), domid);
> + qmp = libxl__qmp_initialize(gc, domid);
> if (!qmp)
> return ERROR_FAIL;
>
> @@ -880,12 +877,12 @@ out:
> return rc;
> }
>
> -int libxl__qmp_initializations(libxl_ctx *ctx, uint32_t domid)
> +int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid)
> {
> libxl__qmp_handler *qmp = NULL;
> int ret = 0;
>
> - qmp = libxl__qmp_initialize(ctx, domid);
> + qmp = libxl__qmp_initialize(gc, domid);
> if (!qmp)
> return -1;
> ret = libxl__qmp_query_serial(qmp);
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |