x86/HVM: merge HVM and PVH hypercall tables
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Mon, 21 Dec 2015 12:40:13 +0000 (13:40 +0100)
committerJan Beulich <jbeulich@suse.com>
Mon, 21 Dec 2015 12:40:13 +0000 (13:40 +0100)
commit506db9078c8c9a1c814fc9f542b198385448218e
tree9f5df450a04a16381065e6634c2a14d06f6955c3
parentdf9f55670008c92dcafa23680e0bf8b325e9cf24
x86/HVM: merge HVM and PVH hypercall tables

The tables are almost identical and therefore there is little reason to
keep both sets.

PVH needs 3 extra hypercalls:
* mmuext_op. MMUEXT_PIN_L<x>_TABLE are required by control domain (dom0)
  when building guests. We add MMUEXT_UNPIN_TABLE for completeness.
* platform_op. These are only available to privileged domains. We will
  (eventually) have privileged HVMlite guests and therefore shouldn't
  limit this to PVH only.
* xenpmu_op. any guest with !has_vlapic() (i.e. PV, PVH and HVMlite)
  should be able to use it.

Note that until recently PVH guests used mmuext_op's MMUEXT_INVLPG_MULTI and
MMUEXT_TLB_FLUSH_MULTI commands but it has been determined that using the
former was incorrect and using the latter is correct for now but is not
guaranteed to work in the future.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/hvm/hvm.c
xen/arch/x86/mm.c
xen/arch/x86/x86_64/compat/mm.c
xen/include/asm-x86/hypercall.h