diff options
-rw-r--r-- | tools/Rules.mk | 2 | ||||
-rw-r--r-- | tools/libxl/Makefile | 6 | ||||
-rw-r--r-- | tools/libxl/libxl.c | 13 | ||||
-rw-r--r-- | tools/libxl/libxl.h | 23 | ||||
-rw-r--r-- | tools/libxl/libxl_internal.h | 11 | ||||
-rw-r--r-- | tools/libxl/libxlu_cfg.c | 1 | ||||
-rw-r--r-- | tools/libxl/xl.c | 7 | ||||
-rw-r--r-- | tools/libxl/xl.h | 2 | ||||
-rw-r--r-- | tools/libxl/xl_cmdimpl.c | 375 | ||||
-rw-r--r-- | tools/ocaml/libs/xl/xl_stubs.c | 50 | ||||
-rw-r--r-- | tools/python/setup.py | 2 | ||||
-rw-r--r-- | tools/python/xen/lowlevel/xl/xl.c | 32 |
12 files changed, 273 insertions, 251 deletions
diff --git a/tools/Rules.mk b/tools/Rules.mk index c1a5e053b0..0d048af350 100644 --- a/tools/Rules.mk +++ b/tools/Rules.mk @@ -49,7 +49,7 @@ LDLIBS_libblktapctl = SHLIB_libblktapctl = endif -CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl) $(CFLAGS_libxenstore) $(CFLAGS_xeninclude) +CFLAGS_libxenlight = -I$(XEN_XENLIGHT) $(CFLAGS_libxenctrl) $(CFLAGS_xeninclude) LDLIBS_libxenlight = -L$(XEN_XENLIGHT) $(SHLIB_libxenctrl) $(SHLIB_libxenstore) $(SHLIB_libblktapctl) -lxenlight SHLIB_libxenlight = -Wl,-rpath-link=$(XEN_XENLIGHT) diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 5fac906abc..3299aa6bc3 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -13,7 +13,6 @@ XLUMINOR = 0 CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations CFLAGS += -I. -fPIC -CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore) $(CFLAGS_libblktapctl) ifeq ($(CONFIG_Linux),y) LIBUUID_LIBS += -luuid @@ -38,13 +37,18 @@ LIBXL_OBJS = flexarray.o libxl.o libxl_create.o libxl_dm.o libxl_pci.o \ libxl_internal.o libxl_utils.o libxl_uuid.o $(LIBXL_OBJS-y) LIBXL_OBJS += _libxl_types.o +$(LIBXL_OBJS): CFLAGS += $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore) $(CFLAGS_libblktapctl) + AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o +$(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h CLIENTS = xl XL_OBJS = xl.o xl_cmdimpl.o xl_cmdtable.o +$(XL_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h +$(XL_OBJS): CFLAGS += $(CFLAGS_libxenlight) .PHONY: all all: $(CLIENTS) libxenlight.so libxenlight.a libxlutil.so libxlutil.a \ diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c index 38616f7a34..7efd68cb6f 100644 --- a/tools/libxl/libxl.c +++ b/tools/libxl/libxl.c @@ -41,15 +41,22 @@ #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) -int libxl_ctx_init(libxl_ctx *ctx, int version, xentoollog_logger *lg) +int libxl_ctx_alloc(libxl_ctx **pctx, int version, xentoollog_logger * lg) { + libxl_ctx *ctx; struct stat stat_buf; if (version != LIBXL_VERSION) return ERROR_VERSION; + + ctx = malloc(sizeof(*ctx)); + if (!ctx) { + LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Failed to allocate context\n"); + return ERROR_NOMEM; + } + memset(ctx, 0, sizeof(libxl_ctx)); ctx->lg = lg; - memset(&ctx->version_info, 0, sizeof(libxl_version_info)); if ( stat(XENSTORE_PID_FILE, &stat_buf) != 0 ) { LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "Is xenstore daemon running?\n" @@ -73,6 +80,8 @@ int libxl_ctx_init(libxl_ctx *ctx, int version, xentoollog_logger *lg) xc_interface_close(ctx->xch); return ERROR_FAIL; } + + *pctx = ctx; return 0; } diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 9bf5260482..77fd92fac8 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -124,13 +124,18 @@ #ifndef LIBXL_H #define LIBXL_H +#include <stdbool.h> #include <stdint.h> #include <stdarg.h> +#include <errno.h> #include <netinet/in.h> -#include <xenctrl.h> -#include <xs.h> #include <sys/wait.h> /* for pid_t */ +#include <xentoollog.h> + +#include <xen/sched.h> +#include <xen/sysctl.h> + #include <libxl_uuid.h> typedef uint8_t libxl_mac[6]; @@ -216,17 +221,7 @@ void libxl_cpuid_destroy(libxl_cpuid_policy_list *cpuid_list); #include "_libxl_types.h" -typedef struct { - xentoollog_logger *lg; - xc_interface *xch; - struct xs_handle *xsh; - - /* for callers who reap children willy-nilly; caller must only - * set this after libxl_init and before any other call - or - * may leave them untouched */ - int (*waitpid_instead)(pid_t pid, int *status, int flags); - libxl_version_info version_info; -} libxl_ctx; +typedef struct libxl__ctx libxl_ctx; const libxl_version_info* libxl_get_version_info(libxl_ctx *ctx); @@ -283,7 +278,7 @@ typedef struct { } libxl_domain_config; /* context functions */ -int libxl_ctx_init(libxl_ctx *ctx, int version, xentoollog_logger*); +int libxl_ctx_alloc(libxl_ctx **pctx, int version, xentoollog_logger *lg); int libxl_ctx_free(libxl_ctx *ctx); int libxl_ctx_postfork(libxl_ctx *ctx); diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index d0ddf081bc..023cf8f032 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -82,6 +82,17 @@ _hidden void libxl__log(libxl_ctx *ctx, xentoollog_level msglevel, int errnoval, /* these functions preserve errno (saving and restoring) */ +struct libxl__ctx { + xentoollog_logger *lg; + xc_interface *xch; + struct xs_handle *xsh; + + /* for callers who reap children willy-nilly; caller must only + * set this after libxl_init and before any other call - or + * may leave them untouched */ + int (*waitpid_instead)(pid_t pid, int *status, int flags); + libxl_version_info version_info; +}; typedef enum { DEVICE_VIF = 1, diff --git a/tools/libxl/libxlu_cfg.c b/tools/libxl/libxlu_cfg.c index f947c219b4..1ea1b0ad00 100644 --- a/tools/libxl/libxlu_cfg.c +++ b/tools/libxl/libxlu_cfg.c @@ -1,3 +1,4 @@ +#include <limits.h> #include "libxlu_internal.h" #include "libxlu_cfg_y.h" diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c index 9e3023c629..5bab2ff1b8 100644 --- a/tools/libxl/xl.c +++ b/tools/libxl/xl.c @@ -26,6 +26,7 @@ #include <fcntl.h> #include <ctype.h> #include <inttypes.h> +#include <xenctrl.h> #include "libxl.h" #include "libxl_utils.h" @@ -111,7 +112,7 @@ int main(int argc, char **argv) logger = xtl_createlogger_stdiostream(stderr, minmsglevel, 0); if (!logger) exit(1); - if (libxl_ctx_init(&ctx, LIBXL_VERSION, (xentoollog_logger*)logger)) { + if (libxl_ctx_alloc(&ctx, LIBXL_VERSION, (xentoollog_logger*)logger)) { fprintf(stderr, "cannot init xl context\n"); exit(1); } @@ -123,7 +124,7 @@ int main(int argc, char **argv) exit(1); } - ret = libxl_read_file_contents(&ctx, config_file, + ret = libxl_read_file_contents(ctx, config_file, &config_data, &config_len); if (ret) fprintf(stderr, "Failed to read config file: %s: %s\n", @@ -147,7 +148,7 @@ int main(int argc, char **argv) ret = 1; } - libxl_ctx_free(&ctx); + libxl_ctx_free(ctx); xtl_logger_destroy((xentoollog_logger*)logger); return ret; diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h index 653be2e982..a1aa8ef9cc 100644 --- a/tools/libxl/xl.h +++ b/tools/libxl/xl.h @@ -95,7 +95,7 @@ extern int cmdtable_len; /* Look up a command in the table, allowing unambiguous truncation */ struct cmd_spec *cmdtable_lookup(const char *s); -extern libxl_ctx ctx; +extern libxl_ctx *ctx; extern xentoollog_logger_stdiostream *logger; /* global options */ diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index a1a0d36b0b..9974ca9ad6 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -31,9 +31,10 @@ #include <sys/socket.h> #include <sys/select.h> #include <sys/utsname.h> /* for utsname in xl info */ -#include <xenctrl.h> +#include <xentoollog.h> #include <ctype.h> #include <inttypes.h> +#include <limits.h> #include "libxl.h" #include "libxl_utils.h" @@ -62,7 +63,7 @@ int logfile = 2; /* every libxl action in xl uses this same libxl context */ -libxl_ctx ctx; +libxl_ctx *ctx; /* when we operate on a domain, it is this one: */ static uint32_t domid; @@ -150,11 +151,11 @@ static int domain_qualifier_to_domid(const char *p, uint32_t *domid_r, *was_name_r = was_name; if (was_name) { - rc = libxl_name_to_domid(&ctx, p, domid_r); + rc = libxl_name_to_domid(ctx, p, domid_r); if (rc) return rc; } else { - rc = libxl_domain_info(&ctx, &dominfo, *domid_r); + rc = libxl_domain_info(ctx, &dominfo, *domid_r); /* error only if domain does not exist */ if (rc == ERROR_INVAL) return rc; @@ -170,7 +171,7 @@ static int cpupool_qualifier_to_cpupoolid(const char *p, uint32_t *poolid_r, was_name = qualifier_to_id(p, poolid_r); if (was_name_r) *was_name_r = was_name; - return was_name ? libxl_name_to_cpupoolid(&ctx, p, poolid_r) : 0; + return was_name ? libxl_name_to_cpupoolid(ctx, p, poolid_r) : 0; } static void find_domain(const char *p) @@ -182,7 +183,7 @@ static void find_domain(const char *p) fprintf(stderr, "%s is an invalid domain identifier (rc=%d)\n", p, rc); exit(2); } - common_domname = was_name ? p : libxl_domid_to_name(&ctx, domid); + common_domname = was_name ? p : libxl_domid_to_name(ctx, domid); } static int acquire_lock(void) @@ -303,7 +304,7 @@ static void printf_info(int domid, /* retrieve the UUID from dominfo, since it is probably generated * during parsing and thus does not match the real one */ - if (libxl_domain_info(&ctx, &info, domid) == 0) { + if (libxl_domain_info(ctx, &info, domid) == 0) { printf("\t(uuid " LIBXL_UUID_FMT ")\n", LIBXL_UUID_BYTES(info.uuid)); } else { printf("\t(uuid <unknown>)\n"); @@ -668,7 +669,7 @@ static void parse_config_data(const char *configfile_filename_report, c_info->poolid = -1; cpupool_qualifier_to_cpupoolid(buf, &c_info->poolid, NULL); } - c_info->poolname = libxl_cpupoolid_to_name(&ctx, c_info->poolid); + c_info->poolname = libxl_cpupoolid_to_name(ctx, c_info->poolid); if (!c_info->poolname) { fprintf(stderr, "Illegal pool specified\n"); exit(1); @@ -878,7 +879,7 @@ static void parse_config_data(const char *configfile_filename_report, free(nic->ifname); nic->ifname = strdup(p2 + 1); } else if (!strcmp(p, "backend")) { - if(libxl_name_to_domid(&ctx, (p2 + 1), &(nic->backend_domid))) { + if(libxl_name_to_domid(ctx, (p2 + 1), &(nic->backend_domid))) { fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n"); nic->backend_domid = 0; } @@ -1025,7 +1026,7 @@ skip_vfb: pcidev->msitranslate = pci_msitranslate; pcidev->power_mgmt = pci_power_mgmt; - if (!libxl_device_pci_parse_bdf(&ctx, pcidev, buf)) + if (!libxl_device_pci_parse_bdf(ctx, pcidev, buf)) d_config->num_pcidevs++; } } @@ -1294,23 +1295,23 @@ static int freemem(libxl_domain_build_info *b_info, libxl_device_model_info *dm_ if (!autoballoon) return 0; - rc = libxl_domain_need_memory(&ctx, b_info, dm_info, &need_memkb); + rc = libxl_domain_need_memory(ctx, b_info, dm_info, &need_memkb); if (rc < 0) return rc; do { - rc = libxl_get_free_memory(&ctx, &free_memkb); + rc = libxl_get_free_memory(ctx, &free_memkb); if (rc < 0) return rc; if (free_memkb >= need_memkb) return 0; - rc = libxl_set_memory_target(&ctx, 0, free_memkb - need_memkb, 1, 0); + rc = libxl_set_memory_target(ctx, 0, free_memkb - need_memkb, 1, 0); if (rc < 0) return rc; - rc = libxl_wait_for_free_memory(&ctx, domid, need_memkb, 10); + rc = libxl_wait_for_free_memory(ctx, domid, need_memkb, 10); if (!rc) return 0; else if (rc != ERROR_NOMEM) @@ -1318,7 +1319,7 @@ static int freemem(libxl_domain_build_info *b_info, libxl_device_model_info *dm_ /* the memory target has been reached but the free memory is still * not enough: loop over again */ - rc = libxl_wait_for_memory_target(&ctx, 0, 1); + rc = libxl_wait_for_memory_target(ctx, 0, 1); if (rc < 0) return rc; @@ -1383,7 +1384,7 @@ static int create_domain(struct domain_create *dom_info) restore_fd = migrate_fd >= 0 ? migrate_fd : open(restore_file, O_RDONLY); - CHK_ERRNO( libxl_read_exactly(&ctx, restore_fd, &hdr, + CHK_ERRNO( libxl_read_exactly(ctx, restore_fd, &hdr, sizeof(hdr), restore_file, "header") ); if (memcmp(hdr.magic, savefileheader_magic, sizeof(hdr.magic))) { fprintf(stderr, "File has wrong magic number -" @@ -1409,7 +1410,7 @@ static int create_domain(struct domain_create *dom_info) } if (hdr.optional_data_len) { optdata_begin = xmalloc(hdr.optional_data_len); - CHK_ERRNO( libxl_read_exactly(&ctx, restore_fd, optdata_begin, + CHK_ERRNO( libxl_read_exactly(ctx, restore_fd, optdata_begin, hdr.optional_data_len, restore_file, "optdata") ); } @@ -1441,7 +1442,7 @@ static int create_domain(struct domain_create *dom_info) if (config_file) { free(config_data); config_data = 0; - ret = libxl_read_file_contents(&ctx, config_file, + ret = libxl_read_file_contents(ctx, config_file, &config_data, &config_len); if (ret) { fprintf(stderr, "Failed to read config file: %s: %s\n", config_file, strerror(errno)); return ERROR_FAIL; } @@ -1520,17 +1521,17 @@ start: } if ( restore_file ) { - ret = libxl_domain_create_restore(&ctx, &d_config, + ret = libxl_domain_create_restore(ctx, &d_config, cb, &child_console_pid, &domid, restore_fd); }else{ - ret = libxl_domain_create_new(&ctx, &d_config, + ret = libxl_domain_create_new(ctx, &d_config, cb, &child_console_pid, &domid); } if ( ret ) goto error_out; - ret = libxl_userdata_store(&ctx, domid, "xl", + ret = libxl_userdata_store(ctx, domid, "xl", config_data, config_len); if (ret) { perror("cannot save config file"); @@ -1541,7 +1542,7 @@ start: release_lock(); if (!paused) - libxl_domain_unpause(&ctx, domid); + libxl_domain_unpause(ctx, domid); ret = domid; /* caller gets success in parent */ if (!daemonize) @@ -1552,7 +1553,7 @@ start: pid_t child1, got_child; int nullfd; - child1 = libxl_fork(&ctx); + child1 = libxl_fork(ctx); if (child1) { printf("Daemon running with PID %d\n", child1); @@ -1567,7 +1568,7 @@ start: } } if (status) { - libxl_report_child_exitstatus(&ctx, XTL_ERROR, + libxl_report_child_exitstatus(ctx, XTL_ERROR, "daemonizing child", child1, status); ret = ERROR_FAIL; goto error_out; @@ -1576,7 +1577,7 @@ start: goto out; } - rc = libxl_ctx_postfork(&ctx); + rc = libxl_ctx_postfork(ctx); if (rc) { LOG("failed to reinitialise context after fork"); exit(-1); @@ -1586,7 +1587,7 @@ start: LOG("Failed to allocate memory in asprintf"); exit(1); } - rc = libxl_create_logfile(&ctx, name, &fullname); + rc = libxl_create_logfile(ctx, name, &fullname); if (rc) { LOG("failed to open logfile %s: %s",fullname,strerror(errno)); exit(-1); @@ -1608,9 +1609,9 @@ start: d_config.c_info.name, domid, (long)getpid()); w1 = (libxl_waiter*) xmalloc(sizeof(libxl_waiter) * d_config.num_disks); w2 = (libxl_waiter*) xmalloc(sizeof(libxl_waiter)); - libxl_wait_for_disk_ejects(&ctx, domid, d_config.disks, d_config.num_disks, w1); - libxl_wait_for_domain_death(&ctx, domid, w2); - libxl_get_wait_fd(&ctx, &fd); + libxl_wait_for_disk_ejects(ctx, domid, d_config.disks, d_config.num_disks, w1); + libxl_wait_for_domain_death(ctx, domid, w2); + libxl_get_wait_fd(ctx, &fd); while (1) { int ret; fd_set rfds; @@ -1624,10 +1625,10 @@ start: ret = select(fd + 1, &rfds, NULL, NULL, NULL); if (!ret) continue; - libxl_get_event(&ctx, &event); + libxl_get_event(ctx, &event); switch (event.type) { case LIBXL_EVENT_DOMAIN_DEATH: - ret = libxl_event_get_domain_death_info(&ctx, domid, &event, &info); + ret = libxl_event_get_domain_death_info(ctx, domid, &event, &info); if (ret < 0) { libxl_free_event(&event); @@ -1637,9 +1638,9 @@ start: LOG("Domain %d is dead", domid); if (ret) { - switch (handle_domain_death(&ctx, domid, &event, &d_config, &info)) { + switch (handle_domain_death(ctx, domid, &event, &d_config, &info)) { case 2: - if (!preserve_domain(&ctx, domid, &event, &d_config, &info)) { + if (!preserve_domain(ctx, domid, &event, &d_config, &info)) { /* If we fail then exit leaving the old domain in place. */ ret = -1; goto out; @@ -1685,8 +1686,8 @@ start: } break; case LIBXL_EVENT_DISK_EJECT: - if (libxl_event_get_disk_eject_info(&ctx, domid, &event, &disk)) { - libxl_cdrom_insert(&ctx, domid, &disk); + if (libxl_event_get_disk_eject_info(ctx, domid, &event, &disk)) { + libxl_cdrom_insert(ctx, domid, &disk); libxl_device_disk_destroy(&disk); } break; @@ -1697,7 +1698,7 @@ start: error_out: release_lock(); if (libxl_domid_valid_guest(domid)) - libxl_domain_destroy(&ctx, domid, 0); + libxl_domain_destroy(ctx, domid, 0); out: if (logfile != 2) @@ -1792,7 +1793,7 @@ static int set_memory_max(const char *p, const char *mem) exit(3); } - rc = libxl_domain_setmaxmem(&ctx, domid, memorykb); + rc = libxl_domain_setmaxmem(ctx, domid, memorykb); return rc; } @@ -1842,7 +1843,7 @@ static void set_memory_target(const char *p, const char *mem) exit(3); } - libxl_set_memory_target(&ctx, domid, memorykb, 0, /* enforce */ 1); + libxl_set_memory_target(ctx, domid, memorykb, 0, /* enforce */ 1); } int main_memset(int argc, char **argv) @@ -1890,7 +1891,7 @@ static void cd_insert(const char *dom, const char *virtdev, char *phys) disk.backend_domid = 0; disk.domid = domid; - libxl_cdrom_insert(&ctx, domid, &disk); + libxl_cdrom_insert(ctx, domid, &disk); free(buf); } @@ -1985,9 +1986,9 @@ int main_console(int argc, char **argv) find_domain(argv[optind]); if (!type) - libxl_primary_console_exec(&ctx, domid); + libxl_primary_console_exec(ctx, domid); else - libxl_console_exec(&ctx, domid, num, type); + libxl_console_exec(ctx, domid, num, type); fprintf(stderr, "Unable to attach console\n"); return 1; } @@ -1995,7 +1996,7 @@ int main_console(int argc, char **argv) static int vncviewer(const char *domain_spec, int autopass) { find_domain(domain_spec); - libxl_vncviewer_exec(&ctx, domid, autopass); + libxl_vncviewer_exec(ctx, domid, autopass); fprintf(stderr, "Unable to execute vncviewer\n"); return 1; } @@ -2043,7 +2044,7 @@ static void pcilist_assignable(void) libxl_device_pci *pcidevs; int num, i; - if ( libxl_device_pci_list_assignable(&ctx, &pcidevs, &num) ) + if ( libxl_device_pci_list_assignable(ctx, &pcidevs, &num) ) return; for (i = 0; i < num; i++) { printf("%04x:%02x:%02x.%01x\n", @@ -2078,7 +2079,7 @@ static void pcilist(const char *dom) find_domain(dom); - if (libxl_device_pci_list_assigned(&ctx, &pcidevs, domid, &num)) + if (libxl_device_pci_list_assigned(ctx, &pcidevs, domid, &num)) return; printf("Vdev Device\n"); for (i = 0; i < num; i++) { @@ -2123,11 +2124,11 @@ static void pcidetach(const char *dom, const char *bdf, int force) find_domain(dom); memset(&pcidev, 0x00, sizeof(pcidev)); - if (libxl_device_pci_parse_bdf(&ctx, &pcidev, bdf)) { + if (libxl_device_pci_parse_bdf(ctx, &pcidev, bdf)) { fprintf(stderr, "pci-detach: malformed BDF specification \"%s\"\n", bdf); exit(2); } - libxl_device_pci_remove(&ctx, domid, &pcidev, force); + libxl_device_pci_remove(ctx, domid, &pcidev, force); libxl_device_pci_destroy(&pcidev); } @@ -2168,11 +2169,11 @@ static void pciattach(const char *dom, const char *bdf, const char *vs) find_domain(dom); memset(&pcidev, 0x00, sizeof(pcidev)); - if (libxl_device_pci_parse_bdf(&ctx, &pcidev, bdf)) { + if (libxl_device_pci_parse_bdf(ctx, &pcidev, bdf)) { fprintf(stderr, "pci-attach: malformed BDF specification \"%s\"\n", bdf); exit(2); } - libxl_device_pci_add(&ctx, domid, &pcidev); + libxl_device_pci_add(ctx, domid, &pcidev); libxl_device_pci_destroy(&pcidev); } @@ -2209,13 +2210,13 @@ int main_pciattach(int argc, char **argv) static void pause_domain(const char *p) { find_domain(p); - libxl_domain_pause(&ctx, domid); + libxl_domain_pause(ctx, domid); } static void unpause_domain(const char *p) { find_domain(p); - libxl_domain_unpause(&ctx, domid); + libxl_domain_unpause(ctx, domid); } static void destroy_domain(const char *p) @@ -2226,7 +2227,7 @@ static void destroy_domain(const char *p) fprintf(stderr, "Cannot destroy privileged domain 0.\n\n"); exit(-1); } - rc = libxl_domain_destroy(&ctx, domid, 0); + rc = libxl_domain_destroy(ctx, domid, 0); if (rc) { fprintf(stderr,"destroy failed (rc=%d)\n",rc); exit(-1); } } @@ -2235,16 +2236,16 @@ static void shutdown_domain(const char *p, int wait) int rc; find_domain(p); - rc=libxl_domain_shutdown(&ctx, domid, 0); + rc=libxl_domain_shutdown(ctx, domid, 0); if (rc) { fprintf(stderr,"shutdown failed (rc=%d)\n",rc);exit(-1); } if (wait) { libxl_waiter waiter; int fd; - libxl_wait_for_domain_death(&ctx, domid, &waiter); + libxl_wait_for_domain_death(ctx, domid, &waiter); - libxl_get_wait_fd(&ctx, &fd); + libxl_get_wait_fd(ctx, &fd); while (wait) { fd_set rfds; @@ -2257,10 +2258,10 @@ static void shutdown_domain(const char *p, int wait) if (!select(fd + 1, &rfds, NULL, NULL, NULL)) continue; - libxl_get_event(&ctx, &event); + libxl_get_event(ctx, &event); if (event.type == LIBXL_EVENT_DOMAIN_DEATH) { - if (libxl_event_get_domain_death_info(&ctx, domid, &event, &info) < 0) + if (libxl_event_get_domain_death_info(ctx, domid, &event, &info) < 0) continue; LOG("Domain %d is dead", domid); @@ -2277,7 +2278,7 @@ static void reboot_domain(const char *p) { int rc; find_domain(p); - rc=libxl_domain_shutdown(&ctx, domid, 1); + rc=libxl_domain_shutdown(ctx, domid, 1); if (rc) { fprintf(stderr,"reboot failed (rc=%d)\n",rc);exit(-1); } } @@ -2294,7 +2295,7 @@ static void list_domains_details(const libxl_dominfo *info, int nb_domain) /* no detailed info available on dom0 */ if (info[i].domid == 0) continue; - rc = libxl_userdata_retrieve(&ctx, info[i].domid, "xl", &data, &len); + rc = libxl_userdata_retrieve(ctx, info[i].domid, "xl", &data, &len); if (rc) continue; CHK_ERRNO(asprintf(&config_file, "<domid %d data>", info[i].domid)); @@ -2318,7 +2319,7 @@ static void list_domains(int verbose, const libxl_dominfo *info, int nb_domain) for (i = 0; i < nb_domain; i++) { char *domname; unsigned shutdown_reason; - domname = libxl_domid_to_name(&ctx, info[i].domid); + domname = libxl_domid_to_name(ctx, info[i].domid); shutdown_reason = info[i].shutdown ? info[i].shutdown_reason : 0; printf("%-40s %5d %5lu %5d %c%c%c%c%c%c %8.1f", domname, @@ -2350,7 +2351,7 @@ static void list_vm(void) char *domname; int nb_vm, i; - info = libxl_list_vm(&ctx, &nb_vm); + info = libxl_list_vm(ctx, &nb_vm); if (info < 0) { fprintf(stderr, "libxl_domain_infolist failed.\n"); @@ -2358,7 +2359,7 @@ static void list_vm(void) } printf("UUID ID name\n"); for (i = 0; i < nb_vm; i++) { - domname = libxl_domid_to_name(&ctx, info[i].domid); + domname = libxl_domid_to_name(ctx, info[i].domid); printf(LIBXL_UUID_FMT " %d %-30s\n", LIBXL_UUID_BYTES(info[i].uuid), info[i].domid, domname); free(domname); @@ -2379,11 +2380,11 @@ static void save_domain_core_begin(const char *domain_spec, if (override_config_file) { void *config_v = 0; - rc = libxl_read_file_contents(&ctx, override_config_file, + rc = libxl_read_file_contents(ctx, override_config_file, &config_v, config_len_r); *config_data_r = config_v; } else { - rc = libxl_userdata_retrieve(&ctx, domid, "xl", + rc = libxl_userdata_retrieve(ctx, domid, "xl", config_data_r, config_len_r); } if (rc) { @@ -2420,9 +2421,9 @@ static void save_domain_core_writeconfig(int fd, const char *filename, /* that's the optional data */ - CHK_ERRNO( libxl_write_exactly(&ctx, fd, + CHK_ERRNO( libxl_write_exactly(ctx, fd, &hdr, sizeof(hdr), filename, "header") ); - CHK_ERRNO( libxl_write_exactly(&ctx, fd, + CHK_ERRNO( libxl_write_exactly(ctx, fd, optdata_begin, hdr.optional_data_len, filename, "header") ); fprintf(stderr, "Saving to %s new xl format (info" @@ -2452,13 +2453,13 @@ static int save_domain(const char *p, const char *filename, int checkpoint, save_domain_core_writeconfig(fd, filename, config_data, config_len); - CHK_ERRNO(libxl_domain_suspend(&ctx, NULL, domid, fd)); + CHK_ERRNO(libxl_domain_suspend(ctx, NULL, domid, fd)); close(fd); if (checkpoint) - libxl_domain_unpause(&ctx, domid); + libxl_domain_unpause(ctx, domid); else - libxl_domain_destroy(&ctx, domid, 0); + libxl_domain_destroy(ctx, domid, 0); exit(0); } @@ -2470,7 +2471,7 @@ static int migrate_read_fixedmessage(int fd, const void *msg, int msgsz, int rc; stream = rune ? "migration receiver stream" : "migration stream"; - rc = libxl_read_exactly(&ctx, fd, buf, msgsz, stream, what); + rc = libxl_read_exactly(ctx, fd, buf, msgsz, stream, what); if (rc) return ERROR_FAIL; if (memcmp(buf, msg, msgsz)) { @@ -2499,7 +2500,7 @@ static void migration_child_report(pid_t migration_child, int recv_fd) { if (child == migration_child) { if (status) - libxl_report_child_exitstatus(&ctx, XTL_INFO, + libxl_report_child_exitstatus(ctx, XTL_INFO, "migration target process", migration_child, status); break; @@ -2570,10 +2571,10 @@ static void migrate_domain(const char *domain_spec, const char *rune, exit(1); } - MUST( libxl_pipe(&ctx, sendpipe) ); - MUST( libxl_pipe(&ctx, recvpipe) ); + MUST( libxl_pipe(ctx, sendpipe) ); + MUST( libxl_pipe(ctx, recvpipe) ); - child = libxl_fork(&ctx); + child = libxl_fork(ctx); if (child==-1) exit(1); if (!child) { @@ -2611,7 +2612,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, memset(&suspinfo, 0, sizeof(suspinfo)); suspinfo.flags |= XL_SUSPEND_LIVE; - rc = libxl_domain_suspend(&ctx, &suspinfo, domid, send_fd); + rc = libxl_domain_suspend(ctx, &suspinfo, domid, send_fd); if (rc) { fprintf(stderr, "migration sender: libxl_domain_suspend failed" " (rc=%d)\n", rc); @@ -2641,7 +2642,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, if (common_domname) { if (asprintf(&away_domname, "%s--migratedaway", common_domname) < 0) goto failed_resume; - rc = libxl_domain_rename(&ctx, domid, common_domname, away_domname); + rc = libxl_domain_rename(ctx, domid, common_domname, away_domname); if (rc) goto failed_resume; } @@ -2652,7 +2653,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, fprintf(stderr, "migration sender: Giving target permission to start.\n"); - rc = libxl_write_exactly(&ctx, send_fd, + rc = libxl_write_exactly(ctx, send_fd, migrate_permission_to_go, sizeof(migrate_permission_to_go), "migration stream", "GO message"); @@ -2663,7 +2664,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, "success/failure report message", rune); if (rc) goto failed_badly; - rc = libxl_read_exactly(&ctx, recv_fd, + rc = libxl_read_exactly(ctx, recv_fd, &rc_buf, 1, "migration ack stream", "success/failure status"); if (rc) goto failed_badly; @@ -2681,9 +2682,9 @@ static void migrate_domain(const char *domain_spec, const char *rune, fprintf(stderr, "migration sender: Trying to resume at our end.\n"); if (common_domname) { - libxl_domain_rename(&ctx, domid, away_domname, common_domname); + libxl_domain_rename(ctx, domid, away_domname, common_domname); } - rc = libxl_domain_resume(&ctx, domid); + rc = libxl_domain_resume(ctx, domid); if (!rc) fprintf(stderr, "migration sender: Resumed OK.\n"); fprintf(stderr, "Migration failed due to problems at target.\n"); @@ -2691,7 +2692,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, } fprintf(stderr, "migration sender: Target reports successful startup.\n"); - libxl_domain_destroy(&ctx, domid, 1); /* bang! */ + libxl_domain_destroy(ctx, domid, 1); /* bang! */ fprintf(stderr, "Migration successful.\n"); exit(0); @@ -2705,7 +2706,7 @@ static void migrate_domain(const char *domain_spec, const char *rune, close(send_fd); migration_child_report(child, recv_fd); fprintf(stderr, "Migration failed, resuming at sender.\n"); - libxl_domain_resume(&ctx, domid); + libxl_domain_resume(ctx, domid); exit(-ERROR_FAIL); failed_badly: @@ -2726,7 +2727,7 @@ static void core_dump_domain(const char *domain_spec, const char *filename) { int rc; find_domain(domain_spec); - rc=libxl_domain_core_dump(&ctx, domid, filename); + rc=libxl_domain_core_dump(ctx, domid, filename); if (rc) { fprintf(stderr,"core dump failed (rc=%d)\n",rc);exit(-1); } } @@ -2742,7 +2743,7 @@ static void migrate_receive(int debug, int daemonize) fprintf(stderr, "migration target: Ready to receive domain.\n"); - CHK_ERRNO( libxl_write_exactly(&ctx, 1, + CHK_ERRNO( libxl_write_exactly(ctx, 1, migrate_receiver_banner, sizeof(migrate_receiver_banner)-1, "migration ack stream", @@ -2766,7 +2767,7 @@ static void migrate_receive(int debug, int daemonize) fprintf(stderr, "migration target: Transfer complete," " requesting permission to start domain.\n"); - rc = libxl_write_exactly(&ctx, 1, + rc = libxl_write_exactly(ctx, 1, migrate_receiver_ready, sizeof(migrate_receiver_ready), "migration ack stream", "ready message"); @@ -2780,18 +2781,18 @@ static void migrate_receive(int debug, int daemonize) fprintf(stderr, "migration target: Got permission, starting domain.\n"); if (migration_domname) { - rc = libxl_domain_rename(&ctx, domid, migration_domname, common_domname); + rc = libxl_domain_rename(ctx, domid, migration_domname, common_domname); if (rc) goto perhaps_destroy_notify_rc; } - rc = libxl_domain_unpause(&ctx, domid); + rc = libxl_domain_unpause(ctx, domid); if (rc) goto perhaps_destroy_notify_rc; fprintf(stderr, "migration target: Domain started successsfully.\n"); rc = 0; perhaps_destroy_notify_rc: - rc2 = libxl_write_exactly(&ctx, 1, + rc2 = libxl_write_exactly(ctx, 1, migrate_report, sizeof(migrate_report), "migration ack stream", "success/failure report"); @@ -2799,7 +2800,7 @@ static void migrate_receive(int debug, int daemonize) rc_buf = -rc; assert(!!rc_buf == !!rc); - rc2 = libxl_write_exactly(&ctx, 1, &rc_buf, 1, + rc2 = libxl_write_exactly(ctx, 1, &rc_buf, 1, "migration ack stream", "success/failure code"); if (rc2) exit(-ERROR_BADFAIL); @@ -2807,7 +2808,7 @@ static void migrate_receive(int debug, int daemonize) if (rc) { fprintf(stderr, "migration target: Failure, destroying our copy.\n"); - rc2 = libxl_domain_destroy(&ctx, domid, 1); + rc2 = libxl_domain_destroy(ctx, domid, 1); if (rc2) { fprintf(stderr, "migration target: Failed to destroy our copy" " (code %d).\n", rc2); @@ -2817,7 +2818,7 @@ static void migrate_receive(int debug, int daemonize) fprintf(stderr, "migration target: Cleanup OK, granting sender" " permission to resume.\n"); - rc2 = libxl_write_exactly(&ctx, 1, + rc2 = libxl_write_exactly(ctx, 1, migrate_permission_to_go, sizeof(migrate_permission_to_go), "migration ack stream", @@ -3197,7 +3198,7 @@ int main_list(int argc, char **argv) } if (optind >= argc) { - info = libxl_list_domain(&ctx, &nb_domain); + info = libxl_list_domain(ctx, &nb_domain); if (!info) { fprintf(stderr, "libxl_domain_infolist failed.\n"); return 1; @@ -3205,7 +3206,7 @@ int main_list(int argc, char **argv) info_free = info; } else if (optind == argc-1) { find_domain(argv[optind]); - rc = libxl_domain_info(&ctx, &info_buf, domid); + rc = libxl_domain_info(ctx, &info_buf, domid); if (rc == ERROR_INVAL) { fprintf(stderr, "Error: Domain \'%s\' does not exist.\n", argv[optind]); @@ -3356,7 +3357,7 @@ static void button_press(const char *p, const char *b) exit(2); } - libxl_button_press(&ctx, domid, button); + libxl_button_press(ctx, domid, button); } int main_button_press(int argc, char **argv) @@ -3444,7 +3445,7 @@ static void print_vcpuinfo(uint32_t tdomid, char *domname; /* NAME ID VCPU */ - domname = libxl_domid_to_name(&ctx, tdomid); + domname = libxl_domid_to_name(ctx, tdomid); printf("%-32s %5u %5u", domname, tdomid, vcpuinfo->vcpuid); free(domname); @@ -3469,7 +3470,7 @@ static void print_domain_vcpuinfo(uint32_t domid, uint32_t nr_cpus) libxl_vcpuinfo *vcpuinfo; int i, nb_vcpu, nrcpus; - vcpuinfo = libxl_list_vcpu(&ctx, domid, &nb_vcpu, &nrcpus); + vcpuinfo = libxl_list_vcpu(ctx, domid, &nb_vcpu, &nrcpus); if (!vcpuinfo) { fprintf(stderr, "libxl_list_vcpu failed.\n"); @@ -3490,7 +3491,7 @@ static void vcpulist(int argc, char **argv) libxl_physinfo physinfo; int i, nb_domain; - if (libxl_get_physinfo(&ctx, &physinfo) != 0) { + if (libxl_get_physinfo(ctx, &physinfo) != 0) { fprintf(stderr, "libxl_physinfo failed.\n"); goto vcpulist_out; } @@ -3498,7 +3499,7 @@ static void vcpulist(int argc, char **argv) printf("%-32s %5s %5s %5s %5s %9s %s\n", "Name", "ID", "VCPU", "CPU", "State", "Time(s)", "CPU Affinity"); if (!argc) { - if (!(dominfo = libxl_list_domain(&ctx, &nb_domain))) { + if (!(dominfo = libxl_list_domain(ctx, &nb_domain))) { fprintf(stderr, "libxl_list_domain failed.\n"); goto vcpulist_out; } @@ -3561,7 +3562,7 @@ static void vcpupin(const char *d, const char *vcpu, char *cpu) find_domain(d); - if (libxl_cpumap_alloc(&ctx, &cpumap)) { + if (libxl_cpumap_alloc(ctx, &cpumap)) { goto vcpupin_out; } if (strcmp(cpu, "all")) { @@ -3592,17 +3593,17 @@ static void vcpupin(const char *d, const char *vcpu, char *cpu) } if (vcpuid != -1) { - if (libxl_set_vcpuaffinity(&ctx, domid, vcpuid, &cpumap) == -1) { + if (libxl_set_vcpuaffinity(ctx, domid, vcpuid, &cpumap) == -1) { fprintf(stderr, "Could not set affinity for vcpu `%u'.\n", vcpuid); } } else { - if (!(vcpuinfo = libxl_list_vcpu(&ctx, domid, &nb_vcpu, &i))) { + if (!(vcpuinfo = libxl_list_vcpu(ctx, domid, &nb_vcpu, &i))) { fprintf(stderr, "libxl_list_vcpu failed.\n"); goto vcpupin_out1; } for (; nb_vcpu > 0; --nb_vcpu, ++vcpuinfo) { - if (libxl_set_vcpuaffinity(&ctx, domid, vcpuinfo->vcpuid, &cpumap) == -1) { + if (libxl_set_vcpuaffinity(ctx, domid, vcpuinfo->vcpuid, &cpumap) == -1) { fprintf(stderr, "libxl_set_vcpuaffinity failed on vcpu `%u'.\n", vcpuinfo->vcpuid); } } @@ -3651,14 +3652,14 @@ static void vcpuset(const char *d, const char* nr_vcpus) find_domain(d); - if (libxl_cpumap_alloc(&ctx, &cpumap)) { + if (libxl_cpumap_alloc(ctx, &cpumap)) { fprintf(stderr, "libxl_cpumap_alloc failed\n"); return; } for (i = 0; i < max_vcpus; i++) libxl_cpumap_set(&cpumap, i); - if (libxl_set_vcpuonline(&ctx, domid, &cpumap) < 0) + if (libxl_set_vcpuonline(ctx, domid, &cpumap) < 0) fprintf(stderr, "libxl_set_vcpuonline failed domid=%d max_vcpus=%d\n", domid, max_vcpus); libxl_cpumap_destroy(&cpumap); @@ -3692,12 +3693,12 @@ static void output_xeninfo(void) const libxl_version_info *info; int sched_id; - if (!(info = libxl_get_version_info(&ctx))) { + if (!(info = libxl_get_version_info(ctx))) { fprintf(stderr, "libxl_get_version_info failed.\n"); return; } - if ((sched_id = libxl_get_sched_id(&ctx)) < 0) { + if ((sched_id = libxl_get_sched_id(ctx)) < 0) { fprintf(stderr, "get_sched_id sysctl failed.\n"); return; } @@ -3706,7 +3707,7 @@ static void output_xeninfo(void) printf("xen_minor : %d\n", info->xen_version_minor); printf("xen_extra : %s\n", info->xen_version_extra); printf("xen_caps : %s\n", info->capabilities); - printf("xen_scheduler : %s\n", libxl_schedid_to_name(&ctx, sched_id)); + printf("xen_scheduler : %s\n", libxl_schedid_to_name(ctx, sched_id)); printf("xen_pagesize : %lu\n", info->pagesize); printf("platform_params : virt_start=0x%lx\n", info->virt_start); printf("xen_changeset : %s\n", info->changeset); @@ -3740,7 +3741,7 @@ static void output_physinfo(void) libxl_cpumap cpumap; int n = 0; - if (libxl_get_physinfo(&ctx, &info) != 0) { + if (libxl_get_physinfo(ctx, &info) != 0) { fprintf(stderr, "libxl_physinfo failed.\n"); return; } @@ -3759,13 +3760,13 @@ static void output_physinfo(void) if (info.phys_cap & XEN_SYSCTL_PHYSCAP_hvm_directio) printf(" hvm_directio"); printf("\n"); - vinfo = libxl_get_version_info(&ctx); + vinfo = libxl_get_version_info(ctx); if (vinfo) { i = (1 << 20) / vinfo->pagesize; printf("total_memory : %"PRIu64"\n", info.total_pages / i); printf("free_memory : %"PRIu64"\n", info.free_pages / i); } - if (!libxl_get_freecpus(&ctx, &cpumap)) { + if (!libxl_get_freecpus(ctx, &cpumap)) { libxl_for_each_cpu(i, cpumap) if (libxl_cpumap_test(&cpumap, i)) n++; @@ -3781,7 +3782,7 @@ static void output_topologyinfo(void) libxl_topologyinfo info; int i; - if (libxl_get_topologyinfo(&ctx, &info)) { + if (libxl_get_topologyinfo(ctx, &info)) { fprintf(stderr, "libxl_get_topologyinfo failed.\n"); return; } @@ -3852,7 +3853,7 @@ static int sched_credit_domain_get( { int rc; - rc = libxl_sched_credit_domain_get(&ctx, domid, scinfo); + rc = libxl_sched_credit_domain_get(ctx, domid, scinfo); if (rc) fprintf(stderr, "libxl_sched_credit_domain_get failed.\n"); @@ -3864,7 +3865,7 @@ static int sched_credit_domain_set( { int rc; - rc = libxl_sched_credit_domain_set(&ctx, domid, scinfo); + rc = libxl_sched_credit_domain_set(ctx, domid, scinfo); if (rc) fprintf(stderr, "libxl_sched_credit_domain_set failed.\n"); @@ -3875,7 +3876,7 @@ static void sched_credit_domain_output( int domid, libxl_sched_credit *scinfo) { char *domname; - domname = libxl_domid_to_name(&ctx, domid); + domname = libxl_domid_to_name(ctx, domid); printf("%-33s %4d %6d %4d\n", domname, domid, @@ -3921,7 +3922,7 @@ int main_sched_credit(int argc, char **argv) } if (!dom) { /* list all domain's credit scheduler info */ - info = libxl_list_domain(&ctx, &nb_domain); + info = libxl_list_domain(ctx, &nb_domain); if (!info) { fprintf(stderr, "libxl_domain_infolist failed.\n"); return 1; @@ -3981,7 +3982,7 @@ int main_domid(int argc, char **argv) return 1; } - if (libxl_name_to_domid(&ctx, domname, &domid)) { + if (libxl_name_to_domid(ctx, domname, &domid)) { fprintf(stderr, "Can't get domid of domain name '%s', maybe this domain does not exist.\n", domname); return 1; } @@ -4020,7 +4021,7 @@ int main_domname(int argc, char **argv) return 1; } - domname = libxl_domid_to_name(&ctx, domid); + domname = libxl_domid_to_name(ctx, domid); if (!domname) { fprintf(stderr, "Can't get domain name of domain id '%d', maybe this domain does not exist.\n", domid); return 1; @@ -4059,7 +4060,7 @@ int main_rename(int argc, char **argv) find_domain(dom); new_name = argv[optind]; - if (libxl_domain_rename(&ctx, domid, common_domname, new_name)) { + if (libxl_domain_rename(ctx, domid, common_domname, new_name)) { fprintf(stderr, "Can't rename domain '%s'.\n", dom); return 1; } @@ -4104,7 +4105,7 @@ int main_trigger(int argc, char **argv) } } - libxl_send_trigger(&ctx, domid, trigger_name, vcpuid); + libxl_send_trigger(ctx, domid, trigger_name, vcpuid); return 0; } @@ -4144,7 +4145,7 @@ int main_sysrq(int argc, char **argv) return 1; } - libxl_send_sysrq(&ctx, domid, sysrq[0]); + libxl_send_sysrq(ctx, domid, sysrq[0]); return 0; } @@ -4171,7 +4172,7 @@ int main_debug_keys(int argc, char **argv) keys = argv[optind]; - if (libxl_send_debug_keys(&ctx, keys)) { + if (libxl_send_debug_keys(ctx, keys)) { fprintf(stderr, "cannot send debug keys: %s\n", keys); return 1; } @@ -4200,15 +4201,15 @@ int main_dmesg(int argc, char **argv) } } - cr = libxl_xen_console_read_start(&ctx, clear); + cr = libxl_xen_console_read_start(ctx, clear); if (!cr) goto finish; - while ((ret = libxl_xen_console_read_line(&ctx, cr, &line)) > 0) + while ((ret = libxl_xen_console_read_line(ctx, cr, &line)) > 0) printf("%s", line); finish: - libxl_xen_console_read_finish(&ctx, cr); + libxl_xen_console_read_finish(ctx, cr); return ret; } @@ -4289,7 +4290,7 @@ int main_networkattach(int argc, char **argv) free(nic.script); nic.script = strdup((*argv) + 6); } else if (!strncmp("backend=", *argv, 8)) { - if(libxl_name_to_domid(&ctx, ((*argv) + 8), &val)) { + if(libxl_name_to_domid(ctx, ((*argv) + 8), &val)) { fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n"); val = 0; } @@ -4308,7 +4309,7 @@ int main_networkattach(int argc, char **argv) } } nic.domid = domid; - if (libxl_device_nic_add(&ctx, domid, &nic)) { + if (libxl_device_nic_add(ctx, domid, &nic)) { fprintf(stderr, "libxl_device_nic_add failed.\n"); return 1; } @@ -4345,7 +4346,7 @@ int main_networklist(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", *argv); continue; } - if (!(nics = libxl_list_nics(&ctx, domid, &nb))) { + if (!(nics = libxl_list_nics(ctx, domid, &nb))) { continue; } for (i = 0; i < nb; ++i) { @@ -4392,17 +4393,17 @@ int main_networkdetach(int argc, char **argv) } if (!strchr(argv[optind+1], ':')) { - if (libxl_devid_to_device_nic(&ctx, domid, argv[optind+1], &nic)) { + if (libxl_devid_to_device_nic(ctx, domid, argv[optind+1], &nic)) { fprintf(stderr, "Unknown device %s.\n", argv[optind+1]); return 1; } } else { - if (libxl_mac_to_device_nic(&ctx, domid, argv[optind+1], &nic)) { + if (libxl_mac_to_device_nic(ctx, domid, argv[optind+1], &nic)) { fprintf(stderr, "Unknown device %s.\n", argv[optind+1]); return 1; } } - if (libxl_device_nic_del(&ctx, &nic, 1)) { + if (libxl_device_nic_del(ctx, &nic, 1)) { fprintf(stderr, "libxl_device_nic_del failed.\n"); return 1; } @@ -4480,7 +4481,7 @@ int main_blockattach(int argc, char **argv) disk.domid = fe_domid; disk.backend_domid = be_domid; - if (libxl_device_disk_add(&ctx, fe_domid, &disk)) { + if (libxl_device_disk_add(ctx, fe_domid, &disk)) { fprintf(stderr, "libxl_device_disk_add failed.\n"); } return 0; @@ -4515,12 +4516,12 @@ int main_blocklist(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", *argv); continue; } - disks = libxl_device_disk_list(&ctx, domid, &nb); + disks = libxl_device_disk_list(ctx, domid, &nb); if (!disks) { continue; } for (i=0; i<nb; i++) { - if (!libxl_device_disk_getinfo(&ctx, domid, &disks[i], &diskinfo)) { + if (!libxl_device_disk_getinfo(ctx, domid, &disks[i], &diskinfo)) { /* Vdev BE hdl st evch rref BE-path*/ printf("%-5d %-3d %-6d %-5d %-6d %-8d %-30s\n", diskinfo.devid, diskinfo.backend_id, diskinfo.frontend_id, @@ -4558,11 +4559,11 @@ int main_blockdetach(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", argv[optind]); return 1; } - if (libxl_devid_to_device_disk(&ctx, domid, argv[optind+1], &disk)) { + if (libxl_devid_to_device_disk(ctx, domid, argv[optind+1], &disk)) { fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]); return 1; } - if (libxl_device_disk_del(&ctx, &disk, 1)) { + if (libxl_device_disk_del(ctx, &disk, 1)) { fprintf(stderr, "libxl_device_disk_del failed.\n"); } return 0; @@ -4659,7 +4660,7 @@ int main_network2attach(int argc, char **argv) } net2.domid = domid; net2.backend_domid = back_domid; - if (libxl_device_net2_add(&ctx, domid, &net2)) { + if (libxl_device_net2_add(ctx, domid, &net2)) { fprintf(stderr, "libxl_device_net2_add failed.\n"); } return 0; @@ -4694,7 +4695,7 @@ int main_network2list(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", *argv); continue; } - if ((net2s = libxl_device_net2_list(&ctx, domid, &nb))) { + if ((net2s = libxl_device_net2_list(ctx, domid, &nb))) { for (; nb > 0; --nb, ++net2s) { printf("%3d %2d %5d ", net2s->devid, net2s->backend_id, net2s->state); printf("%02x:%02x:%02x:%02x:%02x:%02x ", @@ -4734,11 +4735,11 @@ int main_network2detach(int argc, char **argv) fprintf(stderr, "%s is an invalid domain identifier\n", argv[optind]); return 1; } - if (libxl_devid_to_device_net2(&ctx, domid, argv[optind+1], &net2)) { + if (libxl_devid_to_device_net2(ctx, domid, argv[optind+1], &net2)) { fprintf(stderr, "Error: Device %s not connected.\n", argv[optind+1]); return 1; } - if (libxl_device_net2_del(&ctx, &net2, 1)) { + if (libxl_device_net2_del(ctx, &net2, 1)) { fprintf(stderr, "libxl_device_net2_del failed.\n"); return 1; } @@ -4818,7 +4819,7 @@ static void print_dom0_uptime(int short_mode, time_t now) strtok(buf, " "); uptime = strtoul(buf, NULL, 10); - domname = libxl_domid_to_name(&ctx, 0); + domname = libxl_domid_to_name(ctx, 0); if (short_mode) { now_str = current_time_to_string(now); @@ -4851,11 +4852,11 @@ static void print_domU_uptime(uint32_t domuid, int short_mode, time_t now) char *now_str = NULL; char *domname; - s_time = libxl_vm_get_start_time(&ctx, domuid); + s_time = libxl_vm_get_start_time(ctx, domuid); if (s_time == -1) return; uptime = now - s_time; - domname = libxl_domid_to_name(&ctx, domuid); + domname = libxl_domid_to_name(ctx, domuid); if (short_mode) { now_str = current_time_to_string(now); @@ -4890,7 +4891,7 @@ static void print_uptime(int short_mode, uint32_t doms[], int nb_doms) if (nb_doms == 0) { print_dom0_uptime(short_mode, now); - info = libxl_list_vm(&ctx, &nb_vm); + info = libxl_list_vm(ctx, &nb_vm); for (i = 0; i < nb_vm; i++) print_domU_uptime(info[i].domid, short_mode, now); } else { @@ -4972,7 +4973,7 @@ int main_tmem_list(int argc, char **argv) else find_domain(dom); - buf = libxl_tmem_list(&ctx, domid, use_long); + buf = libxl_tmem_list(ctx, domid, use_long); if (buf == NULL) return -1; @@ -5013,7 +5014,7 @@ int main_tmem_freeze(int argc, char **argv) else find_domain(dom); - libxl_tmem_freeze(&ctx, domid); + libxl_tmem_freeze(ctx, domid); return 0; } @@ -5049,7 +5050,7 @@ int main_tmem_destroy(int argc, char **argv) else find_domain(dom); - libxl_tmem_destroy(&ctx, domid); + libxl_tmem_destroy(ctx, domid); return 0; } @@ -5085,7 +5086,7 @@ int main_tmem_thaw(int argc, char **argv) else find_domain(dom); - libxl_tmem_thaw(&ctx, domid); + libxl_tmem_thaw(ctx, domid); return 0; } @@ -5142,11 +5143,11 @@ int main_tmem_set(int argc, char **argv) } if (opt_w) - libxl_tmem_set(&ctx, domid, "weight", weight); + libxl_tmem_set(ctx, domid, "weight", weight); if (opt_c) - libxl_tmem_set(&ctx, domid, "cap", cap); + libxl_tmem_set(ctx, domid, "cap", cap); if (opt_p) - libxl_tmem_set(&ctx, domid, "compress", compress); + libxl_tmem_set(ctx, domid, "compress", compress); return 0; } @@ -5205,7 +5206,7 @@ int main_tmem_shared_auth(int argc, char **argv) return 1; } - libxl_tmem_shared_auth(&ctx, domid, uuid, auth); + libxl_tmem_shared_auth(ctx, domid, uuid, auth); return 0; } @@ -5226,7 +5227,7 @@ int main_tmem_freeable(int argc, char **argv) } } - mb = libxl_tmem_freeable(&ctx); + mb = libxl_tmem_freeable(ctx); if (mb == -1) return -1; @@ -5307,7 +5308,7 @@ int main_cpupoolcreate(int argc, char **argv) return -ERROR_FAIL; } - if (libxl_read_file_contents(&ctx, filename, (void **)&config_data, &config_len)) { + if (libxl_read_file_contents(ctx, filename, (void **)&config_data, &config_len)) { fprintf(stderr, "Failed to read config file: %s: %s\n", filename, strerror(errno)); return -ERROR_FAIL; @@ -5345,36 +5346,36 @@ int main_cpupoolcreate(int argc, char **argv) name = strdup(buf); else name = libxl_basename(filename); - if (!libxl_name_to_cpupoolid(&ctx, name, &poolid)) { + if (!libxl_name_to_cpupoolid(ctx, name, &poolid)) { fprintf(stderr, "Pool name \"%s\" already exists\n", name); return -ERROR_FAIL; } if (!xlu_cfg_get_string (config, "sched", &buf)) { - if ((schedid = libxl_name_to_schedid(&ctx, buf)) < 0) { + if ((schedid = libxl_name_to_schedid(ctx, buf)) < 0) { fprintf(stderr, "Unknown scheduler\n"); return -ERROR_FAIL; } } else { - if ((schedid = libxl_get_sched_id(&ctx)) < 0) { + if ((schedid = libxl_get_sched_id(ctx)) < 0) { fprintf(stderr, "get_sched_id sysctl failed.\n"); return -ERROR_FAIL; } } - sched = libxl_schedid_to_name(&ctx, schedid); + sched = libxl_schedid_to_name(ctx, schedid); - if (libxl_get_freecpus(&ctx, &freemap)) { + if (libxl_get_freecpus(ctx, &freemap)) { fprintf(stderr, "libxl_get_freecpus failed\n"); return -ERROR_FAIL; } - if (libxl_cpumap_alloc(&ctx, &cpumap)) { + if (libxl_cpumap_alloc(ctx, &cpumap)) { fprintf(stderr, "Failed to allocate cpumap\n"); return -ERROR_FAIL; } if (!xlu_cfg_get_list(config, "nodes", &nodes, 0, 0)) { n_cpus = 0; n_nodes = 0; - if (libxl_get_topologyinfo(&ctx, &topology)) { + if (libxl_get_topologyinfo(ctx, &topology)) { fprintf(stderr, "libxl_get_topologyinfo failed\n"); return -ERROR_FAIL; } @@ -5434,7 +5435,7 @@ int main_cpupoolcreate(int argc, char **argv) return 0; poolid = 0; - if (libxl_create_cpupool(&ctx, name, schedid, cpumap, &uuid, &poolid)) { + if (libxl_create_cpupool(ctx, name, schedid, cpumap, &uuid, &poolid)) { fprintf(stderr, "error on creating cpupool\n"); return -ERROR_FAIL; } @@ -5488,13 +5489,13 @@ int main_cpupoollist(int argc, char **argv) } if (optind < argc) { pool = argv[optind]; - if (libxl_name_to_cpupoolid(&ctx, pool, &poolid)) { + if (libxl_name_to_cpupoolid(ctx, pool, &poolid)) { fprintf(stderr, "Pool \'%s\' does not exist\n", pool); return -ERROR_FAIL; } } - poolinfo = libxl_list_cpupool(&ctx, &n_pools); + poolinfo = libxl_list_cpupool(ctx, &n_pools); if (!poolinfo) { fprintf(stderr, "error getting cpupool info\n"); return -ERROR_NOMEM; @@ -5508,7 +5509,7 @@ int main_cpupoollist(int argc, char **argv) for (p = 0; p < n_pools; p++) { if (!ret && (!pool || (poolinfo[p].poolid == poolid))) { - name = libxl_cpupoolid_to_name(&ctx, poolinfo[p].poolid); + name = libxl_cpupoolid_to_name(ctx, poolinfo[p].poolid); if (!name) { fprintf(stderr, "error getting cpupool info\n"); ret = -ERROR_NOMEM; @@ -5524,7 +5525,7 @@ int main_cpupoollist(int argc, char **argv) } if (!opt_cpus) { printf("%3d %9s y %4d", n, - libxl_schedid_to_name(&ctx, poolinfo[p].sched_id), + libxl_schedid_to_name(ctx, poolinfo[p].sched_id), poolinfo[p].n_dom); } printf("\n"); @@ -5561,12 +5562,12 @@ int main_cpupooldestroy(int argc, char **argv) } if (cpupool_qualifier_to_cpupoolid(pool, &poolid, NULL) || - !libxl_cpupoolid_to_name(&ctx, poolid)) { + !libxl_cpupoolid_to_name(ctx, poolid)) { fprintf(stderr, "unknown cpupool \'%s\'\n", pool); return -ERROR_FAIL; } - return -libxl_destroy_cpupool(&ctx, poolid); + return -libxl_destroy_cpupool(ctx, poolid); } int main_cpupoolrename(int argc, char **argv) @@ -5595,14 +5596,14 @@ int main_cpupoolrename(int argc, char **argv) } if (cpupool_qualifier_to_cpupoolid(pool, &poolid, NULL) || - !libxl_cpupoolid_to_name(&ctx, poolid)) { + !libxl_cpupoolid_to_name(ctx, poolid)) { fprintf(stderr, "unknown cpupool \'%s\'\n", pool); return -ERROR_FAIL; } new_name = argv[optind]; - if (libxl_cpupool_rename(&ctx, new_name, poolid)) { + if (libxl_cpupool_rename(ctx, new_name, poolid)) { fprintf(stderr, "Can't rename cpupool '%s'.\n", pool); return 1; } @@ -5651,16 +5652,16 @@ int main_cpupoolcpuadd(int argc, char **argv) } if (cpupool_qualifier_to_cpupoolid(pool, &poolid, NULL) || - !libxl_cpupoolid_to_name(&ctx, poolid)) { + !libxl_cpupoolid_to_name(ctx, poolid)) { fprintf(stderr, "unknown cpupool \'%s\'\n", pool); return -ERROR_FAIL; } if (cpu >= 0) { - return -libxl_cpupool_cpuadd(&ctx, poolid, cpu); + return -libxl_cpupool_cpuadd(ctx, poolid, cpu); } - if (libxl_cpupool_cpuadd_node(&ctx, poolid, node, &n)) { + if (libxl_cpupool_cpuadd_node(ctx, poolid, node, &n)) { fprintf(stderr, "libxl_cpupool_cpuadd_node failed\n"); return -ERROR_FAIL; } @@ -5714,16 +5715,16 @@ int main_cpupoolcpuremove(int argc, char **argv) } if (cpupool_qualifier_to_cpupoolid(pool, &poolid, NULL) || - !libxl_cpupoolid_to_name(&ctx, poolid)) { + !libxl_cpupoolid_to_name(ctx, poolid)) { fprintf(stderr, "unknown cpupool \'%s\'\n", pool); return -ERROR_FAIL; } if (cpu >= 0) { - return -libxl_cpupool_cpuremove(&ctx, poolid, cpu); + return -libxl_cpupool_cpuremove(ctx, poolid, cpu); } - if (libxl_cpupool_cpuremove_node(&ctx, poolid, node, &n)) { + if (libxl_cpupool_cpuremove_node(ctx, poolid, node, &n)) { fprintf(stderr, "libxl_cpupool_cpuremove_node failed\n"); return -ERROR_FAIL; } @@ -5770,18 +5771,18 @@ int main_cpupoolmigrate(int argc, char **argv) } if (domain_qualifier_to_domid(dom, &domid, NULL) || - !libxl_domid_to_name(&ctx, domid)) { + !libxl_domid_to_name(ctx, domid)) { fprintf(stderr, "unknown domain \'%s\'\n", dom); return -ERROR_FAIL; } if (cpupool_qualifier_to_cpupoolid(pool, &poolid, NULL) || - !libxl_cpupoolid_to_name(&ctx, poolid)) { + !libxl_cpupoolid_to_name(ctx, poolid)) { fprintf(stderr, "unknown cpupool \'%s\'\n", pool); return -ERROR_FAIL; } - return -libxl_cpupool_movedomain(&ctx, poolid, domid); + return -libxl_cpupool_movedomain(ctx, poolid, domid); } int main_cpupoolnumasplit(int argc, char **argv) @@ -5814,7 +5815,7 @@ int main_cpupoolnumasplit(int argc, char **argv) } ret = 0; - poolinfo = libxl_list_cpupool(&ctx, &n_pools); + poolinfo = libxl_list_cpupool(ctx, &n_pools); if (!poolinfo) { fprintf(stderr, "error getting cpupool info\n"); return -ERROR_NOMEM; @@ -5829,12 +5830,12 @@ int main_cpupoolnumasplit(int argc, char **argv) return -ERROR_FAIL; } - if (libxl_get_topologyinfo(&ctx, &topology)) { + if (libxl_get_topologyinfo(ctx, &topology)) { fprintf(stderr, "libxl_get_topologyinfo failed\n"); return -ERROR_FAIL; } - if (libxl_cpumap_alloc(&ctx, &cpumap)) { + if (libxl_cpumap_alloc(ctx, &cpumap)) { fprintf(stderr, "Failed to allocate cpumap\n"); libxl_topologyinfo_destroy(&topology); return -ERROR_FAIL; @@ -5844,13 +5845,13 @@ int main_cpupoolnumasplit(int argc, char **argv) a cpupool without cpus in between */ node = topology.nodemap.array[0]; - if (libxl_cpupool_cpuadd_node(&ctx, 0, node, &n)) { + if (libxl_cpupool_cpuadd_node(ctx, 0, node, &n)) { fprintf(stderr, "error on adding cpu to Pool 0\n"); return -ERROR_FAIL; } snprintf(name, 15, "Pool-node%d", node); - ret = -libxl_cpupool_rename(&ctx, name, 0); + ret = -libxl_cpupool_rename(ctx, name, 0); if (ret) { fprintf(stderr, "error on renaming Pool 0\n"); goto out; @@ -5864,12 +5865,12 @@ int main_cpupoolnumasplit(int argc, char **argv) n++; } } - if (libxl_set_vcpuonline(&ctx, 0, &cpumap)) { + if (libxl_set_vcpuonline(ctx, 0, &cpumap)) { fprintf(stderr, "error on removing vcpus for Domain-0\n"); goto out; } for (c = 0; c < 10; c++) { - if (libxl_domain_info(&ctx, &info, 0)) { + if (libxl_domain_info(ctx, &info, 0)) { fprintf(stderr, "error on getting info for Domain-0\n"); goto out; } @@ -5890,7 +5891,7 @@ int main_cpupoolnumasplit(int argc, char **argv) } node = topology.nodemap.array[c]; - ret = -libxl_cpupool_cpuremove_node(&ctx, 0, node, &n); + ret = -libxl_cpupool_cpuremove_node(ctx, 0, node, &n); if (ret) { fprintf(stderr, "error on removing cpu from Pool 0\n"); goto out; @@ -5899,13 +5900,13 @@ int main_cpupoolnumasplit(int argc, char **argv) snprintf(name, 15, "Pool-node%d", node); libxl_uuid_generate(&uuid); poolid = 0; - ret = -libxl_create_cpupool(&ctx, name, schedid, cpumap, &uuid, &poolid); + ret = -libxl_create_cpupool(ctx, name, schedid, cpumap, &uuid, &poolid); if (ret) { fprintf(stderr, "error on creating cpupool\n"); goto out; } - ret = -libxl_cpupool_cpuadd_node(&ctx, poolid, node, &n); + ret = -libxl_cpupool_cpuadd_node(ctx, poolid, node, &n); if (ret) { fprintf(stderr, "error on adding cpus to cpupool\n"); goto out; diff --git a/tools/ocaml/libs/xl/xl_stubs.c b/tools/ocaml/libs/xl/xl_stubs.c index 33aba54ab0..81c8ea2afd 100644 --- a/tools/ocaml/libs/xl/xl_stubs.c +++ b/tools/ocaml/libs/xl/xl_stubs.c @@ -52,21 +52,21 @@ void log_destroy(struct xentoollog_logger *logger) { } -#define INIT_STRUCT() libxl_ctx ctx; struct caml_logger lg; struct caml_gc gc; gc.offset = 0; +#define INIT_STRUCT() libxl_ctx *ctx; struct caml_logger lg; struct caml_gc gc; gc.offset = 0; #define INIT_CTX() \ lg.logger.vmessage = log_vmessage; \ lg.logger.destroy = log_destroy; \ lg.logger.progress = NULL; \ caml_enter_blocking_section(); \ - ret = libxl_ctx_init(&ctx, LIBXL_VERSION, (struct xentoollog_logger *) &lg); \ + ret = libxl_ctx_alloc(&ctx, LIBXL_VERSION, (struct xentoollog_logger *) &lg); \ if (ret != 0) \ failwith_xl("cannot init context", &lg); #define FREE_CTX() \ gc_free(&gc); \ caml_leave_blocking_section(); \ - libxl_ctx_free(&ctx) + libxl_ctx_free(ctx) static char * dup_String_val(caml_gc *gc, value s) { @@ -379,7 +379,7 @@ value stub_xl_disk_add(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_disk_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_disk_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("disk_add", &lg); FREE_CTX(); @@ -397,7 +397,7 @@ value stub_xl_disk_remove(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_disk_del(&ctx, &c_info, 0); + ret = libxl_device_disk_del(ctx, &c_info, 0); if (ret != 0) failwith_xl("disk_remove", &lg); FREE_CTX(); @@ -415,7 +415,7 @@ value stub_xl_nic_add(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_nic_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_nic_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("nic_add", &lg); FREE_CTX(); @@ -433,7 +433,7 @@ value stub_xl_nic_remove(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_nic_del(&ctx, &c_info, 0); + ret = libxl_device_nic_del(ctx, &c_info, 0); if (ret != 0) failwith_xl("nic_remove", &lg); FREE_CTX(); @@ -454,7 +454,7 @@ value stub_xl_console_add(value info, value state, value domid) c_info.build_state = &c_state; INIT_CTX(); - ret = libxl_device_console_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_console_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("console_add", &lg); FREE_CTX(); @@ -472,7 +472,7 @@ value stub_xl_vkb_add(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_vkb_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_vkb_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("vkb_add", &lg); FREE_CTX(); @@ -487,7 +487,7 @@ value stub_xl_vkb_clean_shutdown(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_device_vkb_clean_shutdown(&ctx, Int_val(domid)); + ret = libxl_device_vkb_clean_shutdown(ctx, Int_val(domid)); if (ret != 0) failwith_xl("vkb_clean_shutdown", &lg); FREE_CTX(); @@ -502,7 +502,7 @@ value stub_xl_vkb_hard_shutdown(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_device_vkb_hard_shutdown(&ctx, Int_val(domid)); + ret = libxl_device_vkb_hard_shutdown(ctx, Int_val(domid)); if (ret != 0) failwith_xl("vkb_hard_shutdown", &lg); FREE_CTX(); @@ -521,7 +521,7 @@ value stub_xl_vfb_add(value info, value domid) c_info.domid = Int_val(domid); INIT_CTX(); - ret = libxl_device_vfb_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_vfb_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("vfb_add", &lg); FREE_CTX(); @@ -536,7 +536,7 @@ value stub_xl_vfb_clean_shutdown(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_device_vfb_clean_shutdown(&ctx, Int_val(domid)); + ret = libxl_device_vfb_clean_shutdown(ctx, Int_val(domid)); if (ret != 0) failwith_xl("vfb_clean_shutdown", &lg); FREE_CTX(); @@ -551,7 +551,7 @@ value stub_xl_vfb_hard_shutdown(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_device_vfb_hard_shutdown(&ctx, Int_val(domid)); + ret = libxl_device_vfb_hard_shutdown(ctx, Int_val(domid)); if (ret != 0) failwith_xl("vfb_hard_shutdown", &lg); FREE_CTX(); @@ -569,7 +569,7 @@ value stub_xl_pci_add(value info, value domid) device_pci_val(&gc, &c_info, info); INIT_CTX(); - ret = libxl_device_pci_add(&ctx, Int_val(domid), &c_info); + ret = libxl_device_pci_add(ctx, Int_val(domid), &c_info); if (ret != 0) failwith_xl("pci_add", &lg); FREE_CTX(); @@ -587,7 +587,7 @@ value stub_xl_pci_remove(value info, value domid) device_pci_val(&gc, &c_info, info); INIT_CTX(); - ret = libxl_device_pci_remove(&ctx, Int_val(domid), &c_info, 0); + ret = libxl_device_pci_remove(ctx, Int_val(domid), &c_info, 0); if (ret != 0) failwith_xl("pci_remove", &lg); FREE_CTX(); @@ -602,7 +602,7 @@ value stub_xl_pci_shutdown(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_device_pci_shutdown(&ctx, Int_val(domid)); + ret = libxl_device_pci_shutdown(ctx, Int_val(domid)); if (ret != 0) failwith_xl("pci_shutdown", &lg); FREE_CTX(); @@ -617,7 +617,7 @@ value stub_xl_button_press(value domid, value button) INIT_STRUCT(); INIT_CTX(); - ret = libxl_button_press(&ctx, Int_val(domid), Int_val(button) + POWER_BUTTON); + ret = libxl_button_press(ctx, Int_val(domid), Int_val(button) + POWER_BUTTON); if (ret != 0) failwith_xl("button_press", &lg); FREE_CTX(); @@ -634,7 +634,7 @@ value stub_xl_physinfo(value unit) INIT_STRUCT(); INIT_CTX(); - ret = libxl_get_physinfo(&ctx, &c_physinfo); + ret = libxl_get_physinfo(ctx, &c_physinfo); if (ret != 0) failwith_xl("physinfo", &lg); FREE_CTX(); @@ -652,7 +652,7 @@ value stub_xl_topologyinfo(value unit) INIT_STRUCT(); INIT_CTX(); - ret = libxl_get_topologyinfo(&ctx, &c_topologyinfo); + ret = libxl_get_topologyinfo(ctx, &c_topologyinfo); if (ret != 0) failwith_xl("topologyinfo", &lg); FREE_CTX(); @@ -670,7 +670,7 @@ value stub_xl_sched_credit_domain_get(value domid) INIT_STRUCT(); INIT_CTX(); - ret = libxl_sched_credit_domain_get(&ctx, Int_val(domid), &c_scinfo); + ret = libxl_sched_credit_domain_get(ctx, Int_val(domid), &c_scinfo); if (ret != 0) failwith_xl("sched_credit_domain_get", &lg); FREE_CTX(); @@ -689,7 +689,7 @@ value stub_xl_sched_credit_domain_set(value domid, value scinfo) sched_credit_val(&gc, &c_scinfo, scinfo); INIT_CTX(); - ret = libxl_sched_credit_domain_set(&ctx, Int_val(domid), &c_scinfo); + ret = libxl_sched_credit_domain_set(ctx, Int_val(domid), &c_scinfo); if (ret != 0) failwith_xl("sched_credit_domain_set", &lg); FREE_CTX(); @@ -707,7 +707,7 @@ value stub_xl_send_trigger(value domid, value trigger, value vcpuid) c_trigger = dup_String_val(&gc, trigger); INIT_CTX(); - ret = libxl_send_trigger(&ctx, Int_val(domid), c_trigger, Int_val(vcpuid)); + ret = libxl_send_trigger(ctx, Int_val(domid), c_trigger, Int_val(vcpuid)); if (ret != 0) failwith_xl("send_trigger", &lg); FREE_CTX(); @@ -721,7 +721,7 @@ value stub_xl_send_sysrq(value domid, value sysrq) INIT_STRUCT(); INIT_CTX(); - ret = libxl_send_sysrq(&ctx, Int_val(domid), Int_val(sysrq)); + ret = libxl_send_sysrq(ctx, Int_val(domid), Int_val(sysrq)); if (ret != 0) failwith_xl("send_sysrq", &lg); FREE_CTX(); @@ -738,7 +738,7 @@ value stub_xl_send_debug_keys(value keys) c_keys = dup_String_val(&gc, keys); INIT_CTX(); - ret = libxl_send_debug_keys(&ctx, c_keys); + ret = libxl_send_debug_keys(ctx, c_keys); if (ret != 0) failwith_xl("send_debug_keys", &lg); FREE_CTX(); diff --git a/tools/python/setup.py b/tools/python/setup.py index dd88de89ef..81540bcf49 100644 --- a/tools/python/setup.py +++ b/tools/python/setup.py @@ -83,7 +83,7 @@ netlink = Extension("netlink", xl = Extension("xl", extra_compile_args = extra_compile_args, - include_dirs = [ PATH_XEN, PATH_LIBXL, PATH_LIBXC, PATH_XENSTORE, "xen/lowlevel/xl" ], + include_dirs = [ PATH_XEN, PATH_LIBXL, PATH_LIBXC, "xen/lowlevel/xl" ], library_dirs = [ PATH_LIBXL ], libraries = [ "xenlight" ], depends = [ PATH_LIBXL + "/libxenlight.so" ], diff --git a/tools/python/xen/lowlevel/xl/xl.c b/tools/python/xen/lowlevel/xl/xl.c index 1a2ce8f8a9..9910c449da 100644 --- a/tools/python/xen/lowlevel/xl/xl.c +++ b/tools/python/xen/lowlevel/xl/xl.c @@ -370,7 +370,7 @@ PyObject *attrib__struct_in_addr_get(struct in_addr *pptr) typedef struct { PyObject_HEAD; - libxl_ctx ctx; + libxl_ctx *ctx; xentoollog_logger_stdiostream *logger; xentoollog_level minmsglevel; } XlObject; @@ -381,7 +381,7 @@ static PyObject *pyxl_list_domains(XlObject *self) PyObject *list; int nr_dom, i; - info = libxl_list_domain(&self->ctx, &nr_dom); + info = libxl_list_domain(self->ctx, &nr_dom); if ( NULL == info ) return PyList_New(0); @@ -416,7 +416,7 @@ static PyObject *pyxl_domid_to_name(XlObject *self, PyObject *args) if ( !PyArg_ParseTuple(args, "i", &domid) ) return NULL; - domname = libxl_domid_to_name(&self->ctx, domid); + domname = libxl_domid_to_name(self->ctx, domid); ret = PyString_FromString(domname); free(domname); @@ -428,7 +428,7 @@ static PyObject *pyxl_domain_shutdown(XlObject *self, PyObject *args) int domid, req = 0; if ( !PyArg_ParseTuple(args, "i|i", &domid, &req) ) return NULL; - if ( libxl_domain_shutdown(&self->ctx, domid, req) ) { + if ( libxl_domain_shutdown(self->ctx, domid, req) ) { PyErr_SetString(xl_error_obj, "cannot shutdown domain"); return NULL; } @@ -441,7 +441,7 @@ static PyObject *pyxl_domain_destroy(XlObject *self, PyObject *args) int domid, force = 1; if ( !PyArg_ParseTuple(args, "i|i", &domid, &force) ) return NULL; - if ( libxl_domain_destroy(&self->ctx, domid, force) ) { + if ( libxl_domain_destroy(self->ctx, domid, force) ) { PyErr_SetString(xl_error_obj, "cannot destroy domain"); return NULL; } @@ -454,7 +454,7 @@ static PyObject *pyxl_domain_pause(XlObject *self, PyObject *args) int domid; if ( !PyArg_ParseTuple(args, "i", &domid) ) return NULL; - if ( libxl_domain_pause(&self->ctx, domid) ) { + if ( libxl_domain_pause(self->ctx, domid) ) { PyErr_SetString(xl_error_obj, "cannot pause domain"); return NULL; } @@ -467,7 +467,7 @@ static PyObject *pyxl_domain_unpause(XlObject *self, PyObject *args) int domid; if ( !PyArg_ParseTuple(args, "i", &domid) ) return NULL; - if ( libxl_domain_unpause(&self->ctx, domid) ) { + if ( libxl_domain_unpause(self->ctx, domid) ) { PyErr_SetString(xl_error_obj, "cannot unpause domain"); return NULL; } @@ -481,7 +481,7 @@ static PyObject *pyxl_domain_rename(XlObject *self, PyObject *args) int domid; if ( !PyArg_ParseTuple(args, "is|s", &domid, &new_name, &old_name) ) return NULL; - if ( libxl_domain_rename(&self->ctx, domid, old_name, new_name) ) { + if ( libxl_domain_rename(self->ctx, domid, old_name, new_name) ) { PyErr_SetString(xl_error_obj, "cannot rename domain"); return NULL; } @@ -501,7 +501,7 @@ static PyObject *pyxl_pci_add(XlObject *self, PyObject *args) return NULL; } pci = (Py_device_pci *)obj; - if ( libxl_device_pci_add(&self->ctx, domid, &pci->obj) ) { + if ( libxl_device_pci_add(self->ctx, domid, &pci->obj) ) { PyErr_SetString(xl_error_obj, "cannot add pci device"); return NULL; } @@ -522,7 +522,7 @@ static PyObject *pyxl_pci_del(XlObject *self, PyObject *args) return NULL; } pci = (Py_device_pci *)obj; - if ( libxl_device_pci_remove(&self->ctx, domid, &pci->obj, force) ) { + if ( libxl_device_pci_remove(self->ctx, domid, &pci->obj, force) ) { PyErr_SetString(xl_error_obj, "cannot remove pci device"); return NULL; } @@ -544,7 +544,7 @@ static PyObject *pyxl_pci_parse(XlObject *self, PyObject *args) return NULL; } - if ( libxl_device_pci_parse_bdf(&self->ctx, &pci->obj, str) ) { + if ( libxl_device_pci_parse_bdf(self->ctx, &pci->obj, str) ) { PyErr_SetString(xl_error_obj, "cannot parse pci device spec (BDF)"); Py_DECREF(pci); return NULL; @@ -559,7 +559,7 @@ static PyObject *pyxl_pci_list_assignable(XlObject *self, PyObject *args) PyObject *list; int nr_dev, i; - if ( libxl_device_pci_list_assignable(&self->ctx, &dev, &nr_dev) ) { + if ( libxl_device_pci_list_assignable(self->ctx, &dev, &nr_dev) ) { PyErr_SetString(xl_error_obj, "Cannot list assignable devices"); return NULL; } @@ -595,7 +595,7 @@ static PyObject *pyxl_pci_list(XlObject *self, PyObject *args) if ( !PyArg_ParseTuple(args, "i", &domid) ) return NULL; - if ( libxl_device_pci_list_assigned(&self->ctx, &dev, domid, &nr_dev) ) { + if ( libxl_device_pci_list_assigned(self->ctx, &dev, domid, &nr_dev) ) { PyErr_SetString(xl_error_obj, "Cannot list assignable devices"); return NULL; } @@ -663,7 +663,7 @@ static PyObject *PyXl_new(PyTypeObject *type, PyObject *args, PyObject *kwds) if (self == NULL) return NULL; - memset(&self->ctx, 0, sizeof(self->ctx)); + self->ctx = NULL; self->logger = NULL; self->minmsglevel = XTL_PROGRESS; @@ -679,7 +679,7 @@ PyXl_init(XlObject *self, PyObject *args, PyObject *kwds) return -1; } - if ( libxl_ctx_init(&self->ctx, LIBXL_VERSION, + if ( libxl_ctx_alloc(&self->ctx, LIBXL_VERSION, (xentoollog_logger*)self->logger) ) { PyErr_SetString(xl_error_obj, "cannot init xl context"); return -1; @@ -690,7 +690,7 @@ PyXl_init(XlObject *self, PyObject *args, PyObject *kwds) static void PyXl_dealloc(XlObject *self) { - libxl_ctx_free(&self->ctx); + libxl_ctx_free(self->ctx); if ( self->logger ) xtl_logger_destroy((xentoollog_logger*)self->logger); |