[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 3 of 4] libxl: move hvm_build_set_params to libxl_dom.c
# HG changeset patch # User Ian Campbell <ian.campbell@xxxxxxxxxx> # Date 1283853891 -3600 # Node ID 60cfaa1f0101d52a04f0b4d869bd6e0d5f1c74d5 # Parent f5372f2ac680ab1bd686499f4a9bdbc288629db1 libxl: move hvm_build_set_params to libxl_dom.c It is an internal function with only one caller. Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> diff -r f5372f2ac680 -r 60cfaa1f0101 tools/libxl/Makefile --- a/tools/libxl/Makefile Tue Sep 07 11:04:50 2010 +0100 +++ b/tools/libxl/Makefile Tue Sep 07 11:04:51 2010 +0100 @@ -27,7 +27,7 @@ LIBXL_OBJS-y += libxl_noblktap2.o LIBXL_OBJS-y += libxl_noblktap2.o endif -LIBXL_OBJS = flexarray.o libxl.o libxl_pci.o libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o libxl_internal.o xenguest.o libxl_utils.o $(LIBXL_OBJS-y) +LIBXL_OBJS = flexarray.o libxl.o libxl_pci.o libxl_dom.o libxl_exec.o libxl_xshelp.o libxl_device.o libxl_internal.o libxl_utils.o $(LIBXL_OBJS-y) LIBXL_OBJS += _libxl_types.o AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h diff -r f5372f2ac680 -r 60cfaa1f0101 tools/libxl/libxl_dom.c --- a/tools/libxl/libxl_dom.c Tue Sep 07 11:04:50 2010 +0100 +++ b/tools/libxl/libxl_dom.c Tue Sep 07 11:04:51 2010 +0100 @@ -20,6 +20,7 @@ #include <glob.h> #include <inttypes.h> #include <string.h> +#include <sys/mman.h> #include <sys/time.h> /* for struct timeval */ #include <unistd.h> /* for sleep(2) */ @@ -27,6 +28,8 @@ #include <xc_dom.h> #include <xenguest.h> #include <fcntl.h> + +#include <xen/hvm/hvm_info_table.h> #include "libxl.h" #include "libxl_internal.h" @@ -214,6 +217,45 @@ out: out: xc_dom_release(dom); return ret == 0 ? 0 : ERROR_FAIL; +} + +static int hvm_build_set_params(xc_interface *handle, uint32_t domid, + libxl_domain_build_info *info, + int store_evtchn, unsigned long *store_mfn, + int console_evtchn, unsigned long *console_mfn) +{ + struct hvm_info_table *va_hvm; + uint8_t *va_map, sum; + int i; + + va_map = xc_map_foreign_range(handle, domid, + XC_PAGE_SIZE, PROT_READ | PROT_WRITE, + HVM_INFO_PFN); + if (va_map == NULL) + return -1; + + va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET); + va_hvm->acpi_enabled = info->u.hvm.acpi; + va_hvm->apic_mode = info->u.hvm.apic; + va_hvm->nr_vcpus = info->max_vcpus; + memcpy(va_hvm->vcpu_online, &info->cur_vcpus, sizeof(info->cur_vcpus)); + for (i = 0, sum = 0; i < va_hvm->length; i++) + sum += ((uint8_t *) va_hvm)[i]; + va_hvm->checksum -= sum; + munmap(va_map, XC_PAGE_SIZE); + + xc_get_hvm_param(handle, domid, HVM_PARAM_STORE_PFN, store_mfn); + xc_get_hvm_param(handle, domid, HVM_PARAM_CONSOLE_PFN, console_mfn); + xc_set_hvm_param(handle, domid, HVM_PARAM_PAE_ENABLED, info->u.hvm.pae); +#if defined(__i386__) || defined(__x86_64__) + xc_set_hvm_param(handle, domid, HVM_PARAM_VIRIDIAN, info->u.hvm.viridian); + xc_set_hvm_param(handle, domid, HVM_PARAM_HPET_ENABLED, (unsigned long) info->u.hvm.hpet); +#endif + xc_set_hvm_param(handle, domid, HVM_PARAM_TIMER_MODE, (unsigned long) info->u.hvm.timer_mode); + xc_set_hvm_param(handle, domid, HVM_PARAM_VPT_ALIGN, (unsigned long) info->u.hvm.vpt_align); + xc_set_hvm_param(handle, domid, HVM_PARAM_STORE_EVTCHN, store_evtchn); + xc_set_hvm_param(handle, domid, HVM_PARAM_CONSOLE_EVTCHN, console_evtchn); + return 0; } int libxl__build_hvm(libxl_ctx *ctx, uint32_t domid, diff -r f5372f2ac680 -r 60cfaa1f0101 tools/libxl/libxl_internal.h --- a/tools/libxl/libxl_internal.h Tue Sep 07 11:04:50 2010 +0100 +++ b/tools/libxl/libxl_internal.h Tue Sep 07 11:04:51 2010 +0100 @@ -181,12 +181,6 @@ _hidden int libxl__wait_for_device_model void *check_callback_userdata); _hidden int libxl__wait_for_backend(libxl_ctx *ctx, char *be_path, char *state); -/* from xenguest (helper */ -_hidden int hvm_build_set_params(xc_interface *handle, uint32_t domid, - libxl_domain_build_info *info, - int store_evtchn, unsigned long *store_mfn, - int console_evtchn, unsigned long *console_mfn); - /* xl_exec */ /* higher-level double-fork and separate detach eg as for device models */ diff -r f5372f2ac680 -r 60cfaa1f0101 tools/libxl/xenguest.c --- a/tools/libxl/xenguest.c Tue Sep 07 11:04:50 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* - * Copyright (C) 2009 Citrix Ltd. - * Author Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxxx> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published - * by the Free Software Foundation; version 2.1 only. with the special - * exception on linking described in file LICENSE. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - */ - -#include <xenctrl.h> -#include <xenguest.h> -#include <sys/mman.h> -#include <xen/hvm/hvm_info_table.h> -#include <string.h> - -#include "libxl.h" -#include "libxl_internal.h" - -int hvm_build_set_params(xc_interface *handle, uint32_t domid, - libxl_domain_build_info *info, - int store_evtchn, unsigned long *store_mfn, - int console_evtchn, unsigned long *console_mfn) -{ - struct hvm_info_table *va_hvm; - uint8_t *va_map, sum; - int i; - - va_map = xc_map_foreign_range(handle, domid, - XC_PAGE_SIZE, PROT_READ | PROT_WRITE, - HVM_INFO_PFN); - if (va_map == NULL) - return -1; - - va_hvm = (struct hvm_info_table *)(va_map + HVM_INFO_OFFSET); - va_hvm->acpi_enabled = info->u.hvm.acpi; - va_hvm->apic_mode = info->u.hvm.apic; - va_hvm->nr_vcpus = info->max_vcpus; - memcpy(va_hvm->vcpu_online, &info->cur_vcpus, sizeof(info->cur_vcpus)); - for (i = 0, sum = 0; i < va_hvm->length; i++) - sum += ((uint8_t *) va_hvm)[i]; - va_hvm->checksum -= sum; - munmap(va_map, XC_PAGE_SIZE); - - xc_get_hvm_param(handle, domid, HVM_PARAM_STORE_PFN, store_mfn); - xc_get_hvm_param(handle, domid, HVM_PARAM_CONSOLE_PFN, console_mfn); - xc_set_hvm_param(handle, domid, HVM_PARAM_PAE_ENABLED, info->u.hvm.pae); -#if defined(__i386__) || defined(__x86_64__) - xc_set_hvm_param(handle, domid, HVM_PARAM_VIRIDIAN, info->u.hvm.viridian); - xc_set_hvm_param(handle, domid, HVM_PARAM_HPET_ENABLED, (unsigned long) info->u.hvm.hpet); -#endif - xc_set_hvm_param(handle, domid, HVM_PARAM_TIMER_MODE, (unsigned long) info->u.hvm.timer_mode); - xc_set_hvm_param(handle, domid, HVM_PARAM_VPT_ALIGN, (unsigned long) info->u.hvm.vpt_align); - xc_set_hvm_param(handle, domid, HVM_PARAM_STORE_EVTCHN, store_evtchn); - xc_set_hvm_param(handle, domid, HVM_PARAM_CONSOLE_EVTCHN, console_evtchn); - return 0; -} _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |