[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 25 of 32] tools: libxl: remove libxl_domain_build_state from the IDL
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1303134373 -3600 # Node ID fcf62b8dc42e85ee8a6365ec43d7e196efb94d6f # Parent d537fe77010c7dc5dd4b6a1766b8d53660bde7e3 tools: libxl: remove libxl_domain_build_state from the IDL This datastructure is internal to the library. Remove the reference from libxl_device_console. This could never have been used from outside libxl and is only used internally to add the primary PV console to a guest. Make an internal variant of libxl_device_console_add which takes the build state as a paramter instead. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl.c --- a/tools/libxl/libxl.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl.c Mon Apr 18 14:46:13 2011 +0100 @@ -1389,14 +1389,20 @@ err: } /******************************************************************************/ -int libxl_device_console_add(libxl_ctx *ctx, uint32_t domid, libxl_device_console *console) +int libxl__device_console_add(libxl__gc *gc, uint32_t domid, + libxl_device_console *console, + libxl__domain_build_state *state) { - libxl__gc gc = LIBXL_INIT_GC(ctx); flexarray_t *front; flexarray_t *back; libxl__device device; int rc; + if (console->devid && state) { + rc = ERROR_INVAL; + goto out; + } + front = flexarray_make(16, 1); if (!front) { rc = ERROR_NOMEM; @@ -1416,20 +1422,20 @@ int libxl_device_console_add(libxl_ctx * device.kind = DEVICE_CONSOLE; flexarray_append(back, "frontend-id"); - flexarray_append(back, libxl__sprintf(&gc, "%d", domid)); + flexarray_append(back, libxl__sprintf(gc, "%d", domid)); flexarray_append(back, "online"); flexarray_append(back, "1"); flexarray_append(back, "state"); - flexarray_append(back, libxl__sprintf(&gc, "%d", 1)); + flexarray_append(back, libxl__sprintf(gc, "%d", 1)); flexarray_append(back, "domain"); - flexarray_append(back, libxl__domid_to_name(&gc, domid)); + flexarray_append(back, libxl__domid_to_name(gc, domid)); flexarray_append(back, "protocol"); flexarray_append(back, LIBXL_XENCONSOLE_PROTOCOL); flexarray_append(front, "backend-id"); - flexarray_append(front, libxl__sprintf(&gc, "%d", console->backend_domid)); + flexarray_append(front, libxl__sprintf(gc, "%d", console->backend_domid)); flexarray_append(front, "limit"); - flexarray_append(front, libxl__sprintf(&gc, "%d", LIBXL_XENCONSOLE_LIMIT)); + flexarray_append(front, libxl__sprintf(gc, "%d", LIBXL_XENCONSOLE_LIMIT)); flexarray_append(front, "type"); if (console->consback == LIBXL_CONSOLE_BACKEND_XENCONSOLED) flexarray_append(front, "xenconsoled"); @@ -1438,30 +1444,37 @@ int libxl_device_console_add(libxl_ctx * flexarray_append(front, "output"); flexarray_append(front, console->output); - if (device.devid == 0) { - if (console->build_state == NULL) { - rc = ERROR_INVAL; - goto out_free; - } + if (state) { flexarray_append(front, "port"); - flexarray_append(front, libxl__sprintf(&gc, "%"PRIu32, console->build_state->console_port)); + flexarray_append(front, libxl__sprintf(gc, "%"PRIu32, state->console_port)); flexarray_append(front, "ring-ref"); - flexarray_append(front, libxl__sprintf(&gc, "%lu", console->build_state->console_mfn)); + flexarray_append(front, libxl__sprintf(gc, "%lu", state->console_mfn)); } else { flexarray_append(front, "state"); - flexarray_append(front, libxl__sprintf(&gc, "%d", 1)); + flexarray_append(front, libxl__sprintf(gc, "%d", 1)); flexarray_append(front, "protocol"); flexarray_append(front, LIBXL_XENCONSOLE_PROTOCOL); } - libxl__device_generic_add(&gc, &device, - libxl__xs_kvs_of_flexarray(&gc, back, back->count), - libxl__xs_kvs_of_flexarray(&gc, front, front->count)); + libxl__device_generic_add(gc, &device, + libxl__xs_kvs_of_flexarray(gc, back, back->count), + libxl__xs_kvs_of_flexarray(gc, front, front->count)); rc = 0; out_free: flexarray_free(back); flexarray_free(front); out: + return rc; +} + +int libxl_device_console_add(libxl_ctx *ctx, uint32_t domid, + libxl_device_console *console) +{ + libxl__gc gc = LIBXL_INIT_GC(ctx); + int rc = ERROR_INVAL; + + rc = libxl__device_console_add(&gc, domid, console, NULL); + libxl__free_all(&gc); return rc; } diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl.idl --- a/tools/libxl/libxl.idl Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl.idl Mon Apr 18 14:46:13 2011 +0100 @@ -190,13 +190,6 @@ by libxl_domain_build/restore. If either then the user is responsible for calling libxl_file_reference_unmap.""") -libxl_domain_build_state = Struct("domain_build_state",[ - ("store_port", uint32), - ("store_mfn", unsigned_long), - ("console_port", uint32), - ("console_mfn", unsigned_long), - ], destructor_fn=None) - libxl_device_model_info = Struct("device_model_info",[ ("domid", libxl_domid), ("uuid", libxl_uuid, False, "this is use only with stubdom, and must be different from the domain uuid"), @@ -259,7 +252,6 @@ libxl_device_console = Struct("device_co ("backend_domid", libxl_domid), ("devid", integer), ("consback", libxl_console_backend), - ("build_state", Reference(libxl_domain_build_state), True), ("output", string), ]) diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl_create.c --- a/tools/libxl/libxl_create.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl_create.c Mon Apr 18 14:46:13 2011 +0100 @@ -133,7 +133,7 @@ void libxl_init_dm_info(libxl_device_mod dm_info->xen_platform_pci = 1; } -static int init_console_info(libxl_device_console *console, int dev_num, libxl_domain_build_state *state) +static int init_console_info(libxl_device_console *console, int dev_num) { memset(console, 0x00, sizeof(libxl_device_console)); console->devid = dev_num; @@ -141,12 +141,11 @@ static int init_console_info(libxl_devic console->output = strdup("pty"); if ( NULL == console->output ) return ERROR_NOMEM; - if (state) - console->build_state = state; return 0; } -int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info, uint32_t domid, libxl_domain_build_state *state) +int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info, + uint32_t domid, libxl__domain_build_state *state) { char **vments = NULL, **localents = NULL; struct timeval start_time; @@ -198,7 +197,8 @@ out: } static int domain_restore(libxl__gc *gc, libxl_domain_build_info *info, - uint32_t domid, int fd, libxl_domain_build_state *state, + uint32_t domid, int fd, + libxl__domain_build_state *state, libxl_device_model_info *dm_info) { libxl_ctx *ctx = libxl__gc_owner(gc); @@ -403,7 +403,7 @@ static int do_domain_create(libxl__gc *g libxl_ctx *ctx = libxl__gc_owner(gc); libxl__device_model_starting *dm_starting = 0; libxl_device_model_info *dm_info = &d_config->dm_info; - libxl_domain_build_state state; + libxl__domain_build_state state; uint32_t domid; int i, ret; @@ -464,10 +464,10 @@ static int do_domain_create(libxl__gc *g if (d_config->c_info.hvm) { libxl_device_console console; - ret = init_console_info(&console, 0, &state); + ret = init_console_info(&console, 0); if ( ret ) goto error_out; - libxl_device_console_add(ctx, domid, &console); + libxl__device_console_add(gc, domid, &console, &state); libxl_device_console_destroy(&console); dm_info->domid = domid; @@ -489,7 +489,7 @@ static int do_domain_create(libxl__gc *g libxl_device_vkb_add(ctx, domid, &d_config->vkbs[i]); } - ret = init_console_info(&console, 0, &state); + ret = init_console_info(&console, 0); if ( ret ) goto error_out; @@ -500,7 +500,7 @@ static int do_domain_create(libxl__gc *g if (need_qemu) console.consback = LIBXL_CONSOLE_BACKEND_IOEMU; - libxl_device_console_add(ctx, domid, &console); + libxl__device_console_add(gc, domid, &console, &state); libxl_device_console_destroy(&console); if (need_qemu) diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl_dm.c Mon Apr 18 14:46:13 2011 +0100 @@ -569,7 +569,7 @@ static int libxl__create_stubdom(libxl__ libxl_device_console *console; libxl_domain_create_info c_info; libxl_domain_build_info b_info; - libxl_domain_build_state state; + libxl__domain_build_state state; uint32_t domid; char **args; struct xs_permissions perm[2]; @@ -684,7 +684,6 @@ retry_transaction: name = libxl__sprintf(gc, "qemu-dm-%s", libxl_domid_to_name(ctx, info->domid)); libxl_create_logfile(ctx, name, &filename); console[i].output = libxl__sprintf(gc, "file:%s", filename); - console[i].build_state = &state; free(filename); break; case STUBDOM_CONSOLE_SAVE: @@ -698,7 +697,8 @@ retry_transaction: console[i].output = "pty"; break; } - ret = libxl_device_console_add(ctx, domid, &console[i]); + ret = libxl__device_console_add(gc, domid, &console[i], + i == STUBDOM_CONSOLE_LOGGING ? &state : NULL); if (ret) goto out_free; } diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl_dom.c Mon Apr 18 14:46:13 2011 +0100 @@ -67,7 +67,7 @@ int libxl__domain_shutdown_reason(libxl_ } int libxl__build_pre(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state) + libxl_domain_build_info *info, libxl__domain_build_state *state) { libxl_ctx *ctx = libxl__gc_owner(gc); xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus); @@ -91,8 +91,9 @@ int libxl__build_pre(libxl__gc *gc, uint } int libxl__build_post(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state, - char **vms_ents, char **local_ents) + libxl_domain_build_info *info, + libxl__domain_build_state *state, + char **vms_ents, char **local_ents) { libxl_ctx *ctx = libxl__gc_owner(gc); char *dom_path, *vm_path; @@ -145,7 +146,7 @@ retry_transaction: } int libxl__build_pv(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state) + libxl_domain_build_info *info, libxl__domain_build_state *state) { libxl_ctx *ctx = libxl__gc_owner(gc); struct xc_dom_image *dom; @@ -277,7 +278,7 @@ static const char *libxl__domain_hvmload } int libxl__build_hvm(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state) + libxl_domain_build_info *info, libxl__domain_build_state *state) { libxl_ctx *ctx = libxl__gc_owner(gc); int ret, rc = ERROR_INVAL; @@ -305,8 +306,9 @@ out: } int libxl__domain_restore_common(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state, - int fd) + libxl_domain_build_info *info, + libxl__domain_build_state *state, + int fd) { libxl_ctx *ctx = libxl__gc_owner(gc); /* read signature */ diff -r d537fe77010c -r fcf62b8dc42e tools/libxl/libxl_internal.h --- a/tools/libxl/libxl_internal.h Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/libxl/libxl_internal.h Mon Apr 18 14:46:13 2011 +0100 @@ -169,23 +169,33 @@ _hidden char **libxl__xs_directory(libxl _hidden int libxl__domain_is_hvm(libxl__gc *gc, uint32_t domid); _hidden int libxl__domain_shutdown_reason(libxl__gc *gc, uint32_t domid); +typedef struct { + uint32_t store_port; + unsigned long store_mfn; + + uint32_t console_port; + unsigned long console_mfn; +} libxl__domain_build_state; + _hidden int libxl__build_pre(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state); + libxl_domain_build_info *info, libxl__domain_build_state *state); _hidden int libxl__build_post(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state, + libxl_domain_build_info *info, libxl__domain_build_state *state, char **vms_ents, char **local_ents); _hidden int libxl__build_pv(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state); + libxl_domain_build_info *info, libxl__domain_build_state *state); _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state); + libxl_domain_build_info *info, libxl__domain_build_state *state); _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid, const char *old_name, const char *new_name, xs_transaction_t trans); _hidden int libxl__domain_restore_common(libxl__gc *gc, uint32_t domid, - libxl_domain_build_info *info, libxl_domain_build_state *state, int fd); + libxl_domain_build_info *info, + libxl__domain_build_state *state, + int fd); _hidden int libxl__domain_suspend_common(libxl__gc *gc, uint32_t domid, int fd, int hvm, int live, int debug); _hidden int libxl__domain_save_device_model(libxl__gc *gc, uint32_t domid, int fd); _hidden void libxl__userdata_destroyall(libxl__gc *gc, uint32_t domid); @@ -198,6 +208,10 @@ _hidden int libxl__device_physdisk_major _hidden int libxl__device_disk_dev_number(char *virtpath, int *pdisk, int *ppartition); +_hidden int libxl__device_console_add(libxl__gc *gc, uint32_t domid, + libxl_device_console *console, + libxl__domain_build_state *state); + _hidden int libxl__device_generic_add(libxl__gc *gc, libxl__device *device, char **bents, char **fents); _hidden char *libxl__device_backend_path(libxl__gc *gc, libxl__device *device); @@ -230,7 +244,9 @@ typedef struct { /* from xl_create */ _hidden int libxl__domain_make(libxl__gc *gc, libxl_domain_create_info *info, uint32_t *domid); -_hidden int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info, uint32_t domid, /* out */ libxl_domain_build_state *state); +_hidden int libxl__domain_build(libxl__gc *gc, libxl_domain_build_info *info, + uint32_t domid, + libxl__domain_build_state *state); /* for device model creation */ _hidden const char *libxl__domain_device_model(libxl__gc *gc, diff -r d537fe77010c -r fcf62b8dc42e tools/ocaml/libs/xl/xl.ml --- a/tools/ocaml/libs/xl/xl.ml Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/ocaml/libs/xl/xl.ml Mon Apr 18 14:46:13 2011 +0100 @@ -70,16 +70,6 @@ module Domain_build_info = struct } end -module Domain_build_state = struct - type t = - { - store_port : int; - store_mfn : int64; - console_port : int; - console_mfn : int64; - } -end - type domid = int type disk_phystype = @@ -139,7 +129,7 @@ module Device_console = struct consoletype : console_type; } - external add : t -> Domain_build_state.t -> domid -> unit = "stub_xl_device_console_add" + external add : t -> domid -> unit = "stub_xl_device_console_add" end module Device_vkb = struct diff -r d537fe77010c -r fcf62b8dc42e tools/ocaml/libs/xl/xl.mli --- a/tools/ocaml/libs/xl/xl.mli Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/ocaml/libs/xl/xl.mli Mon Apr 18 14:46:13 2011 +0100 @@ -70,16 +70,6 @@ module Domain_build_info : sig } end -module Domain_build_state : sig - type t = - { - store_port : int; - store_mfn : int64; - console_port : int; - console_mfn : int64; - } -end - type domid = int type disk_phystype = @@ -139,7 +129,7 @@ module Device_console : sig consoletype : console_type; } - external add : t -> Domain_build_state.t -> domid -> unit = "stub_xl_device_console_add" + external add : t -> domid -> unit = "stub_xl_device_console_add" end module Device_vkb : sig diff -r d537fe77010c -r fcf62b8dc42e tools/ocaml/libs/xl/xl_stubs.c --- a/tools/ocaml/libs/xl/xl_stubs.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/ocaml/libs/xl/xl_stubs.c Mon Apr 18 14:46:13 2011 +0100 @@ -294,18 +294,6 @@ static int sched_credit_val(caml_gc *gc, CAMLreturn(0); } -static int domain_build_state_val(caml_gc *gc, libxl_domain_build_state *c_val, value v) -{ - CAMLparam1(v); - - c_val->store_port = Int_val(Field(v, 0)); - c_val->store_mfn = Int64_val(Field(v, 1)); - c_val->console_port = Int_val(Field(v, 2)); - c_val->console_mfn = Int64_val(Field(v, 3)); - - CAMLreturn(0); -} - static value Val_sched_credit(libxl_sched_credit *c_val) { CAMLparam0(); @@ -436,17 +424,14 @@ value stub_xl_device_nic_del(value info, CAMLreturn(Val_unit); } -value stub_xl_device_console_add(value info, value state, value domid) +value stub_xl_device_console_add(value info, value domid) { - CAMLparam3(info, state, domid); + CAMLparam2(info, domid); libxl_device_console c_info; - libxl_domain_build_state c_state; int ret; INIT_STRUCT(); device_console_val(&gc, &c_info, info); - domain_build_state_val(&gc, &c_state, state); - c_info.build_state = &c_state; INIT_CTX(); ret = libxl_device_console_add(ctx, Int_val(domid), &c_info); diff -r d537fe77010c -r fcf62b8dc42e tools/python/xen/lowlevel/xl/xl.c --- a/tools/python/xen/lowlevel/xl/xl.c Mon Apr 18 14:45:49 2011 +0100 +++ b/tools/python/xen/lowlevel/xl/xl.c Mon Apr 18 14:46:13 2011 +0100 @@ -232,12 +232,6 @@ int attrib__libxl_cpuarray_set(PyObject return -1; } -int attrib__libxl_domain_build_state_ptr_set(PyObject *v, libxl_domain_build_state **pptr) -{ - PyErr_SetString(PyExc_NotImplementedError, "Setting domain_build_state_ptr"); - return -1; -} - int attrib__libxl_file_reference_set(PyObject *v, libxl_file_reference *pptr) { return genwrap__string_set(v, &pptr->path); @@ -329,12 +323,6 @@ PyObject *attrib__libxl_cpuarray_get(lib return list; } -PyObject *attrib__libxl_domain_build_state_ptr_get(libxl_domain_build_state **pptr) -{ - PyErr_SetString(PyExc_NotImplementedError, "Getting domain_build_state_ptr"); - return NULL; -} - PyObject *attrib__libxl_file_reference_get(libxl_file_reference *pptr) { return genwrap__string_get(&pptr->path); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |