[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 16/24] libxl: change some structures to unit arrays



On Mon, 2012-04-16 at 18:17 +0100, Ian Jackson wrote:
> In the next patch these variables will turn into actual pointers.
> 
> To clarify that patch, prepare the ground by changing these variables
> from "struct foo var" to "struct foo var[1]".  This enables accesses
> to them and their members to be made as if they were pointers.
> 
> No functional change.

Therefore only quickly skimmed and:
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>

> 
> Signed-off-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
> ---
>  tools/libxl/libxl_create.c |   18 +++++-----
>  tools/libxl/libxl_dm.c     |   84 
> ++++++++++++++++++++++----------------------
>  2 files changed, 51 insertions(+), 51 deletions(-)
> 
> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
> index dbc3cf0..8408c26 100644
> --- a/tools/libxl/libxl_create.c
> +++ b/tools/libxl/libxl_create.c
> @@ -543,7 +543,7 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>  {
>      libxl_ctx *ctx = libxl__gc_owner(gc);
>      libxl__spawner_starting *dm_starting = 0;
> -    libxl__domain_build_state state;
> +    libxl__domain_build_state state[1];
>      uint32_t domid;
>      int i, ret;
> 
> @@ -585,12 +585,12 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>          }
>      }
> 
> -    memset(&state, 0, sizeof(state));
> +    memset(state, 0, sizeof(*state));
> 
>      if ( restore_fd >= 0 ) {
> -        ret = domain_restore(gc, &d_config->b_info, domid, restore_fd, 
> &state);
> +        ret = domain_restore(gc, &d_config->b_info, domid, restore_fd, 
> state);
>      } else {
> -        ret = libxl__domain_build(gc, &d_config->b_info, domid, &state);
> +        ret = libxl__domain_build(gc, &d_config->b_info, domid, state);
>      }
> 
>      if (ret) {
> @@ -628,7 +628,7 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>          ret = init_console_info(&console, 0);
>          if ( ret )
>              goto error_out;
> -        libxl__device_console_add(gc, domid, &console, &state);
> +        libxl__device_console_add(gc, domid, &console, state);
>          libxl__device_console_dispose(&console);
> 
>          libxl_device_vkb_init(&vkb);
> @@ -636,7 +636,7 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>          libxl_device_vkb_dispose(&vkb);
> 
>          ret = libxl__create_device_model(gc, domid, d_config,
> -                                         &state, &dm_starting);
> +                                         state, &dm_starting);
>          if (ret < 0) {
>              LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
>                         "failed to create device model: %d", ret);
> @@ -665,11 +665,11 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>          if (need_qemu)
>               console.consback = LIBXL__CONSOLE_BACKEND_IOEMU;
> 
> -        libxl__device_console_add(gc, domid, &console, &state);
> +        libxl__device_console_add(gc, domid, &console, state);
>          libxl__device_console_dispose(&console);
> 
>          if (need_qemu) {
> -            libxl__create_xenpv_qemu(gc, domid, d_config, &state, 
> &dm_starting);
> +            libxl__create_xenpv_qemu(gc, domid, d_config, state, 
> &dm_starting);
>          }
>          break;
>      }
> @@ -683,7 +683,7 @@ static int do_domain_create(libxl__gc *gc, 
> libxl_domain_config *d_config,
>              == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) {
>              libxl__qmp_initializations(gc, domid, d_config);
>          }
> -        ret = libxl__confirm_device_model_startup(gc, &state, dm_starting);
> +        ret = libxl__confirm_device_model_startup(gc, state, dm_starting);
>          if (ret < 0) {
>              LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
>                         "device model did not start: %d", ret);
> diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
> index 7bf653a..3921e2a 100644
> --- a/tools/libxl/libxl_dm.c
> +++ b/tools/libxl/libxl_dm.c
> @@ -676,10 +676,10 @@ static int libxl__create_stubdom(libxl__gc *gc,
>      libxl_ctx *ctx = libxl__gc_owner(gc);
>      int i, num_console = STUBDOM_SPECIAL_CONSOLES, ret;
>      libxl__device_console *console;
> -    libxl_domain_config dm_config;
> +    libxl_domain_config dm_config[1];
>      libxl_device_vfb vfb;
>      libxl_device_vkb vkb;
> -    libxl__domain_build_state stubdom_state;
> +    libxl__domain_build_state stubdom_state[1];
>      uint32_t dm_domid;
>      char **args;
>      struct xs_permissions perm[2];
> @@ -692,58 +692,58 @@ static int libxl__create_stubdom(libxl__gc *gc,
>          goto out;
>      }
> 
> -    libxl_domain_create_info_init(&dm_config.c_info);
> -    dm_config.c_info.type = LIBXL_DOMAIN_TYPE_PV;
> -    dm_config.c_info.name = libxl__sprintf(gc, "%s-dm",
> +    libxl_domain_create_info_init(&dm_config->c_info);
> +    dm_config->c_info.type = LIBXL_DOMAIN_TYPE_PV;
> +    dm_config->c_info.name = libxl__sprintf(gc, "%s-dm",
>                                      libxl__domid_to_name(gc, guest_domid));
> -    dm_config.c_info.ssidref = guest_config->b_info.device_model_ssidref;
> +    dm_config->c_info.ssidref = guest_config->b_info.device_model_ssidref;
> 
> -    libxl_uuid_generate(&dm_config.c_info.uuid);
> +    libxl_uuid_generate(&dm_config->c_info.uuid);
> 
> -    libxl_domain_build_info_init(&dm_config.b_info);
> -    libxl_domain_build_info_init_type(&dm_config.b_info, 
> LIBXL_DOMAIN_TYPE_PV);
> +    libxl_domain_build_info_init(&dm_config->b_info);
> +    libxl_domain_build_info_init_type(&dm_config->b_info, 
> LIBXL_DOMAIN_TYPE_PV);
> 
> -    dm_config.b_info.max_vcpus = 1;
> -    dm_config.b_info.max_memkb = 32 * 1024;
> -    dm_config.b_info.target_memkb = dm_config.b_info.max_memkb;
> +    dm_config->b_info.max_vcpus = 1;
> +    dm_config->b_info.max_memkb = 32 * 1024;
> +    dm_config->b_info.target_memkb = dm_config->b_info.max_memkb;
> 
> -    dm_config.b_info.u.pv.kernel.path = libxl__abs_path(gc, 
> "ioemu-stubdom.gz",
> +    dm_config->b_info.u.pv.kernel.path = libxl__abs_path(gc, 
> "ioemu-stubdom.gz",
>                                                libxl_xenfirmwaredir_path());
> -    dm_config.b_info.u.pv.cmdline = libxl__sprintf(gc, " -d %d", 
> guest_domid);
> -    dm_config.b_info.u.pv.ramdisk.path = "";
> -    dm_config.b_info.u.pv.features = "";
> +    dm_config->b_info.u.pv.cmdline = libxl__sprintf(gc, " -d %d", 
> guest_domid);
> +    dm_config->b_info.u.pv.ramdisk.path = "";
> +    dm_config->b_info.u.pv.features = "";
> 
> -    dm_config.b_info.device_model_version =
> +    dm_config->b_info.device_model_version =
>          guest_config->b_info.device_model_version;
> -    dm_config.b_info.device_model =
> +    dm_config->b_info.device_model =
>          guest_config->b_info.device_model;
> -    dm_config.b_info.extra = guest_config->b_info.extra;
> -    dm_config.b_info.extra_pv = guest_config->b_info.extra_pv;
> -    dm_config.b_info.extra_hvm = guest_config->b_info.extra_hvm;
> +    dm_config->b_info.extra = guest_config->b_info.extra;
> +    dm_config->b_info.extra_pv = guest_config->b_info.extra_pv;
> +    dm_config->b_info.extra_hvm = guest_config->b_info.extra_hvm;
> 
> -    dm_config.disks = guest_config->disks;
> -    dm_config.num_disks = guest_config->num_disks;
> +    dm_config->disks = guest_config->disks;
> +    dm_config->num_disks = guest_config->num_disks;
> 
> -    dm_config.vifs = guest_config->vifs;
> -    dm_config.num_vifs = guest_config->num_vifs;
> +    dm_config->vifs = guest_config->vifs;
> +    dm_config->num_vifs = guest_config->num_vifs;
> 
> -    ret = libxl__domain_create_info_setdefault(gc, &dm_config.c_info);
> +    ret = libxl__domain_create_info_setdefault(gc, &dm_config->c_info);
>      if (ret) goto out;
> -    ret = libxl__domain_build_info_setdefault(gc, &dm_config.b_info);
> +    ret = libxl__domain_build_info_setdefault(gc, &dm_config->b_info);
>      if (ret) goto out;
> 
>      libxl__vfb_and_vkb_from_hvm_guest_config(gc, guest_config, &vfb, &vkb);
> -    dm_config.vfbs = &vfb;
> -    dm_config.num_vfbs = 1;
> -    dm_config.vkbs = &vkb;
> -    dm_config.num_vkbs = 1;
> +    dm_config->vfbs = &vfb;
> +    dm_config->num_vfbs = 1;
> +    dm_config->vkbs = &vkb;
> +    dm_config->num_vkbs = 1;
> 
>      /* fixme: this function can leak the stubdom if it fails */
>      dm_domid = 0;
> -    ret = libxl__domain_make(gc, &dm_config.c_info, &dm_domid);
> +    ret = libxl__domain_make(gc, &dm_config->c_info, &dm_domid);
>      if (ret)
>          goto out;
> -    ret = libxl__domain_build(gc, &dm_config.b_info, dm_domid, 
> &stubdom_state);
> +    ret = libxl__domain_build(gc, &dm_config->b_info, dm_domid, 
> stubdom_state);
>      if (ret)
>          goto out;
> 
> @@ -788,20 +788,20 @@ retry_transaction:
>          if (errno == EAGAIN)
>              goto retry_transaction;
> 
> -    for (i = 0; i < dm_config.num_disks; i++) {
> -        ret = libxl_device_disk_add(ctx, dm_domid, &dm_config.disks[i]);
> +    for (i = 0; i < dm_config->num_disks; i++) {
> +        ret = libxl_device_disk_add(ctx, dm_domid, &dm_config->disks[i]);
>          if (ret)
>              goto out_free;
>      }
> -    for (i = 0; i < dm_config.num_vifs; i++) {
> -        ret = libxl_device_nic_add(ctx, dm_domid, &dm_config.vifs[i]);
> +    for (i = 0; i < dm_config->num_vifs; i++) {
> +        ret = libxl_device_nic_add(ctx, dm_domid, &dm_config->vifs[i]);
>          if (ret)
>              goto out_free;
>      }
> -    ret = libxl_device_vfb_add(ctx, dm_domid, &dm_config.vfbs[0]);
> +    ret = libxl_device_vfb_add(ctx, dm_domid, &dm_config->vfbs[0]);
>      if (ret)
>          goto out_free;
> -    ret = libxl_device_vkb_add(ctx, dm_domid, &dm_config.vkbs[0]);
> +    ret = libxl_device_vkb_add(ctx, dm_domid, &dm_config->vkbs[0]);
>      if (ret)
>          goto out_free;
> 
> @@ -845,14 +845,14 @@ retry_transaction:
>                  break;
>          }
>          ret = libxl__device_console_add(gc, dm_domid, &console[i],
> -                        i == STUBDOM_CONSOLE_LOGGING ? &stubdom_state : 
> NULL);
> +                        i == STUBDOM_CONSOLE_LOGGING ? stubdom_state : NULL);
>          if (ret)
>              goto out_free;
>      }
> 
>      if (libxl__create_xenpv_qemu(gc, dm_domid,
> -                                 &dm_config,
> -                                 &stubdom_state,
> +                                 dm_config,
> +                                 stubdom_state,
>                                   &dm_starting) < 0) {
>          ret = ERROR_FAIL;
>          goto out_free;
> --
> 1.7.2.5
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.