From mboxrd@z Thu Jan 1 00:00:00 1970 From: Don Slutz Subject: [PATCH for-4.5 v6 05/16] tools: Add vmware_port support Date: Sat, 20 Sep 2014 14:07:16 -0400 Message-ID: <1411236447-7435-6-git-send-email-dslutz@verizon.com> References: <1411236447-7435-1-git-send-email-dslutz@verizon.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1411236447-7435-1-git-send-email-dslutz@verizon.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Kevin Tian , Keir Fraser , Ian Campbell , Stefano Stabellini , Jun Nakajima , Eddie Dong , Ian Jackson , Don Slutz , Tim Deegan , George Dunlap , Aravind Gopalakrishnan , Jan Beulich , Andrew Cooper , Boris Ostrovsky , Suravee Suthikulpanit List-Id: xen-devel@lists.xenproject.org This new libxl_domain_create_info field is used to set XEN_DOMCTL_CDF_vmware_port for the xc_domain_create() routine. In xen it is is_vmware_port_enabled. If is_vmware_port_enabled then enable a limited support of VMware's hyper-call. VMware's hyper-call is also known as VMware Backdoor I/O Port. Signed-off-by: Don Slutz --- docs/man/xl.cfg.pod.5 | 7 +++++++ tools/libxl/libxl.h | 5 +++++ tools/libxl/libxl_create.c | 2 ++ tools/libxl/libxl_types.idl | 1 + tools/libxl/xl_cmdimpl.c | 1 + 5 files changed, 16 insertions(+) diff --git a/docs/man/xl.cfg.pod.5 b/docs/man/xl.cfg.pod.5 index 367b401..ab645d8 100644 --- a/docs/man/xl.cfg.pod.5 +++ b/docs/man/xl.cfg.pod.5 @@ -1164,6 +1164,13 @@ For vssd:VirtualSystemType == vmx-07, vmware_hw = 7. =back +=item B + +Turns on or off the exposure of VMware port. This is known as +vmport in QEMU. Also called VMware Backdoor I/O Port. Not all +defined VMware backdoor commands are implemented. All of the +ones that Linux kernel uses are defined. + =back =head3 Emulated VGA Graphics Device diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 14048e4..9958355 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -155,6 +155,11 @@ #define LIBXL_HAVE_BUILDINFO_HVM_VMWARE_HW 1 /* + * libxl_domain_create_info has the vmware_port field. + */ +#define LIBXL_HAVE_CREATEINFO_VMWARE_PORT 1 + +/* * libxl ABI compatibility * * The only guarantee which libxl makes regarding ABI compatibility diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index da79a18..0fc6830 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -38,6 +38,7 @@ int libxl__domain_create_info_setdefault(libxl__gc *gc, libxl_defbool_setdefault(&c_info->hap, libxl_defbool_val(c_info->pvh)); } + libxl_defbool_setdefault(&c_info->vmware_port, false); libxl_defbool_setdefault(&c_info->run_hotplug_scripts, true); libxl_defbool_setdefault(&c_info->driver_domain, false); @@ -501,6 +502,7 @@ int libxl__domain_make(libxl__gc *gc, libxl_domain_create_info *info, flags |= XEN_DOMCTL_CDF_hvm_guest; flags |= libxl_defbool_val(info->hap) ? XEN_DOMCTL_CDF_hap : 0; flags |= libxl_defbool_val(info->oos) ? 0 : XEN_DOMCTL_CDF_oos_off; + flags |= libxl_defbool_val(info->vmware_port)? XEN_DOMCTL_CDF_vmware_port : 0; } else if (libxl_defbool_val(info->pvh)) { flags |= XEN_DOMCTL_CDF_pvh_guest; if (!libxl_defbool_val(info->hap)) { diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index 907572c..608b64d 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -294,6 +294,7 @@ libxl_domain_create_info = Struct("domain_create_info",[ ("type", libxl_domain_type), ("hap", libxl_defbool), ("oos", libxl_defbool), + ("vmware_port", libxl_defbool), ("ssidref", uint32), ("ssid_label", string), ("name", string), diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 2119bd6..3eb4494 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -868,6 +868,7 @@ static void parse_config_data(const char *config_source, } xlu_cfg_get_defbool(config, "oos", &c_info->oos, 0); + xlu_cfg_get_defbool(config, "vmware_port", &c_info->vmware_port, 0); if (!xlu_cfg_get_string (config, "pool", &buf, 0)) xlu_cfg_replace_string(config, "pool", &c_info->pool_name, 0); -- 1.8.4