Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Xen: Devel

[PATCH 17/27] libxl: change some structures to unit arrays

 

 

Xen devel RSS feed   Index | Next | Previous | View Threaded


ian.jackson at eu

May 11, 2012, 10:58 AM

Post #1 of 1 (50 views)
Permalink
[PATCH 17/27] libxl: change some structures to unit arrays

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.

Signed-off-by: Ian Jackson <ian.jackson [at] eu>
Acked-by: Ian Campbell <ian.campbell [at] citrix>
---
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 f7732aa..b137288 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -564,7 +564,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;

@@ -606,12 +606,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) {
@@ -649,7 +649,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);
@@ -657,7 +657,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);
@@ -683,11 +683,11 @@ static int do_domain_create(libxl__gc *gc, libxl_domain_config *d_config,
d_config->num_vfbs, d_config->vfbs,
d_config->num_disks, &d_config->disks[0]);

- 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;
}
@@ -701,7 +701,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 36b0730..725c3c0 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -678,10 +678,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];
@@ -694,58 +694,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;

@@ -790,20 +790,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;

@@ -847,14 +847,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 [at] lists
http://lists.xen.org/xen-devel

Xen devel RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.