[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] libxl: move xen-init-dom0 to tools/helpers
commit 175f00bcedee5901213fe2e348a3e41edb641146 Author: Juergen Gross <jgross@xxxxxxxx> AuthorDate: Mon Jan 18 09:03:55 2016 +0100 Commit: Ian Campbell <ian.campbell@xxxxxxxxxx> CommitDate: Mon Jan 18 16:34:20 2016 +0000 libxl: move xen-init-dom0 to tools/helpers Move xen-init-dom0 from tools/libxl to tools/helpers, as it is just a helper program. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx> --- .gitignore | 2 +- tools/helpers/Makefile | 10 ++++ tools/helpers/xen-init-dom0.c | 120 +++++++++++++++++++++++++++++++++++++++++ tools/libxl/Makefile | 14 +---- tools/libxl/xen-init-dom0.c | 120 ----------------------------------------- 5 files changed, 134 insertions(+), 132 deletions(-) diff --git a/.gitignore b/.gitignore index 01d3305..141c2be 100644 --- a/.gitignore +++ b/.gitignore @@ -134,6 +134,7 @@ tools/flask/utils/flask-setenforce tools/flask/utils/flask-set-bool tools/flask/utils/flask-label-pci tools/helpers/init-xenstore-domain +tools/helpers/xen-init-dom0 tools/hotplug/common/hotplugpath.sh tools/hotplug/FreeBSD/rc.d/xencommons tools/hotplug/FreeBSD/rc.d/xendriverdomain @@ -301,7 +302,6 @@ tools/libxl/*.pyc tools/libxl/libxl-save-helper tools/libxl/test_timedereg tools/libxl/test_fdderegrace -tools/libxl/xen-init-dom0 tools/blktap2/control/tap-ctl tools/firmware/etherboot/eb-roms.h tools/firmware/etherboot/gpxe-git-snapshot.tar.gz diff --git a/tools/helpers/Makefile b/tools/helpers/Makefile index 52347fd..826e0ed 100644 --- a/tools/helpers/Makefile +++ b/tools/helpers/Makefile @@ -5,10 +5,16 @@ XEN_ROOT = $(CURDIR)/../.. include $(XEN_ROOT)/tools/Rules.mk +PROGS += xen-init-dom0 ifeq ($(CONFIG_Linux),y) PROGS += init-xenstore-domain endif +XEN_INIT_DOM0_OBJS = xen-init-dom0.o +$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxentoollog) +$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenstore) +$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenlight) + INIT_XENSTORE_DOMAIN_OBJS = init-xenstore-domain.o $(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenguest) $(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenctrl) @@ -17,12 +23,16 @@ $(INIT_XENSTORE_DOMAIN_OBJS): CFLAGS += $(CFLAGS_libxenstore) .PHONY: all all: $(PROGS) +xen-init-dom0: $(XEN_INIT_DOM0_OBJS) + $(CC) $(LDFLAGS) -o $@ $(XEN_INIT_DOM0_OBJS) $(LDLIBS_libxentoollog) $(LDLIBS_libxenstore) $(LDLIBS_libxenlight) $(APPEND_LDFLAGS) + init-xenstore-domain: $(INIT_XENSTORE_DOMAIN_OBJS) $(CC) $(LDFLAGS) -o $@ $(INIT_XENSTORE_DOMAIN_OBJS) $(LDLIBS_libxenstore) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS) .PHONY: install install: all $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) + $(INSTALL_PROG) xen-init-dom0 $(DESTDIR)$(LIBEXEC_BIN) ifeq ($(CONFIG_Linux),y) $(INSTALL_PROG) init-xenstore-domain $(DESTDIR)$(LIBEXEC_BIN) endif diff --git a/tools/helpers/xen-init-dom0.c b/tools/helpers/xen-init-dom0.c new file mode 100644 index 0000000..2f7aa7c --- /dev/null +++ b/tools/helpers/xen-init-dom0.c @@ -0,0 +1,120 @@ +#include <err.h> +#include <stdlib.h> +#include <stdint.h> +#include <string.h> +#include <stdio.h> + +#include <xentoollog.h> +#include <xenstore.h> +#include <libxl.h> + +#define DOMNAME_PATH "/local/domain/0/name" +#define DOMID_PATH "/local/domain/0/domid" + +static libxl_ctx *ctx; +static xentoollog_logger_stdiostream *logger; +static struct xs_handle *xsh; + +static void ctx_alloc(void) +{ + if (libxl_ctx_alloc(&ctx, LIBXL_VERSION, 0, + (xentoollog_logger *)logger)) { + fprintf(stderr, "cannot init libxl context\n"); + exit(1); + } + xsh = xs_open(0); + if (!xsh) { + fprintf(stderr, "cannot open xenstore connection\n"); + exit(1); + } +} + +static void ctx_free(void) +{ + if (ctx) { + libxl_ctx_free(ctx); + ctx = NULL; + } + if (logger) { + xtl_logger_destroy((xentoollog_logger *)logger); + logger = NULL; + } + if (xsh) { + xs_close(xsh); + xsh = NULL; + } +} + +int main(int argc, char **argv) +{ + int rc; + libxl_domain_config dom0_config; + char *domname_string = NULL, *domid_string = NULL; + char *json = NULL;; + + logger = xtl_createlogger_stdiostream(stderr, XTL_ERROR, 0); + if (!logger) exit(1); + + atexit(ctx_free); + + ctx_alloc(); + + libxl_domain_config_init(&dom0_config); + + /* Sanity check: this program can only be run once. */ + domid_string = xs_read(xsh, XBT_NULL, DOMID_PATH, NULL); + domname_string = xs_read(xsh, XBT_NULL, DOMNAME_PATH, NULL); + if (domid_string && domname_string) { + fprintf(stderr, "Dom0 is already set up\n"); + rc = 0; + goto out; + } + + /* Generate stub JSON config. */ + dom0_config.c_info.type = LIBXL_DOMAIN_TYPE_PV; + libxl_domain_build_info_init_type(&dom0_config.b_info, + LIBXL_DOMAIN_TYPE_PV); + + json = libxl_domain_config_to_json(ctx, &dom0_config); + /* libxl-json format requires the string ends with '\0'. Code + * snippet taken from libxl. + */ + rc = libxl_userdata_store(ctx, 0, "libxl-json", + (const uint8_t *)json, + strlen(json) + 1 /* include '\0' */); + if (rc) { + fprintf(stderr, "cannot store stub json config for Dom0\n"); + goto out; + } + + /* Write xenstore entries. */ + if (!xs_write(xsh, XBT_NULL, DOMID_PATH, "0", strlen("0"))) { + fprintf(stderr, "cannot set domid for Dom0\n"); + rc = 1; + goto out; + } + + if (!xs_write(xsh, XBT_NULL, DOMNAME_PATH, "Domain-0", + strlen("Domain-0"))) { + fprintf(stderr, "cannot set domain name for Dom0\n"); + rc = 1; + goto out; + } + + printf("Done setting up Dom0\n"); + +out: + libxl_domain_config_dispose(&dom0_config); + free(domid_string); + free(domname_string); + free(json); + return rc; +} + +/* + * Local variables: + * mode: C + * c-basic-offset: 4 + * indent-tabs-mode: nil + * End: + */ diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile index 2abae0c..b0cb9e4 100644 --- a/tools/libxl/Makefile +++ b/tools/libxl/Makefile @@ -143,7 +143,7 @@ LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \ libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h -CLIENTS = xl testidl libxl-save-helper xen-init-dom0 +CLIENTS = xl testidl libxl-save-helper CFLAGS_XL += $(CFLAGS_libxenlight) CFLAGS_XL += -Wshadow @@ -154,10 +154,6 @@ $(XL_OBJS) $(TEST_PROG_OBJS) _libxl.api-for-check: \ $(XL_OBJS): CFLAGS += $(CFLAGS_XL) $(XL_OBJS): CFLAGS += -include $(XEN_ROOT)/tools/config.h # libxl_json.h needs it. -XEN_INIT_DOM0_OBJS = xen-init-dom0.o -$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenctrl) -$(XEN_INIT_DOM0_OBJS): CFLAGS += $(CFLAGS_libxenstore) - SAVE_HELPER_OBJS = libxl_save_helper.o _libxl_save_msgs_helper.o $(SAVE_HELPER_OBJS): CFLAGS += $(CFLAGS_libxenctrl) @@ -174,7 +170,7 @@ all: $(CLIENTS) $(TEST_PROGS) $(PKG_CONFIG) \ $(AUTOSRCS) $(AUTOINCS) $(LIBXL_OBJS) $(LIBXLU_OBJS) $(XL_OBJS) $(SAVE_HELPER_OBJS) \ - $(LIBXL_TEST_OBJS) $(TEST_PROG_OBJS) $(XEN_INIT_DOM0_OBJS): \ + $(LIBXL_TEST_OBJS) $(TEST_PROG_OBJS): \ $(AUTOINCS) libxl.api-ok %.c %.h:: %.y @@ -215,7 +211,7 @@ libxl_internal_json.h: _libxl_types_internal_json.h xl.h: _paths.h $(LIBXL_OBJS) $(LIBXL_TEST_OBJS) $(LIBXLU_OBJS) \ - $(XL_OBJS) $(TEST_PROG_OBJS) $(SAVE_HELPER_OBJS) $(XEN_INIT_DOM0_OBJS): libxl.h + $(XL_OBJS) $(TEST_PROG_OBJS) $(SAVE_HELPER_OBJS): libxl.h $(LIBXL_OBJS) $(LIBXL_TEST_OBJS): libxl_internal.h _libxl_type%.h _libxl_type%_json.h _libxl_type%_private.h _libxl_type%.c: libxl_type%.idl gentypes.py idl.py @@ -256,9 +252,6 @@ libxlutil.a: $(LIBXLU_OBJS) xl: $(XL_OBJS) libxlutil.so libxenlight.so $(CC) $(LDFLAGS) -o $@ $(XL_OBJS) libxlutil.so $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) -lyajl $(APPEND_LDFLAGS) -xen-init-dom0: $(XEN_INIT_DOM0_OBJS) libxenlight.so - $(CC) $(LDFLAGS) -o $@ $(XEN_INIT_DOM0_OBJS) $(LDLIBS_libxenstore) $(LDLIBS_libxenlight) $(LDLIBS_libxentoollog) $(APPEND_LDFLAGS) - test_%: test_%.o test_common.o libxlutil.so libxenlight_test.so $(CC) $(LDFLAGS) -o $@ $^ $(filter-out %libxenlight.so, $(LDLIBS_libxenlight)) $(LDLIBS_libxentoollog) -lyajl $(APPEND_LDFLAGS) @@ -281,7 +274,6 @@ install: all $(INSTALL_DIR) $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/pkgconfig $(INSTALL_PROG) xl $(DESTDIR)$(sbindir) - $(INSTALL_PROG) xen-init-dom0 $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_PROG) libxl-save-helper $(DESTDIR)$(LIBEXEC_BIN) $(INSTALL_SHLIB) libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir) $(SYMLINK_SHLIB) libxenlight.so.$(MAJOR).$(MINOR) $(DESTDIR)$(libdir)/libxenlight.so.$(MAJOR) diff --git a/tools/libxl/xen-init-dom0.c b/tools/libxl/xen-init-dom0.c deleted file mode 100644 index 7925d64..0000000 --- a/tools/libxl/xen-init-dom0.c +++ /dev/null @@ -1,120 +0,0 @@ -#include <err.h> -#include <stdlib.h> -#include <stdint.h> -#include <string.h> -#include <stdio.h> - -#include <xenctrl.h> -#include <xenstore.h> -#include <libxl.h> - -#define DOMNAME_PATH "/local/domain/0/name" -#define DOMID_PATH "/local/domain/0/domid" - -static libxl_ctx *ctx; -static xentoollog_logger_stdiostream *logger; -static struct xs_handle *xsh; - -static void ctx_alloc(void) -{ - if (libxl_ctx_alloc(&ctx, LIBXL_VERSION, 0, - (xentoollog_logger *)logger)) { - fprintf(stderr, "cannot init libxl context\n"); - exit(1); - } - xsh = xs_open(0); - if (!xsh) { - fprintf(stderr, "cannot open xenstore connection\n"); - exit(1); - } -} - -static void ctx_free(void) -{ - if (ctx) { - libxl_ctx_free(ctx); - ctx = NULL; - } - if (logger) { - xtl_logger_destroy((xentoollog_logger *)logger); - logger = NULL; - } - if (xsh) { - xs_close(xsh); - xsh = NULL; - } -} - -int main(int argc, char **argv) -{ - int rc; - libxl_domain_config dom0_config; - char *domname_string = NULL, *domid_string = NULL; - char *json = NULL;; - - logger = xtl_createlogger_stdiostream(stderr, XTL_ERROR, 0); - if (!logger) exit(1); - - atexit(ctx_free); - - ctx_alloc(); - - libxl_domain_config_init(&dom0_config); - - /* Sanity check: this program can only be run once. */ - domid_string = xs_read(xsh, XBT_NULL, DOMID_PATH, NULL); - domname_string = xs_read(xsh, XBT_NULL, DOMNAME_PATH, NULL); - if (domid_string && domname_string) { - fprintf(stderr, "Dom0 is already set up\n"); - rc = 0; - goto out; - } - - /* Generate stub JSON config. */ - dom0_config.c_info.type = LIBXL_DOMAIN_TYPE_PV; - libxl_domain_build_info_init_type(&dom0_config.b_info, - LIBXL_DOMAIN_TYPE_PV); - - json = libxl_domain_config_to_json(ctx, &dom0_config); - /* libxl-json format requires the string ends with '\0'. Code - * snippet taken from libxl. - */ - rc = libxl_userdata_store(ctx, 0, "libxl-json", - (const uint8_t *)json, - strlen(json) + 1 /* include '\0' */); - if (rc) { - fprintf(stderr, "cannot store stub json config for Dom0\n"); - goto out; - } - - /* Write xenstore entries. */ - if (!xs_write(xsh, XBT_NULL, DOMID_PATH, "0", strlen("0"))) { - fprintf(stderr, "cannot set domid for Dom0\n"); - rc = 1; - goto out; - } - - if (!xs_write(xsh, XBT_NULL, DOMNAME_PATH, "Domain-0", - strlen("Domain-0"))) { - fprintf(stderr, "cannot set domain name for Dom0\n"); - rc = 1; - goto out; - } - - printf("Done setting up Dom0\n"); - -out: - libxl_domain_config_dispose(&dom0_config); - free(domid_string); - free(domname_string); - free(json); - return rc; -} - -/* - * Local variables: - * mode: C - * c-basic-offset: 4 - * indent-tabs-mode: nil - * End: - */ -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |