xen: import version 4.11
Reviewed by: bapt Sponsored by: Citrix Systems R&D Differential Revision: https://reviews.freebsd.org/D16418
This commit is contained in:
parent
768717cce7
commit
0691518059
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=475255
30 changed files with 2629 additions and 0 deletions
73
emulators/xen-kernel411/Makefile
Normal file
73
emulators/xen-kernel411/Makefile
Normal file
|
@ -0,0 +1,73 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= xen
|
||||
PORTVERSION= 4.11.0
|
||||
PORTREVISION= 0
|
||||
CATEGORIES= emulators
|
||||
MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/
|
||||
PKGNAMESUFFIX= -kernel
|
||||
|
||||
MAINTAINER= royger@FreeBSD.org
|
||||
COMMENT= Hypervisor using a microkernel design
|
||||
|
||||
LICENSE= GPLv2
|
||||
|
||||
ONLY_FOR_ARCHS= amd64
|
||||
|
||||
USES= cpe gmake python:2.7,build
|
||||
# Ports build environment has ARCH=amd64 set which disables Xen automatic arch
|
||||
# detection, but amd64 is not a valid arch for Xen. Hardcode x86_64 on the
|
||||
# command line in order to overwrite the one from the environment.
|
||||
MAKE_ARGS= clang=y PYTHON=${PYTHON_CMD} ARCH=x86_64
|
||||
NO_MTREE= yes
|
||||
STRIP= #
|
||||
PLIST_FILES= /boot/xen \
|
||||
/boot/xen.4th \
|
||||
lib/debug/boot/xen.debug
|
||||
|
||||
# IOMMU fixes
|
||||
EXTRA_PATCHES= ${FILESDIR}/0001-pci-treat-class-0-devices-as-endpoints.patch:-p1
|
||||
# vPCI MSI fixes
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-vpci-msi-split-code-to-bind-pirq.patch:-p1 \
|
||||
${FILESDIR}/0002-vpci-msi-fix-update-of-bound-MSI-interrupts.patch:-p1
|
||||
# Add extra RAM regions to Dom0 memory map as UNUSABNLE
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-x86-dom0-add-extra-RAM-regions-as-UNUSABLE-for-PVH-m.patch:-p1
|
||||
# MTRR guest setup for PVH
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-x86-mtrr-introduce-mask-to-get-VCNT-from-MTRRcap-MSR.patch:-p1 \
|
||||
${FILESDIR}/0001-x86-HVM-improve-MTRR-load-checks.patch:-p1 \
|
||||
${FILESDIR}/0002-x86-mtrr-split-enabled-field-into-two-boolean-flags.patch:-p1 \
|
||||
${FILESDIR}/0003-hvm-mtrr-add-emacs-local-variables-block-with-format.patch:-p1 \
|
||||
${FILESDIR}/0004-hvm-mtrr-use-the-hardware-number-of-variable-ranges-.patch:-p1 \
|
||||
${FILESDIR}/0005-hvm-mtrr-copy-hardware-state-for-Dom0.patch:-p1 \
|
||||
${FILESDIR}/0006-libxc-pvh-set-default-MTRR-type-to-write-back.patch:-p1 \
|
||||
${FILESDIR}/0007-docs-pvh-document-initial-MTRR-state.patch:-p1
|
||||
# Build with lld (LLVM linker)
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-x86-replace-usage-in-the-linker-script.patch:-p1 \
|
||||
${FILESDIR}/0001-x86-efi-move-the-logic-to-detect-PE-build-support.patch:-p1 \
|
||||
${FILESDIR}/0002-x86-efi-split-compiler-vs-linker-support.patch:-p1
|
||||
# Fix PVH Dom0 build with shadow paging
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-x86-pvh-change-the-order-of-the-iommu-initialization.patch:-p1
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${OPSYS} != FreeBSD
|
||||
IGNORE= only supported on FreeBSD
|
||||
.endif
|
||||
|
||||
.if ${OSVERSION} < 1200074
|
||||
IGNORE= only supported on recent FreeBSD HEAD
|
||||
.endif
|
||||
|
||||
# The ports native 'build' target cannot be used because it sets
|
||||
# CFLAGS, and that breaks the Xen build system.
|
||||
do-build:
|
||||
${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} xen ${MAKE_ARGS}
|
||||
|
||||
do-install:
|
||||
${MKDIR} ${STAGEDIR}/boot
|
||||
${MKDIR} ${STAGEDIR}${PREFIX}/lib/debug/boot/
|
||||
${INSTALL_PROGRAM} ${WRKSRC}/xen/xen ${STAGEDIR}/boot
|
||||
${INSTALL_DATA} ${FILESDIR}/xen.4th ${STAGEDIR}/boot
|
||||
${INSTALL_DATA} ${WRKSRC}/xen/xen-syms ${STAGEDIR}${PREFIX}/lib/debug/boot/xen.debug
|
||||
|
||||
.include <bsd.port.mk>
|
3
emulators/xen-kernel411/distinfo
Normal file
3
emulators/xen-kernel411/distinfo
Normal file
|
@ -0,0 +1,3 @@
|
|||
TIMESTAMP = 1532345202
|
||||
SHA256 (xen-4.11.0.tar.gz) = 826e3a9f6d0eac94a825d272cc2c1294e22640ae75af906eb13920f9ad667643
|
||||
SIZE (xen-4.11.0.tar.gz) = 25131533
|
|
@ -0,0 +1,50 @@
|
|||
From 7495a5b6aa1c741964baf18a1cbdb8b8d71cce98 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Tue, 8 May 2018 11:33:00 +0200
|
||||
Subject: [PATCH] pci: treat class 0 devices as endpoints
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Class 0 devices are legacy pre PCI 2.0 devices that didn't have a
|
||||
class code. Treat them as endpoints, so that they can be handled by
|
||||
the IOMMU and properly passed-through to the hardware domain.
|
||||
|
||||
Such device has been seen on a Super Micro server, lspci -vv reports:
|
||||
|
||||
00:13.0 Non-VGA unclassified device: Intel Corporation Device a135 (rev 31)
|
||||
Subsystem: Super Micro Computer Inc Device 0931
|
||||
Flags: bus master, fast devsel, latency 0, IRQ 11
|
||||
Memory at df222000 (64-bit, non-prefetchable) [size=4K]
|
||||
Capabilities: [80] Power Management version 3
|
||||
|
||||
Arguably this is not a legacy device (since this is a new server), but
|
||||
in any case Xen needs to deal with it.
|
||||
|
||||
Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/drivers/passthrough/pci.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/drivers/passthrough/pci.c b/xen/drivers/passthrough/pci.c
|
||||
index 1db69d5b99..c4890a4295 100644
|
||||
--- a/xen/drivers/passthrough/pci.c
|
||||
+++ b/xen/drivers/passthrough/pci.c
|
||||
@@ -927,10 +927,11 @@ enum pdev_type pdev_type(u16 seg, u8 bus, u8 devfn)
|
||||
case PCI_CLASS_BRIDGE_HOST:
|
||||
return DEV_TYPE_PCI_HOST_BRIDGE;
|
||||
|
||||
- case 0x0000: case 0xffff:
|
||||
+ case 0xffff:
|
||||
return DEV_TYPE_PCI_UNKNOWN;
|
||||
}
|
||||
|
||||
+ /* NB: treat legacy pre PCI 2.0 devices (class_device == 0) as endpoints. */
|
||||
return pos ? DEV_TYPE_PCIe_ENDPOINT : DEV_TYPE_PCI;
|
||||
}
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,123 @@
|
|||
From 9109e5afb99012244e9fbe7f44e7010950051443 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 2 Jul 2018 13:07:26 +0200
|
||||
Subject: [PATCH 1/2] vpci/msi: split code to bind pirq
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
And put it in a separate update function. This is required in order to
|
||||
improve binding of MSI PIRQs when using vPCI.
|
||||
|
||||
No functional change.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/hvm/vmsi.c | 73 +++++++++++++++++++++++++----------------
|
||||
1 file changed, 45 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
|
||||
index 5ab7387d78..acadc23f8d 100644
|
||||
--- a/xen/arch/x86/hvm/vmsi.c
|
||||
+++ b/xen/arch/x86/hvm/vmsi.c
|
||||
@@ -663,6 +663,42 @@ void vpci_msi_arch_mask(struct vpci_msi *msi, const struct pci_dev *pdev,
|
||||
vpci_mask_pirq(pdev->domain, msi->arch.pirq + entry, mask);
|
||||
}
|
||||
|
||||
+static int vpci_msi_update(const struct pci_dev *pdev, uint32_t data,
|
||||
+ uint64_t address, unsigned int vectors,
|
||||
+ unsigned int pirq, uint32_t mask)
|
||||
+{
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ ASSERT(pcidevs_locked());
|
||||
+
|
||||
+ for ( i = 0; i < vectors; i++ )
|
||||
+ {
|
||||
+ uint8_t vector = MASK_EXTR(data, MSI_DATA_VECTOR_MASK);
|
||||
+ uint8_t vector_mask = 0xff >> (8 - fls(vectors) + 1);
|
||||
+ struct xen_domctl_bind_pt_irq bind = {
|
||||
+ .machine_irq = pirq + i,
|
||||
+ .irq_type = PT_IRQ_TYPE_MSI,
|
||||
+ .u.msi.gvec = (vector & ~vector_mask) |
|
||||
+ ((vector + i) & vector_mask),
|
||||
+ .u.msi.gflags = msi_gflags(data, address, (mask >> i) & 1),
|
||||
+ };
|
||||
+ int rc = pt_irq_create_bind(pdev->domain, &bind);
|
||||
+
|
||||
+ if ( rc )
|
||||
+ {
|
||||
+ gdprintk(XENLOG_ERR,
|
||||
+ "%04x:%02x:%02x.%u: failed to bind PIRQ %u: %d\n",
|
||||
+ pdev->seg, pdev->bus, PCI_SLOT(pdev->devfn),
|
||||
+ PCI_FUNC(pdev->devfn), pirq + i, rc);
|
||||
+ while ( bind.machine_irq-- > pirq )
|
||||
+ pt_irq_destroy_bind(pdev->domain, &bind);
|
||||
+ return rc;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data,
|
||||
uint64_t address, unsigned int nr,
|
||||
paddr_t table_base, uint32_t mask)
|
||||
@@ -674,7 +710,7 @@ static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data,
|
||||
.table_base = table_base,
|
||||
.entry_nr = nr,
|
||||
};
|
||||
- unsigned int i, vectors = table_base ? 1 : nr;
|
||||
+ unsigned vectors = table_base ? 1 : nr;
|
||||
int rc, pirq = INVALID_PIRQ;
|
||||
|
||||
/* Get a PIRQ. */
|
||||
@@ -690,36 +726,17 @@ static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data,
|
||||
return rc;
|
||||
}
|
||||
|
||||
- for ( i = 0; i < vectors; i++ )
|
||||
+ pcidevs_lock();
|
||||
+ rc = vpci_msi_update(pdev, data, address, vectors, pirq, mask);
|
||||
+ if ( rc )
|
||||
{
|
||||
- uint8_t vector = MASK_EXTR(data, MSI_DATA_VECTOR_MASK);
|
||||
- uint8_t vector_mask = 0xff >> (8 - fls(vectors) + 1);
|
||||
- struct xen_domctl_bind_pt_irq bind = {
|
||||
- .machine_irq = pirq + i,
|
||||
- .irq_type = PT_IRQ_TYPE_MSI,
|
||||
- .u.msi.gvec = (vector & ~vector_mask) |
|
||||
- ((vector + i) & vector_mask),
|
||||
- .u.msi.gflags = msi_gflags(data, address, (mask >> i) & 1),
|
||||
- };
|
||||
-
|
||||
- pcidevs_lock();
|
||||
- rc = pt_irq_create_bind(pdev->domain, &bind);
|
||||
- if ( rc )
|
||||
- {
|
||||
- gdprintk(XENLOG_ERR,
|
||||
- "%04x:%02x:%02x.%u: failed to bind PIRQ %u: %d\n",
|
||||
- pdev->seg, pdev->bus, PCI_SLOT(pdev->devfn),
|
||||
- PCI_FUNC(pdev->devfn), pirq + i, rc);
|
||||
- while ( bind.machine_irq-- > pirq )
|
||||
- pt_irq_destroy_bind(pdev->domain, &bind);
|
||||
- spin_lock(&pdev->domain->event_lock);
|
||||
- unmap_domain_pirq(pdev->domain, pirq);
|
||||
- spin_unlock(&pdev->domain->event_lock);
|
||||
- pcidevs_unlock();
|
||||
- return rc;
|
||||
- }
|
||||
+ spin_lock(&pdev->domain->event_lock);
|
||||
+ unmap_domain_pirq(pdev->domain, pirq);
|
||||
+ spin_unlock(&pdev->domain->event_lock);
|
||||
pcidevs_unlock();
|
||||
+ return rc;
|
||||
}
|
||||
+ pcidevs_unlock();
|
||||
|
||||
return pirq;
|
||||
}
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
From 76159f10b174d8a5cd4c50213a9d21fcc0e9441d Mon Sep 17 00:00:00 2001
|
||||
From: Jan Beulich <jbeulich@suse.com>
|
||||
Date: Mon, 16 Jul 2018 15:08:02 +0200
|
||||
Subject: [PATCH 1/7] x86/HVM: improve MTRR load checks
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
We should not assume that the incoming set of values contains exactly
|
||||
MTRR_VCNT variable range MSRs. Permit a smaller amount and reject a
|
||||
bigger one. As a result the save path then also needs to no longer use
|
||||
a fixed upper bound, in turn requiring unused space in the save record
|
||||
to be zeroed up front.
|
||||
|
||||
Also slightly refine types where appropriate.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
[switch to use MASK_EXTR to get VCNT]
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
xen/arch/x86/hvm/mtrr.c | 28 ++++++++++++++++++----------
|
||||
1 file changed, 18 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index c2927fb437..a636012388 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -673,22 +673,22 @@ int hvm_set_mem_pinned_cacheattr(struct domain *d, uint64_t gfn_start,
|
||||
|
||||
static int hvm_save_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
|
||||
{
|
||||
- int i;
|
||||
struct vcpu *v;
|
||||
- struct hvm_hw_mtrr hw_mtrr;
|
||||
- struct mtrr_state *mtrr_state;
|
||||
+
|
||||
/* save mtrr&pat */
|
||||
for_each_vcpu(d, v)
|
||||
{
|
||||
- mtrr_state = &v->arch.hvm_vcpu.mtrr;
|
||||
+ const struct mtrr_state *mtrr_state = &v->arch.hvm_vcpu.mtrr;
|
||||
+ struct hvm_hw_mtrr hw_mtrr = {
|
||||
+ .msr_mtrr_def_type = mtrr_state->def_type |
|
||||
+ (mtrr_state->enabled << 10),
|
||||
+ .msr_mtrr_cap = mtrr_state->mtrr_cap,
|
||||
+ };
|
||||
+ unsigned int i;
|
||||
|
||||
hvm_get_guest_pat(v, &hw_mtrr.msr_pat_cr);
|
||||
|
||||
- hw_mtrr.msr_mtrr_def_type = mtrr_state->def_type
|
||||
- | (mtrr_state->enabled << 10);
|
||||
- hw_mtrr.msr_mtrr_cap = mtrr_state->mtrr_cap;
|
||||
-
|
||||
- for ( i = 0; i < MTRR_VCNT; i++ )
|
||||
+ for ( i = 0; i < MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT); i++ )
|
||||
{
|
||||
/* save physbase */
|
||||
hw_mtrr.msr_mtrr_var[i*2] =
|
||||
@@ -726,6 +726,14 @@ static int hvm_load_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
|
||||
if ( hvm_load_entry(MTRR, h, &hw_mtrr) != 0 )
|
||||
return -EINVAL;
|
||||
|
||||
+ if ( MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT) > MTRR_VCNT )
|
||||
+ {
|
||||
+ dprintk(XENLOG_G_ERR,
|
||||
+ "HVM restore: %pv: too many (%lu) variable range MTRRs\n",
|
||||
+ v, MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT));
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
mtrr_state = &v->arch.hvm_vcpu.mtrr;
|
||||
|
||||
hvm_set_guest_pat(v, hw_mtrr.msr_pat_cr);
|
||||
@@ -735,7 +743,7 @@ static int hvm_load_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
|
||||
for ( i = 0; i < NUM_FIXED_MSR; i++ )
|
||||
mtrr_fix_range_msr_set(d, mtrr_state, i, hw_mtrr.msr_mtrr_fixed[i]);
|
||||
|
||||
- for ( i = 0; i < MTRR_VCNT; i++ )
|
||||
+ for ( i = 0; i < MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT); i++ )
|
||||
{
|
||||
mtrr_var_range_msr_set(d, mtrr_state,
|
||||
MSR_IA32_MTRR_PHYSBASE(i),
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
From e8e58be2b77708fd4d6ba6bca3f70bc507fde4be Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Tue, 26 Jun 2018 08:48:14 +0200
|
||||
Subject: [PATCH] x86/dom0: add extra RAM regions as UNUSABLE for PVH memory
|
||||
map
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When running as PVH Dom0 the native memory map is used in order to
|
||||
craft a tailored memory map for Dom0 taking into account it's memory
|
||||
limit.
|
||||
|
||||
Dom0 memory is always going to be smaller than the total amount
|
||||
of memory present on the host, so in order to prevent Dom0 from
|
||||
relocating PCI BARs over RAM regions mark all the RAM regions not
|
||||
available to Dom0 as UNUSABLE in the memory map.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/hvm/dom0_build.c | 25 +++++++++++++++++--------
|
||||
1 file changed, 17 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
|
||||
index b237508072..e2b5d48e03 100644
|
||||
--- a/xen/arch/x86/hvm/dom0_build.c
|
||||
+++ b/xen/arch/x86/hvm/dom0_build.c
|
||||
@@ -314,8 +314,10 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
|
||||
|
||||
/*
|
||||
* Craft the e820 memory map for Dom0 based on the hardware e820 map.
|
||||
+ * Add an extra entry in case we have to split a RAM entry into a RAM and a
|
||||
+ * UNUSABLE one in order to truncate it.
|
||||
*/
|
||||
- d->arch.e820 = xzalloc_array(struct e820entry, e820.nr_map);
|
||||
+ d->arch.e820 = xzalloc_array(struct e820entry, e820.nr_map + 1);
|
||||
if ( !d->arch.e820 )
|
||||
panic("Unable to allocate memory for Dom0 e820 map");
|
||||
entry_guest = d->arch.e820;
|
||||
@@ -323,19 +325,20 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
|
||||
/* Clamp e820 memory map to match the memory assigned to Dom0 */
|
||||
for ( i = 0, entry = e820.map; i < e820.nr_map; i++, entry++ )
|
||||
{
|
||||
+ *entry_guest = *entry;
|
||||
+
|
||||
if ( entry->type != E820_RAM )
|
||||
- {
|
||||
- *entry_guest = *entry;
|
||||
goto next;
|
||||
- }
|
||||
|
||||
if ( nr_pages == cur_pages )
|
||||
{
|
||||
/*
|
||||
- * We already have all the assigned memory,
|
||||
- * skip this entry
|
||||
+ * We already have all the requested memory, turn this RAM region
|
||||
+ * into a UNUSABLE region in order to prevent Dom0 from placing
|
||||
+ * BARs in this area.
|
||||
*/
|
||||
- continue;
|
||||
+ entry_guest->type = E820_UNUSABLE;
|
||||
+ goto next;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -358,6 +361,12 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
|
||||
{
|
||||
/* Truncate region */
|
||||
entry_guest->size = (nr_pages - cur_pages) << PAGE_SHIFT;
|
||||
+ /* Add the remaining of the RAM region as UNUSABLE. */
|
||||
+ entry_guest++;
|
||||
+ d->arch.nr_e820++;
|
||||
+ entry_guest->type = E820_UNUSABLE;
|
||||
+ entry_guest->addr = start + ((nr_pages - cur_pages) << PAGE_SHIFT);
|
||||
+ entry_guest->size = end - entry_guest->addr;
|
||||
cur_pages = nr_pages;
|
||||
}
|
||||
else
|
||||
@@ -367,9 +376,9 @@ static __init void pvh_setup_e820(struct domain *d, unsigned long nr_pages)
|
||||
next:
|
||||
d->arch.nr_e820++;
|
||||
entry_guest++;
|
||||
+ ASSERT(d->arch.nr_e820 <= e820.nr_map + 1);
|
||||
}
|
||||
ASSERT(cur_pages == nr_pages);
|
||||
- ASSERT(d->arch.nr_e820 <= e820.nr_map);
|
||||
}
|
||||
|
||||
static int __init pvh_setup_p2m(struct domain *d)
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
From 9bd8e5d5cf128f5f19d8b8e74bd693c2711ce4d4 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Fri, 20 Jul 2018 10:58:50 +0200
|
||||
Subject: [PATCH 1/2] x86/efi: move the logic to detect PE build support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
So that it can be used by other components apart from the efi specific
|
||||
code. By moving the detection code creating a dummy efi/disabled file
|
||||
can be avoided.
|
||||
|
||||
This is required so that the conditional used to define the efi symbol
|
||||
in the linker script can be removed and instead the definition of the
|
||||
efi symbol can be guarded using the preprocessor.
|
||||
|
||||
The motivation behind this change is to be able to build Xen using lld
|
||||
(the LLVM linker), that at least on version 6.0.0 doesn't work
|
||||
properly with a DEFINED being used in a conditional expression:
|
||||
|
||||
ld -melf_x86_64_fbsd -T xen.lds -N prelink.o --build-id=sha1 \
|
||||
/root/src/xen/xen/common/symbols-dummy.o -o /root/src/xen/xen/.xen-syms.0
|
||||
ld: error: xen.lds:233: symbol not found: efi
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
Cc: Jan Beulich <jbeulich@suse.com>
|
||||
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Cc: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
---
|
||||
Changes since v2:
|
||||
- Use CFLAGS-y to append the XEN_BUILD_PE define.
|
||||
- Check that XEN_BUILD_PE is set to 'y' in order to build the PE
|
||||
binary.
|
||||
|
||||
Changes since v1:
|
||||
- Rename variable.
|
||||
- Remove usage of the efi/disabled file.
|
||||
---
|
||||
.gitignore | 1 -
|
||||
xen/arch/x86/Makefile | 9 +++++++--
|
||||
xen/arch/x86/efi/Makefile | 11 +++--------
|
||||
xen/arch/x86/xen.lds.S | 4 +++-
|
||||
4 files changed, 13 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 55b78008c0..1625a8f0e7 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -302,7 +302,6 @@ xen/arch/x86/boot/*.bin
|
||||
xen/arch/x86/boot/*.lnk
|
||||
xen/arch/x86/efi.lds
|
||||
xen/arch/x86/efi/check.efi
|
||||
-xen/arch/x86/efi/disabled
|
||||
xen/arch/x86/efi/mkreloc
|
||||
xen/arch/*/efi/boot.c
|
||||
xen/arch/*/efi/compat.c
|
||||
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
|
||||
index 5563c813dd..172685fb41 100644
|
||||
--- a/xen/arch/x86/Makefile
|
||||
+++ b/xen/arch/x86/Makefile
|
||||
@@ -163,10 +163,15 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
|
||||
EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
|
||||
EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
|
||||
|
||||
+# Check if the build system supports PE.
|
||||
+XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
+export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
+CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
|
||||
+
|
||||
$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
|
||||
$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
|
||||
# Don't use $(wildcard ...) here - at least make 3.80 expands this too early!
|
||||
-$(TARGET).efi: guard = $(if $(shell echo efi/dis* | grep disabled),:)
|
||||
+$(TARGET).efi: guard = $(if $(filter y,$(XEN_BUILD_PE)),,:)
|
||||
|
||||
ifneq ($(build_id_linker),)
|
||||
ifeq ($(call ld-ver-build-id,$(LD) $(filter -m%,$(EFI_LDFLAGS))),y)
|
||||
@@ -232,6 +237,6 @@ efi/mkreloc: efi/mkreloc.c
|
||||
clean::
|
||||
rm -f asm-offsets.s *.lds boot/*.o boot/*~ boot/core boot/mkelf32
|
||||
rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d
|
||||
- rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/disabled efi/mkreloc
|
||||
+ rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
|
||||
rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
|
||||
rm -f note.o
|
||||
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
|
||||
index 3be9661108..918383b325 100644
|
||||
--- a/xen/arch/x86/efi/Makefile
|
||||
+++ b/xen/arch/x86/efi/Makefile
|
||||
@@ -1,16 +1,11 @@
|
||||
CFLAGS += -fshort-wchar
|
||||
|
||||
-efi := y$(shell rm -f disabled)
|
||||
-efi := $(if $(efi),$(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c check.c 2>disabled && echo y))
|
||||
-efi := $(if $(efi),$(shell $(LD) -mi386pep --subsystem=10 -o check.efi check.o 2>disabled && echo y))
|
||||
-efi := $(if $(efi),$(shell rm disabled)y)
|
||||
-
|
||||
%.o: %.ihex
|
||||
$(OBJCOPY) -I ihex -O binary $< $@
|
||||
|
||||
boot.init.o: buildid.o
|
||||
|
||||
obj-y := stub.o
|
||||
-obj-$(efi) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
-extra-$(efi) += buildid.o
|
||||
-nocov-$(efi) += stub.o
|
||||
+obj-$(XEN_BUILD_PE) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
+extra-$(XEN_BUILD_PE) += buildid.o
|
||||
+nocov-$(XEN_BUILD_PE) += stub.o
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 326e885402..4a59467986 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -304,7 +304,9 @@ SECTIONS
|
||||
} :text
|
||||
#endif
|
||||
|
||||
- efi = DEFINED(efi) ? efi : .;
|
||||
+#ifndef XEN_BUILD_PE
|
||||
+ efi = .;
|
||||
+#endif
|
||||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,87 @@
|
|||
From f7c587fa1341b59f4ff654bd7e55e162f3513130 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Thu, 5 Jul 2018 15:28:56 +0200
|
||||
Subject: [PATCH] x86/mtrr: introduce mask to get VCNT from MTRRcap MSR
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
No functional change.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/cpu/mtrr/main.c | 2 +-
|
||||
xen/arch/x86/hvm/mtrr.c | 8 ++++----
|
||||
xen/include/asm-x86/msr-index.h | 2 ++
|
||||
3 files changed, 7 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/cpu/mtrr/main.c b/xen/arch/x86/cpu/mtrr/main.c
|
||||
index 56f71a6e1f..e9df53f00d 100644
|
||||
--- a/xen/arch/x86/cpu/mtrr/main.c
|
||||
+++ b/xen/arch/x86/cpu/mtrr/main.c
|
||||
@@ -95,7 +95,7 @@ static void __init set_num_var_ranges(void)
|
||||
config = 2;
|
||||
else if (is_cpu(CENTAUR))
|
||||
config = 8;
|
||||
- num_var_ranges = config & 0xff;
|
||||
+ num_var_ranges = MASK_EXTR(config, MTRRcap_VCNT);
|
||||
}
|
||||
|
||||
static void __init init_table(void)
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index c78e5c17ad..c2927fb437 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -78,7 +78,7 @@ static uint8_t __read_mostly pat_entry_tbl[PAT_TYPE_NUMS] =
|
||||
bool_t is_var_mtrr_overlapped(const struct mtrr_state *m)
|
||||
{
|
||||
unsigned int seg, i;
|
||||
- unsigned int num_var_ranges = (uint8_t)m->mtrr_cap;
|
||||
+ unsigned int num_var_ranges = MASK_EXTR(m->mtrr_cap, MTRRcap_VCNT);
|
||||
|
||||
for ( i = 0; i < num_var_ranges; i++ )
|
||||
{
|
||||
@@ -193,7 +193,7 @@ static int get_mtrr_type(const struct mtrr_state *m,
|
||||
uint8_t overlap_mtrr = 0;
|
||||
uint8_t overlap_mtrr_pos = 0;
|
||||
uint64_t mask = -(uint64_t)PAGE_SIZE << order;
|
||||
- unsigned int seg, num_var_ranges = m->mtrr_cap & 0xff;
|
||||
+ unsigned int seg, num_var_ranges = MASK_EXTR(m->mtrr_cap, MTRRcap_VCNT);
|
||||
|
||||
if ( unlikely(!(m->enabled & 0x2)) )
|
||||
return MTRR_TYPE_UNCACHABLE;
|
||||
@@ -483,7 +483,7 @@ bool mtrr_pat_not_equal(const struct vcpu *vd, const struct vcpu *vs)
|
||||
|
||||
if ( md->enabled & 2 )
|
||||
{
|
||||
- unsigned int num_var_ranges = (uint8_t)md->mtrr_cap;
|
||||
+ unsigned int num_var_ranges = MASK_EXTR(md->mtrr_cap, MTRRcap_VCNT);
|
||||
|
||||
/* Test default type MSR. */
|
||||
if ( md->def_type != ms->def_type )
|
||||
@@ -499,7 +499,7 @@ bool mtrr_pat_not_equal(const struct vcpu *vd, const struct vcpu *vs)
|
||||
return true;
|
||||
|
||||
/* Test variable ranges. */
|
||||
- if ( num_var_ranges != (uint8_t)ms->mtrr_cap ||
|
||||
+ if ( num_var_ranges != MASK_EXTR(ms->mtrr_cap, MTRRcap_VCNT) ||
|
||||
memcmp(md->var_ranges, ms->var_ranges,
|
||||
num_var_ranges * sizeof(*md->var_ranges)) )
|
||||
return true;
|
||||
diff --git a/xen/include/asm-x86/msr-index.h b/xen/include/asm-x86/msr-index.h
|
||||
index 8fbccc88a7..95bb66916c 100644
|
||||
--- a/xen/include/asm-x86/msr-index.h
|
||||
+++ b/xen/include/asm-x86/msr-index.h
|
||||
@@ -60,6 +60,8 @@
|
||||
#define ATM_LNC_C6_AUTO_DEMOTE (1UL << 25)
|
||||
|
||||
#define MSR_MTRRcap 0x000000fe
|
||||
+#define MTRRcap_VCNT 0x000000ff
|
||||
+
|
||||
#define MSR_IA32_BBL_CR_CTL 0x00000119
|
||||
|
||||
#define MSR_IA32_SYSENTER_CS 0x00000174
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,53 @@
|
|||
From ec3d58041829e0747d94efa11a44467c3e083b60 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Tue, 24 Jul 2018 13:12:18 +0200
|
||||
Subject: [PATCH] x86/pvh: change the order of the iommu initialization for
|
||||
Dom0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The iommu initialization will also create MMIO mappings in the Dom0
|
||||
p2m, so the paging memory pool needs to be allocated or else iommu
|
||||
initialization will fail.
|
||||
|
||||
Move the call to init the iommu after the Dom0 p2m has been setup in
|
||||
order to solve this.
|
||||
|
||||
Note that issues caused by this wrong ordering have only been seen
|
||||
when using shadow paging.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
Cc: Jan Beulich <jbeulich@suse.com>
|
||||
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
---
|
||||
xen/arch/x86/hvm/dom0_build.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/dom0_build.c b/xen/arch/x86/hvm/dom0_build.c
|
||||
index 9a833fa4b9..f0cd63b1ec 100644
|
||||
--- a/xen/arch/x86/hvm/dom0_build.c
|
||||
+++ b/xen/arch/x86/hvm/dom0_build.c
|
||||
@@ -1093,8 +1093,6 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image,
|
||||
|
||||
printk(XENLOG_INFO "*** Building a PVH Dom%d ***\n", d->domain_id);
|
||||
|
||||
- iommu_hwdom_init(d);
|
||||
-
|
||||
rc = pvh_setup_p2m(d);
|
||||
if ( rc )
|
||||
{
|
||||
@@ -1102,6 +1100,8 @@ int __init dom0_construct_pvh(struct domain *d, const module_t *image,
|
||||
return rc;
|
||||
}
|
||||
|
||||
+ iommu_hwdom_init(d);
|
||||
+
|
||||
rc = pvh_load_kernel(d, image, image_headroom, initrd, bootstrap_map(image),
|
||||
cmdline, &entry, &start_info);
|
||||
if ( rc )
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From e21ba44f771226a5f6f0ce269aabcfb019eae539 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Thu, 12 Jul 2018 10:48:18 +0200
|
||||
Subject: [PATCH] x86: replace '||' usage in the linker script
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
With '|'. The result is the same, and the later works with lld. Fixes
|
||||
the following error when building Xen with lld:
|
||||
|
||||
ld -melf_x86_64_fbsd -T xen.lds -N prelink.o --build-id=sha1 \
|
||||
/root/src/xen/xen/common/symbols-dummy.o -o /root/src/xen/xen/.xen-syms.0
|
||||
ld: error: xen.lds:260: malformed number: |
|
||||
>>> ASSERT(__image_base__ > (((((((((261 >> 8) * 0xffff000000000000) | (261 << 39))) + ((1 << 39) / 2)) + (64 << 30)) + (1 << 30)) + (1 << 30))) ||
|
||||
>>> ^
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/xen.lds.S | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 70afedd31d..326e885402 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -331,7 +331,7 @@ SECTIONS
|
||||
.comment 0 : { *(.comment) }
|
||||
}
|
||||
|
||||
-ASSERT(__image_base__ > XEN_VIRT_START ||
|
||||
+ASSERT(__image_base__ > XEN_VIRT_START |
|
||||
__2M_rwdata_end <= XEN_VIRT_END - NR_CPUS * PAGE_SIZE,
|
||||
"Xen image overlaps stubs area")
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,94 @@
|
|||
From 1e34ed7174cce6ab37e420dda9452267301fb7d2 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 2 Jul 2018 13:07:55 +0200
|
||||
Subject: [PATCH 2/2] vpci/msi: fix update of bound MSI interrupts
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Current update process of already bound MSI interrupts is wrong
|
||||
because unmap_domain_pirq calls pci_disable_msi, which disables MSI
|
||||
interrupts on the device. On the other hand map_domain_pirq doesn't
|
||||
enable MSI, so the current update process of already enabled MSI
|
||||
entries is wrong because MSI control bit will be disabled by
|
||||
unmap_domain_pirq and not re-enabled by map_domain_pirq.
|
||||
|
||||
In order to fix this avoid unmapping the PIRQs and just update the
|
||||
binding of the PIRQ. A new arch helper to do that is introduced.
|
||||
|
||||
Note that MSI-X is not affected because unmap_domain_pirq only
|
||||
disables the MSI enable control bit for the MSI case, for MSI-X the
|
||||
bit is left untouched by unmap_domain_pirq.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/hvm/vmsi.c | 23 +++++++++++++++++++++++
|
||||
xen/drivers/vpci/msi.c | 3 +--
|
||||
xen/include/xen/vpci.h | 2 ++
|
||||
3 files changed, 26 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c
|
||||
index acadc23f8d..3001d5c488 100644
|
||||
--- a/xen/arch/x86/hvm/vmsi.c
|
||||
+++ b/xen/arch/x86/hvm/vmsi.c
|
||||
@@ -699,6 +699,29 @@ static int vpci_msi_update(const struct pci_dev *pdev, uint32_t data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
+int vpci_msi_arch_update(struct vpci_msi *msi, const struct pci_dev *pdev)
|
||||
+{
|
||||
+ int rc;
|
||||
+
|
||||
+ ASSERT(msi->arch.pirq != INVALID_PIRQ);
|
||||
+
|
||||
+ pcidevs_lock();
|
||||
+ rc = vpci_msi_update(pdev, msi->data, msi->address, msi->vectors,
|
||||
+ msi->arch.pirq, msi->mask);
|
||||
+ if ( rc )
|
||||
+ {
|
||||
+ spin_lock(&pdev->domain->event_lock);
|
||||
+ unmap_domain_pirq(pdev->domain, msi->arch.pirq);
|
||||
+ spin_unlock(&pdev->domain->event_lock);
|
||||
+ pcidevs_unlock();
|
||||
+ msi->arch.pirq = INVALID_PIRQ;
|
||||
+ return rc;
|
||||
+ }
|
||||
+ pcidevs_unlock();
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int vpci_msi_enable(const struct pci_dev *pdev, uint32_t data,
|
||||
uint64_t address, unsigned int nr,
|
||||
paddr_t table_base, uint32_t mask)
|
||||
diff --git a/xen/drivers/vpci/msi.c b/xen/drivers/vpci/msi.c
|
||||
index ad26c38a92..8f15ad7bf2 100644
|
||||
--- a/xen/drivers/vpci/msi.c
|
||||
+++ b/xen/drivers/vpci/msi.c
|
||||
@@ -87,8 +87,7 @@ static void update_msi(const struct pci_dev *pdev, struct vpci_msi *msi)
|
||||
if ( !msi->enabled )
|
||||
return;
|
||||
|
||||
- vpci_msi_arch_disable(msi, pdev);
|
||||
- if ( vpci_msi_arch_enable(msi, pdev, msi->vectors) )
|
||||
+ if ( vpci_msi_arch_update(msi, pdev) )
|
||||
msi->enabled = false;
|
||||
}
|
||||
|
||||
diff --git a/xen/include/xen/vpci.h b/xen/include/xen/vpci.h
|
||||
index 72d2225a97..af2b8580ee 100644
|
||||
--- a/xen/include/xen/vpci.h
|
||||
+++ b/xen/include/xen/vpci.h
|
||||
@@ -159,6 +159,8 @@ int __must_check vpci_msi_arch_enable(struct vpci_msi *msi,
|
||||
const struct pci_dev *pdev,
|
||||
unsigned int vectors);
|
||||
void vpci_msi_arch_disable(struct vpci_msi *msi, const struct pci_dev *pdev);
|
||||
+int __must_check vpci_msi_arch_update(struct vpci_msi *msi,
|
||||
+ const struct pci_dev *pdev);
|
||||
void vpci_msi_arch_init(struct vpci_msi *msi);
|
||||
void vpci_msi_arch_print(const struct vpci_msi *msi);
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
From fe810e9bcbca982a2f6980d119695c7e933c39bd Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Fri, 20 Jul 2018 10:58:50 +0200
|
||||
Subject: [PATCH 2/2] x86/efi: split compiler vs linker support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
So that an ELF binary with support for EFI services will be built when
|
||||
the compiler supports the MS ABI, regardless of the linker support for
|
||||
PE.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
Cc: Jan Beulich <jbeulich@suse.com>
|
||||
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Cc: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
---
|
||||
Changes since v1:
|
||||
- New in this version.
|
||||
---
|
||||
xen/arch/x86/Makefile | 9 +++++----
|
||||
xen/arch/x86/efi/Makefile | 6 +++---
|
||||
xen/arch/x86/xen.lds.S | 2 +-
|
||||
3 files changed, 9 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
|
||||
index 172685fb41..17e7d3fa34 100644
|
||||
--- a/xen/arch/x86/Makefile
|
||||
+++ b/xen/arch/x86/Makefile
|
||||
@@ -163,10 +163,11 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
|
||||
EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
|
||||
EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
|
||||
|
||||
-# Check if the build system supports PE.
|
||||
-XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
-export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
-CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
|
||||
+# Check if the compiler supports the MS ABI.
|
||||
+export XEN_BUILD_EFI := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
+# Check if the linker supports PE.
|
||||
+XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
+CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
|
||||
|
||||
$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
|
||||
$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
|
||||
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
|
||||
index 918383b325..3816de2738 100644
|
||||
--- a/xen/arch/x86/efi/Makefile
|
||||
+++ b/xen/arch/x86/efi/Makefile
|
||||
@@ -6,6 +6,6 @@ CFLAGS += -fshort-wchar
|
||||
boot.init.o: buildid.o
|
||||
|
||||
obj-y := stub.o
|
||||
-obj-$(XEN_BUILD_PE) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
-extra-$(XEN_BUILD_PE) += buildid.o
|
||||
-nocov-$(XEN_BUILD_PE) += stub.o
|
||||
+obj-$(XEN_BUILD_EFI) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
+extra-$(XEN_BUILD_EFI) += buildid.o
|
||||
+nocov-$(XEN_BUILD_EFI) += stub.o
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 4a59467986..6e9bda5109 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -304,7 +304,7 @@ SECTIONS
|
||||
} :text
|
||||
#endif
|
||||
|
||||
-#ifndef XEN_BUILD_PE
|
||||
+#ifndef XEN_BUILD_EFI
|
||||
efi = .;
|
||||
#endif
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,198 @@
|
|||
From 8ebc60e0274b770743e59256f665789d4308b188 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Beulich <jbeulich@suse.com>
|
||||
Date: Mon, 16 Jul 2018 15:09:12 +0200
|
||||
Subject: [PATCH 2/7] x86/mtrr: split "enabled" field into two boolean flags
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The code hopefully is more readable this way.
|
||||
|
||||
Also switch have_fixed to bool, seeing that it already is used as a
|
||||
boolean.
|
||||
|
||||
Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
||||
[switched to use MASK_*]
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
xen/arch/x86/cpu/mtrr/generic.c | 14 +++++++++-----
|
||||
xen/arch/x86/hvm/hvm.c | 6 ++++--
|
||||
xen/arch/x86/hvm/mtrr.c | 23 ++++++++++++++---------
|
||||
xen/include/asm-x86/msr-index.h | 2 ++
|
||||
xen/include/asm-x86/mtrr.h | 5 +++--
|
||||
5 files changed, 32 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/cpu/mtrr/generic.c b/xen/arch/x86/cpu/mtrr/generic.c
|
||||
index 7ba0c3f0fe..09763654be 100644
|
||||
--- a/xen/arch/x86/cpu/mtrr/generic.c
|
||||
+++ b/xen/arch/x86/cpu/mtrr/generic.c
|
||||
@@ -80,7 +80,8 @@ void __init get_mtrr_state(void)
|
||||
|
||||
rdmsrl(MSR_MTRRdefType, msr_content);
|
||||
mtrr_state.def_type = (msr_content & 0xff);
|
||||
- mtrr_state.enabled = (msr_content & 0xc00) >> 10;
|
||||
+ mtrr_state.enabled = MASK_EXTR(msr_content, MTRRdefType_E);
|
||||
+ mtrr_state.fixed_enabled = MASK_EXTR(msr_content, MTRRdefType_FE);
|
||||
|
||||
/* Store mtrr_cap for HVM MTRR virtualisation. */
|
||||
rdmsrl(MSR_MTRRcap, mtrr_state.mtrr_cap);
|
||||
@@ -159,7 +160,7 @@ static void __init print_mtrr_state(const char *level)
|
||||
unsigned int base = 0, step = 0x10000;
|
||||
|
||||
printk("%sMTRR fixed ranges %sabled:\n", level,
|
||||
- mtrr_state.enabled & 1 ? "en" : "dis");
|
||||
+ mtrr_state.fixed_enabled ? "en" : "dis");
|
||||
for (; block->ranges; ++block, step >>= 2) {
|
||||
for (i = 0; i < block->ranges; ++i, fr += 8) {
|
||||
print_fixed(base, step, fr, level);
|
||||
@@ -169,7 +170,7 @@ static void __init print_mtrr_state(const char *level)
|
||||
print_fixed_last(level);
|
||||
}
|
||||
printk("%sMTRR variable ranges %sabled:\n", level,
|
||||
- mtrr_state.enabled & 2 ? "en" : "dis");
|
||||
+ mtrr_state.enabled ? "en" : "dis");
|
||||
width = (paddr_bits - PAGE_SHIFT + 3) / 4;
|
||||
|
||||
for (i = 0; i < num_var_ranges; ++i) {
|
||||
@@ -383,8 +384,11 @@ static unsigned long set_mtrr_state(void)
|
||||
/* Set_mtrr_restore restores the old value of MTRRdefType,
|
||||
so to set it we fiddle with the saved value */
|
||||
if ((deftype & 0xff) != mtrr_state.def_type
|
||||
- || ((deftype & 0xc00) >> 10) != mtrr_state.enabled) {
|
||||
- deftype = (deftype & ~0xcff) | mtrr_state.def_type | (mtrr_state.enabled << 10);
|
||||
+ || MASK_EXTR(deftype, MTRRdefType_E) != mtrr_state.enabled
|
||||
+ || MASK_EXTR(deftype, MTRRdefType_FE) != mtrr_state.fixed_enabled) {
|
||||
+ deftype = (deftype & ~0xcff) | mtrr_state.def_type |
|
||||
+ MASK_INSR(mtrr_state.enabled, MTRRdefType_E) |
|
||||
+ MASK_INSR(mtrr_state.fixed_enabled, MTRRdefType_FE);
|
||||
change_mask |= MTRR_CHANGE_MASK_DEFTYPE;
|
||||
}
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
|
||||
index e022f5ab0e..3e2abeb274 100644
|
||||
--- a/xen/arch/x86/hvm/hvm.c
|
||||
+++ b/xen/arch/x86/hvm/hvm.c
|
||||
@@ -3453,8 +3453,10 @@ int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
|
||||
case MSR_MTRRdefType:
|
||||
if ( !d->arch.cpuid->basic.mtrr )
|
||||
goto gp_fault;
|
||||
- *msr_content = v->arch.hvm_vcpu.mtrr.def_type
|
||||
- | (v->arch.hvm_vcpu.mtrr.enabled << 10);
|
||||
+ *msr_content = v->arch.hvm_vcpu.mtrr.def_type |
|
||||
+ MASK_INSR(v->arch.hvm_vcpu.mtrr.enabled, MTRRdefType_E) |
|
||||
+ MASK_INSR(v->arch.hvm_vcpu.mtrr.fixed_enabled,
|
||||
+ MTRRdefType_FE);
|
||||
break;
|
||||
case MSR_MTRRfix64K_00000:
|
||||
if ( !d->arch.cpuid->basic.mtrr )
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index a636012388..d74b363851 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -195,11 +195,11 @@ static int get_mtrr_type(const struct mtrr_state *m,
|
||||
uint64_t mask = -(uint64_t)PAGE_SIZE << order;
|
||||
unsigned int seg, num_var_ranges = MASK_EXTR(m->mtrr_cap, MTRRcap_VCNT);
|
||||
|
||||
- if ( unlikely(!(m->enabled & 0x2)) )
|
||||
+ if ( unlikely(!m->enabled) )
|
||||
return MTRR_TYPE_UNCACHABLE;
|
||||
|
||||
pa &= mask;
|
||||
- if ( (pa < 0x100000) && (m->enabled & 1) )
|
||||
+ if ( (pa < 0x100000) && m->fixed_enabled )
|
||||
{
|
||||
/* Fixed range MTRR takes effect. */
|
||||
uint32_t addr = (uint32_t)pa, index;
|
||||
@@ -391,7 +391,8 @@ bool_t mtrr_def_type_msr_set(struct domain *d, struct mtrr_state *m,
|
||||
uint64_t msr_content)
|
||||
{
|
||||
uint8_t def_type = msr_content & 0xff;
|
||||
- uint8_t enabled = (msr_content >> 10) & 0x3;
|
||||
+ bool fixed_enabled = MASK_EXTR(msr_content, MTRRdefType_FE);
|
||||
+ bool enabled = MASK_EXTR(msr_content, MTRRdefType_E);
|
||||
|
||||
if ( unlikely(!valid_mtrr_type(def_type)) )
|
||||
{
|
||||
@@ -406,10 +407,12 @@ bool_t mtrr_def_type_msr_set(struct domain *d, struct mtrr_state *m,
|
||||
return 0;
|
||||
}
|
||||
|
||||
- if ( m->enabled != enabled || m->def_type != def_type )
|
||||
+ if ( m->enabled != enabled || m->fixed_enabled != fixed_enabled ||
|
||||
+ m->def_type != def_type )
|
||||
{
|
||||
m->enabled = enabled;
|
||||
m->def_type = def_type;
|
||||
+ m->fixed_enabled = fixed_enabled;
|
||||
memory_type_changed(d);
|
||||
}
|
||||
|
||||
@@ -478,10 +481,10 @@ bool mtrr_pat_not_equal(const struct vcpu *vd, const struct vcpu *vs)
|
||||
const struct mtrr_state *md = &vd->arch.hvm_vcpu.mtrr;
|
||||
const struct mtrr_state *ms = &vs->arch.hvm_vcpu.mtrr;
|
||||
|
||||
- if ( (md->enabled ^ ms->enabled) & 2 )
|
||||
+ if ( md->enabled != ms->enabled )
|
||||
return true;
|
||||
|
||||
- if ( md->enabled & 2 )
|
||||
+ if ( md->enabled )
|
||||
{
|
||||
unsigned int num_var_ranges = MASK_EXTR(md->mtrr_cap, MTRRcap_VCNT);
|
||||
|
||||
@@ -490,10 +493,10 @@ bool mtrr_pat_not_equal(const struct vcpu *vd, const struct vcpu *vs)
|
||||
return true;
|
||||
|
||||
/* Test fixed ranges. */
|
||||
- if ( (md->enabled ^ ms->enabled) & 1 )
|
||||
+ if ( md->fixed_enabled != ms->fixed_enabled )
|
||||
return true;
|
||||
|
||||
- if ( (md->enabled & 1) &&
|
||||
+ if ( md->fixed_enabled &&
|
||||
memcmp(md->fixed_ranges, ms->fixed_ranges,
|
||||
sizeof(md->fixed_ranges)) )
|
||||
return true;
|
||||
@@ -681,7 +684,9 @@ static int hvm_save_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
|
||||
const struct mtrr_state *mtrr_state = &v->arch.hvm_vcpu.mtrr;
|
||||
struct hvm_hw_mtrr hw_mtrr = {
|
||||
.msr_mtrr_def_type = mtrr_state->def_type |
|
||||
- (mtrr_state->enabled << 10),
|
||||
+ MASK_INSR(mtrr_state->fixed_enabled,
|
||||
+ MTRRdefType_FE) |
|
||||
+ MASK_INSR(mtrr_state->enabled, MTRRdefType_E),
|
||||
.msr_mtrr_cap = mtrr_state->mtrr_cap,
|
||||
};
|
||||
unsigned int i;
|
||||
diff --git a/xen/include/asm-x86/msr-index.h b/xen/include/asm-x86/msr-index.h
|
||||
index 95bb66916c..94bccf73a1 100644
|
||||
--- a/xen/include/asm-x86/msr-index.h
|
||||
+++ b/xen/include/asm-x86/msr-index.h
|
||||
@@ -98,6 +98,8 @@
|
||||
#define MSR_MTRRfix4K_F0000 0x0000026e
|
||||
#define MSR_MTRRfix4K_F8000 0x0000026f
|
||||
#define MSR_MTRRdefType 0x000002ff
|
||||
+#define MTRRdefType_FE (1u << 10)
|
||||
+#define MTRRdefType_E (1u << 11)
|
||||
|
||||
#define MSR_IA32_DEBUGCTLMSR 0x000001d9
|
||||
#define IA32_DEBUGCTLMSR_LBR (1<<0) /* Last Branch Record */
|
||||
diff --git a/xen/include/asm-x86/mtrr.h b/xen/include/asm-x86/mtrr.h
|
||||
index 5cdc5d4fe3..b1f7af6396 100644
|
||||
--- a/xen/include/asm-x86/mtrr.h
|
||||
+++ b/xen/include/asm-x86/mtrr.h
|
||||
@@ -50,8 +50,9 @@ struct mtrr_var_range {
|
||||
struct mtrr_state {
|
||||
struct mtrr_var_range *var_ranges;
|
||||
mtrr_type fixed_ranges[NUM_FIXED_RANGES];
|
||||
- unsigned char enabled;
|
||||
- unsigned char have_fixed;
|
||||
+ bool enabled;
|
||||
+ bool fixed_enabled;
|
||||
+ bool have_fixed;
|
||||
mtrr_type def_type;
|
||||
|
||||
u64 mtrr_cap;
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
From de3b31312248646394a78b837b8a02f2483cad02 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 16 Jul 2018 15:09:50 +0200
|
||||
Subject: [PATCH 3/7] hvm/mtrr: add emacs local variables block with formatting
|
||||
info
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
xen/arch/x86/hvm/mtrr.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index d74b363851..7db0d473e8 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -871,3 +871,13 @@ int epte_get_entry_emt(struct domain *d, unsigned long gfn, mfn_t mfn,
|
||||
|
||||
return MTRR_TYPE_UNCACHABLE;
|
||||
}
|
||||
+
|
||||
+/*
|
||||
+ * Local variables:
|
||||
+ * mode: C
|
||||
+ * c-file-style: "BSD"
|
||||
+ * c-basic-offset: 4
|
||||
+ * tab-width: 4
|
||||
+ * indent-tabs-mode: nil
|
||||
+ * End:
|
||||
+ */
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,135 @@
|
|||
From e520d9e144ac4766aaa7ce55f1c49191a5ddefc8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 16 Jul 2018 15:10:09 +0200
|
||||
Subject: [PATCH 4/7] hvm/mtrr: use the hardware number of variable ranges for
|
||||
Dom0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Expand the size of the variable ranges array to match the size of the
|
||||
underlying hardware, this is a preparatory change for copying the
|
||||
hardware MTRR state for Dom0.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/hvm/hvm.c | 12 +++++++++---
|
||||
xen/arch/x86/hvm/mtrr.c | 31 +++++++++++++++++++++++++++++--
|
||||
xen/include/asm-x86/mtrr.h | 3 +++
|
||||
3 files changed, 41 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
|
||||
index 3e2abeb274..c7eb943ed3 100644
|
||||
--- a/xen/arch/x86/hvm/hvm.c
|
||||
+++ b/xen/arch/x86/hvm/hvm.c
|
||||
@@ -3476,10 +3476,13 @@ int hvm_msr_read_intercept(unsigned int msr, uint64_t *msr_content)
|
||||
index = msr - MSR_MTRRfix4K_C0000;
|
||||
*msr_content = fixed_range_base[index + 3];
|
||||
break;
|
||||
- case MSR_IA32_MTRR_PHYSBASE(0)...MSR_IA32_MTRR_PHYSMASK(MTRR_VCNT-1):
|
||||
+ case MSR_IA32_MTRR_PHYSBASE(0)...MSR_IA32_MTRR_PHYSMASK(MTRR_VCNT_MAX - 1):
|
||||
if ( !d->arch.cpuid->basic.mtrr )
|
||||
goto gp_fault;
|
||||
index = msr - MSR_IA32_MTRR_PHYSBASE(0);
|
||||
+ if ( (index / 2) >=
|
||||
+ MASK_EXTR(v->arch.hvm_vcpu.mtrr.mtrr_cap, MTRRcap_VCNT) )
|
||||
+ goto gp_fault;
|
||||
*msr_content = var_range_base[index];
|
||||
break;
|
||||
|
||||
@@ -3637,10 +3640,13 @@ int hvm_msr_write_intercept(unsigned int msr, uint64_t msr_content,
|
||||
index, msr_content) )
|
||||
goto gp_fault;
|
||||
break;
|
||||
- case MSR_IA32_MTRR_PHYSBASE(0)...MSR_IA32_MTRR_PHYSMASK(MTRR_VCNT-1):
|
||||
+ case MSR_IA32_MTRR_PHYSBASE(0)...MSR_IA32_MTRR_PHYSMASK(MTRR_VCNT_MAX - 1):
|
||||
if ( !d->arch.cpuid->basic.mtrr )
|
||||
goto gp_fault;
|
||||
- if ( !mtrr_var_range_msr_set(v->domain, &v->arch.hvm_vcpu.mtrr,
|
||||
+ index = msr - MSR_IA32_MTRR_PHYSBASE(0);
|
||||
+ if ( ((index / 2) >=
|
||||
+ MASK_EXTR(v->arch.hvm_vcpu.mtrr.mtrr_cap, MTRRcap_VCNT)) ||
|
||||
+ !mtrr_var_range_msr_set(v->domain, &v->arch.hvm_vcpu.mtrr,
|
||||
msr, msr_content) )
|
||||
goto gp_fault;
|
||||
break;
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index 7db0d473e8..4021d972fe 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -154,14 +154,26 @@ uint8_t pat_type_2_pte_flags(uint8_t pat_type)
|
||||
int hvm_vcpu_cacheattr_init(struct vcpu *v)
|
||||
{
|
||||
struct mtrr_state *m = &v->arch.hvm_vcpu.mtrr;
|
||||
+ unsigned int num_var_ranges =
|
||||
+ is_hardware_domain(v->domain) ? MASK_EXTR(mtrr_state.mtrr_cap,
|
||||
+ MTRRcap_VCNT)
|
||||
+ : MTRR_VCNT;
|
||||
+
|
||||
+ if ( num_var_ranges > MTRR_VCNT_MAX )
|
||||
+ {
|
||||
+ ASSERT(is_hardware_domain(v->domain));
|
||||
+ printk("WARNING: limited Dom%u variable range MTRRs from %u to %u\n",
|
||||
+ v->domain->domain_id, num_var_ranges, MTRR_VCNT_MAX);
|
||||
+ num_var_ranges = MTRR_VCNT_MAX;
|
||||
+ }
|
||||
|
||||
memset(m, 0, sizeof(*m));
|
||||
|
||||
- m->var_ranges = xzalloc_array(struct mtrr_var_range, MTRR_VCNT);
|
||||
+ m->var_ranges = xzalloc_array(struct mtrr_var_range, num_var_ranges);
|
||||
if ( m->var_ranges == NULL )
|
||||
return -ENOMEM;
|
||||
|
||||
- m->mtrr_cap = (1u << 10) | (1u << 8) | MTRR_VCNT;
|
||||
+ m->mtrr_cap = (1u << 10) | (1u << 8) | num_var_ranges;
|
||||
|
||||
v->arch.hvm_vcpu.pat_cr =
|
||||
((uint64_t)PAT_TYPE_WRBACK) | /* PAT0: WB */
|
||||
@@ -448,6 +460,12 @@ bool_t mtrr_var_range_msr_set(
|
||||
uint64_t *var_range_base = (uint64_t*)m->var_ranges;
|
||||
|
||||
index = msr - MSR_IA32_MTRR_PHYSBASE(0);
|
||||
+ if ( (index / 2) >= MASK_EXTR(m->mtrr_cap, MTRRcap_VCNT) )
|
||||
+ {
|
||||
+ ASSERT_UNREACHABLE();
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
if ( var_range_base[index] == msr_content )
|
||||
return 1;
|
||||
|
||||
@@ -691,6 +709,15 @@ static int hvm_save_mtrr_msr(struct domain *d, hvm_domain_context_t *h)
|
||||
};
|
||||
unsigned int i;
|
||||
|
||||
+ if ( MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT) >
|
||||
+ (ARRAY_SIZE(hw_mtrr.msr_mtrr_var) / 2) )
|
||||
+ {
|
||||
+ dprintk(XENLOG_G_ERR,
|
||||
+ "HVM save: %pv: too many (%lu) variable range MTRRs\n",
|
||||
+ v, MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT));
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+
|
||||
hvm_get_guest_pat(v, &hw_mtrr.msr_pat_cr);
|
||||
|
||||
for ( i = 0; i < MASK_EXTR(hw_mtrr.msr_mtrr_cap, MTRRcap_VCNT); i++ )
|
||||
diff --git a/xen/include/asm-x86/mtrr.h b/xen/include/asm-x86/mtrr.h
|
||||
index b1f7af6396..72d0690e28 100644
|
||||
--- a/xen/include/asm-x86/mtrr.h
|
||||
+++ b/xen/include/asm-x86/mtrr.h
|
||||
@@ -39,6 +39,9 @@ typedef u8 mtrr_type;
|
||||
#define MTRR_PHYSBASE_SHIFT 12
|
||||
/* Number of variable range MSR pairs we emulate for HVM guests: */
|
||||
#define MTRR_VCNT 8
|
||||
+/* Maximum number of variable range MSR pairs if FE is supported. */
|
||||
+#define MTRR_VCNT_MAX ((MSR_MTRRfix64K_00000 - \
|
||||
+ MSR_IA32_MTRR_PHYSBASE(0)) / 2)
|
||||
|
||||
struct mtrr_var_range {
|
||||
uint64_t base;
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,59 @@
|
|||
From d8b0840bb90711e93b6994e50c728bbbf0f012a0 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 16 Jul 2018 15:10:49 +0200
|
||||
Subject: [PATCH 5/7] hvm/mtrr: copy hardware state for Dom0
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Copy the state found on the hardware when creating a PVH Dom0. Since
|
||||
the memory map provided to a PVH Dom0 is based on the native one using
|
||||
the same set of MTRR ranges should provide Dom0 with a sane MTRR state
|
||||
without having to manually build it in Xen.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/hvm/mtrr.c | 26 ++++++++++++++++++++++++++
|
||||
1 file changed, 26 insertions(+)
|
||||
|
||||
diff --git a/xen/arch/x86/hvm/mtrr.c b/xen/arch/x86/hvm/mtrr.c
|
||||
index 4021d972fe..2b00993a7b 100644
|
||||
--- a/xen/arch/x86/hvm/mtrr.c
|
||||
+++ b/xen/arch/x86/hvm/mtrr.c
|
||||
@@ -185,6 +185,32 @@ int hvm_vcpu_cacheattr_init(struct vcpu *v)
|
||||
((uint64_t)PAT_TYPE_UC_MINUS << 48) | /* PAT6: UC- */
|
||||
((uint64_t)PAT_TYPE_UNCACHABLE << 56); /* PAT7: UC */
|
||||
|
||||
+ if ( is_hardware_domain(v->domain) )
|
||||
+ {
|
||||
+ /* Copy values from the host. */
|
||||
+ struct domain *d = v->domain;
|
||||
+ unsigned int i;
|
||||
+
|
||||
+ if ( mtrr_state.have_fixed )
|
||||
+ for ( i = 0; i < NUM_FIXED_MSR; i++ )
|
||||
+ mtrr_fix_range_msr_set(d, m, i,
|
||||
+ ((uint64_t *)mtrr_state.fixed_ranges)[i]);
|
||||
+
|
||||
+ for ( i = 0; i < num_var_ranges; i++ )
|
||||
+ {
|
||||
+ mtrr_var_range_msr_set(d, m, MSR_IA32_MTRR_PHYSBASE(i),
|
||||
+ mtrr_state.var_ranges[i].base);
|
||||
+ mtrr_var_range_msr_set(d, m, MSR_IA32_MTRR_PHYSMASK(i),
|
||||
+ mtrr_state.var_ranges[i].mask);
|
||||
+ }
|
||||
+
|
||||
+ mtrr_def_type_msr_set(d, m,
|
||||
+ mtrr_state.def_type |
|
||||
+ MASK_INSR(mtrr_state.fixed_enabled,
|
||||
+ MTRRdefType_FE) |
|
||||
+ MASK_INSR(mtrr_state.enabled, MTRRdefType_E));
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,104 @@
|
|||
From a1c1ae0b0f5b30b5b928e45349086ec00930bccf Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 16 Jul 2018 15:11:22 +0200
|
||||
Subject: [PATCH 6/7] libxc/pvh: set default MTRR type to write-back
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
And enable MTRR. This allows to provide a sane initial MTRR state for
|
||||
PVH DomUs. This will have to be expanded when pci-passthrough support
|
||||
is added to PVH guests, so that MMIO regions of devices are set as
|
||||
UC.
|
||||
|
||||
Note that initial MTRR setup is done by hvmloader for HVM guests,
|
||||
that's not used by PVH guests.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Wei Liu <wei.liu2@citrix.com>
|
||||
---
|
||||
tools/libxc/xc_dom_x86.c | 44 ++++++++++++++++++++++++++++++++++++++++
|
||||
1 file changed, 44 insertions(+)
|
||||
|
||||
diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c
|
||||
index e33a28847d..d28ff4d7e9 100644
|
||||
--- a/tools/libxc/xc_dom_x86.c
|
||||
+++ b/tools/libxc/xc_dom_x86.c
|
||||
@@ -53,6 +53,9 @@
|
||||
#define X86_CR0_PE 0x01
|
||||
#define X86_CR0_ET 0x10
|
||||
|
||||
+#define MTRR_TYPE_WRBACK 6
|
||||
+#define MTRR_DEF_TYPE_ENABLE (1u << 11)
|
||||
+
|
||||
#define SPECIALPAGE_PAGING 0
|
||||
#define SPECIALPAGE_ACCESS 1
|
||||
#define SPECIALPAGE_SHARING 2
|
||||
@@ -931,6 +934,20 @@ static int vcpu_x86_64(struct xc_dom_image *dom)
|
||||
return rc;
|
||||
}
|
||||
|
||||
+const static void *hvm_get_save_record(const void *ctx, unsigned int type,
|
||||
+ unsigned int instance)
|
||||
+{
|
||||
+ const struct hvm_save_descriptor *header;
|
||||
+
|
||||
+ for ( header = ctx;
|
||||
+ header->typecode != HVM_SAVE_CODE(END);
|
||||
+ ctx += sizeof(*header) + header->length, header = ctx )
|
||||
+ if ( header->typecode == type && header->instance == instance )
|
||||
+ return ctx + sizeof(*header);
|
||||
+
|
||||
+ return NULL;
|
||||
+}
|
||||
+
|
||||
static int vcpu_hvm(struct xc_dom_image *dom)
|
||||
{
|
||||
struct {
|
||||
@@ -938,9 +955,12 @@ static int vcpu_hvm(struct xc_dom_image *dom)
|
||||
HVM_SAVE_TYPE(HEADER) header;
|
||||
struct hvm_save_descriptor cpu_d;
|
||||
HVM_SAVE_TYPE(CPU) cpu;
|
||||
+ struct hvm_save_descriptor mtrr_d;
|
||||
+ HVM_SAVE_TYPE(MTRR) mtrr;
|
||||
struct hvm_save_descriptor end_d;
|
||||
HVM_SAVE_TYPE(END) end;
|
||||
} bsp_ctx;
|
||||
+ const HVM_SAVE_TYPE(MTRR) *mtrr_record;
|
||||
uint8_t *full_ctx = NULL;
|
||||
int rc;
|
||||
|
||||
@@ -1014,6 +1034,30 @@ static int vcpu_hvm(struct xc_dom_image *dom)
|
||||
if ( dom->start_info_seg.pfn )
|
||||
bsp_ctx.cpu.rbx = dom->start_info_seg.pfn << PAGE_SHIFT;
|
||||
|
||||
+ /* Set the MTRR. */
|
||||
+ bsp_ctx.mtrr_d.typecode = HVM_SAVE_CODE(MTRR);
|
||||
+ bsp_ctx.mtrr_d.instance = 0;
|
||||
+ bsp_ctx.mtrr_d.length = HVM_SAVE_LENGTH(MTRR);
|
||||
+
|
||||
+ mtrr_record = hvm_get_save_record(full_ctx, HVM_SAVE_CODE(MTRR), 0);
|
||||
+ if ( !mtrr_record )
|
||||
+ {
|
||||
+ xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
|
||||
+ "%s: unable to get MTRR save record", __func__);
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ memcpy(&bsp_ctx.mtrr, mtrr_record, sizeof(bsp_ctx.mtrr));
|
||||
+
|
||||
+ /* TODO: maybe this should be a firmware option instead? */
|
||||
+ if ( !dom->device_model )
|
||||
+ /*
|
||||
+ * Enable MTRR, set default type to WB.
|
||||
+ * TODO: add MMIO areas as UC when passthrough is supported.
|
||||
+ */
|
||||
+ bsp_ctx.mtrr.msr_mtrr_def_type = MTRR_TYPE_WRBACK |
|
||||
+ MTRR_DEF_TYPE_ENABLE;
|
||||
+
|
||||
/* Set the end descriptor. */
|
||||
bsp_ctx.end_d.typecode = HVM_SAVE_CODE(END);
|
||||
bsp_ctx.end_d.instance = 0;
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
From 565efbc8a7145c47379543edfcc84fc4f4dd6d83 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Mon, 16 Jul 2018 15:11:42 +0200
|
||||
Subject: [PATCH 7/7] docs/pvh: document initial MTRR state
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Provided to both Dom0 and DomUs.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
docs/misc/pvh.markdown | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/docs/misc/pvh.markdown b/docs/misc/pvh.markdown
|
||||
index e85fb15374..1c9a00b48a 100644
|
||||
--- a/docs/misc/pvh.markdown
|
||||
+++ b/docs/misc/pvh.markdown
|
||||
@@ -92,3 +92,21 @@ event channels. Delivery of those interrupts can be configured in the same way
|
||||
as HVM guests, check xen/include/public/hvm/params.h and
|
||||
xen/include/public/hvm/hvm\_op.h for more information about available delivery
|
||||
methods.
|
||||
+
|
||||
+## MTRR ##
|
||||
+
|
||||
+### Unprivileged guests ###
|
||||
+
|
||||
+PVH guests are currently booted with the default MTRR type set to write-back
|
||||
+and MTRR enabled. This allows DomUs to start with a sane MTRR state. Note that
|
||||
+this will have to be revisited when pci-passthrough is added to PVH in order to
|
||||
+set MMIO regions as UC.
|
||||
+
|
||||
+Xen guarantees that RAM regions will always have the WB cache type set in the
|
||||
+initial MTRR state, either set by the default MTRR type or by other means.
|
||||
+
|
||||
+### Hardware domain ###
|
||||
+
|
||||
+A PVH hardware domain is booted with the same MTRR state as the one found on
|
||||
+the host. This is done because the hardware domain memory map is already a
|
||||
+modified copy of the host memory map, so the same MTRR setup should work.
|
||||
--
|
||||
2.18.0
|
||||
|
99
emulators/xen-kernel411/files/xen.4th
Normal file
99
emulators/xen-kernel411/files/xen.4th
Normal file
|
@ -0,0 +1,99 @@
|
|||
\ Copyright (c) 2015 Devin Teske <dteske@FreeBSD.org>
|
||||
\ All rights reserved.
|
||||
\
|
||||
\ Redistribution and use in source and binary forms, with or without
|
||||
\ modification, are permitted provided that the following conditions
|
||||
\ are met:
|
||||
\ 1. Redistributions of source code must retain the above copyright
|
||||
\ notice, this list of conditions and the following disclaimer.
|
||||
\ 2. Redistributions in binary form must reproduce the above copyright
|
||||
\ notice, this list of conditions and the following disclaimer in the
|
||||
\ documentation and/or other materials provided with the distribution.
|
||||
\
|
||||
\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||
\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
\ SUCH DAMAGE.
|
||||
\
|
||||
\ $FreeBSD$
|
||||
|
||||
create xenkerndefault 64 allot
|
||||
0 xenkerndefault c!
|
||||
|
||||
also menu-command-helpers
|
||||
also menu-namespace
|
||||
|
||||
: init_xen_active ( N -- N )
|
||||
s" [X]en Kernel.. off" 2 pick menu_caption[x] setenv
|
||||
s" [X]en Kernel.. On" 2 pick toggled_text[x] setenv
|
||||
s" toggle_xen" 2 pick menu_command[x] setenv
|
||||
s" 120" 2 pick menu_keycode[x] setenv
|
||||
s" ^[1mX^[men Kernel.. ^[34;1mOff^[m" 2 pick ansi_caption[x] setenv
|
||||
s" ^[1mX^[men Kernel.. ^[32;7mOn^[m" 2 pick toggled_ansi[x] setenv
|
||||
;
|
||||
|
||||
: init_xen_inactive ( N -- N )
|
||||
s" Xen Kernel.. N/A" 2dup
|
||||
4 pick menu_caption[x] setenv
|
||||
2 pick ansi_caption[x] setenv
|
||||
s" true" 2 pick menu_command[x] setenv
|
||||
;
|
||||
|
||||
: init_xen ( -- )
|
||||
s" optionsmenu_options" getenv 0> if
|
||||
c@ dup [char] 0 > over [char] 9 < and false = if
|
||||
drop [char] 0
|
||||
then
|
||||
1+
|
||||
else
|
||||
[char] 1
|
||||
then
|
||||
begin
|
||||
dup [char] 8 > if
|
||||
false ( break )
|
||||
else
|
||||
dup s" optionsmenu_caption[x]" 20 +c! getenv -1 = if
|
||||
false ( break )
|
||||
else
|
||||
drop true
|
||||
then
|
||||
then
|
||||
while
|
||||
1+
|
||||
repeat
|
||||
|
||||
s" xen_kernel" getenv dup -1 <> over 0> and if
|
||||
xenkerndefault 1+ 0 2swap strcat swap 1- c!
|
||||
init_xen_active ( n -- n )
|
||||
toggle_menuitem ( n -- n )
|
||||
else
|
||||
drop
|
||||
xenkerndefault c@ 0<> if
|
||||
init_xen_active ( n -- n )
|
||||
else
|
||||
init_xen_inactive ( n -- n )
|
||||
then
|
||||
then
|
||||
;
|
||||
|
||||
: toggle_xen ( N -- N TRUE )
|
||||
toggle_menuitem ( n -- n )
|
||||
menu-redraw
|
||||
|
||||
dup toggle_stateN @ 0= if
|
||||
s" xen_kernel" unsetenv
|
||||
else
|
||||
xenkerndefault count s" xen_kernel" setenv
|
||||
then
|
||||
|
||||
TRUE \ loop menu again
|
||||
;
|
||||
|
||||
set optionsmenu_init="$optionsmenu_init init_xen"
|
10
emulators/xen-kernel411/pkg-descr
Normal file
10
emulators/xen-kernel411/pkg-descr
Normal file
|
@ -0,0 +1,10 @@
|
|||
The Xen Project hypervisor is an open-source type-1 or baremetal hypervisor,
|
||||
which makes it possible to run many instances of an operating system or indeed
|
||||
different operating systems in parallel on a single machine (or host). The Xen
|
||||
Project hypervisor is the only type-1 hypervisor that is available as open
|
||||
source. It is used as the basis for a number of different commercial and open
|
||||
source applications, such as: server virtualization, Infrastructure as a Service
|
||||
(IaaS), desktop virtualization, security applications, embedded and hardware
|
||||
appliances
|
||||
|
||||
WWW: http://www.xenproject.org/
|
18
emulators/xen-kernel411/pkg-message
Normal file
18
emulators/xen-kernel411/pkg-message
Normal file
|
@ -0,0 +1,18 @@
|
|||
Please add the following entries in order to boot the xen kernel
|
||||
|
||||
In /etc/sysctl.conf:
|
||||
vm.max_wired=-1
|
||||
|
||||
In /etc/ttys:
|
||||
xc0 "/usr/libexec/getty Pc" xterm on secure
|
||||
|
||||
In /boot/loader.conf for a dom0 with 2G memory and 4 vcpus:
|
||||
hw.pci.mcfg=0
|
||||
xen_kernel="/boot/xen"
|
||||
xen_cmdline="dom0_mem=2048M dom0_max_vcpus=4 dom0=pvh com1=115200,8n1 guest_loglvl=all loglvl=all"
|
||||
|
||||
Add to the above xen_cmdline in order to activate the serial console:
|
||||
console=com1
|
||||
|
||||
In /boot/menu.rc.local:
|
||||
try-include /boot/xen.4th
|
91
sysutils/xen-tools411/Makefile
Normal file
91
sysutils/xen-tools411/Makefile
Normal file
|
@ -0,0 +1,91 @@
|
|||
# $FreeBSD$
|
||||
|
||||
PORTNAME= xen
|
||||
PKGNAMESUFFIX= -tools
|
||||
PORTVERSION= 4.11.0
|
||||
PORTREVISION= 0
|
||||
CATEGORIES= sysutils emulators
|
||||
MASTER_SITES= http://downloads.xenproject.org/release/xen/${PORTVERSION}/
|
||||
|
||||
MAINTAINER= royger@FreeBSD.org
|
||||
COMMENT= Xen management tools
|
||||
|
||||
LICENSE= GPLv2 LGPL3
|
||||
LICENSE_COMB= multi
|
||||
|
||||
BROKEN_FreeBSD_10= does not build
|
||||
|
||||
LIB_DEPENDS= libyajl.so:devel/yajl \
|
||||
liblzo2.so:archivers/lzo2 \
|
||||
libpixman-1.so:x11/pixman \
|
||||
libargp.so:devel/argp-standalone
|
||||
DOCS_BUILD_DEPENDS=markdown>0:textproc/markdown \
|
||||
hs-pandoc>0:textproc/hs-pandoc
|
||||
BUILD_DEPENDS= seabios>0:misc/seabios
|
||||
RUN_DEPENDS= seabios>0:misc/seabios
|
||||
|
||||
OPTIONS_DEFINE= DOCS
|
||||
|
||||
ONLY_FOR_ARCHS= amd64
|
||||
ONLY_FOR_ARCHS_REASON= "not yet ported to anything other than amd64"
|
||||
|
||||
USES= cpe gettext gmake libtool localbase:ldflags perl5 pkgconfig \
|
||||
python:2.7 shebangfix
|
||||
USE_GNOME= glib20
|
||||
USE_LDCONFIG= yes
|
||||
GNU_CONFIGURE= yes
|
||||
# Set ARCH=x86_64 in order to overwrite the environment ARCH=amd64
|
||||
MAKE_ARGS= clang=y ARCH=x86_64
|
||||
|
||||
# Set correct include paths taking /usr/local into account.
|
||||
EXTRA_PATCHES= ${FILESDIR}/0001-build-fix-include-paths-in-FreeBSD.patch:-p1
|
||||
# Build with lld (LLVM linker)
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-x86-replace-usage-in-the-linker-script.patch:-p1 \
|
||||
${FILESDIR}/0001-x86-efi-move-the-logic-to-detect-PE-build-support.patch:-p1 \
|
||||
${FILESDIR}/0002-x86-efi-split-compiler-vs-linker-support.patch:-p1
|
||||
# Fix docs build
|
||||
EXTRA_PATCHES+= ${FILESDIR}/0001-docs-use-the-make-wildcard-function-instead-of-find.patch:-p1
|
||||
|
||||
CONFIGURE_ARGS+= --with-system-seabios=${LOCALBASE}/share/seabios/bios.bin
|
||||
|
||||
SHEBANG_FILES= tools/misc/xen-ringwatch \
|
||||
tools/misc/xencov_split \
|
||||
tools/python/scripts/convert-legacy-stream \
|
||||
tools/python/scripts/verify-stream-v2 \
|
||||
tools/xenmon/xenmon.py
|
||||
|
||||
ALL_TARGET= tools
|
||||
DOCS_ALL_TARGET= docs
|
||||
INSTALL_TARGET= install-tools
|
||||
DOCS_INSTALL_TARGET= install-docs
|
||||
|
||||
.include <bsd.port.options.mk>
|
||||
|
||||
.if ${OPSYS} != FreeBSD
|
||||
IGNORE= only supported on FreeBSD
|
||||
.endif
|
||||
|
||||
.if ${OSVERSION} < 1200074
|
||||
IGNORE= only supported on recent FreeBSD HEAD
|
||||
.endif
|
||||
|
||||
post-patch:
|
||||
@for p in `ls ${FILESDIR}/*qemuu*.patch 2>/dev/null`; do \
|
||||
${ECHO_CMD} "====> Applying $${p##*/}" ; \
|
||||
${PATCH} -s -p1 -i $${p} -d ${WRKSRC}/tools/qemu-xen ; \
|
||||
done
|
||||
|
||||
# The ports native 'build' target cannot be used because it sets CFLAGS, and
|
||||
# that breaks the Xen kernel build system that's used by the tools in order to
|
||||
# build the pv-shim.
|
||||
do-build:
|
||||
${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} ${MAKE_ARGS} ${ALL_TARGET}
|
||||
|
||||
do-install:
|
||||
${MAKE_CMD} -j${MAKE_JOBS_NUMBER} -C ${WRKSRC} ${MAKE_ARGS} ${INSTALL_TARGET}
|
||||
|
||||
post-install:
|
||||
${MKDIR} ${STAGEDIR}/var/run/xen
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
3
sysutils/xen-tools411/distinfo
Normal file
3
sysutils/xen-tools411/distinfo
Normal file
|
@ -0,0 +1,3 @@
|
|||
TIMESTAMP = 1532353889
|
||||
SHA256 (xen-4.11.0.tar.gz) = 826e3a9f6d0eac94a825d272cc2c1294e22640ae75af906eb13920f9ad667643
|
||||
SIZE (xen-4.11.0.tar.gz) = 25131533
|
|
@ -0,0 +1,33 @@
|
|||
From fe9b60476a548de1c62d6fc985e9741b04479d36 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Mon, 2 Jul 2018 10:28:26 +0200
|
||||
Subject: [PATCH] build: fix include paths in FreeBSD
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
FreeBSD package manager uses /usr/local/ as the default install path,
|
||||
but that's not part of the compiler search path, so add it using the
|
||||
APPEND_{LIB/INCLUDES} variables.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Acked-by: Wei Liu <wei.liu2@citrix.com>
|
||||
---
|
||||
config/FreeBSD.mk | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/config/FreeBSD.mk b/config/FreeBSD.mk
|
||||
index afeaefbde2..98a5117e60 100644
|
||||
--- a/config/FreeBSD.mk
|
||||
+++ b/config/FreeBSD.mk
|
||||
@@ -3,3 +3,7 @@ include $(XEN_ROOT)/config/StdGNU.mk
|
||||
# No wget on FreeBSD base system
|
||||
WGET = ftp
|
||||
PKG_INSTALLDIR = ${prefix}/libdata/pkgconfig
|
||||
+
|
||||
+# Add the default pkg install path
|
||||
+APPEND_LIB += /usr/local/lib
|
||||
+APPEND_INCLUDES += /usr/local/include
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
From 76c9776e63305c23bca03eba933e7ce2ecbb749c Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Mon, 23 Jul 2018 17:58:35 +0200
|
||||
Subject: [PATCH] docs: use the make wildcard function instead of find
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The regexp used with find in order to list the man pages doesn't work
|
||||
with FreeBSD find, so use a wildcard instead. No functional change.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
---
|
||||
Cc: Ian Jackson <ian.jackson@eu.citrix.com>
|
||||
Cc: Wei Liu <wei.liu2@citrix.com>
|
||||
---
|
||||
docs/Makefile | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/docs/Makefile b/docs/Makefile
|
||||
index b300bb6be1..fba6673db6 100644
|
||||
--- a/docs/Makefile
|
||||
+++ b/docs/Makefile
|
||||
@@ -8,10 +8,10 @@ DATE := $(shell date +%Y-%m-%d)
|
||||
DOC_ARCHES := arm x86_32 x86_64
|
||||
|
||||
# Documentation sources to build
|
||||
-MAN1SRC-y := $(sort $(shell find man/ -regex '.*\.\(pod\|markdown\)\.1' -print))
|
||||
-MAN5SRC-y := $(sort $(shell find man/ -regex '.*\.\(pod\|markdown\)\.5' -print))
|
||||
-MAN7SRC-y := $(sort $(shell find man/ -regex '.*\.\(pod\|markdown\)\.7' -print))
|
||||
-MAN8SRC-y := $(sort $(shell find man/ -regex '.*\.\(pod\|markdown\)\.8' -print))
|
||||
+MAN1SRC-y := $(sort $(wildcard man/*.pod.1 man/*.markdown.1))
|
||||
+MAN5SRC-y := $(sort $(wildcard man/*.pod.5 man/*.markdown.5))
|
||||
+MAN7SRC-y := $(sort $(wildcard man/*.pod.7 man/*.markdown.7))
|
||||
+MAN8SRC-y := $(sort $(wildcard man/*.pod.8 man/*.markdown.8))
|
||||
|
||||
MARKDOWNSRC-y := $(sort $(shell find misc -name '*.markdown' -print))
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,129 @@
|
|||
From 9bd8e5d5cf128f5f19d8b8e74bd693c2711ce4d4 Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Fri, 20 Jul 2018 10:58:50 +0200
|
||||
Subject: [PATCH 1/2] x86/efi: move the logic to detect PE build support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
So that it can be used by other components apart from the efi specific
|
||||
code. By moving the detection code creating a dummy efi/disabled file
|
||||
can be avoided.
|
||||
|
||||
This is required so that the conditional used to define the efi symbol
|
||||
in the linker script can be removed and instead the definition of the
|
||||
efi symbol can be guarded using the preprocessor.
|
||||
|
||||
The motivation behind this change is to be able to build Xen using lld
|
||||
(the LLVM linker), that at least on version 6.0.0 doesn't work
|
||||
properly with a DEFINED being used in a conditional expression:
|
||||
|
||||
ld -melf_x86_64_fbsd -T xen.lds -N prelink.o --build-id=sha1 \
|
||||
/root/src/xen/xen/common/symbols-dummy.o -o /root/src/xen/xen/.xen-syms.0
|
||||
ld: error: xen.lds:233: symbol not found: efi
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
Cc: Jan Beulich <jbeulich@suse.com>
|
||||
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Cc: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
---
|
||||
Changes since v2:
|
||||
- Use CFLAGS-y to append the XEN_BUILD_PE define.
|
||||
- Check that XEN_BUILD_PE is set to 'y' in order to build the PE
|
||||
binary.
|
||||
|
||||
Changes since v1:
|
||||
- Rename variable.
|
||||
- Remove usage of the efi/disabled file.
|
||||
---
|
||||
.gitignore | 1 -
|
||||
xen/arch/x86/Makefile | 9 +++++++--
|
||||
xen/arch/x86/efi/Makefile | 11 +++--------
|
||||
xen/arch/x86/xen.lds.S | 4 +++-
|
||||
4 files changed, 13 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/.gitignore b/.gitignore
|
||||
index 55b78008c0..1625a8f0e7 100644
|
||||
--- a/.gitignore
|
||||
+++ b/.gitignore
|
||||
@@ -302,7 +302,6 @@ xen/arch/x86/boot/*.bin
|
||||
xen/arch/x86/boot/*.lnk
|
||||
xen/arch/x86/efi.lds
|
||||
xen/arch/x86/efi/check.efi
|
||||
-xen/arch/x86/efi/disabled
|
||||
xen/arch/x86/efi/mkreloc
|
||||
xen/arch/*/efi/boot.c
|
||||
xen/arch/*/efi/compat.c
|
||||
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
|
||||
index 5563c813dd..172685fb41 100644
|
||||
--- a/xen/arch/x86/Makefile
|
||||
+++ b/xen/arch/x86/Makefile
|
||||
@@ -163,10 +163,15 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
|
||||
EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
|
||||
EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
|
||||
|
||||
+# Check if the build system supports PE.
|
||||
+XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
+export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
+CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
|
||||
+
|
||||
$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
|
||||
$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
|
||||
# Don't use $(wildcard ...) here - at least make 3.80 expands this too early!
|
||||
-$(TARGET).efi: guard = $(if $(shell echo efi/dis* | grep disabled),:)
|
||||
+$(TARGET).efi: guard = $(if $(filter y,$(XEN_BUILD_PE)),,:)
|
||||
|
||||
ifneq ($(build_id_linker),)
|
||||
ifeq ($(call ld-ver-build-id,$(LD) $(filter -m%,$(EFI_LDFLAGS))),y)
|
||||
@@ -232,6 +237,6 @@ efi/mkreloc: efi/mkreloc.c
|
||||
clean::
|
||||
rm -f asm-offsets.s *.lds boot/*.o boot/*~ boot/core boot/mkelf32
|
||||
rm -f $(BASEDIR)/.xen-syms.[0-9]* boot/.*.d
|
||||
- rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/disabled efi/mkreloc
|
||||
+ rm -f $(BASEDIR)/.xen.efi.[0-9]* efi/*.efi efi/mkreloc
|
||||
rm -f boot/cmdline.S boot/reloc.S boot/*.lnk boot/*.bin
|
||||
rm -f note.o
|
||||
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
|
||||
index 3be9661108..918383b325 100644
|
||||
--- a/xen/arch/x86/efi/Makefile
|
||||
+++ b/xen/arch/x86/efi/Makefile
|
||||
@@ -1,16 +1,11 @@
|
||||
CFLAGS += -fshort-wchar
|
||||
|
||||
-efi := y$(shell rm -f disabled)
|
||||
-efi := $(if $(efi),$(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c check.c 2>disabled && echo y))
|
||||
-efi := $(if $(efi),$(shell $(LD) -mi386pep --subsystem=10 -o check.efi check.o 2>disabled && echo y))
|
||||
-efi := $(if $(efi),$(shell rm disabled)y)
|
||||
-
|
||||
%.o: %.ihex
|
||||
$(OBJCOPY) -I ihex -O binary $< $@
|
||||
|
||||
boot.init.o: buildid.o
|
||||
|
||||
obj-y := stub.o
|
||||
-obj-$(efi) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
-extra-$(efi) += buildid.o
|
||||
-nocov-$(efi) += stub.o
|
||||
+obj-$(XEN_BUILD_PE) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
+extra-$(XEN_BUILD_PE) += buildid.o
|
||||
+nocov-$(XEN_BUILD_PE) += stub.o
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 326e885402..4a59467986 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -304,7 +304,9 @@ SECTIONS
|
||||
} :text
|
||||
#endif
|
||||
|
||||
- efi = DEFINED(efi) ? efi : .;
|
||||
+#ifndef XEN_BUILD_PE
|
||||
+ efi = .;
|
||||
+#endif
|
||||
|
||||
/* Sections to be discarded */
|
||||
/DISCARD/ : {
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From e21ba44f771226a5f6f0ce269aabcfb019eae539 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= <roger.pau@citrix.com>
|
||||
Date: Thu, 12 Jul 2018 10:48:18 +0200
|
||||
Subject: [PATCH] x86: replace '||' usage in the linker script
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
With '|'. The result is the same, and the later works with lld. Fixes
|
||||
the following error when building Xen with lld:
|
||||
|
||||
ld -melf_x86_64_fbsd -T xen.lds -N prelink.o --build-id=sha1 \
|
||||
/root/src/xen/xen/common/symbols-dummy.o -o /root/src/xen/xen/.xen-syms.0
|
||||
ld: error: xen.lds:260: malformed number: |
|
||||
>>> ASSERT(__image_base__ > (((((((((261 >> 8) * 0xffff000000000000) | (261 << 39))) + ((1 << 39) / 2)) + (64 << 30)) + (1 << 30)) + (1 << 30))) ||
|
||||
>>> ^
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
xen/arch/x86/xen.lds.S | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 70afedd31d..326e885402 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -331,7 +331,7 @@ SECTIONS
|
||||
.comment 0 : { *(.comment) }
|
||||
}
|
||||
|
||||
-ASSERT(__image_base__ > XEN_VIRT_START ||
|
||||
+ASSERT(__image_base__ > XEN_VIRT_START |
|
||||
__2M_rwdata_end <= XEN_VIRT_END - NR_CPUS * PAGE_SIZE,
|
||||
"Xen image overlaps stubs area")
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
From fe810e9bcbca982a2f6980d119695c7e933c39bd Mon Sep 17 00:00:00 2001
|
||||
From: Roger Pau Monne <roger.pau@citrix.com>
|
||||
Date: Fri, 20 Jul 2018 10:58:50 +0200
|
||||
Subject: [PATCH 2/2] x86/efi: split compiler vs linker support
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
So that an ELF binary with support for EFI services will be built when
|
||||
the compiler supports the MS ABI, regardless of the linker support for
|
||||
PE.
|
||||
|
||||
Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
|
||||
Reviewed-by: Jan Beulich <jbeulich@suse.com>
|
||||
---
|
||||
Cc: Jan Beulich <jbeulich@suse.com>
|
||||
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
|
||||
Cc: Daniel Kiper <daniel.kiper@oracle.com>
|
||||
---
|
||||
Changes since v1:
|
||||
- New in this version.
|
||||
---
|
||||
xen/arch/x86/Makefile | 9 +++++----
|
||||
xen/arch/x86/efi/Makefile | 6 +++---
|
||||
xen/arch/x86/xen.lds.S | 2 +-
|
||||
3 files changed, 9 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile
|
||||
index 172685fb41..17e7d3fa34 100644
|
||||
--- a/xen/arch/x86/Makefile
|
||||
+++ b/xen/arch/x86/Makefile
|
||||
@@ -163,10 +163,11 @@ EFI_LDFLAGS += --minor-image-version=$(XEN_SUBVERSION)
|
||||
EFI_LDFLAGS += --major-os-version=2 --minor-os-version=0
|
||||
EFI_LDFLAGS += --major-subsystem-version=2 --minor-subsystem-version=0
|
||||
|
||||
-# Check if the build system supports PE.
|
||||
-XEN_BUILD_PE := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
-export XEN_BUILD_PE := $(if $(XEN_BUILD_PE),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
-CFLAGS-$(XEN_BUILD_PE) += -DXEN_BUILD_PE
|
||||
+# Check if the compiler supports the MS ABI.
|
||||
+export XEN_BUILD_EFI := $(shell $(CC) $(filter-out $(CFLAGS-y) .%.d,$(CFLAGS)) -c efi/check.c -o efi/check.o 2>/dev/null && echo y)
|
||||
+# Check if the linker supports PE.
|
||||
+XEN_BUILD_PE := $(if $(XEN_BUILD_EFI),$(shell $(LD) -mi386pep --subsystem=10 -o efi/check.efi efi/check.o 2>/dev/null && echo y))
|
||||
+CFLAGS-$(XEN_BUILD_EFI) += -DXEN_BUILD_EFI
|
||||
|
||||
$(TARGET).efi: VIRT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A VIRT_START$$,,p')
|
||||
$(TARGET).efi: ALT_BASE = 0x$(shell $(NM) efi/relocs-dummy.o | sed -n 's, A ALT_START$$,,p')
|
||||
diff --git a/xen/arch/x86/efi/Makefile b/xen/arch/x86/efi/Makefile
|
||||
index 918383b325..3816de2738 100644
|
||||
--- a/xen/arch/x86/efi/Makefile
|
||||
+++ b/xen/arch/x86/efi/Makefile
|
||||
@@ -6,6 +6,6 @@ CFLAGS += -fshort-wchar
|
||||
boot.init.o: buildid.o
|
||||
|
||||
obj-y := stub.o
|
||||
-obj-$(XEN_BUILD_PE) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
-extra-$(XEN_BUILD_PE) += buildid.o
|
||||
-nocov-$(XEN_BUILD_PE) += stub.o
|
||||
+obj-$(XEN_BUILD_EFI) := boot.init.o compat.o relocs-dummy.o runtime.o
|
||||
+extra-$(XEN_BUILD_EFI) += buildid.o
|
||||
+nocov-$(XEN_BUILD_EFI) += stub.o
|
||||
diff --git a/xen/arch/x86/xen.lds.S b/xen/arch/x86/xen.lds.S
|
||||
index 4a59467986..6e9bda5109 100644
|
||||
--- a/xen/arch/x86/xen.lds.S
|
||||
+++ b/xen/arch/x86/xen.lds.S
|
||||
@@ -304,7 +304,7 @@ SECTIONS
|
||||
} :text
|
||||
#endif
|
||||
|
||||
-#ifndef XEN_BUILD_PE
|
||||
+#ifndef XEN_BUILD_EFI
|
||||
efi = .;
|
||||
#endif
|
||||
|
||||
--
|
||||
2.18.0
|
||||
|
5
sysutils/xen-tools411/pkg-descr
Normal file
5
sysutils/xen-tools411/pkg-descr
Normal file
|
@ -0,0 +1,5 @@
|
|||
The xl program is the new tool for managing Xen guest domains. The program can
|
||||
be used to create, pause, and shutdown domains. It can also be used to list
|
||||
current domains, enable or pin VCPUs, and attach or detach virtual block devices
|
||||
|
||||
WWW: https://wiki.xen.org/wiki/XL
|
601
sysutils/xen-tools411/pkg-plist
Normal file
601
sysutils/xen-tools411/pkg-plist
Normal file
|
@ -0,0 +1,601 @@
|
|||
bin/pygrub
|
||||
bin/xen-cpuid
|
||||
bin/xen-detect
|
||||
bin/xenalyze
|
||||
bin/xencons
|
||||
bin/xencov_split
|
||||
bin/xenstore
|
||||
bin/xenstore-chmod
|
||||
bin/xenstore-control
|
||||
bin/xenstore-exists
|
||||
bin/xenstore-list
|
||||
bin/xenstore-ls
|
||||
bin/xenstore-read
|
||||
bin/xenstore-rm
|
||||
bin/xenstore-watch
|
||||
bin/xenstore-write
|
||||
bin/xentrace_format
|
||||
etc/bash_completion.d/xl.sh
|
||||
etc/rc.d/xencommons
|
||||
etc/rc.d/xendriverdomain
|
||||
%%ETCDIR%%/README
|
||||
%%ETCDIR%%/README.incompatibilities
|
||||
%%ETCDIR%%/cpupool
|
||||
%%ETCDIR%%/oxenstored.conf
|
||||
%%ETCDIR%%/scripts/block
|
||||
%%ETCDIR%%/scripts/hotplugpath.sh
|
||||
%%ETCDIR%%/scripts/vif-bridge
|
||||
%%ETCDIR%%/xl.conf
|
||||
%%ETCDIR%%/xlexample.hvm
|
||||
%%ETCDIR%%/xlexample.pvlinux
|
||||
include/_libxl_list.h
|
||||
include/_libxl_types.h
|
||||
include/_libxl_types_json.h
|
||||
include/fsimage.h
|
||||
include/fsimage_grub.h
|
||||
include/fsimage_plugin.h
|
||||
include/libxl.h
|
||||
include/libxl_event.h
|
||||
include/libxl_json.h
|
||||
include/libxl_utils.h
|
||||
include/libxl_uuid.h
|
||||
include/libxlutil.h
|
||||
include/xen/COPYING
|
||||
include/xen/arch-arm.h
|
||||
include/xen/arch-arm/hvm/save.h
|
||||
include/xen/arch-x86/cpufeatureset.h
|
||||
include/xen/arch-x86/cpuid.h
|
||||
include/xen/arch-x86/hvm/save.h
|
||||
include/xen/arch-x86/hvm/start_info.h
|
||||
include/xen/arch-x86/pmu.h
|
||||
include/xen/arch-x86/xen-mca.h
|
||||
include/xen/arch-x86/xen-x86_32.h
|
||||
include/xen/arch-x86/xen-x86_64.h
|
||||
include/xen/arch-x86/xen.h
|
||||
include/xen/arch-x86_32.h
|
||||
include/xen/arch-x86_64.h
|
||||
include/xen/callback.h
|
||||
include/xen/dom0_ops.h
|
||||
include/xen/domctl.h
|
||||
include/xen/elfnote.h
|
||||
include/xen/errno.h
|
||||
include/xen/event_channel.h
|
||||
include/xen/features.h
|
||||
include/xen/foreign/arm32.h
|
||||
include/xen/foreign/arm64.h
|
||||
include/xen/foreign/x86_32.h
|
||||
include/xen/foreign/x86_64.h
|
||||
include/xen/grant_table.h
|
||||
include/xen/hvm/dm_op.h
|
||||
include/xen/hvm/e820.h
|
||||
include/xen/hvm/hvm_info_table.h
|
||||
include/xen/hvm/hvm_op.h
|
||||
include/xen/hvm/hvm_vcpu.h
|
||||
include/xen/hvm/hvm_xs_strings.h
|
||||
include/xen/hvm/ioreq.h
|
||||
include/xen/hvm/params.h
|
||||
include/xen/hvm/pvdrivers.h
|
||||
include/xen/hvm/save.h
|
||||
include/xen/io/9pfs.h
|
||||
include/xen/io/blkif.h
|
||||
include/xen/io/console.h
|
||||
include/xen/io/displif.h
|
||||
include/xen/io/fbif.h
|
||||
include/xen/io/fsif.h
|
||||
include/xen/io/kbdif.h
|
||||
include/xen/io/libxenvchan.h
|
||||
include/xen/io/netif.h
|
||||
include/xen/io/pciif.h
|
||||
include/xen/io/protocols.h
|
||||
include/xen/io/pvcalls.h
|
||||
include/xen/io/ring.h
|
||||
include/xen/io/sndif.h
|
||||
include/xen/io/tpmif.h
|
||||
include/xen/io/usbif.h
|
||||
include/xen/io/vscsiif.h
|
||||
include/xen/io/xenbus.h
|
||||
include/xen/io/xs_wire.h
|
||||
include/xen/kexec.h
|
||||
include/xen/memory.h
|
||||
include/xen/nmi.h
|
||||
include/xen/physdev.h
|
||||
include/xen/platform.h
|
||||
include/xen/pmu.h
|
||||
include/xen/sched.h
|
||||
include/xen/sys/evtchn.h
|
||||
include/xen/sys/gntdev.h
|
||||
include/xen/sys/privcmd.h
|
||||
include/xen/sysctl.h
|
||||
include/xen/tmem.h
|
||||
include/xen/trace.h
|
||||
include/xen/vcpu.h
|
||||
include/xen/version.h
|
||||
include/xen/vm_event.h
|
||||
include/xen/xen-compat.h
|
||||
include/xen/xen.h
|
||||
include/xen/xencomm.h
|
||||
include/xen/xenoprof.h
|
||||
include/xen/xsm/flask_op.h
|
||||
include/xencall.h
|
||||
include/xenctrl.h
|
||||
include/xenctrl_compat.h
|
||||
include/xendevicemodel.h
|
||||
include/xenevtchn.h
|
||||
include/xenforeignmemory.h
|
||||
include/xengnttab.h
|
||||
include/xenguest.h
|
||||
include/xenstat.h
|
||||
include/xenstore-compat/xs.h
|
||||
include/xenstore-compat/xs_lib.h
|
||||
include/xenstore.h
|
||||
include/xenstore_lib.h
|
||||
include/xentoolcore.h
|
||||
include/xentoollog.h
|
||||
include/xs.h
|
||||
include/xs_lib.h
|
||||
lib/debug/usr/local/lib/xen/boot/xen-shim-syms
|
||||
lib/fs/ext2fs/fsimage.so
|
||||
lib/fs/fat/fsimage.so
|
||||
lib/fs/iso9660/fsimage.so
|
||||
lib/fs/reiserfs/fsimage.so
|
||||
lib/fs/ufs/fsimage.so
|
||||
lib/fs/xfs/fsimage.so
|
||||
lib/fs/zfs/fsimage.so
|
||||
lib/libfsimage.so
|
||||
lib/libfsimage.so.1.0
|
||||
lib/libfsimage.so.1.0.0
|
||||
lib/libxencall.a
|
||||
lib/libxencall.so
|
||||
lib/libxencall.so.1
|
||||
lib/libxencall.so.1.1
|
||||
lib/libxenctrl.a
|
||||
lib/libxenctrl.so
|
||||
lib/libxenctrl.so.4.11
|
||||
lib/libxenctrl.so.4.11.0
|
||||
lib/libxendevicemodel.a
|
||||
lib/libxendevicemodel.so
|
||||
lib/libxendevicemodel.so.1
|
||||
lib/libxendevicemodel.so.1.2
|
||||
lib/libxenevtchn.a
|
||||
lib/libxenevtchn.so
|
||||
lib/libxenevtchn.so.1
|
||||
lib/libxenevtchn.so.1.1
|
||||
lib/libxenforeignmemory.a
|
||||
lib/libxenforeignmemory.so
|
||||
lib/libxenforeignmemory.so.1
|
||||
lib/libxenforeignmemory.so.1.3
|
||||
lib/libxengnttab.a
|
||||
lib/libxengnttab.so
|
||||
lib/libxengnttab.so.1
|
||||
lib/libxengnttab.so.1.1
|
||||
lib/libxenguest.a
|
||||
lib/libxenguest.so
|
||||
lib/libxenguest.so.4.11
|
||||
lib/libxenguest.so.4.11.0
|
||||
lib/libxenlight.a
|
||||
lib/libxenlight.so
|
||||
lib/libxenlight.so.4.11
|
||||
lib/libxenlight.so.4.11.0
|
||||
lib/libxenstat.a
|
||||
lib/libxenstat.so
|
||||
lib/libxenstat.so.0
|
||||
lib/libxenstat.so.0.0
|
||||
lib/libxenstore.a
|
||||
lib/libxenstore.so
|
||||
lib/libxenstore.so.3.0
|
||||
lib/libxenstore.so.3.0.3
|
||||
lib/libxentoolcore.a
|
||||
lib/libxentoolcore.so
|
||||
lib/libxentoolcore.so.1
|
||||
lib/libxentoolcore.so.1.0
|
||||
lib/libxentoollog.a
|
||||
lib/libxentoollog.so
|
||||
lib/libxentoollog.so.1
|
||||
lib/libxentoollog.so.1.0
|
||||
lib/libxlutil.a
|
||||
lib/libxlutil.so
|
||||
lib/libxlutil.so.4.11
|
||||
lib/libxlutil.so.4.11.0
|
||||
%%PYTHON_SITELIBDIR%%/fsimage.so
|
||||
%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.py
|
||||
%%PYTHON_SITELIBDIR%%/grub/ExtLinuxConf.pyc
|
||||
%%PYTHON_SITELIBDIR%%/grub/GrubConf.py
|
||||
%%PYTHON_SITELIBDIR%%/grub/GrubConf.pyc
|
||||
%%PYTHON_SITELIBDIR%%/grub/LiloConf.py
|
||||
%%PYTHON_SITELIBDIR%%/grub/LiloConf.pyc
|
||||
%%PYTHON_SITELIBDIR%%/grub/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/grub/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/pygrub-0.3-py%%PYTHON_VER%%.egg-info
|
||||
%%PYTHON_SITELIBDIR%%/xen-3.0-py%%PYTHON_VER%%.egg-info
|
||||
%%PYTHON_SITELIBDIR%%/xen/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/lowlevel/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/lowlevel/xc.so
|
||||
%%PYTHON_SITELIBDIR%%/xen/lowlevel/xs.so
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/__init__.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/__init__.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/legacy.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/legacy.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/libxc.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/libxc.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/libxl.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/libxl.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/public.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/public.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/tests.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/tests.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/verify.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/verify.pyc
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/xl.py
|
||||
%%PYTHON_SITELIBDIR%%/xen/migration/xl.pyc
|
||||
lib/xen/bin/convert-legacy-stream
|
||||
lib/xen/bin/libxl-save-helper
|
||||
lib/xen/bin/lsevtchn
|
||||
lib/xen/bin/pygrub
|
||||
lib/xen/bin/readnotes
|
||||
lib/xen/bin/verify-stream-v2
|
||||
lib/xen/bin/xen-init-dom0
|
||||
lib/xen/bin/xenconsole
|
||||
lib/xen/bin/xenctx
|
||||
lib/xen/bin/xenpaging
|
||||
lib/xen/bin/xenpvnetboot
|
||||
lib/xen/boot/hvmloader
|
||||
lib/xen/boot/xen-shim
|
||||
libdata/pkgconfig/xencall.pc
|
||||
libdata/pkgconfig/xencontrol.pc
|
||||
libdata/pkgconfig/xendevicemodel.pc
|
||||
libdata/pkgconfig/xenevtchn.pc
|
||||
libdata/pkgconfig/xenforeignmemory.pc
|
||||
libdata/pkgconfig/xengnttab.pc
|
||||
libdata/pkgconfig/xenguest.pc
|
||||
libdata/pkgconfig/xenlight.pc
|
||||
libdata/pkgconfig/xenstat.pc
|
||||
libdata/pkgconfig/xenstore.pc
|
||||
libdata/pkgconfig/xentoolcore.pc
|
||||
libdata/pkgconfig/xentoollog.pc
|
||||
libdata/pkgconfig/xlutil.pc
|
||||
man/man1/xenstore-chmod.1.gz
|
||||
man/man1/xenstore-ls.1.gz
|
||||
man/man1/xenstore.1.gz
|
||||
man/man1/xentop.1.gz
|
||||
man/man1/xentrace_format.1.gz
|
||||
man/man1/xl.1.gz
|
||||
man/man5/xl-disk-configuration.5.gz
|
||||
man/man5/xl-network-configuration.5.gz
|
||||
man/man5/xl.cfg.5.gz
|
||||
man/man5/xl.conf.5.gz
|
||||
man/man5/xlcpupool.cfg.5.gz
|
||||
man/man7/xen-pci-device-reservations.7.gz
|
||||
man/man7/xen-pv-channel.7.gz
|
||||
man/man7/xen-tscmode.7.gz
|
||||
man/man7/xen-vbd-interface.7.gz
|
||||
man/man7/xen-vtpm.7.gz
|
||||
man/man7/xen-vtpmmgr.7.gz
|
||||
man/man7/xl-numa-placement.7.gz
|
||||
man/man8/xentrace.8.gz
|
||||
sbin/flask-get-bool
|
||||
sbin/flask-getenforce
|
||||
sbin/flask-label-pci
|
||||
sbin/flask-loadpolicy
|
||||
sbin/flask-set-bool
|
||||
sbin/flask-setenforce
|
||||
sbin/gdbsx
|
||||
sbin/kdd
|
||||
sbin/oxenstored
|
||||
sbin/xen-bugtool
|
||||
sbin/xen-diag
|
||||
sbin/xen-hptool
|
||||
sbin/xen-hvmcrash
|
||||
sbin/xen-hvmctx
|
||||
sbin/xen-livepatch
|
||||
sbin/xen-lowmemd
|
||||
sbin/xen-mfndump
|
||||
sbin/xen-ringwatch
|
||||
sbin/xen-tmem-list-parse
|
||||
sbin/xenbaked
|
||||
sbin/xenconsoled
|
||||
sbin/xencov
|
||||
sbin/xenlockprof
|
||||
sbin/xenmon.py
|
||||
sbin/xenperf
|
||||
sbin/xenpm
|
||||
sbin/xenpmd
|
||||
sbin/xenstored
|
||||
sbin/xentop
|
||||
sbin/xentrace
|
||||
sbin/xentrace_setmask
|
||||
sbin/xentrace_setsize
|
||||
sbin/xenwatchdogd
|
||||
sbin/xl
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/SUPPORT.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/feature-levelling.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/intel_psr_cat_cdp.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/intel_psr_mba.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/livepatch.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/migration.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/sched_credit.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/sched_credit2.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/sched_rtds.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/features/template.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/.deps
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm,smccc.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,arch-arm.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,callback.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,dom0_ops.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,domctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,elfnote.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,event_channel.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,features.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,grant_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,dm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,e820.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_info_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,hvm_xs_strings.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,ioreq.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,params.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,pvdrivers.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,9pfs.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,blkif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,console.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,displif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,fsif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,kbdif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,libxenvchan.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,netif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,pciif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,protocols.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,pvcalls.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,ring.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,sndif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,tpmif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,usbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,vscsiif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xenbus.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,io,xs_wire.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,kexec.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,memory.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,nmi.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,physdev.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,platform.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,pmu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sched.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,sysctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,tmem.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,trace.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,version.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,vm_event.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen-compat.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xen.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xencomm.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xenoprof.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,public,xsm,flask_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/include,xen,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/arm/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/.deps
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpufeatureset.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,cpuid.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,hvm,start_info.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,pmu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-mca.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen-x86_32.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86,xen.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,arch-x86_32.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,callback.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,dom0_ops.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,domctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,elfnote.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,event_channel.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,features.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,grant_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,dm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,e820.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_info_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,hvm_xs_strings.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,ioreq.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,params.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,pvdrivers.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,9pfs.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,blkif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,console.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,displif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,fsif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,kbdif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,libxenvchan.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,netif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,pciif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,protocols.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,pvcalls.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,ring.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,sndif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,tpmif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,usbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,vscsiif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xenbus.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,io,xs_wire.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,kexec.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,memory.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,nmi.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,physdev.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,platform.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,pmu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sched.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,sysctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,tmem.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,trace.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,version.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,vm_event.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen-compat.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xen.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xencomm.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xenoprof.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,public,xsm,flask_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/include,xen,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_32/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/.deps
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpufeatureset.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,cpuid.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,hvm,start_info.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,pmu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-mca.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen-x86_64.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86,xen.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,arch-x86_64.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,callback.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,dom0_ops.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,domctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,elfnote.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,event_channel.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,features.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,grant_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,dm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,e820.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_info_table.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,hvm_xs_strings.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,ioreq.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,params.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,pvdrivers.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,hvm,save.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,9pfs.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,blkif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,console.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,displif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,fsif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,kbdif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,libxenvchan.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,netif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,pciif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,protocols.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,pvcalls.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,ring.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,sndif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,tpmif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,usbif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,vscsiif.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xenbus.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,io,xs_wire.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,kexec.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,memory.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,nmi.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,physdev.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,platform.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,pmu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sched.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,sysctl.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,tmem.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,trace.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vcpu.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,version.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,vm_event.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen-compat.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xen.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xencomm.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xenoprof.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,public,xsm,flask_op.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/include,xen,errno.h.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/hypercall/x86_64/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-pci-device-reservations.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-pv-channel.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-tscmode.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-vbd-interface.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-vtpm.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xen-vtpmmgr.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-chmod.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore-ls.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xenstore.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xentop.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace.8.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xentrace_format.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl-disk-configuration.5.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl-network-configuration.5.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl-numa-placement.7.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.1.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.cfg.5.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xl.conf.5.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/man/xlcpupool.cfg.5.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/9pfs.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/amd-ucode-container.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/big.LITTLE.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/booting.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/acpi.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/booting.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/guest.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/device-tree/passthrough.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/early-printk.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/passthrough.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/arm/silicon-errata.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/block-scripts.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/console.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/coverage.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/crashdb.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/distro_mapping.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/dump-core-format.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/efi.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/grant-tables.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/hvm-emulated-unplug.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig-language.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/kconfig.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/kexec_and_kdump.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/libxl_memory.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/livepatch.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/netif-staging-grants.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/printk-formats.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/pv-drivers-lifecycle.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvcalls.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/pvh.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-backends.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/qemu-deprivilege.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/stubdom.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd-pi.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtd.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/vtpm-platforms.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/x86-xenpv-bootloader.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-command-line.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xen-error-handling.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenmon.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenpaging.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-paths.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore-ring.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xenstore.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xl-psr.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/misc/xsm-flask.txt
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/process/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/process/xen-release-management.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/specs/index.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/specs/libxc-migration-stream.html
|
||||
%%PORTDOCS%%%%DOCSDIR%%/html/specs/libxl-migration-stream.html
|
||||
@dir %%ETCDIR%%/auto
|
||||
@dir /var/lib/xen/dump
|
||||
@dir /var/lib/xen/xenpaging
|
||||
@dir /var/lib/xen
|
||||
@dir /var/lib/xenstored
|
||||
@dir /var/lib
|
||||
@dir /var/log/xen
|
||||
@dir /var/run/xen
|
||||
@dir /var/run/xenstored
|
Loading…
Reference in a new issue