[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v9 04/13] vmware: Add VMware provided include file.



On 16/02/15 23:05, Don Slutz wrote:
> This file: backdoor_def.h comes from:
>
> http://packages.vmware.com/tools/esx/3.5latest/rhel4/SRPMS/index.html
>  open-vm-tools-kmod-7.4.8-396269.423167.src.rpm
>   open-vm-tools-kmod-7.4.8.tar.gz
>    vmhgfs/backdoor_def.h
>
> and is unchanged.
>
> Added the badly named include file includeCheck.h also.  It only has
> a comment and is provided so that backdoor_def.h can be used without
> change.
>
> Signed-off-by: Don Slutz <dslutz@xxxxxxxxxxx>

Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>

> ---
> v9:
>     Either the description is wrong, or the patch is stale.
>       stale commit message -- fixed.
>     I'd say a file with a single comment line in it would suffice.
>       Done.
>
>
>  xen/arch/x86/hvm/vmware/backdoor_def.h | 167 
> +++++++++++++++++++++++++++++++++
>  xen/arch/x86/hvm/vmware/includeCheck.h |   1 +
>  2 files changed, 168 insertions(+)
>  create mode 100644 xen/arch/x86/hvm/vmware/backdoor_def.h
>  create mode 100644 xen/arch/x86/hvm/vmware/includeCheck.h
>
> diff --git a/xen/arch/x86/hvm/vmware/backdoor_def.h 
> b/xen/arch/x86/hvm/vmware/backdoor_def.h
> new file mode 100644
> index 0000000..e76795f
> --- /dev/null
> +++ b/xen/arch/x86/hvm/vmware/backdoor_def.h
> @@ -0,0 +1,167 @@
> +/* **********************************************************
> + * Copyright 1998 VMware, Inc.  All rights reserved. 
> + * **********************************************************
> + *
> + * This program is free software; you can redistribute it and/or modify it
> + * under the terms of the GNU General Public License as published by the
> + * Free Software Foundation version 2 and no later version.
> + *
> + * 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 General Public License
> + * for more details.
> + *
> + * You should have received a copy of the GNU General Public License along
> + * with this program; if not, write to the Free Software Foundation, Inc.,
> + * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
> + */
> +
> +/*
> + * backdoor_def.h --
> + *
> + * This contains backdoor defines that can be included from
> + * an assembly language file.
> + */
> +
> +
> +
> +#ifndef _BACKDOOR_DEF_H_
> +#define _BACKDOOR_DEF_H_
> +
> +#define INCLUDE_ALLOW_MODULE
> +#define INCLUDE_ALLOW_USERLEVEL
> +#define INCLUDE_ALLOW_VMMEXT
> +#define INCLUDE_ALLOW_VMCORE
> +#define INCLUDE_ALLOW_VMKERNEL
> +#include "includeCheck.h"
> +
> +/*
> + * If you want to add a new low-level backdoor call for a guest userland
> + * application, please consider using the GuestRpc mechanism instead. --hpreg
> + */
> +
> +#define BDOOR_MAGIC 0x564D5868
> +
> +/* Low-bandwidth backdoor port. --hpreg */
> +
> +#define BDOOR_PORT 0x5658
> +
> +#define BDOOR_CMD_GETMHZ                        1
> +/*
> + * BDOOR_CMD_APMFUNCTION is used by:
> + *
> + * o The FrobOS code, which instead should either program the virtual chipset
> + *   (like the new BIOS code does, matthias offered to implement that), or 
> not
> + *   use any VM-specific code (which requires that we correctly implement
> + *   "power off on CLI HLT" for SMP VMs, boris offered to implement that)
> + *
> + * o The old BIOS code, which will soon be jettisoned
> + *
> + *  --hpreg
> + */
> +#define BDOOR_CMD_APMFUNCTION                   2
> +#define BDOOR_CMD_GETDISKGEO                    3
> +#define BDOOR_CMD_GETPTRLOCATION           4
> +#define BDOOR_CMD_SETPTRLOCATION           5
> +#define BDOOR_CMD_GETSELLENGTH                  6
> +#define BDOOR_CMD_GETNEXTPIECE                  7
> +#define BDOOR_CMD_SETSELLENGTH                  8
> +#define BDOOR_CMD_SETNEXTPIECE                  9
> +#define BDOOR_CMD_GETVERSION               10
> +#define BDOOR_CMD_GETDEVICELISTELEMENT       11
> +#define BDOOR_CMD_TOGGLEDEVICE                  12
> +#define BDOOR_CMD_GETGUIOPTIONS                 13
> +#define BDOOR_CMD_SETGUIOPTIONS                 14
> +#define BDOOR_CMD_GETSCREENSIZE                 15
> +#define BDOOR_CMD_MONITOR_CONTROL       16
> +#define BDOOR_CMD_GETHWVERSION          17
> +#define BDOOR_CMD_OSNOTFOUND            18
> +#define BDOOR_CMD_GETUUID               19
> +#define BDOOR_CMD_GETMEMSIZE            20
> +#define BDOOR_CMD_HOSTCOPY              21 /* Devel only */
> +/* BDOOR_CMD_GETOS2INTCURSOR, 22, is very old and defunct. Reuse. */
> +#define BDOOR_CMD_GETTIME               23 /* Deprecated. Use GETTIMEFULL. */
> +#define BDOOR_CMD_STOPCATCHUP           24
> +#define BDOOR_CMD_PUTCHR             25 /* Devel only */
> +#define BDOOR_CMD_ENABLE_MSG         26 /* Devel only */
> +#define BDOOR_CMD_GOTO_TCL           27 /* Devel only */
> +#define BDOOR_CMD_INITPCIOPROM               28
> +#define BDOOR_CMD_INT13                      29
> +#define BDOOR_CMD_MESSAGE               30
> +#define BDOOR_CMD_RSVD0                 31
> +#define BDOOR_CMD_RSVD1                 32
> +#define BDOOR_CMD_RSVD2                 33
> +#define BDOOR_CMD_ISACPIDISABLED     34
> +#define BDOOR_CMD_TOE                        35 /* Not in use */
> +/* BDOOR_CMD_INITLSIOPROM, 36, was merged with 28. Reuse. */
> +#define BDOOR_CMD_PATCH_SMBIOS_STRUCTS  37
> +#define BDOOR_CMD_MAPMEM                38 /* Devel only */
> +#define BDOOR_CMD_ABSPOINTER_DATA    39
> +#define BDOOR_CMD_ABSPOINTER_STATUS  40
> +#define BDOOR_CMD_ABSPOINTER_COMMAND 41
> +#define BDOOR_CMD_TIMER_SPONGE          42
> +#define BDOOR_CMD_PATCH_ACPI_TABLES  43
> +/* Catch-all to allow synchronous tests */
> +#define BDOOR_CMD_DEVEL_FAKEHARDWARE 44 /* Debug only - needed in beta */
> +#define BDOOR_CMD_GETHZ                      45
> +#define BDOOR_CMD_GETTIMEFULL           46
> +#define BDOOR_CMD_STATELOGGER           47
> +#define BDOOR_CMD_CHECKFORCEBIOSSETUP        48
> +#define BDOOR_CMD_LAZYTIMEREMULATION    49
> +#define BDOOR_CMD_BIOSBBS               50
> +#define BDOOR_CMD_MAX                   51
> +
> +/* 
> + * IMPORTANT NOTE: When modifying the behavior of an existing backdoor 
> command,
> + * you must adhere to the semantics expected by the oldest Tools who use that
> + * command. Specifically, do not alter the way in which the command modifies 
> + * the registers. Otherwise backwards compatibility will suffer.
> + */
> +
> +/* High-bandwidth backdoor port. --hpreg */
> +
> +#define BDOORHB_PORT 0x5659
> +
> +#define BDOORHB_CMD_MESSAGE 0
> +#define BDOORHB_CMD_MAX 1
> +
> +/*
> + * There is another backdoor which allows access to certain TSC-related
> + * values using otherwise illegal PMC indices when the pseudo_perfctr
> + * control flag is set.
> + */
> +
> +#define BDOOR_PMC_HW_TSC      0x10000
> +#define BDOOR_PMC_REAL_NS     0x10001
> +#define BDOOR_PMC_APPARENT_NS 0x10002
> +
> +#define IS_BDOOR_PMC(index)  (((index) | 3) == 0x10003)
> +#define BDOOR_CMD(ecx)       ((ecx) & 0xffff)
> +
> +
> +#ifdef VMM
> +/*
> + *----------------------------------------------------------------------
> + *
> + * Backdoor_CmdRequiresFullyValidVCPU --
> + *
> + *    A few backdoor commands require the full VCPU to be valid
> + *    (including GDTR, IDTR, TR and LDTR). The rest get read/write
> + *    access to GPRs and read access to Segment registers (selectors).
> + *
> + * Result:
> + *    True iff VECX contains a command that require the full VCPU to
> + *    be valid.
> + *
> + *----------------------------------------------------------------------
> + */
> +static INLINE Bool
> +Backdoor_CmdRequiresFullyValidVCPU(unsigned cmd)
> +{
> +   return cmd == BDOOR_CMD_RSVD0 ||
> +          cmd == BDOOR_CMD_RSVD1 ||
> +          cmd == BDOOR_CMD_RSVD2;
> +}
> +#endif
> +
> +#endif
> diff --git a/xen/arch/x86/hvm/vmware/includeCheck.h 
> b/xen/arch/x86/hvm/vmware/includeCheck.h
> new file mode 100644
> index 0000000..3b63fa4
> --- /dev/null
> +++ b/xen/arch/x86/hvm/vmware/includeCheck.h
> @@ -0,0 +1 @@
> +/* Nothing here.  Just to use backdoor_def.h without change. */


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.