summaryrefslogtreecommitdiff
path: root/sysutils
diff options
context:
space:
mode:
authorcegger <cegger@pkgsrc.org>2011-04-06 09:10:26 +0000
committercegger <cegger@pkgsrc.org>2011-04-06 09:10:26 +0000
commit3d98a888d552a55bc241d2f6325949226a5b00dc (patch)
tree858455abd0624198d448794d93c49c94d97e17ad /sysutils
parenta46c485bfcab1f43de882123d0d8083fa5556b69 (diff)
downloadpkgsrc-3d98a888d552a55bc241d2f6325949226a5b00dc.tar.gz
The Xen virtual machine monitor allows running several virtual machines
on a single physical machine. The xentools41 package contains the tools to create, destroy and control the virtual machines. This package contains the tools for Xen 4.1.x Release notes: The Xen team is pleased to announce the release of Xen 4.1. The result of nearly 12 months of development, new features include: * A re-architected and improved XL toolstack replacing XM/XEND * Prototype credit2 scheduler designed for latency-sensitive workloads and very large systems. * CPU Pools for advanced partitioning. * Support for large systems (>255 processors) * Support for x86 Advanced Vector eXtension (AVX). * New Memory Access API enabling integration of 3rd party security solutions into Xen virtualized environments. * Many IOMMU fixes (both Intel VT-d IOMMU and AMD IOMMU). * Many toolstack and buildsystem fixes for Linux and NetBSD hosts. * Thirdparty libs: libvirt driver for libxl has been merged to upstream libvirt. * HVM guest PXE boot enhancements, replacing gPXE with iPXE. * Even better stability through our new automated regression tests. Detailed release notes, including a more extensive feature list: http://wiki.xen.org/xenwiki/Xen4.1 To download tarballs: http://xen.org/products/xen_source.html Or the Mercurial source repository (tag 'RELEASE-4.1.0'): http://xenbits.xen.org/xen-unstable.hg And the announcement on the Xen blog: http://blog.xen.org/index.php/2011/03/25/xen-4-1-releases/ Thanks to the many people who have contributed to this release! Regards, The Xen Team
Diffstat (limited to 'sysutils')
-rw-r--r--sysutils/xentools41/DESCR5
-rw-r--r--sysutils/xentools41/MESSAGE.NetBSD17
-rw-r--r--sysutils/xentools41/Makefile162
-rw-r--r--sysutils/xentools41/PLIST739
-rw-r--r--sysutils/xentools41/distinfo33
-rw-r--r--sysutils/xentools41/files/blk_netbsd.c39
-rw-r--r--sysutils/xentools41/files/blktapctrl_netbsd.c16
-rw-r--r--sysutils/xentools41/files/xen-watchdog.sh17
-rw-r--r--sysutils/xentools41/files/xencommons.sh120
-rw-r--r--sysutils/xentools41/files/xend.sh15
-rw-r--r--sysutils/xentools41/files/xendomains.sh127
-rw-r--r--sysutils/xentools41/patches/patch-aa12
-rw-r--r--sysutils/xentools41/patches/patch-ab16
-rw-r--r--sysutils/xentools41/patches/patch-ac13
-rw-r--r--sysutils/xentools41/patches/patch-ad13
-rw-r--r--sysutils/xentools41/patches/patch-ae13
-rw-r--r--sysutils/xentools41/patches/patch-af26
-rw-r--r--sysutils/xentools41/patches/patch-ag22
-rw-r--r--sysutils/xentools41/patches/patch-ah26
-rw-r--r--sysutils/xentools41/patches/patch-ai18
-rw-r--r--sysutils/xentools41/patches/patch-aj16
-rw-r--r--sysutils/xentools41/patches/patch-ak14
-rw-r--r--sysutils/xentools41/patches/patch-ba56
-rw-r--r--sysutils/xentools41/patches/patch-bb213
-rw-r--r--sysutils/xentools41/patches/patch-bc110
-rw-r--r--sysutils/xentools41/patches/patch-ca47
-rw-r--r--sysutils/xentools41/patches/patch-cb36
-rw-r--r--sysutils/xentools41/patches/patch-cc40
-rw-r--r--sysutils/xentools41/patches/patch-cd13
-rw-r--r--sysutils/xentools41/patches/patch-ce24
-rw-r--r--sysutils/xentools41/patches/patch-cf17
-rw-r--r--sysutils/xentools41/patches/patch-cg22
-rw-r--r--sysutils/xentools41/patches/patch-ch16
-rw-r--r--sysutils/xentools41/patches/patch-da23
-rw-r--r--sysutils/xentools41/patches/patch-db85
-rw-r--r--sysutils/xentools41/patches/patch-dc34
36 files changed, 2215 insertions, 0 deletions
diff --git a/sysutils/xentools41/DESCR b/sysutils/xentools41/DESCR
new file mode 100644
index 00000000000..04e509483fc
--- /dev/null
+++ b/sysutils/xentools41/DESCR
@@ -0,0 +1,5 @@
+The Xen virtual machine monitor allows running several virtual machines
+on a single physical machine. The xentools41 package contains the
+tools to create, destroy and control the virtual machines.
+
+This package contains the tools for Xen 4.1.x
diff --git a/sysutils/xentools41/MESSAGE.NetBSD b/sysutils/xentools41/MESSAGE.NetBSD
new file mode 100644
index 00000000000..28dae84aab1
--- /dev/null
+++ b/sysutils/xentools41/MESSAGE.NetBSD
@@ -0,0 +1,17 @@
+===========================================================================
+$NetBSD: MESSAGE.NetBSD,v 1.1.1.1 2011/04/06 09:10:26 cegger Exp $
+
+Please ensure that the Xen-specific devices needed by xend(8) exist:
+
+ cd /dev && sh MAKEDEV xen
+
+There are example configuration files for setting up a guest domain in:
+
+ ${EGDIR}/
+
+Please also refer to the the "NetBSD/xen How-To" for more information on
+creating a Xen setup:
+
+ http://www.NetBSD.org/ports/xen/howto.html
+
+===========================================================================
diff --git a/sysutils/xentools41/Makefile b/sysutils/xentools41/Makefile
new file mode 100644
index 00000000000..7656b4d220e
--- /dev/null
+++ b/sysutils/xentools41/Makefile
@@ -0,0 +1,162 @@
+# $NetBSD: Makefile,v 1.1.1.1 2011/04/06 09:10:26 cegger Exp $
+#
+
+VERSION= 4.1.0
+DISTNAME= xen-${VERSION}
+PKGNAME= xentools41-${VERSION}
+#PKGREVISION= 1
+CATEGORIES= sysutils
+MASTER_SITES= http://bits.xensource.com/oss-xen/release/${VERSION}/
+EXTRACT_SUFX= .tar.gz
+
+DISTFILES= ${DISTNAME}.tar.gz
+DISTFILES+= ipxe-git-v1.0.0.tar.gz
+SITES.ipxe-git-v1.0.0.tar.gz += http://xenbits.xensource.com/xen-extfiles/
+
+MAINTAINER= cegger@NetBSD.org
+HOMEPAGE= http://xen.org/
+COMMENT= Userland Tools for Xen 4.1.x
+
+LICENSE= gnu-gpl-v2
+
+PKG_DESTDIR_SUPPORT= user-destdir
+
+#DEPENDS+= ${PYPKGPREFIX}-readline-[0-9]*:../../devel/py-readline
+
+# XXX add version check: Xen requires dev86 >= 0.16.14
+BUILD_DEPENDS+= dev86-[0-9]*:../../devel/dev86 # needed to build firmware
+
+PKG_SYSCONFSUBDIR= xen
+
+ONLY_FOR_PLATFORM= Linux-2.6*-i386 Linux-2.6*-x86_64
+ONLY_FOR_PLATFORM+= NetBSD-[5-9].*-x86_64 NetBSD-[5-9].*-i386
+
+CONFLICTS+= libxen-[0-9]*
+CONFLICTS+= xentools20-[0-9]*
+CONFLICTS+= xentools3*
+
+WRKSRC= ${WRKDIR}/xen-${VERSION}/tools
+CHECK_PORTABILITY_SKIP= examples/* xm-test/ramdisk/make-release
+
+EGDIR= ${PREFIX}/share/examples/xen
+MESSAGE_SUBST= EGDIR=${EGDIR}
+
+USE_TOOLS+= perl #for pod2man
+USE_TOOLS+= gmake
+
+MAKE_ENV+= PREFIX=${prefix:Q} WRKSRC=${WRKSRC}
+MAKE_ENV+= EGDIR=${EGDIR:Q}
+MAKE_ENV+= MV=${MV:Q} PYTHON=${PYTHONBIN:Q} SED=${SED:Q}
+MAKE_ENV+= VARBASE=${VARBASE}
+
+#MAKE_ENV+= INSTALL_DIR=${BSD_INSTALL_DATA_DIR}
+#MAKE_ENV+= INSTALL_DATA=${BSD_INSTALL_DATA}
+#MAKE_ENV+= INSTALL_PROG=${BSD_INSTALL_PROGRAM}
+
+#INSTALL_MAKE_FLAGS+= CONFIG_DIR=${prefix}/share/examples
+
+PY_PATCHPLIST= yes
+#PYTHON_PATCH_SCRIPTS+= misc/xm
+#PYTHON_PATCH_SCRIPTS+= misc/netfix
+#PYTHON_PATCH_SCRIPTS+= misc/xen-bugtool
+#PYTHON_PATCH_SCRIPTS+= misc/xencons
+#PYTHON_PATCH_SCRIPTS+= misc/xend
+#PYTHON_PATCH_SCRIPTS+= misc/xensymoops
+#PYTHON_PATCH_SCRIPTS+= misc/xen-python-path
+#PYTHON_PATCH_SCRIPTS+= pygrub/src/pygrub
+#PYTHON_PATCH_SCRIPTS+= python/xen/util/*.py
+#PYTHON_PATCH_SCRIPTS+= python/xen/xend/*.py
+#PYTHON_PATCH_SCRIPTS+= python/xen/xm/*.py
+#PYTHON_PATCH_SCRIPTS+= python/xen/util/*.py
+#PYTHON_PATCH_SCRIPTS+= python/*.py
+#PYTHON_PATCH_SCRIPTS+= security/python/xensec_gen/cgi-bin/policy.cgi
+#PYTHON_PATCH_SCRIPTS+= security/python/xensec_gen/*.py
+#PYTHON_PATCH_SCRIPTS+= security/python/*.py
+#PYTHON_PATCH_SCRIPTS+= security/*.py
+#PYTHON_PATCH_SCRIPTS+= xenmon/*.py
+#PYTHON_PATCH_SCRIPTS+= xentrace/xentrace_format
+
+SUBST_CLASSES+= pathsvar
+SUBST_STAGE.pathsvar= pre-configure
+SUBST_FILES.pathsvar= Makefile \
+ examples/xend-config.sxp \
+ hotplug/Linux/init.d/sysconfig.xendomains \
+ python/xen/xend/XendOptions.py \
+ python/xen/xend/server/relocate.py \
+ python/xen/xend/tests/xend-config.sxp \
+ security/Makefile \
+ security/python/xensec_gen/main.py \
+ xenstore/xs_lib.c
+SUBST_SED.pathsvar= -e "s|/var/lib|${VARBASE}/run|g"
+
+SUBST_CLASSES+= conf
+SUBST_STAGE.conf= pre-configure
+SUBST_FILES.conf+= python/xen/xm/create.py
+SUBST_SED.conf= -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g"
+
+.include "../../mk/bsd.prefs.mk"
+
+.if ${OPSYS} == "NetBSD"
+SUBST_CLASSES+= proc
+SUBST_STAGE.proc= pre-configure
+SUBST_FILES.proc= python/xen/xend/XendVnet.py
+SUBST_SED.proc= -e "s|/proc|/kern|g"
+PROCPATH= /kern
+.else
+PROCPATH= /proc
+.endif
+
+RCD_SCRIPTS= xen-watchdog xencommons xend xendomains
+FILES_SUBST+= RCD_INTERPRETER=${PYTHONBIN:Q}
+FILES_SUBST+= PROCPATH=${PROCPATH:Q}
+FILES_SUBST+= PKG_SYSCONFDIR=${PKG_SYSCONFDIR:Q}
+FILES_SUBST+= PREFIX=${PREFIX:Q}
+
+BLKTAP_FILES= blk_netbsd.c blktapctrl_netbsd.c
+
+#CONF_FILES= ${EGDIR}/formats ${PKG_SYSCONFDIR}/formats
+
+CONF_FILES= ${EGDIR}/xend-config.sxp \
+ ${PKG_SYSCONFDIR}/xend-config.sxp
+
+OWN_DIRS= ${PKG_SYSCONFDIR}/scripts ${VARBASE}/log/xen ${VARBASE}/lib
+
+pre-build:
+ rm -f ${WRKSRC}/check/check_x11_devel
+.for s in ${BLKTAP_FILES}
+ ${CP} ${FILESDIR}/${s} ${WRKSRC}/blktap/drivers/
+.endfor
+ pod2man ${WRKSRC}/../docs/man/xend-config.sxp.pod.5 |\
+ ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
+ >${WRKDIR}/xend-config.sxp.5
+ pod2man ${WRKSRC}/../docs/man/xmdomain.cfg.pod.5 |\
+ ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
+ >${WRKDIR}/xmdomain.cfg.5
+ pod2man ${WRKSRC}/../docs/man/xm.pod.1 |\
+ ${SED} -e "s,@XENDCONFDIR@,${PKG_SYSCONFDIR},g" \
+ >${WRKDIR}/xm.1
+
+INSTALLATION_DIRS= ${EGDIR} ${PKGMANDIR}/man5
+
+post-install:
+ for f in xend-config.sxp xmexample1 xmexample2 xmexample3; do \
+ ${INSTALL_DATA} ${WRKSRC}/examples/$$f ${DESTDIR}${EGDIR}/$$f; \
+ done
+ ${INSTALL_DATA} ${WRKDIR}/xend-config.sxp.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
+ ${INSTALL_DATA} ${WRKDIR}/xmdomain.cfg.5 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man5
+ ${INSTALL_DATA} ${WRKDIR}/xm.1 ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1
+
+.if ${OPSYS} == "NetBSD"
+CPPFLAGS+= -Dshm_open=open -Dshm_unlink=unlink
+.endif
+
+.include "../../lang/python/application.mk"
+.include "../../lang/python/extension.mk"
+.include "../../textproc/py-xml/buildlink3.mk"
+.include "../../devel/py-curses/buildlink3.mk"
+.include "../../devel/ncurses/buildlink3.mk"
+#.include "../../devel/SDL/buildlink3.mk"
+.include "../../lang/ocaml/buildlink3.mk"
+.include "../../devel/ocaml-findlib/buildlink3.mk"
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/sysutils/xentools41/PLIST b/sysutils/xentools41/PLIST
new file mode 100644
index 00000000000..187fa056669
--- /dev/null
+++ b/sysutils/xentools41/PLIST
@@ -0,0 +1,739 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2011/04/06 09:10:26 cegger Exp $
+bin/lsevtchn
+bin/pygrub
+bin/qemu-img-xen
+bin/readnotes
+bin/remus
+bin/xc_restore
+bin/xc_save
+bin/xen-detect
+bin/xencons
+bin/xenconsole
+bin/xenctx
+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
+bin/xentrace_format
+bin/xentrace_setsize
+etc/xen/scripts/hotplugpath.sh
+include/_libxl_types.h
+include/blktaplib.h
+include/fsimage.h
+include/fsimage_plugin.h
+include/fsimage_grub.h
+include/libxl.h
+include/libxl_uuid.h
+include/xen/arch-ia64/hvm/memmap.h
+include/xen/arch-ia64/hvm/save.h
+include/xen/arch-ia64/debug_op.h
+include/xen/arch-ia64/sioemu.h
+include/xen/arch-x86/hvm/save.h
+include/xen/arch-x86/cpuid.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/foreign/ia64.h
+include/xen/foreign/x86_32.h
+include/xen/foreign/${MACHINE_ARCH}.h
+include/xen/hvm/e820.h
+include/xen/hvm/hvm_info_table.h
+include/xen/hvm/hvm_op.h
+include/xen/hvm/ioreq.h
+include/xen/hvm/params.h
+include/xen/hvm/save.h
+include/xen/io/blkif.h
+include/xen/io/console.h
+include/xen/io/fbif.h
+include/xen/io/fsif.h
+include/xen/io/kbdif.h
+include/xen/io/netif.h
+include/xen/io/pciif.h
+include/xen/io/protocols.h
+include/xen/io/ring.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/sys/evtchn.h
+include/xen/sys/gntdev.h
+include/xen/sys/privcmd.h
+include/xen/xsm/acm.h
+include/xen/xsm/acm_ops.h
+include/xen/xsm/flask_op.h
+include/xen/xsm/libflask.h
+include/xen/COPYING
+include/xen/arch-ia64.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/event_channel.h
+include/xen/features.h
+include/xen/grant_table.h
+include/xen/kexec.h
+include/xen/mem_event.h
+include/xen/memory.h
+include/xen/nmi.h
+include/xen/physdev.h
+include/xen/platform.h
+include/xen/sched.h
+include/xen/sysctl.h
+include/xen/tmem.h
+include/xen/trace.h
+include/xen/vcpu.h
+include/xen/version.h
+include/xen/xen-compat.h
+include/xen/xen.h
+include/xen/xencomm.h
+include/xen/xenoprof.h
+include/xenctrl.h
+include/xenctrlosdep.h
+include/xentoollog.h
+include/xenguest.h
+include/xs.h
+include/xs_lib.h
+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/zfs/fsimage.so
+lib/libblktap.a
+lib/libblktap.so
+lib/libblktap.so.3.0
+lib/libblktap.so.3.0.0
+lib/libflask.a
+lib/libflask.so
+lib/libflask.so.1.0
+lib/libflask.so.1.0.0
+lib/libfsimage.so
+lib/libfsimage.so.1.0
+lib/libfsimage.so.1.0.0
+lib/libxenctrl.a
+lib/libxenctrl.so
+lib/libxenctrl.so.4.0
+lib/libxenctrl.so.4.0.0
+lib/libxenguest.a
+lib/libxenguest.so
+lib/libxenguest.so.4.0
+lib/libxenguest.so.4.0.0
+lib/libxenlight.a
+lib/libxenlight.so
+lib/libxenlight.so.1.0
+lib/libxenlight.so.1.0.0
+lib/libxenstore.a
+lib/libxenstore.so
+lib/libxenstore.so.3.0
+lib/libxenstore.so.3.0.0
+lib/libxlutil.a
+lib/libxlutil.so
+lib/libxlutil.so.1.0
+lib/libxlutil.so.1.0.0
+lib/ocaml/site-lib/eventchn/META
+lib/ocaml/site-lib/eventchn/dlleventchn_stubs.so
+lib/ocaml/site-lib/eventchn/eventchn.a
+lib/ocaml/site-lib/eventchn/eventchn.cma
+lib/ocaml/site-lib/eventchn/eventchn.cmi
+lib/ocaml/site-lib/eventchn/eventchn.cmx
+lib/ocaml/site-lib/eventchn/eventchn.cmxa
+lib/ocaml/site-lib/eventchn/libeventchn_stubs.a
+lib/ocaml/site-lib/log/META
+lib/ocaml/site-lib/log/dllsyslog_stubs.so
+lib/ocaml/site-lib/log/libsyslog_stubs.a
+lib/ocaml/site-lib/log/log.a
+lib/ocaml/site-lib/log/log.cma
+lib/ocaml/site-lib/log/log.cmi
+lib/ocaml/site-lib/log/log.cmx
+lib/ocaml/site-lib/log/log.cmxa
+lib/ocaml/site-lib/log/logs.cmi
+lib/ocaml/site-lib/log/logs.cmx
+lib/ocaml/site-lib/log/syslog.cmi
+lib/ocaml/site-lib/log/syslog.cmx
+lib/ocaml/site-lib/mmap/META
+lib/ocaml/site-lib/mmap/dllmmap_stubs.so
+lib/ocaml/site-lib/mmap/libmmap_stubs.a
+lib/ocaml/site-lib/mmap/mmap.a
+lib/ocaml/site-lib/mmap/mmap.cma
+lib/ocaml/site-lib/mmap/mmap.cmi
+lib/ocaml/site-lib/mmap/mmap.cmx
+lib/ocaml/site-lib/mmap/mmap.cmxa
+lib/ocaml/site-lib/uuid/META
+lib/ocaml/site-lib/uuid/uuid.a
+lib/ocaml/site-lib/uuid/uuid.cma
+lib/ocaml/site-lib/uuid/uuid.cmi
+lib/ocaml/site-lib/uuid/uuid.cmx
+lib/ocaml/site-lib/uuid/uuid.cmxa
+lib/ocaml/site-lib/xb/META
+lib/ocaml/site-lib/xb/dllxb_stubs.so
+lib/ocaml/site-lib/xb/libxb_stubs.a
+lib/ocaml/site-lib/xb/op.cmi
+lib/ocaml/site-lib/xb/op.cmx
+lib/ocaml/site-lib/xb/packet.cmi
+lib/ocaml/site-lib/xb/packet.cmx
+lib/ocaml/site-lib/xb/partial.cmx
+lib/ocaml/site-lib/xb/xb.a
+lib/ocaml/site-lib/xb/xb.cma
+lib/ocaml/site-lib/xb/xb.cmi
+lib/ocaml/site-lib/xb/xb.cmx
+lib/ocaml/site-lib/xb/xb.cmxa
+lib/ocaml/site-lib/xb/xs_ring.cmx
+lib/ocaml/site-lib/xc/META
+lib/ocaml/site-lib/xc/dllxc_stubs.so
+lib/ocaml/site-lib/xc/libxc_stubs.a
+lib/ocaml/site-lib/xc/xc.a
+lib/ocaml/site-lib/xc/xc.cma
+lib/ocaml/site-lib/xc/xc.cmi
+lib/ocaml/site-lib/xc/xc.cmx
+lib/ocaml/site-lib/xc/xc.cmxa
+lib/ocaml/site-lib/xl/META
+lib/ocaml/site-lib/xl/dllxl_stubs.so
+lib/ocaml/site-lib/xl/libxl_stubs.a
+lib/ocaml/site-lib/xl/xl.a
+lib/ocaml/site-lib/xl/xl.cma
+lib/ocaml/site-lib/xl/xl.cmi
+lib/ocaml/site-lib/xl/xl.cmx
+lib/ocaml/site-lib/xl/xl.cmxa
+lib/ocaml/site-lib/xs/META
+lib/ocaml/site-lib/xs/queueop.cmx
+lib/ocaml/site-lib/xs/xs.a
+lib/ocaml/site-lib/xs/xs.cma
+lib/ocaml/site-lib/xs/xs.cmi
+lib/ocaml/site-lib/xs/xs.cmx
+lib/ocaml/site-lib/xs/xs.cmxa
+lib/ocaml/site-lib/xs/xsraw.cmi
+lib/ocaml/site-lib/xs/xsraw.cmx
+lib/ocaml/site-lib/xs/xst.cmi
+lib/ocaml/site-lib/xs/xst.cmx
+${PYSITELIB}/fsimage.so
+${PYSITELIB}/grub/ExtLinuxConf.py
+${PYSITELIB}/grub/ExtLinuxConf.pyc
+${PYSITELIB}/grub/GrubConf.py
+${PYSITELIB}/grub/GrubConf.pyc
+${PYSITELIB}/grub/LiloConf.py
+${PYSITELIB}/grub/LiloConf.pyc
+${PYSITELIB}/grub/__init__.py
+${PYSITELIB}/grub/__init__.pyc
+${PYSITELIB}/xen/__init__.py
+${PYSITELIB}/xen/__init__.pyc
+${PYSITELIB}/xen/lowlevel/__init__.py
+${PYSITELIB}/xen/lowlevel/__init__.pyc
+${PYSITELIB}/xen/lowlevel/acm.so
+${PYSITELIB}/xen/lowlevel/flask.so
+${PYSITELIB}/xen/lowlevel/ptsname.so
+${PYSITELIB}/xen/lowlevel/xc.so
+${PYSITELIB}/xen/lowlevel/xl.so
+${PYSITELIB}/xen/lowlevel/xs.so
+${PYSITELIB}/xen/remus/__init__.py
+${PYSITELIB}/xen/remus/__init__.pyc
+${PYSITELIB}/xen/remus/blkdev.py
+${PYSITELIB}/xen/remus/blkdev.pyc
+${PYSITELIB}/xen/remus/device.py
+${PYSITELIB}/xen/remus/device.pyc
+${PYSITELIB}/xen/remus/image.py
+${PYSITELIB}/xen/remus/image.pyc
+${PYSITELIB}/xen/remus/netlink.py
+${PYSITELIB}/xen/remus/netlink.pyc
+${PYSITELIB}/xen/remus/profile.py
+${PYSITELIB}/xen/remus/profile.pyc
+${PYSITELIB}/xen/remus/qdisc.py
+${PYSITELIB}/xen/remus/qdisc.pyc
+${PYSITELIB}/xen/remus/save.py
+${PYSITELIB}/xen/remus/save.pyc
+${PYSITELIB}/xen/remus/tapdisk.py
+${PYSITELIB}/xen/remus/tapdisk.pyc
+${PYSITELIB}/xen/remus/util.py
+${PYSITELIB}/xen/remus/util.pyc
+${PYSITELIB}/xen/remus/vbd.py
+${PYSITELIB}/xen/remus/vbd.pyc
+${PYSITELIB}/xen/remus/vdi.py
+${PYSITELIB}/xen/remus/vdi.pyc
+${PYSITELIB}/xen/remus/vif.py
+${PYSITELIB}/xen/remus/vif.pyc
+${PYSITELIB}/xen/remus/vm.py
+${PYSITELIB}/xen/remus/vm.pyc
+${PYSITELIB}/xen/sv/CreateDomain.py
+${PYSITELIB}/xen/sv/CreateDomain.pyc
+${PYSITELIB}/xen/sv/DomInfo.py
+${PYSITELIB}/xen/sv/DomInfo.pyc
+${PYSITELIB}/xen/sv/GenTabbed.py
+${PYSITELIB}/xen/sv/GenTabbed.pyc
+${PYSITELIB}/xen/sv/HTMLBase.py
+${PYSITELIB}/xen/sv/HTMLBase.pyc
+${PYSITELIB}/xen/sv/Main.py
+${PYSITELIB}/xen/sv/Main.pyc
+${PYSITELIB}/xen/sv/NodeInfo.py
+${PYSITELIB}/xen/sv/NodeInfo.pyc
+${PYSITELIB}/xen/sv/RestoreDomain.py
+${PYSITELIB}/xen/sv/RestoreDomain.pyc
+${PYSITELIB}/xen/sv/Wizard.py
+${PYSITELIB}/xen/sv/Wizard.pyc
+${PYSITELIB}/xen/sv/__init__.py
+${PYSITELIB}/xen/sv/__init__.pyc
+${PYSITELIB}/xen/sv/util.py
+${PYSITELIB}/xen/sv/util.pyc
+${PYSITELIB}/xen/util/Brctl.py
+${PYSITELIB}/xen/util/Brctl.pyc
+${PYSITELIB}/xen/util/SSHTransport.py
+${PYSITELIB}/xen/util/SSHTransport.pyc
+${PYSITELIB}/xen/util/__init__.py
+${PYSITELIB}/xen/util/__init__.pyc
+${PYSITELIB}/xen/util/acmpolicy.py
+${PYSITELIB}/xen/util/acmpolicy.pyc
+${PYSITELIB}/xen/util/asserts.py
+${PYSITELIB}/xen/util/asserts.pyc
+${PYSITELIB}/xen/util/auxbin.py
+${PYSITELIB}/xen/util/auxbin.pyc
+${PYSITELIB}/xen/util/blkif.py
+${PYSITELIB}/xen/util/blkif.pyc
+${PYSITELIB}/xen/util/bootloader.py
+${PYSITELIB}/xen/util/bootloader.pyc
+${PYSITELIB}/xen/util/bugtool.py
+${PYSITELIB}/xen/util/bugtool.pyc
+${PYSITELIB}/xen/util/diagnose.py
+${PYSITELIB}/xen/util/diagnose.pyc
+${PYSITELIB}/xen/util/dictio.py
+${PYSITELIB}/xen/util/dictio.pyc
+${PYSITELIB}/xen/util/fileuri.py
+${PYSITELIB}/xen/util/fileuri.pyc
+${PYSITELIB}/xen/util/ip.py
+${PYSITELIB}/xen/util/ip.pyc
+${PYSITELIB}/xen/util/mac.py
+${PYSITELIB}/xen/util/mac.pyc
+${PYSITELIB}/xen/util/mkdir.py
+${PYSITELIB}/xen/util/mkdir.pyc
+${PYSITELIB}/xen/util/oshelp.py
+${PYSITELIB}/xen/util/oshelp.pyc
+${PYSITELIB}/xen/util/path.py
+${PYSITELIB}/xen/util/path.pyc
+${PYSITELIB}/xen/util/pci.py
+${PYSITELIB}/xen/util/pci.pyc
+${PYSITELIB}/xen/util/rwlock.py
+${PYSITELIB}/xen/util/rwlock.pyc
+${PYSITELIB}/xen/util/sxputils.py
+${PYSITELIB}/xen/util/sxputils.pyc
+${PYSITELIB}/xen/util/utils.py
+${PYSITELIB}/xen/util/utils.pyc
+${PYSITELIB}/xen/util/vscsi_util.py
+${PYSITELIB}/xen/util/vscsi_util.pyc
+${PYSITELIB}/xen/util/vusb_util.py
+${PYSITELIB}/xen/util/vusb_util.pyc
+${PYSITELIB}/xen/util/xmlrpcclient.py
+${PYSITELIB}/xen/util/xmlrpcclient.pyc
+${PYSITELIB}/xen/util/xmlrpclib2.py
+${PYSITELIB}/xen/util/xmlrpclib2.pyc
+${PYSITELIB}/xen/util/xpopen.py
+${PYSITELIB}/xen/util/xpopen.pyc
+${PYSITELIB}/xen/util/xsconstants.py
+${PYSITELIB}/xen/util/xsconstants.pyc
+${PYSITELIB}/xen/util/xsm/__init__.py
+${PYSITELIB}/xen/util/xsm/__init__.pyc
+${PYSITELIB}/xen/util/xsm/acm/__init__.py
+${PYSITELIB}/xen/util/xsm/acm/__init__.pyc
+${PYSITELIB}/xen/util/xsm/acm/acm.py
+${PYSITELIB}/xen/util/xsm/acm/acm.pyc
+${PYSITELIB}/xen/util/xsm/dummy/__init__.py
+${PYSITELIB}/xen/util/xsm/dummy/__init__.pyc
+${PYSITELIB}/xen/util/xsm/dummy/dummy.py
+${PYSITELIB}/xen/util/xsm/dummy/dummy.pyc
+${PYSITELIB}/xen/util/xsm/flask/__init__.py
+${PYSITELIB}/xen/util/xsm/flask/__init__.pyc
+${PYSITELIB}/xen/util/xsm/flask/flask.py
+${PYSITELIB}/xen/util/xsm/flask/flask.pyc
+${PYSITELIB}/xen/util/xsm/xsm.py
+${PYSITELIB}/xen/util/xsm/xsm.pyc
+${PYSITELIB}/xen/util/xsm/xsm_core.py
+${PYSITELIB}/xen/util/xsm/xsm_core.pyc
+${PYSITELIB}/xen/util/xspolicy.py
+${PYSITELIB}/xen/util/xspolicy.pyc
+${PYSITELIB}/xen/web/SrvBase.py
+${PYSITELIB}/xen/web/SrvBase.pyc
+${PYSITELIB}/xen/web/SrvDir.py
+${PYSITELIB}/xen/web/SrvDir.pyc
+${PYSITELIB}/xen/web/__init__.py
+${PYSITELIB}/xen/web/__init__.pyc
+${PYSITELIB}/xen/web/connection.py
+${PYSITELIB}/xen/web/connection.pyc
+${PYSITELIB}/xen/web/http.py
+${PYSITELIB}/xen/web/http.pyc
+${PYSITELIB}/xen/web/httpserver.py
+${PYSITELIB}/xen/web/httpserver.pyc
+${PYSITELIB}/xen/web/protocol.py
+${PYSITELIB}/xen/web/protocol.pyc
+${PYSITELIB}/xen/web/resource.py
+${PYSITELIB}/xen/web/resource.pyc
+${PYSITELIB}/xen/web/static.py
+${PYSITELIB}/xen/web/static.pyc
+${PYSITELIB}/xen/web/tcp.py
+${PYSITELIB}/xen/web/tcp.pyc
+${PYSITELIB}/xen/web/unix.py
+${PYSITELIB}/xen/web/unix.pyc
+${PYSITELIB}/xen/xend/Args.py
+${PYSITELIB}/xen/xend/Args.pyc
+${PYSITELIB}/xen/xend/MemoryPool.py
+${PYSITELIB}/xen/xend/MemoryPool.pyc
+${PYSITELIB}/xen/xend/PrettyPrint.py
+${PYSITELIB}/xen/xend/PrettyPrint.pyc
+${PYSITELIB}/xen/xend/Vifctl.py
+${PYSITELIB}/xen/xend/Vifctl.pyc
+${PYSITELIB}/xen/xend/XendAPI.py
+${PYSITELIB}/xen/xend/XendAPI.pyc
+${PYSITELIB}/xen/xend/XendAPIConstants.py
+${PYSITELIB}/xen/xend/XendAPIConstants.pyc
+${PYSITELIB}/xen/xend/XendAPIStore.py
+${PYSITELIB}/xen/xend/XendAPIStore.pyc
+${PYSITELIB}/xen/xend/XendAPIVersion.py
+${PYSITELIB}/xen/xend/XendAPIVersion.pyc
+${PYSITELIB}/xen/xend/XendAuthSessions.py
+${PYSITELIB}/xen/xend/XendAuthSessions.pyc
+${PYSITELIB}/xen/xend/XendBase.py
+${PYSITELIB}/xen/xend/XendBase.pyc
+${PYSITELIB}/xen/xend/XendBootloader.py
+${PYSITELIB}/xen/xend/XendBootloader.pyc
+${PYSITELIB}/xen/xend/XendCPUPool.py
+${PYSITELIB}/xen/xend/XendCPUPool.pyc
+${PYSITELIB}/xen/xend/XendCheckpoint.py
+${PYSITELIB}/xen/xend/XendCheckpoint.pyc
+${PYSITELIB}/xen/xend/XendClient.py
+${PYSITELIB}/xen/xend/XendClient.pyc
+${PYSITELIB}/xen/xend/XendConfig.py
+${PYSITELIB}/xen/xend/XendConfig.pyc
+${PYSITELIB}/xen/xend/XendConstants.py
+${PYSITELIB}/xen/xend/XendConstants.pyc
+${PYSITELIB}/xen/xend/XendDPCI.py
+${PYSITELIB}/xen/xend/XendDPCI.pyc
+${PYSITELIB}/xen/xend/XendDSCSI.py
+${PYSITELIB}/xen/xend/XendDSCSI.pyc
+${PYSITELIB}/xen/xend/XendDevices.py
+${PYSITELIB}/xen/xend/XendDevices.pyc
+${PYSITELIB}/xen/xend/XendDmesg.py
+${PYSITELIB}/xen/xend/XendDmesg.pyc
+${PYSITELIB}/xen/xend/XendDomain.py
+${PYSITELIB}/xen/xend/XendDomain.pyc
+${PYSITELIB}/xen/xend/XendDomainInfo.py
+${PYSITELIB}/xen/xend/XendDomainInfo.pyc
+${PYSITELIB}/xen/xend/XendError.py
+${PYSITELIB}/xen/xend/XendError.pyc
+${PYSITELIB}/xen/xend/XendLocalStorageRepo.py
+${PYSITELIB}/xen/xend/XendLocalStorageRepo.pyc
+${PYSITELIB}/xen/xend/XendLogging.py
+${PYSITELIB}/xen/xend/XendLogging.pyc
+${PYSITELIB}/xen/xend/XendMonitor.py
+${PYSITELIB}/xen/xend/XendMonitor.pyc
+${PYSITELIB}/xen/xend/XendNetwork.py
+${PYSITELIB}/xen/xend/XendNetwork.pyc
+${PYSITELIB}/xen/xend/XendNode.py
+${PYSITELIB}/xen/xend/XendNode.pyc
+${PYSITELIB}/xen/xend/XendOptions.py
+${PYSITELIB}/xen/xend/XendOptions.pyc
+${PYSITELIB}/xen/xend/XendPBD.py
+${PYSITELIB}/xen/xend/XendPBD.pyc
+${PYSITELIB}/xen/xend/XendPIF.py
+${PYSITELIB}/xen/xend/XendPIF.pyc
+${PYSITELIB}/xen/xend/XendPIFMetrics.py
+${PYSITELIB}/xen/xend/XendPIFMetrics.pyc
+${PYSITELIB}/xen/xend/XendPPCI.py
+${PYSITELIB}/xen/xend/XendPPCI.pyc
+${PYSITELIB}/xen/xend/XendPSCSI.py
+${PYSITELIB}/xen/xend/XendPSCSI.pyc
+${PYSITELIB}/xen/xend/XendProtocol.py
+${PYSITELIB}/xen/xend/XendProtocol.pyc
+${PYSITELIB}/xen/xend/XendQCoWStorageRepo.py
+${PYSITELIB}/xen/xend/XendQCoWStorageRepo.pyc
+${PYSITELIB}/xen/xend/XendSXPDev.py
+${PYSITELIB}/xen/xend/XendSXPDev.pyc
+${PYSITELIB}/xen/xend/XendStateStore.py
+${PYSITELIB}/xen/xend/XendStateStore.pyc
+${PYSITELIB}/xen/xend/XendStorageRepository.py
+${PYSITELIB}/xen/xend/XendStorageRepository.pyc
+${PYSITELIB}/xen/xend/XendTask.py
+${PYSITELIB}/xen/xend/XendTask.pyc
+${PYSITELIB}/xen/xend/XendTaskManager.py
+${PYSITELIB}/xen/xend/XendTaskManager.pyc
+${PYSITELIB}/xen/xend/XendVDI.py
+${PYSITELIB}/xen/xend/XendVDI.pyc
+${PYSITELIB}/xen/xend/XendVMMetrics.py
+${PYSITELIB}/xen/xend/XendVMMetrics.pyc
+${PYSITELIB}/xen/xend/XendVnet.py
+${PYSITELIB}/xen/xend/XendVnet.pyc
+${PYSITELIB}/xen/xend/XendXSPolicy.py
+${PYSITELIB}/xen/xend/XendXSPolicy.pyc
+${PYSITELIB}/xen/xend/XendXSPolicyAdmin.py
+${PYSITELIB}/xen/xend/XendXSPolicyAdmin.pyc
+${PYSITELIB}/xen/xend/__init__.py
+${PYSITELIB}/xen/xend/__init__.pyc
+${PYSITELIB}/xen/xend/arch.py
+${PYSITELIB}/xen/xend/arch.pyc
+${PYSITELIB}/xen/xend/balloon.py
+${PYSITELIB}/xen/xend/balloon.pyc
+${PYSITELIB}/xen/xend/encode.py
+${PYSITELIB}/xen/xend/encode.pyc
+${PYSITELIB}/xen/xend/image.py
+${PYSITELIB}/xen/xend/image.pyc
+${PYSITELIB}/xen/xend/osdep.py
+${PYSITELIB}/xen/xend/osdep.pyc
+${PYSITELIB}/xen/xend/server/BlktapController.py
+${PYSITELIB}/xen/xend/server/BlktapController.pyc
+${PYSITELIB}/xen/xend/server/ConsoleController.py
+${PYSITELIB}/xen/xend/server/ConsoleController.pyc
+${PYSITELIB}/xen/xend/server/DevConstants.py
+${PYSITELIB}/xen/xend/server/DevConstants.pyc
+${PYSITELIB}/xen/xend/server/DevController.py
+${PYSITELIB}/xen/xend/server/DevController.pyc
+${PYSITELIB}/xen/xend/server/SSLXMLRPCServer.py
+${PYSITELIB}/xen/xend/server/SSLXMLRPCServer.pyc
+${PYSITELIB}/xen/xend/server/SrvDaemon.py
+${PYSITELIB}/xen/xend/server/SrvDaemon.pyc
+${PYSITELIB}/xen/xend/server/SrvDmesg.py
+${PYSITELIB}/xen/xend/server/SrvDmesg.pyc
+${PYSITELIB}/xen/xend/server/SrvDomain.py
+${PYSITELIB}/xen/xend/server/SrvDomain.pyc
+${PYSITELIB}/xen/xend/server/SrvDomainDir.py
+${PYSITELIB}/xen/xend/server/SrvDomainDir.pyc
+${PYSITELIB}/xen/xend/server/SrvNode.py
+${PYSITELIB}/xen/xend/server/SrvNode.pyc
+${PYSITELIB}/xen/xend/server/SrvRoot.py
+${PYSITELIB}/xen/xend/server/SrvRoot.pyc
+${PYSITELIB}/xen/xend/server/SrvServer.py
+${PYSITELIB}/xen/xend/server/SrvServer.pyc
+${PYSITELIB}/xen/xend/server/SrvVnetDir.py
+${PYSITELIB}/xen/xend/server/SrvVnetDir.pyc
+${PYSITELIB}/xen/xend/server/SrvXendLog.py
+${PYSITELIB}/xen/xend/server/SrvXendLog.pyc
+${PYSITELIB}/xen/xend/server/XMLRPCServer.py
+${PYSITELIB}/xen/xend/server/XMLRPCServer.pyc
+${PYSITELIB}/xen/xend/server/__init__.py
+${PYSITELIB}/xen/xend/server/__init__.pyc
+${PYSITELIB}/xen/xend/server/blkif.py
+${PYSITELIB}/xen/xend/server/blkif.pyc
+${PYSITELIB}/xen/xend/server/iopif.py
+${PYSITELIB}/xen/xend/server/iopif.pyc
+${PYSITELIB}/xen/xend/server/irqif.py
+${PYSITELIB}/xen/xend/server/irqif.pyc
+${PYSITELIB}/xen/xend/server/netif.py
+${PYSITELIB}/xen/xend/server/netif.pyc
+${PYSITELIB}/xen/xend/server/netif2.py
+${PYSITELIB}/xen/xend/server/netif2.pyc
+${PYSITELIB}/xen/xend/server/params.py
+${PYSITELIB}/xen/xend/server/params.pyc
+${PYSITELIB}/xen/xend/server/pciif.py
+${PYSITELIB}/xen/xend/server/pciif.pyc
+${PYSITELIB}/xen/xend/server/pciquirk.py
+${PYSITELIB}/xen/xend/server/pciquirk.pyc
+${PYSITELIB}/xen/xend/server/relocate.py
+${PYSITELIB}/xen/xend/server/relocate.pyc
+${PYSITELIB}/xen/xend/server/tests/__init__.py
+${PYSITELIB}/xen/xend/server/tests/__init__.pyc
+${PYSITELIB}/xen/xend/server/tests/test_controllers.py
+${PYSITELIB}/xen/xend/server/tests/test_controllers.pyc
+${PYSITELIB}/xen/xend/server/tpmif.py
+${PYSITELIB}/xen/xend/server/tpmif.pyc
+${PYSITELIB}/xen/xend/server/udevevent.py
+${PYSITELIB}/xen/xend/server/udevevent.pyc
+${PYSITELIB}/xen/xend/server/vfbif.py
+${PYSITELIB}/xen/xend/server/vfbif.pyc
+${PYSITELIB}/xen/xend/server/vscsiif.py
+${PYSITELIB}/xen/xend/server/vscsiif.pyc
+${PYSITELIB}/xen/xend/server/vusbif.py
+${PYSITELIB}/xen/xend/server/vusbif.pyc
+${PYSITELIB}/xen/xend/sxp.py
+${PYSITELIB}/xen/xend/sxp.pyc
+${PYSITELIB}/xen/xend/tests/__init__.py
+${PYSITELIB}/xen/xend/tests/__init__.pyc
+${PYSITELIB}/xen/xend/tests/test_XendConfig.py
+${PYSITELIB}/xen/xend/tests/test_XendConfig.pyc
+${PYSITELIB}/xen/xend/tests/test_sxp.py
+${PYSITELIB}/xen/xend/tests/test_sxp.pyc
+${PYSITELIB}/xen/xend/tests/test_uuid.py
+${PYSITELIB}/xen/xend/tests/test_uuid.pyc
+${PYSITELIB}/xen/xend/uuid.py
+${PYSITELIB}/xen/xend/uuid.pyc
+${PYSITELIB}/xen/xend/xenstore/__init__.py
+${PYSITELIB}/xen/xend/xenstore/__init__.pyc
+${PYSITELIB}/xen/xend/xenstore/tests/__init__.py
+${PYSITELIB}/xen/xend/xenstore/tests/__init__.pyc
+${PYSITELIB}/xen/xend/xenstore/tests/stress_xs.py
+${PYSITELIB}/xen/xend/xenstore/tests/stress_xs.pyc
+${PYSITELIB}/xen/xend/xenstore/xstransact.py
+${PYSITELIB}/xen/xend/xenstore/xstransact.pyc
+${PYSITELIB}/xen/xend/xenstore/xsutil.py
+${PYSITELIB}/xen/xend/xenstore/xsutil.pyc
+${PYSITELIB}/xen/xend/xenstore/xswatch.py
+${PYSITELIB}/xen/xend/xenstore/xswatch.pyc
+${PYSITELIB}/xen/xm/XenAPI.py
+${PYSITELIB}/xen/xm/XenAPI.pyc
+${PYSITELIB}/xen/xm/__init__.py
+${PYSITELIB}/xen/xm/__init__.pyc
+${PYSITELIB}/xen/xm/addlabel.py
+${PYSITELIB}/xen/xm/addlabel.pyc
+${PYSITELIB}/xen/xm/console.py
+${PYSITELIB}/xen/xm/console.pyc
+${PYSITELIB}/xen/xm/cpupool-create.py
+${PYSITELIB}/xen/xm/cpupool-create.pyc
+${PYSITELIB}/xen/xm/cpupool-new.py
+${PYSITELIB}/xen/xm/cpupool-new.pyc
+${PYSITELIB}/xen/xm/cpupool.py
+${PYSITELIB}/xen/xm/cpupool.pyc
+${PYSITELIB}/xen/xm/create.py
+${PYSITELIB}/xen/xm/create.pyc
+${PYSITELIB}/xen/xm/dry-run.py
+${PYSITELIB}/xen/xm/dry-run.pyc
+${PYSITELIB}/xen/xm/dumppolicy.py
+${PYSITELIB}/xen/xm/dumppolicy.pyc
+${PYSITELIB}/xen/xm/getenforce.py
+${PYSITELIB}/xen/xm/getenforce.pyc
+${PYSITELIB}/xen/xm/getlabel.py
+${PYSITELIB}/xen/xm/getlabel.pyc
+${PYSITELIB}/xen/xm/getpolicy.py
+${PYSITELIB}/xen/xm/getpolicy.pyc
+${PYSITELIB}/xen/xm/help.py
+${PYSITELIB}/xen/xm/help.pyc
+${PYSITELIB}/xen/xm/labels.py
+${PYSITELIB}/xen/xm/labels.pyc
+${PYSITELIB}/xen/xm/main.py
+${PYSITELIB}/xen/xm/main.pyc
+${PYSITELIB}/xen/xm/migrate.py
+${PYSITELIB}/xen/xm/migrate.pyc
+${PYSITELIB}/xen/xm/new.py
+${PYSITELIB}/xen/xm/new.pyc
+${PYSITELIB}/xen/xm/opts.py
+${PYSITELIB}/xen/xm/opts.pyc
+${PYSITELIB}/xen/xm/resetpolicy.py
+${PYSITELIB}/xen/xm/resetpolicy.pyc
+${PYSITELIB}/xen/xm/resources.py
+${PYSITELIB}/xen/xm/resources.pyc
+${PYSITELIB}/xen/xm/rmlabel.py
+${PYSITELIB}/xen/xm/rmlabel.pyc
+${PYSITELIB}/xen/xm/setenforce.py
+${PYSITELIB}/xen/xm/setenforce.pyc
+${PYSITELIB}/xen/xm/setpolicy.py
+${PYSITELIB}/xen/xm/setpolicy.pyc
+${PYSITELIB}/xen/xm/shutdown.py
+${PYSITELIB}/xen/xm/shutdown.pyc
+${PYSITELIB}/xen/xm/tests/__init__.py
+${PYSITELIB}/xen/xm/tests/__init__.pyc
+${PYSITELIB}/xen/xm/tests/test_create.py
+${PYSITELIB}/xen/xm/tests/test_create.pyc
+${PYSITELIB}/xen/xm/xenapi_create.py
+${PYSITELIB}/xen/xm/xenapi_create.pyc
+${PYSITELIB}/xen/xsview/__init__.py
+${PYSITELIB}/xen/xsview/__init__.pyc
+${PYSITELIB}/xen/xsview/main.py
+${PYSITELIB}/xen/xsview/main.pyc
+${PYSITELIB}/xen/xsview/xsviewer.py
+${PYSITELIB}/xen/xsview/xsviewer.pyc
+lib/xen/boot/hvmloader
+libexec/qemu-dm
+man/man1/xentrace_format.1
+man/man1/xentop.1
+man/man1/xm.1
+man/man5/xend-config.sxp.5
+man/man5/xmdomain.cfg.5
+man/man8/xentrace.8
+sbin/blktapctrl
+sbin/flask-getenforce
+sbin/flask-loadpolicy
+sbin/flask-setenforce
+sbin/gdbsx
+sbin/gtracestat
+sbin/gtraceview
+sbin/img2qcow
+sbin/kdd
+sbin/oxenstored
+sbin/qcow-create
+sbin/qcow2raw
+sbin/tapdisk
+sbin/xen-bugtool
+sbin/xen-hptool
+sbin/xen-hvmcrash
+sbin/xen-hvmctx
+sbin/xen-python-path
+sbin/xen-tmem-list-parse
+sbin/xenbackendd
+sbin/xenbaked
+sbin/xenconsoled
+sbin/xend
+sbin/xenlockprof
+sbin/xenmon.py
+sbin/xenpaging
+sbin/xenperf
+sbin/xenpm
+sbin/xenpmd
+sbin/xenstored
+sbin/xentop
+sbin/xentrace_setmask
+sbin/xenwatchdogd
+sbin/xl
+sbin/xm
+sbin/xsview
+share/doc/xen/README.xenmon
+share/doc/xen/README.blktap
+share/examples/rc.d/xen-watchdog
+share/examples/rc.d/xencommons
+share/examples/rc.d/xend
+share/examples/rc.d/xendomains
+share/examples/xen/xend-config.sxp
+share/examples/xen/xmexample1
+share/examples/xen/xmexample2
+share/examples/xen/xmexample3
+share/xen/create.dtd
+share/xen/qemu/bios.bin
+share/xen/qemu/vgabios.bin
+share/xen/qemu/vgabios-cirrus.bin
+share/xen/qemu/ppc_rom.bin
+share/xen/qemu/video.x
+share/xen/qemu/openbios-sparc32
+share/xen/qemu/openbios-sparc64
+share/xen/qemu/openbios-ppc
+share/xen/qemu/pxe-ne2k_pci.bin
+share/xen/qemu/pxe-rtl8139.bin
+share/xen/qemu/pxe-pcnet.bin
+share/xen/qemu/pxe-e1000.bin
+share/xen/qemu/bamboo.dtb
+share/xen/qemu/keymaps/da
+share/xen/qemu/keymaps/en-gb
+share/xen/qemu/keymaps/et
+share/xen/qemu/keymaps/fr
+share/xen/qemu/keymaps/fr-ch
+share/xen/qemu/keymaps/is
+share/xen/qemu/keymaps/lt
+share/xen/qemu/keymaps/modifiers
+share/xen/qemu/keymaps/no
+share/xen/qemu/keymaps/pt-br
+share/xen/qemu/keymaps/sv
+share/xen/qemu/keymaps/ar
+share/xen/qemu/keymaps/de
+share/xen/qemu/keymaps/en-us
+share/xen/qemu/keymaps/fi
+share/xen/qemu/keymaps/fr-be
+share/xen/qemu/keymaps/hr
+share/xen/qemu/keymaps/it
+share/xen/qemu/keymaps/lv
+share/xen/qemu/keymaps/nl
+share/xen/qemu/keymaps/pl
+share/xen/qemu/keymaps/ru
+share/xen/qemu/keymaps/th
+share/xen/qemu/keymaps/common
+share/xen/qemu/keymaps/de-ch
+share/xen/qemu/keymaps/es
+share/xen/qemu/keymaps/fo
+share/xen/qemu/keymaps/fr-ca
+share/xen/qemu/keymaps/hu
+share/xen/qemu/keymaps/ja
+share/xen/qemu/keymaps/mk
+share/xen/qemu/keymaps/nl-be
+share/xen/qemu/keymaps/pt
+share/xen/qemu/keymaps/sl
+share/xen/qemu/keymaps/tr
+@pkgdir etc/xen/auto
diff --git a/sysutils/xentools41/distinfo b/sysutils/xentools41/distinfo
new file mode 100644
index 00000000000..5c4553d395f
--- /dev/null
+++ b/sysutils/xentools41/distinfo
@@ -0,0 +1,33 @@
+$NetBSD: distinfo,v 1.1.1.1 2011/04/06 09:10:26 cegger Exp $
+
+SHA1 (ipxe-git-v1.0.0.tar.gz) = da052c8de5f3485fe0253c19cf52ed6d72528485
+RMD160 (ipxe-git-v1.0.0.tar.gz) = dcd9b6eaafa1ce05c1ebf2a15f2f73ad7a8c5547
+Size (ipxe-git-v1.0.0.tar.gz) = 1996881 bytes
+SHA1 (xen-4.1.0.tar.gz) = 4295e67524746ce155ff991db5fd2a611be27f67
+RMD160 (xen-4.1.0.tar.gz) = e9ef987b24503d6c993bccfd203be5af9f104f48
+Size (xen-4.1.0.tar.gz) = 10348539 bytes
+SHA1 (patch-aa) = 3c03ea5d22e2edecbfa10de79e88a330204a8a70
+SHA1 (patch-ab) = 0906a5ec3a7450fc987b01289e2560e60966d00d
+SHA1 (patch-ac) = c3cc5335a1d6b066307c5f03fe72f513a9eb2bdb
+SHA1 (patch-ad) = 5eb15470bff85d30b6d26d8fe094f59fc8e34175
+SHA1 (patch-ae) = 032f9bd48bbe7423d24ec8464ef6b626d7f1369a
+SHA1 (patch-af) = e866e7d96766b735a53432350275810803eeb510
+SHA1 (patch-ag) = f1f58566b41922d661bbe6ea7e4c90d17cecd7fe
+SHA1 (patch-ah) = 1227ce79a9547464059f7de7a18bd342c4741280
+SHA1 (patch-ai) = 8da6bba38bd7677ea829ca35058f7d2d1d7acad4
+SHA1 (patch-aj) = d0999d8dcbc1eef4de7037db0e54dcd8d2f706eb
+SHA1 (patch-ak) = dee9673fd67f582da64e8f2c14b566032f162f6f
+SHA1 (patch-ba) = 2c65e4b4b85e91e92dfb3aa402ebc44694bdff06
+SHA1 (patch-bb) = 64a61fb156bcb6a99ff0963063a0716b808e3b61
+SHA1 (patch-bc) = 25c99a428fda6dee709888ddbcfdcfef5f654564
+SHA1 (patch-ca) = 36afc7b063f83adfe5b927ed0be586b102684020
+SHA1 (patch-cb) = 5563a72e203e789a86f4166c71ddb3fcff5215c6
+SHA1 (patch-cc) = 24d71f68a93b59bd5c5441c257d34862e7302040
+SHA1 (patch-cd) = 7b25b3b3a8d58effae395d776f2a4b94d79acfcb
+SHA1 (patch-ce) = 613f4c4605af860e5f88b68c49a0e7870ba6ecde
+SHA1 (patch-cf) = c8740b1c9cfac686f2e4e32c7613b5f02206459d
+SHA1 (patch-cg) = 119029fda1d4ecee90d0a108151596cb3ef0ec74
+SHA1 (patch-ch) = 84e816c95167828314ef901e324772249a407c41
+SHA1 (patch-da) = 80a609a9ae050122a6b5b65b9798f5e29bec13a4
+SHA1 (patch-db) = 4766f9925462023332793bcea4321072758e289d
+SHA1 (patch-dc) = d860fe3725978227278d58f09e7d5157001e463e
diff --git a/sysutils/xentools41/files/blk_netbsd.c b/sysutils/xentools41/files/blk_netbsd.c
new file mode 100644
index 00000000000..81076a25a4d
--- /dev/null
+++ b/sysutils/xentools41/files/blk_netbsd.c
@@ -0,0 +1,39 @@
+#include <inttypes.h>
+#include <sys/ioctl.h>
+#include <sys/disklabel.h>
+#include "tapdisk.h"
+#include "blk.h"
+
+int blk_getimagesize(int fd, uint64_t *size)
+{
+ int rc;
+ struct disklabel dl;
+
+ *size = 0;
+ rc = ioctl(fd, DIOCGDINFO, &dl);
+ if (rc) {
+ DPRINTF("ERR: DIOCGDINFO failed, couldn't stat image");
+ return -EINVAL;
+ }
+
+ *size = dl.d_secsize * dl.d_secpercyl;
+
+ return 0;
+}
+
+int blk_getsectorsize(int fd, uint64_t *sector_size)
+{
+ int rc;
+ struct disklabel dl;
+
+ *sector_size = DEV_BSIZE;
+ rc = ioctl(fd, DIOCGDINFO, &dl);
+ if (rc) {
+ DPRINTF("ERR: DIOCGDINFO failed, couldn't stat image");
+ return 0; /* fallback to DEV_BSIZE */
+ }
+
+ *sector_size = dl.d_secsize;
+ return 0;
+}
+
diff --git a/sysutils/xentools41/files/blktapctrl_netbsd.c b/sysutils/xentools41/files/blktapctrl_netbsd.c
new file mode 100644
index 00000000000..02a1e9f3018
--- /dev/null
+++ b/sysutils/xentools41/files/blktapctrl_netbsd.c
@@ -0,0 +1,16 @@
+
+#include "blktaplib.h"
+#include "blktapctrl.h"
+
+
+int blktap_interface_open(void)
+{
+ /* not yet implemented */
+ return -1;
+}
+
+int blktap_interface_create(int ctlfd, int *major, int *minor, blkif_t *blkif)
+{
+ /* not yet implemented */
+ return -1;
+}
diff --git a/sysutils/xentools41/files/xen-watchdog.sh b/sysutils/xentools41/files/xen-watchdog.sh
new file mode 100644
index 00000000000..bd27276664b
--- /dev/null
+++ b/sysutils/xentools41/files/xen-watchdog.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+#
+# PROVIDE: xen-watchdog
+# REQUIRE: DAEMON
+#
+# description: Run domain watchdog daemon
+#
+
+. /etc/rc.subr
+
+name="xenwatchdog"
+rcvar=$name
+command="@PREFIX@/sbin/xenwatchdogd"
+start_cmd="echo Starting ${name}. && PATH=${PATH}:@PREFIX@/sbin ${command} 30 15"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sysutils/xentools41/files/xencommons.sh b/sysutils/xentools41/files/xencommons.sh
new file mode 100644
index 00000000000..1e0536ebe09
--- /dev/null
+++ b/sysutils/xentools41/files/xencommons.sh
@@ -0,0 +1,120 @@
+#!/bin/sh
+#
+# PROVIDE: xencommons
+# REQUIRE: DAEMON
+
+. /etc/rc.subr
+
+name="xencommons"
+rcvar=xend
+start_precmd="xen_precmd"
+start_cmd="xen_startcmd"
+stop_cmd="xen_stop"
+status_cmd="xen_status"
+extra_commands="status"
+required_files="/kern/xen/privcmd"
+
+XENSTORED_PIDFILE="/var/run/xenstored.pid"
+XENCONSOLED_PIDFILE="/var/run/xenconsoled.pid"
+XENBACKENDD_PIDFILE="/var/run/xenbackendd.pid"
+
+SBINDIR=@PREFIX@/sbin
+
+xen_precmd()
+{
+ mkdir -p /var/run/xend || exit 1
+ mkdir -p /var/run/xend/boot || exit 1
+ mkdir -p /var/run/xenstored || exit 1
+}
+
+xen_startcmd()
+{
+ printf "Starting xenservices: xenstored, xenconsoled, xenbackendd.\n"
+ XENSTORED_ARGS=" --pid-file ${XENSTORED_PIDFILE}"
+ if [ -n "${XENSTORED_TRACE}" ]; then
+ XENSTORED_ARGS="${XENSTORED_ARGS} -T /var/log/xen/xenstored-trace.log"
+ fi
+
+ ${SBINDIR}/xenstored ${XENSTORED_ARGS}
+ sleep 5
+
+ XENCONSOLED_ARGS=""
+ if [ -n "${XENCONSOLED_TRACE}" ]; then
+ XENCONSOLED_ARGS="${XENCONSOLED_ARGS} --log=${XENCONSOLED_TRACE}"
+ fi
+
+ ${SBINDIR}/xenconsoled ${XENCONSOLED_ARGS}
+
+ XENBACKENDD_ARGS=""
+ if [ -n "${XENBACKENDD_DEBUG}" ]; then
+ XENBACKENDD_ARGS="${XENBACKENDD_ARGS} -d"
+ fi
+
+ ${SBINDIR}/xenbackendd ${XENBACKENDD_ARGS}
+}
+
+xen_stop()
+{
+ pids=""
+ printf "Stopping xencommons"
+
+ rc_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
+ pids="$pids $rc_pid"
+ rc_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled)
+ pids="$pids $rc_pid"
+ rc_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored)
+ pids="$pids $rc_pid"
+
+ kill -${sig_stop:-TERM} $pids
+ wait_for_pids $pids
+
+ printf ".\n"
+}
+
+xen_status()
+{
+ xenstored_pid=$(check_pidfile ${XENSTORED_PIDFILE} ${SBINDIR}/xenstored)
+ if test -n ${xenstored_pid}; then
+ pids="$pids $xenstored_pid"
+ fi
+
+ xenconsoled_pid=$(check_pidfile ${XENCONSOLED_PIDFILE} ${SBINDIR}/xenconsoled)
+ if test -n ${xenconsoled_pid}; then
+ pids="$pids $xenconsoled_pid"
+ fi
+
+ xenbackend_pid=$(check_pidfile ${XENBACKENDD_PIDFILE} ${SBINDIR}/xenbackendd)
+ if test -n ${xenbackend_pid}; then
+ pids="$pids $xenbackend_pid"
+ fi
+
+ if test -n "$xenbackend_pid" -a -n "$xenconsoled_pid" -a -n "$xenstored_pid";
+ then
+ echo "xencommons are running as pids $pids."
+ return 0
+ fi
+ if test -z "$xenbackend_pid" -a -z "$xenconsoled_pid" -a -z "$xenstored_pid";
+ then
+ echo "xencommons are not running."
+ return 0
+ fi
+
+ if test -n $xenstored_pid; then
+ echo "xenstored is running as pid $xenstored_pid."
+ else
+ echo "xenstored is not running."
+ fi
+ if test -n $xenconsoled_pid; then
+ echo "xenconsoled is running as pid $xenconsoled_pid."
+ else
+ echo "xenconsoled is not running."
+ fi
+ if test -n $xenbackend_pid; then
+ echo "xenbackendd is running as pid $xenbackend_pid."
+ else
+ echo "xenbackendd is not running."
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sysutils/xentools41/files/xend.sh b/sysutils/xentools41/files/xend.sh
new file mode 100644
index 00000000000..c6115e4ec89
--- /dev/null
+++ b/sysutils/xentools41/files/xend.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+#
+# PROVIDE: xend
+# REQUIRE: xencommons
+
+. /etc/rc.subr
+
+name="xend"
+rcvar=$name
+command="@PREFIX@/sbin/xend"
+start_cmd="echo Starting ${name}. && PATH=${PATH}:@PREFIX@/sbin ${command} start"
+pidfile="/var/run/xend.pid"
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sysutils/xentools41/files/xendomains.sh b/sysutils/xentools41/files/xendomains.sh
new file mode 100644
index 00000000000..8041703a9dd
--- /dev/null
+++ b/sysutils/xentools41/files/xendomains.sh
@@ -0,0 +1,127 @@
+#!/bin/sh
+#
+# PROVIDE: xendomains
+# REQUIRE: xend
+# KEYWORD: shutdown
+#
+# xendomains This required variable is a whitespace-separated
+# list of domains, e.g., xendomains="dom1 dom2 dom3".
+#
+# xendomains_config This optional variable is a format string that
+# represents the path to the configuration file for
+# each domain. "%s" is substituted with the name of
+# the domain. The default is "@PKG_SYSCONFDIR@/%s".
+#
+# xendomains_prehook This optional variable is a format string that
+# represents the command to run, if it exists, before
+# starting each domain. "%s" is substituted with the
+# name of the domain. The default is
+# "@PKG_SYSCONFDIR@/%s-pre".
+#
+# xendomains_posthook This optional variable is a format string that
+# represents the command to run, if it exists, after
+# stopping each domain. "%s" is substituted with the
+# name of the domain. The default is
+# "@PKG_SYSCONFDIR@/%s-post".
+#
+
+. /etc/rc.subr
+
+name="xendomains"
+ctl_command="@PREFIX@/sbin/xl"
+start_cmd="xendomains_start"
+stop_cmd="xendomains_stop"
+list_cmd="xendomains_list"
+extra_commands="list"
+required_files="/kern/xen/privcmd"
+
+xendomains_start()
+{
+ [ -n "$xendomains" ] || return
+
+ echo "Starting xen domains."
+ for domain in $xendomains; do
+ case "$domain" in
+ "") continue ;;
+ esac
+
+ # Start off by running the pre-hook script if it's present.
+ if [ -n "${xendomains_prehook}" ]; then
+ cmdline=`printf "${xendomains_prehook}" $domain`
+ cmd="${cmdline%% *}"
+ if [ -x "$cmd" ]; then
+ $cmdline || echo "Pre-hook \`\`$cmdline'' failed... skipping $domain."
+ continue
+ fi
+ fi
+
+ # Ask xend to create the domain.
+ if [ -n "${xendomains_config}" ]; then
+ file=`printf "${xendomains_config}" $domain`
+ if [ -f "$file" ]; then
+ ${ctl_command} create "$file"
+ fi
+ fi
+ done
+}
+
+xendomains_list() {
+ # Output a whitespace-separated list of live guest domains.
+ ${ctl_command} list | awk '
+ (FNR <= 2) { next }
+ ($5 !~ /s/) { s = s " " $1 }
+ END { sub(" *", "", s); print s }'
+}
+
+xendomains_stop()
+{
+ # Determine an appropriate timeout waiting for all domains to
+ # stop -- always wait at least 60s, and add 5s per active domain.
+ #
+ numdomains=$(xendomains_list | awk '{ print NF }')
+ [ $numdomains -gt 0 ] || return
+ timeout=$((60 + numdomains * 5))
+
+ # Ask xend to stop every domain, and poll xend every 10s up to the
+ # timeout period to check if all the domains are stopped. We
+ # consider a domain in the "s" (shutdown) state to be stopped.
+ #
+ echo "Stopping xen domains."
+ for domain in $(xendomains_list); do
+ ${ctl_command} shutdown --halt $domain
+ done
+ while [ $timeout -gt 0 ]; do
+ livedomains=$(xendomains_list)
+ [ -n "$livedomains" ] || break
+ timeout=$((timeout - 10))
+ sleep 10
+ done
+ livedomains=$(xendomains_list)
+ if [ -n "$livedomains" ]; then
+ echo "Failed to stop: $livedomains"
+ else
+ echo "All domains stopped."
+ fi
+
+ # Finish off by running the post-hook script if it's present.
+ for domain in $xendomains; do
+ case "$domain" in
+ "") continue ;;
+ esac
+ if [ -n "${xendomains_posthook}" ]; then
+ cmdline=`printf "${xendomains_posthook}" $domain`
+ cmd="${cmdline%% *}"
+ if [ -x "$cmd" ]; then
+ $cmdline || echo "Post-hook \`\`$cmdline'' failed."
+ fi
+ fi
+ done
+}
+
+load_rc_config $name
+
+: ${xendomains_config="@PKG_SYSCONFDIR@/%s"}
+: ${xendomains_prehook="@PKG_SYSCONFDIR@/%s-pre"}
+: ${xendomains_posthook="@PKG_SYSCONFDIR@/%s-post"}
+
+run_rc_command "$1"
diff --git a/sysutils/xentools41/patches/patch-aa b/sysutils/xentools41/patches/patch-aa
new file mode 100644
index 00000000000..384d97fef87
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-aa
@@ -0,0 +1,12 @@
+$NetBSD: patch-aa,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- xentrace/Makefile.orig 2010-04-07 16:12:05.000000000 +0000
++++ xentrace/Makefile
+@@ -43,6 +43,7 @@ install: build
+ [ -z "$(LIBBIN)" ] || $(INSTALL_PROG) $(LIBBIN) $(DESTDIR)$(PRIVATE_BINDIR)
+ $(INSTALL_DATA) $(MAN1) $(DESTDIR)$(MAN1DIR)
+ $(INSTALL_DATA) $(MAN8) $(DESTDIR)$(MAN8DIR)
++ $(INSTALL_DATA) formats $(DESTDIR)$(XEN_CONFIG_DIR)
+
+ .PHONY: clean
+ clean:
diff --git a/sysutils/xentools41/patches/patch-ab b/sysutils/xentools41/patches/patch-ab
new file mode 100644
index 00000000000..f63bdd234eb
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ab
@@ -0,0 +1,16 @@
+$NetBSD: patch-ab,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- blktap/drivers/Makefile.orig 2008-08-01 16:38:07.000000000 +0200
++++ blktap/drivers/Makefile
+@@ -37,9 +37,11 @@ BLK-OBJS-y += block-qcow2.o
+ BLK-OBJS-y += aes.o
+ BLK-OBJS-y += tapaio.o
+ BLK-OBJS-$(CONFIG_Linux) += blk_linux.o
++BLK-OBJS-$(CONFIG_NetBSD) += blk_netbsd.o
+
+ BLKTAB-OBJS-y := blktapctrl.o
+ BLKTAB-OBJS-$(CONFIG_Linux) += blktapctrl_linux.o
++BLKTAB-OBJS-$(CONFIG_NetBSD) += blktapctrl_netbsd.o
+
+ all: $(IBIN) qcow-util
+
diff --git a/sysutils/xentools41/patches/patch-ac b/sysutils/xentools41/patches/patch-ac
new file mode 100644
index 00000000000..1db6996f612
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ac
@@ -0,0 +1,13 @@
+$NetBSD: patch-ac,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- libfsimage/common/Makefile.orig 2010-05-11 21:27:58.000000000 +0000
++++ libfsimage/common/Makefile
+@@ -4,6 +4,8 @@ include $(XEN_ROOT)/tools/Rules.mk
+ MAJOR = 1.0
+ MINOR = 0
+
++CFLAGS += -DFSIMAGE_FSDIR=\"$(LIBDIR)/fs\"
++
+ LDFLAGS-$(CONFIG_SunOS) = -Wl,-M -Wl,mapfile-SunOS
+ LDFLAGS-$(CONFIG_Linux) = -Wl,mapfile-GNU
+ LDFLAGS = $(LDFLAGS-y)
diff --git a/sysutils/xentools41/patches/patch-ad b/sysutils/xentools41/patches/patch-ad
new file mode 100644
index 00000000000..ed4b844728a
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ad
@@ -0,0 +1,13 @@
+$NetBSD: patch-ad,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- examples/xend-config.sxp.orig 2010-04-07 16:12:04.000000000 +0000
++++ examples/xend-config.sxp
+@@ -190,7 +190,7 @@
+
+ # Whether to enable auto-ballooning of dom0 to allow domUs to be created.
+ # If enable-dom0-ballooning = no, dom0 will never balloon out.
+-(enable-dom0-ballooning yes)
++(enable-dom0-ballooning no)
+
+ # 32-bit paravirtual domains can only consume physical
+ # memory below 168GB. On systems with memory beyond that address,
diff --git a/sysutils/xentools41/patches/patch-ae b/sysutils/xentools41/patches/patch-ae
new file mode 100644
index 00000000000..1290e109f82
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ae
@@ -0,0 +1,13 @@
+$NetBSD: patch-ae,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- Makefile.orig 2010-07-23 10:11:46.000000000 +0000
++++ Makefile
+@@ -25,6 +25,7 @@ SUBDIRS-$(CONFIG_Linux) += memshr
+ SUBDIRS-$(CONFIG_Linux) += blktap
+ SUBDIRS-$(CONFIG_Linux) += blktap2
+ SUBDIRS-$(CONFIG_NetBSD) += libaio
++SUBDIRS-$(CONFIG_NetBSD) += blktap
+-SUBDIRS-$(CONFIG_NetBSD) += blktap2
++#SUBDIRS-$(CONFIG_NetBSD) += blktap2
+ SUBDIRS-$(CONFIG_NetBSD) += xenbackendd
+ SUBDIRS-y += libfsimage
diff --git a/sysutils/xentools41/patches/patch-af b/sysutils/xentools41/patches/patch-af
new file mode 100644
index 00000000000..88ea8591c18
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-af
@@ -0,0 +1,26 @@
+$NetBSD: patch-af,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- firmware/etherboot/Makefile.orig 2011-03-25 10:42:50.000000000 +0000
++++ firmware/etherboot/Makefile
+@@ -34,18 +34,10 @@ eb-roms.h: Config
+ $(MAKE) NO_WERROR=1 $@.new
+ mv -f $@.new $@
+
+-$T:
+- if ! wget -O _$T $(IPXE_TARBALL_URL); then \
+- $(GIT) clone $(IPXE_GIT_URL) $D.git; \
+- (cd $D.git && $(GIT) archive --format=tar --prefix=$D/ \
+- $(IPXE_GIT_TAG) | gzip >../_$T); \
+- rm -rf $D.git; \
+- fi
+- mv _$T $T
++$D:
++ ln -sf $(WRKSRC)/../../ipxe $D
+
+-$D/src/arch/i386/Makefile: $T Config
+- rm -rf $D
+- gzip -dc $T | tar xf -
++$D/src/arch/i386/Makefile: $D Config
+ for i in $$(cat patches/series) ; do \
+ patch -d $D -p1 --quiet <patches/$$i || exit 1 ; \
+ done
diff --git a/sysutils/xentools41/patches/patch-ag b/sysutils/xentools41/patches/patch-ag
new file mode 100644
index 00000000000..fabbf1cde4d
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ag
@@ -0,0 +1,22 @@
+$NetBSD: patch-ag,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ../config/NetBSD.mk.orig 2011-03-25 11:42:47.000000000 +0100
++++ ../config/NetBSD.mk 2011-03-31 17:21:05.000000000 +0200
+@@ -7,12 +7,12 @@
+ LIBEXEC = $(PREFIX)/libexec
+ PRIVATE_BINDIR = $(BINDIR)
+
++MANDIR = $(PREFIX)/man
++MAN1DIR = $(MANDIR)/man1
++MAN8DIR = $(MANDIR)/man8
++
+ DLOPEN_LIBS =
+
+-ifeq ($(PREFIX),/usr)
+-XEN_LOCK_DIR = /var/lib
+-else
+-XEN_LOCK_DIR = $(PREFIX)/var/lib
+-endif
++XEN_LOCK_DIR = $(VARBASE)/run
+
+ WGET = ftp
diff --git a/sysutils/xentools41/patches/patch-ah b/sysutils/xentools41/patches/patch-ah
new file mode 100644
index 00000000000..7f6db20c2d3
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ah
@@ -0,0 +1,26 @@
+$NetBSD: patch-ah,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- hotplug/NetBSD/Makefile.orig 2011-03-31 16:18:33.000000000 +0200
++++ hotplug/NetBSD/Makefile 2011-03-31 16:22:07.000000000 +0200
+@@ -8,7 +8,7 @@
+ XEN_SCRIPTS += vif-ip
+
+ XEN_SCRIPT_DATA =
+-XEN_RCD_PROG = rc.d/xencommons rc.d/xend rc.d/xendomains rc.d/xen-watchdog
++#XEN_RCD_PROG = rc.d/xencommons rc.d/xend rc.d/xendomains rc.d/xen-watchdog
+
+ .PHONY: all
+ all:
+@@ -33,12 +33,6 @@
+
+ .PHONY: install-rcd
+ install-rcd:
+- $(INSTALL_DIR) $(DESTDIR)$(CONFIG_DIR)/rc.d
+- set -e; for i in $(XEN_RCD_PROG); \
+- do \
+- $(INSTALL_PROG) $$i $(DESTDIR)$(CONFIG_DIR)/rc.d; \
+- done
+- $(INSTALL_DATA) ../common/hotplugpath.sh $(DESTDIR)$(CONFIG_DIR)/rc.d/xen-hotplugpath.sh
+
+ .PHONY: clean
+ clean:
diff --git a/sysutils/xentools41/patches/patch-ai b/sysutils/xentools41/patches/patch-ai
new file mode 100644
index 00000000000..1a9cad03681
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ai
@@ -0,0 +1,18 @@
+$NetBSD: patch-ai,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- python/xen/xend/osdep.py.orig 2011-04-01 12:03:13.000000000 +0200
++++ python/xen/xend/osdep.py 2011-04-01 13:49:45.000000000 +0200
+@@ -94,8 +94,12 @@
+ return None
+ cmd = "/sbin/sysctl " + cmdarg
+ sysctloutput = commands.getoutput(cmd)
++ div = 1
++ if label == 'current' and '=' not in sysctloutput:
++ sysctloutput = commands.getoutput( "/sbin/sysctl hw.physmem64")
++ div = 1024
+ (name, value) = sysctloutput.split('=')
+- return int(value)
++ return int(value) / div
+
+ def _solaris_balloon_stat(label):
+ """Returns the value for the named label, or None if an error occurs."""
diff --git a/sysutils/xentools41/patches/patch-aj b/sysutils/xentools41/patches/patch-aj
new file mode 100644
index 00000000000..f2e93e65bf9
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-aj
@@ -0,0 +1,16 @@
+$NetBSD: patch-aj,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- hotplug/NetBSD/vif-bridge.orig 2011-03-25 11:42:50.000000000 +0100
++++ hotplug/NetBSD/vif-bridge 2011-04-01 14:55:58.000000000 +0200
+@@ -23,7 +23,10 @@
+ xbridge=$(xenstore-read "$xpath/bridge")
+ xfid=$(xenstore-read "$xpath/frontend-id")
+ xhandle=$(xenstore-read "$xpath/handle")
+- iface=$(xenstore-read "$xpath/vifname")
++ iface=$(xenstore-read "$xpath/vifname") || true
++ if [ x${iface} = "x" ] ; then
++ iface=xvif$xfid.$xhandle
++ fi
+ echo ifconfig $iface up
+ ifconfig $iface up
+ brconfig $xbridge add $iface
diff --git a/sysutils/xentools41/patches/patch-ak b/sysutils/xentools41/patches/patch-ak
new file mode 100644
index 00000000000..a782d0f07aa
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ak
@@ -0,0 +1,14 @@
+--- hotplug/NetBSD/vif-ip.orig 2011-04-01 16:04:24.000000000 +0200
++++ hotplug/NetBSD/vif-ip 2011-04-01 16:04:54.000000000 +0200
+@@ -23,7 +23,10 @@
+ xip=$(xenstore-read "$xpath/ip")
+ xfid=$(xenstore-read "$xpath/frontend-id")
+ xhandle=$(xenstore-read "$xpath/handle")
+- iface=$(xenstore-read "$xpath/vifname")
++ iface=$(xenstore-read "$xpath/vifname") || true
++ if [ x${iface} = "x" ] ; then
++ iface=xvif$xfid.$xhandle
++ fi
+ echo ifconfig $iface $xip up
+ ifconfig $iface $xip up
+ xenstore-write $xpath/hotplug-status connected
diff --git a/sysutils/xentools41/patches/patch-ba b/sysutils/xentools41/patches/patch-ba
new file mode 100644
index 00000000000..1bcb19b9830
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ba
@@ -0,0 +1,56 @@
+$NetBSD: patch-ba,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- python/xen/xend/XendNode.py.orig 2010-04-07 16:12:05.000000000 +0000
++++ python/xen/xend/XendNode.py
+@@ -276,28 +276,29 @@ class XendNode:
+ except KeyError:
+ pass
+
+- for pci_dev in PciUtil.get_all_pci_devices():
+- ppci_record = {
+- 'domain': pci_dev.domain,
+- 'bus': pci_dev.bus,
+- 'slot': pci_dev.slot,
+- 'func': pci_dev.func,
+- 'vendor_id': pci_dev.vendor,
+- 'vendor_name': pci_dev.vendorname,
+- 'device_id': pci_dev.device,
+- 'device_name': pci_dev.devicename,
+- 'revision_id': pci_dev.revision,
+- 'class_code': pci_dev.classcode,
+- 'class_name': pci_dev.classname,
+- 'subsystem_vendor_id': pci_dev.subvendor,
+- 'subsystem_vendor_name': pci_dev.subvendorname,
+- 'subsystem_id': pci_dev.subdevice,
+- 'subsystem_name': pci_dev.subdevicename,
+- 'driver': pci_dev.driver
+- }
+- # If saved uuid exists, use it. Otherwise create one.
+- ppci_uuid = saved_ppci_table.get(pci_dev.name, uuid.createString())
+- XendPPCI(ppci_uuid, ppci_record)
++ pass
++ #for pci_dev in PciUtil.get_all_pci_devices():
++ # ppci_record = {
++ # 'domain': pci_dev.domain,
++ # 'bus': pci_dev.bus,
++ # 'slot': pci_dev.slot,
++ # 'func': pci_dev.func,
++ # 'vendor_id': pci_dev.vendor,
++ # 'vendor_name': pci_dev.vendorname,
++ # 'device_id': pci_dev.device,
++ # 'device_name': pci_dev.devicename,
++ # 'revision_id': pci_dev.revision,
++ # 'class_code': pci_dev.classcode,
++ # 'class_name': pci_dev.classname,
++ # 'subsystem_vendor_id': pci_dev.subvendor,
++ # 'subsystem_vendor_name': pci_dev.subvendorname,
++ # 'subsystem_id': pci_dev.subdevice,
++ # 'subsystem_name': pci_dev.subdevicename,
++ # 'driver': pci_dev.driver
++ # }
++ # # If saved uuid exists, use it. Otherwise create one.
++ # ppci_uuid = saved_ppci_table.get(pci_dev.name, uuid.createString())
++ # XendPPCI(ppci_uuid, ppci_record)
+
+ def _init_PSCSIs(self):
+ # Initialise PSCSIs and PSCSI_HBAs
diff --git a/sysutils/xentools41/patches/patch-bb b/sysutils/xentools41/patches/patch-bb
new file mode 100644
index 00000000000..eeaf66e2964
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-bb
@@ -0,0 +1,213 @@
+$NetBSD: patch-bb,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- libxc/xc_netbsd.c.orig 2011-03-29 17:09:58.000000000 +0000
++++ libxc/xc_netbsd.c
+@@ -21,6 +21,7 @@
+ #include "xc_private.h"
+
+ #include <xen/sys/evtchn.h>
++#include <xen/sys/gntdev.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+
+@@ -351,7 +352,189 @@ void discard_file_cache(xc_interface *xc
+ errno = saved_errno;
+ }
+
+-static struct xc_osdep_ops *netbsd_osdep_init(xc_interface *xch, enum xc_osdep_type type)
++#define DEVXEN "/dev/xen/"
++
++static xc_osdep_handle
++netbsd_gnttab_open(xc_gnttab *xcg)
++{
++ int fd;
++
++ fd = open(DEVXEN "gntdev", O_RDWR);
++ if (fd == -1)
++ return XC_OSDEP_OPEN_ERROR;
++
++ return (xc_osdep_handle)fd;
++}
++
++static int
++netbsd_gnttab_close(xc_gnttab *xcg, xc_osdep_handle h)
++{
++ int fd = (int)h;
++ return close(fd);
++}
++
++static void *
++netbsd_gnttab_map_grant_ref(xc_gnttab *xch, xc_osdep_handle h,
++ uint32_t domid, uint32_t ref, int prot)
++{
++ int fd = (int)h;
++ struct ioctl_gntdev_map_grant_ref map;
++ void *addr;
++
++ map.count = 1;
++ map.refs[0].domid = domid;
++ map.refs[0].ref = ref;
++
++ if ( ioctl(fd, IOCTL_GNTDEV_MAP_GRANT_REF, &map) ) {
++ PERROR("netbsd_gnttab_map_grant_ref: ioctl MAP_GRANT_REF failed");
++ return NULL;
++ }
++
++mmap_again:
++ addr = mmap(NULL, XC_PAGE_SIZE, prot, MAP_SHARED, fd, map.index);
++ if ( addr == MAP_FAILED )
++ {
++ int saved_errno = errno;
++ struct ioctl_gntdev_unmap_grant_ref unmap_grant;
++
++ if ( saved_errno == EAGAIN )
++ {
++ usleep(1000);
++ goto mmap_again;
++ }
++ /* Unmap the driver slots used to store the grant information. */
++ PERROR("netbsd_gnttab_map_grant_ref: mmap failed");
++ unmap_grant.index = map.index;
++ unmap_grant.count = 1;
++ ioctl(fd, IOCTL_GNTDEV_UNMAP_GRANT_REF, &unmap_grant);
++ errno = saved_errno;
++ return NULL;
++ }
++
++ return addr;
++}
++
++static void *
++do_gnttab_map_grant_refs(xc_gnttab *xch, xc_osdep_handle h,
++ uint32_t count, uint32_t *domids, int domids_stride,
++ uint32_t *refs, int prot)
++{
++ int fd = (int)h;
++ struct ioctl_gntdev_map_grant_ref *map;
++ void *addr = NULL;
++ int i;
++
++ map = malloc(sizeof(*map) +
++ (count - 1) * sizeof(struct ioctl_gntdev_map_grant_ref));
++ if ( map == NULL )
++ return NULL;
++
++ for ( i = 0; i < count; i++ )
++ {
++ map->refs[i].domid = domids[i * domids_stride];
++ map->refs[i].ref = refs[i];
++ }
++
++ map->count = count;
++
++ if ( ioctl(fd, IOCTL_GNTDEV_MAP_GRANT_REF, map) ) {
++ PERROR("xc_gnttab_map_grant_refs: ioctl MAP_GRANT_REF failed");
++ goto out;
++ }
++
++ addr = mmap(NULL, XC_PAGE_SIZE * count, prot, MAP_SHARED, fd,
++ map->index);
++ if ( addr == MAP_FAILED )
++ {
++ int saved_errno = errno;
++ struct ioctl_gntdev_unmap_grant_ref unmap_grant;
++
++ /* Unmap the driver slots used to store the grant information. */
++ PERROR("xc_gnttab_map_grant_refs: mmap failed");
++ unmap_grant.index = map->index;
++ unmap_grant.count = count;
++ ioctl(fd, IOCTL_GNTDEV_UNMAP_GRANT_REF, &unmap_grant);
++ errno = saved_errno;
++ addr = NULL;
++ }
++
++ out:
++ free(map);
++
++ return addr;
++}
++
++static void *
++netbsd_gnttab_map_grant_refs(xc_gnttab *xcg, xc_osdep_handle h,
++ uint32_t count, uint32_t *domids, uint32_t *refs, int prot)
++{
++ return do_gnttab_map_grant_refs(xcg, h, count, domids, 1, refs, prot);
++}
++
++static void *
++netbsd_gnttab_map_domain_grant_refs(xc_gnttab *xcg, xc_osdep_handle h,
++ uint32_t count, uint32_t domid, uint32_t *refs, int prot)
++{
++ return do_gnttab_map_grant_refs(xcg, h, count, &domid, 0, refs, prot);
++}
++
++static int
++netbsd_gnttab_munmap(xc_gnttab *xcg, xc_osdep_handle h,
++ void *start_address, uint32_t count)
++{
++ int fd = (int)h;
++ struct ioctl_gntdev_get_offset_for_vaddr get_offset;
++ struct ioctl_gntdev_unmap_grant_ref unmap_grant;
++ int rc;
++
++ if ( start_address == NULL )
++ {
++ errno = EINVAL;
++ return -1;
++ }
++
++ /* First, it is necessary to get the offset which was initially used to
++ * mmap() the pages.
++ */
++ get_offset.vaddr = (unsigned long)start_address;
++ rc = ioctl(fd, IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR, &get_offset);
++ if ( rc )
++ return rc;
++
++ if ( get_offset.count != count )
++ {
++ errno = EINVAL;
++ return -1;
++ }
++
++ /* Next, unmap the memory. */
++ rc = munmap(start_address, count * getpagesize());
++ if ( rc )
++ return rc;
++
++ /* Finally, unmap the driver slots used to store the grant information. */
++ unmap_grant.index = get_offset.offset;
++ unmap_grant.count = count;
++ rc = ioctl(fd, IOCTL_GNTDEV_UNMAP_GRANT_REF, &unmap_grant);
++ if ( rc )
++ return rc;
++ return 0;
++}
++
++static struct xc_osdep_ops netbsd_gnttab_ops = {
++ .open = &netbsd_gnttab_open,
++ .close = &netbsd_gnttab_close,
++
++ .u.gnttab = {
++ .map_grant_ref = &netbsd_gnttab_map_grant_ref,
++ .map_grant_refs = &netbsd_gnttab_map_grant_refs,
++ .map_domain_grant_refs = &netbsd_gnttab_map_domain_grant_refs,
++ .munmap = &netbsd_gnttab_munmap,
++ },
++};
++
++static struct xc_osdep_ops *
++netbsd_osdep_init(xc_interface *xch, enum xc_osdep_type type)
+ {
+ switch ( type )
+ {
+@@ -360,8 +543,7 @@ static struct xc_osdep_ops *netbsd_osdep
+ case XC_OSDEP_EVTCHN:
+ return &netbsd_evtchn_ops;
+ case XC_OSDEP_GNTTAB:
+- ERROR("GNTTAB interface not supported on this platform");
+- return NULL;
++ return &netbsd_gnttab_ops;
+ default:
+ return NULL;
+ }
diff --git a/sysutils/xentools41/patches/patch-bc b/sysutils/xentools41/patches/patch-bc
new file mode 100644
index 00000000000..d082975117a
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-bc
@@ -0,0 +1,110 @@
+$NetBSD: patch-bc,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- include/xen-sys/NetBSD/gntdev.h.orig 2011-03-29 17:10:31.000000000 +0000
++++ include/xen-sys/NetBSD/gntdev.h
+@@ -0,0 +1,105 @@
++/******************************************************************************
++ * gntdev.h
++ *
++ * Interface to /dev/xen/gntdev.
++ *
++ * Copyright (c) 2007, D G Murray
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License version 2
++ * as published by the Free Software Foundation; or, when distributed
++ * separately from the Linux kernel or incorporated into other
++ * software packages, subject to the following license:
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this source file (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use, copy, modify,
++ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++ * IN THE SOFTWARE.
++ */
++
++#ifndef __NetBSD_PUBLIC_GNTDEV_H__
++#define __NetBSD_PUBLIC_GNTDEV_H__
++
++struct ioctl_gntdev_grant_ref {
++ /* The domain ID of the grant to be mapped. */
++ uint32_t domid;
++ /* The grant reference of the grant to be mapped. */
++ uint32_t ref;
++};
++
++/*
++ * Inserts the grant references into the mapping table of an instance
++ * of gntdev. N.B. This does not perform the mapping, which is deferred
++ * until mmap() is called with @index as the offset.
++ */
++#define IOCTL_GNTDEV_MAP_GRANT_REF \
++ _IOWR('G', 0, sizeof(struct ioctl_gntdev_map_grant_ref))
++struct ioctl_gntdev_map_grant_ref {
++ /* IN parameters */
++ /* The number of grants to be mapped. */
++ uint32_t count;
++ uint32_t pad;
++ /* OUT parameters */
++ /* The offset to be used on a subsequent call to mmap(). */
++ uint64_t index;
++ /* Variable IN parameter. */
++ /* Array of grant references, of size @count. */
++ struct ioctl_gntdev_grant_ref refs[1];
++};
++
++/*
++ * Removes the grant references from the mapping table of an instance of
++ * of gntdev. N.B. munmap() must be called on the relevant virtual address(es)
++ * before this ioctl is called, or an error will result.
++ */
++#define IOCTL_GNTDEV_UNMAP_GRANT_REF \
++ _IOW('G', 1, sizeof(struct ioctl_gntdev_unmap_grant_ref))
++struct ioctl_gntdev_unmap_grant_ref {
++ /* IN parameters */
++ /* The offset was returned by the corresponding map operation. */
++ uint64_t index;
++ /* The number of pages to be unmapped. */
++ uint32_t count;
++ uint32_t pad;
++};
++
++/*
++ * Returns the offset in the driver's address space that corresponds
++ * to @vaddr. This can be used to perform a munmap(), followed by an
++ * UNMAP_GRANT_REF ioctl, where no state about the offset is retained by
++ * the caller. The number of pages that were allocated at the same time as
++ * @vaddr is returned in @count.
++ *
++ * N.B. Where more than one page has been mapped into a contiguous range, the
++ * supplied @vaddr must correspond to the start of the range; otherwise
++ * an error will result. It is only possible to munmap() the entire
++ * contiguously-allocated range at once, and not any subrange thereof.
++ */
++#define IOCTL_GNTDEV_GET_OFFSET_FOR_VADDR \
++ _IOWR('G', 2, sizeof(struct ioctl_gntdev_get_offset_for_vaddr))
++struct ioctl_gntdev_get_offset_for_vaddr {
++ /* IN parameters */
++ /* The virtual address of the first mapped page in a range. */
++ uint64_t vaddr;
++ /* OUT parameters */
++ /* The offset that was used in the initial mmap() operation. */
++ uint64_t offset;
++ /* The number of pages mapped in the VM area that begins at @vaddr. */
++ uint32_t count;
++ uint32_t pad;
++};
++
++#endif /* __NetBSD_PUBLIC_GNTDEV_H__ */
diff --git a/sysutils/xentools41/patches/patch-ca b/sysutils/xentools41/patches/patch-ca
new file mode 100644
index 00000000000..6e7a5fa665d
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ca
@@ -0,0 +1,47 @@
+$NetBSD: patch-ca,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ../docs/man/xend-config.sxp.pod.5.orig 2010-04-07 16:12:04.000000000 +0000
++++ ../docs/man/xend-config.sxp.pod.5
+@@ -4,7 +4,7 @@ xend-config.sxp - Xen daemon configurati
+
+ =head1 SYNOPSIS
+
+-/etc/xen/xend-config.sxp
++@XENDCONFDIR@/xend-config.sxp
+
+ =head1 DESCRIPTION
+
+@@ -12,7 +12,7 @@ The xend(1) program requires xend-config
+ parameters which determine the behavior of the daemon at runtime.
+
+ The parameters are specified in S-expression format. See the example
+-configuration file in I</etc/xen/xend-config.sxp> for details.
++configuration file in I<@XENDCONFDIR@/xend-config.sxp> for details.
+
+ =head1 OPTIONS
+
+@@ -82,13 +82,13 @@ Defaults to I<1024>.
+
+ =item I<network-script>
+
+-The name of the script in I</etc/xen/scripts> that will be run to
++The name of the script in I<@XENDCONFDIR@/scripts> that will be run to
+ setup the networking environment. This can be any name, but in
+ general is either I<network-bridge> or I<network-route>.
+
+ =item I<vif-script>
+
+-The name of the script in I</etc/xen/scripts> that will be run to
++The name of the script in I<@XENDCONFDIR@/scripts> that will be run to
+ setup a virtual interface when it is created or destroyed. This needs
+ to (in general) work in unison with the I<network-script>.
+
+@@ -113,7 +113,7 @@ domains should be saved when a crash occ
+
+ The name of an application or script that can handle external device
+ migration, such as for example virtual TPM migration. An example
+-script is I</etc/xen/scripts/external-device-migrate>.
++script is I<@XENDCONFDIR@/scripts/external-device-migrate>.
+
+ =item I<device-create-timeout>
+
diff --git a/sysutils/xentools41/patches/patch-cb b/sysutils/xentools41/patches/patch-cb
new file mode 100644
index 00000000000..74aa5bd0068
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-cb
@@ -0,0 +1,36 @@
+$NetBSD: patch-cb,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ../docs/man/xmdomain.cfg.pod.5.orig 2008-08-01 16:38:07.000000000 +0200
++++ ../docs/man/xmdomain.cfg.pod.5
+@@ -4,9 +4,9 @@ xmdomain.cfg - xm domain config file for
+
+ =head1 SYNOPSIS
+
+- /etc/xen/myxendomain
+- /etc/xen/myxendomain2
+- /etc/xen/auto/myxenautostarted
++ @XENDCONFDIR@/myxendomain
++ @XENDCONFDIR@/myxendomain2
++ @XENDCONFDIR@/auto/myxenautostarted
+
+ =head1 DESCRIPTION
+
+@@ -14,14 +14,14 @@ The B<xm>(1) program uses python executa
+ domains to create from scratch. Each of these config files needs to
+ contain a number of required options, and may specify many more.
+
+-Domain configuration files live in /etc/xen by default, if you store
++Domain configuration files live in @XENDCONFDIR@ by default, if you store
+ config files anywhere else the full path to the config file must be
+ specified in the I<xm create> command.
+
+-/etc/xen/auto is a special case. Domain config files in that
++@XENDCONFDIR@/auto is a special case. Domain config files in that
+ directory will be started automatically at system boot if the
+-xendomain init script is enabled. The contents of /etc/xen/auto
+-should be symlinks to files in /etc/xen to allow I<xm create> to be
++xendomain init script is enabled. The contents of @XENDCONFDIR@/auto
++should be symlinks to files in @XENDCONFDIR@ to allow I<xm create> to be
+ used without full paths.
+
+ Options are specified by I<name = value> statements in the
diff --git a/sysutils/xentools41/patches/patch-cc b/sysutils/xentools41/patches/patch-cc
new file mode 100644
index 00000000000..33eb6446b57
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-cc
@@ -0,0 +1,40 @@
+$NetBSD: patch-cc,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ../docs/man/xm.pod.1.orig 2009-01-05 11:26:58.000000000 +0000
++++ ../docs/man/xm.pod.1
+@@ -75,7 +75,7 @@ in the config file. See L<xmdomain.cfg>
+ format, and possible options used in either the configfile or for I<vars>.
+
+ I<configfile> can either be an absolute path to a file, or a relative
+-path to a file located in /etc/xen.
++path to a file located in @XENDCONFDIR@.
+
+ Create will return B<as soon> as the domain is started. This B<does
+ not> mean the guest OS in the domain has actually booted, or is
+@@ -156,7 +156,7 @@ B<EXAMPLES>
+
+ xm create Fedora4
+
+-This creates a domain with the file /etc/xen/Fedora4, and returns as
++This creates a domain with the file @XENDCONFDIR@/Fedora4, and returns as
+ soon as it is run.
+
+ =item I<without config file>
+@@ -388,7 +388,7 @@ file format, and possible options used i
+ I<vars>.
+
+ I<configfile> can either be an absolute path to a file, or a relative
+-path to a file located in /etc/xen.
++path to a file located in @XENDCONFDIR@.
+
+ The new subcommand will return without starting the domain. The
+ domain needs to be started using the B<xm start> command.
+@@ -1068,7 +1068,7 @@ I<policy> is a dot-separated list of nam
+ name pre-fix for the policy XML file. The preceding name parts are
+ translated into the local path pointing to the policy XML file
+ relative to the global policy root directory
+-(/etc/xen/acm-security/policies). For example,
++(@XENDCONFDIR@/acm-security/policies). For example,
+ example.chwall_ste.client_v1 denotes the policy file
+ example/chwall_ste/client_v1-security_policy.xml relative to the
+ global policy root directory.
diff --git a/sysutils/xentools41/patches/patch-cd b/sysutils/xentools41/patches/patch-cd
new file mode 100644
index 00000000000..06a796a5936
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-cd
@@ -0,0 +1,13 @@
+$NetBSD: patch-cd,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- python/xen/xm/create.py.orig 2010-04-07 16:12:05.000000000 +0000
++++ python/xen/xm/create.py
+@@ -426,7 +426,7 @@ gopts.var('vtpm', val="instance=INSTANCE
+ preferred instance number. The hotplug script will determine
+ which instance number will actually be assigned to the domain.
+ The associtation between virtual machine and the TPM instance
+- number can be found in /etc/xen/vtpm.db. Use the backend in the
++ number can be found in @XENDCONFDIR@/vtpm.db. Use the backend in the
+ given domain.
+ The type parameter can be used to select a specific driver type
+ that the VM can use. To prevent a fully virtualized domain (HVM)
diff --git a/sysutils/xentools41/patches/patch-ce b/sysutils/xentools41/patches/patch-ce
new file mode 100644
index 00000000000..bd14472245e
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ce
@@ -0,0 +1,24 @@
+$NetBSD: patch-ce,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- security/policytools.txt.orig 2008-08-01 16:38:07.000000000 +0200
++++ security/policytools.txt
+@@ -16,10 +16,10 @@ XML. Read in the user manual about the n
+ name is used by the Xen management tools to identify existing
+ policies. Creating the security policy means creating a policy
+ description in XML:
+-/etc/xen/acm-security/policies/example/chwall_ste/test-security_policy.xml.
++@XENDCONFDIR@/acm-security/policies/example/chwall_ste/test-security_policy.xml.
+
+ The policy XML description must follow the XML schema definition in
+-/etc/xen/acm-security/policies/security_policy.xsd. The policy tools
++@XENDCONFDIR@/acm-security/policies/security_policy.xsd. The policy tools
+ are written against this schema; they will create and refine policies
+ that conform to this scheme.
+
+@@ -144,5 +144,5 @@ policy file naming conventions based on
+ choose to use.
+
+ To get a feel for the tool, you could use one of the example policy
+-definitions files from /etc/xen/acm-security/policies/example as
++definitions files from @XENDCONFDIR@/acm-security/policies/example as
+ input or a policy created by the xensec_ezpolicy tool.
diff --git a/sysutils/xentools41/patches/patch-cf b/sysutils/xentools41/patches/patch-cf
new file mode 100644
index 00000000000..b6129f6fdd1
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-cf
@@ -0,0 +1,17 @@
+$NetBSD: patch-cf,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- xm-test/tests/security-acm/Makefile.am.orig 2008-08-01 16:38:07.000000000 +0200
++++ xm-test/tests/security-acm/Makefile.am
+@@ -19,10 +19,10 @@ TESTS_ENVIRONMENT=@TENV@
+ %.test: %.py
+ cp $< $@
+ chmod +x $@
+- @if [ -d /etc/xen/acm-security/policies ]; then \
++ @if [ -d @XENDCONFDIR@/acm-security/policies ]; then \
+ cp -f xm-test-security_policy.xml \
+ xm-test-update-security_policy.xml\
+- /etc/xen/acm-security/policies; \
++ @XENDCONFDIR@/acm-security/policies; \
+ fi;
+
+ clean-local: am_config_clean-local
diff --git a/sysutils/xentools41/patches/patch-cg b/sysutils/xentools41/patches/patch-cg
new file mode 100644
index 00000000000..51a794c2f2f
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-cg
@@ -0,0 +1,22 @@
+$NetBSD: patch-cg,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- security/xensec_ezpolicy.orig 2008-08-01 16:38:07.000000000 +0200
++++ security/xensec_ezpolicy
+@@ -935,7 +935,7 @@ class ezFrame(wx.Frame):
+ policyname = transInfo()
+ if not policyname:
+ return
+- path="/etc/xen/acm-security/policies/"
++ path="@XENDCONFDIR@/acm-security/policies/"
+ nameparts=string.split(policyname, ".")
+ if len(nameparts) > 1:
+ path = path + "/".join(nameparts[0:len(nameparts)-1])
+@@ -1592,7 +1592,7 @@ where you merely replace &quot;NAME&quot
+ Save the policy under the name proposed by the tool in the proposed directory
+ if you are using this tool in your Xen environment. Otherwise, you need
+ to copy the resulting file into your Xen environment to the directory
+-&quot;/etc/xen/acm-security/policies/example/chwall_ste/&quot;.<BR>
++&quot;@XENDCONFDIR@/acm-security/policies/example/chwall_ste/&quot;.<BR>
+ <BR>
+ This tool creates policies for the Xen Chinese Wall and Simple Type Enforcement
+ policy. The Xen access control policy in general is more expressive and
diff --git a/sysutils/xentools41/patches/patch-ch b/sysutils/xentools41/patches/patch-ch
new file mode 100644
index 00000000000..2649cd2da10
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-ch
@@ -0,0 +1,16 @@
+$NetBSD: patch-ch,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- xm-test/runtest.sh.orig 2008-08-01 16:38:07.000000000 +0200
++++ xm-test/runtest.sh
+@@ -220,9 +220,9 @@ unsafe=no
+ GROUPENTERED=default
+
+ #Prepare for usage with ACM
+-if [ -d /etc/xen/acm-security/policies ]; then
++if [ -d @XENDCONFDIR@/acm-security/policies ]; then
+ cp -f tests/security-acm/xm-test-security_policy.xml \
+- /etc/xen/acm-security/policies
++ @XENDCONFDIR@/acm-security/policies
+ fi
+
+ unset XM_MANAGED_DOMAINS
diff --git a/sysutils/xentools41/patches/patch-da b/sysutils/xentools41/patches/patch-da
new file mode 100644
index 00000000000..161d1793033
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-da
@@ -0,0 +1,23 @@
+$NetBSD: patch-da,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ioemu-qemu-xen/configure.orig 2011-02-11 18:54:51.000000000 +0100
++++ ioemu-qemu-xen/configure 2011-03-31 16:50:40.000000000 +0200
+@@ -1124,7 +1124,7 @@
+ if test -z "$prefix" ; then
+ prefix="/usr/local"
+ fi
+- mansuffix="/share/man"
++ mansuffix="/man"
+ datasuffix="/share/qemu"
+ docsuffix="/share/doc/qemu"
+ binsuffix="/bin"
+@@ -1215,6 +1215,9 @@
+ echo "#define CONFIG_QEMU_SHAREDIR \"$prefix$datasuffix\"" >> $config_h
+ echo "MAKE=$make" >> $config_mak
+ echo "INSTALL=$install" >> $config_mak
++echo "INSTALL_DIR=$install -d -m0755 -p" >> $config_mak
++echo "INSTALL_DATA=$install -d -m0644 -p" >> $config_mak
++echo "INSTALL_PROG=$install -d -m0755 -p" >> $config_mak
+ echo "CC=$cc" >> $config_mak
+ echo "HOST_CC=$host_cc" >> $config_mak
+ echo "AR=$ar" >> $config_mak
diff --git a/sysutils/xentools41/patches/patch-db b/sysutils/xentools41/patches/patch-db
new file mode 100644
index 00000000000..0f14778103f
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-db
@@ -0,0 +1,85 @@
+$NetBSD: patch-db,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+--- ioemu-qemu-xen/Makefile.orig 2011-02-11 17:54:51.000000000 +0000
++++ ioemu-qemu-xen/Makefile
+@@ -1,7 +1,7 @@
+ # Makefile for QEMU.
+
+-include config-host.mak
+-include $(SRC_PATH)/rules.mak
++-include config-host.mak
++-include $(SRC_PATH)/rules.mak
+
+ .PHONY: all clean cscope distclean dvi html info install install-doc \
+ recurse-all speed tar tarbin test
+@@ -231,30 +231,30 @@ BLOBS=
+ endif
+
+ install-doc: $(DOCS)
+- mkdir -p "$(DESTDIR)$(docdir)"
+- $(INSTALL) -m 644 qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
++ $(INSTALL_DIR) "$(DESTDIR)$(docdir)"
++ $(INSTALL_DATA) qemu-doc.html qemu-tech.html "$(DESTDIR)$(docdir)"
+ ifndef CONFIG_WIN32
+- mkdir -p "$(DESTDIR)$(mandir)/man1"
+- $(INSTALL) -m 644 qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
+- mkdir -p "$(DESTDIR)$(mandir)/man8"
+- $(INSTALL) -m 644 qemu-nbd.8 "$(DESTDIR)$(mandir)/man8"
++ $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man1"
++ $(INSTALL_DATA) qemu.1 qemu-img.1 "$(DESTDIR)$(mandir)/man1"
++ $(INSTALL_DIR) "$(DESTDIR)$(mandir)/man8"
++ $(INSTALL_DATA) qemu-nbd.8 "$(DESTDIR)$(mandir)/man8"
+ endif
+
+ install: all $(if $(BUILD_DOCS),install-doc)
+- mkdir -p "$(DESTDIR)$(bindir)"
++ $(INSTALL_DIR) "$(DESTDIR)$(bindir)"
+ ifneq ($(TOOLS),)
+- $(INSTALL) -m 755 -s $(TOOLS) "$(DESTDIR)$(bindir)"
++ $(INSTALL_PROG) -s $(TOOLS) "$(DESTDIR)$(bindir)"
+ endif
+ ifneq ($(BLOBS),)
+- mkdir -p "$(DESTDIR)$(datadir)"
++ $(INSTALL_DIR) "$(DESTDIR)$(datadir)"
+ set -e; for x in $(BLOBS); do \
+- $(INSTALL) -m 644 $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
++ $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
+ done
+ endif
+ ifndef CONFIG_WIN32
+- mkdir -p "$(DESTDIR)$(datadir)/keymaps"
++ $(INSTALL_DIR) "$(DESTDIR)$(datadir)/keymaps"
+ set -e; for x in $(KEYMAPS); do \
+- $(INSTALL) -m 644 $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
++ $(INSTALL_DATA) $(SRC_PATH)/keymaps/$$x "$(DESTDIR)$(datadir)/keymaps"; \
+ done
+ endif
+ for d in $(TARGET_DIRS); do \
+@@ -275,7 +275,7 @@ cscope:
+
+ # documentation
+ %.html: %.texi
+- texi2html -monolithic -number $<
++ texi2html -monolithic -number-sections $<
+
+ %.info: %.texi
+ makeinfo $< -o $@
+@@ -284,15 +284,15 @@ cscope:
+ texi2dvi $<
+
+ qemu.1: qemu-doc.texi
+- $(SRC_PATH)/texi2pod.pl $< qemu.pod
++ perl $(SRC_PATH)/texi2pod.pl $< qemu.pod
+ pod2man --section=1 --center=" " --release=" " qemu.pod > $@
+
+ qemu-img.1: qemu-img.texi
+- $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
++ perl $(SRC_PATH)/texi2pod.pl $< qemu-img.pod
+ pod2man --section=1 --center=" " --release=" " qemu-img.pod > $@
+
+ qemu-nbd.8: qemu-nbd.texi
+- $(SRC_PATH)/texi2pod.pl $< qemu-nbd.pod
++ perl $(SRC_PATH)/texi2pod.pl $< qemu-nbd.pod
+ pod2man --section=8 --center=" " --release=" " qemu-nbd.pod > $@
+
+ info: qemu-doc.info qemu-tech.info
diff --git a/sysutils/xentools41/patches/patch-dc b/sysutils/xentools41/patches/patch-dc
new file mode 100644
index 00000000000..6b54034f40a
--- /dev/null
+++ b/sysutils/xentools41/patches/patch-dc
@@ -0,0 +1,34 @@
+$NetBSD: patch-dc,v 1.1.1.1 2011/04/06 09:10:27 cegger Exp $
+
+From sysutils/xentools33/patches/patch-ak.
+
+qemu-0.13.x will include this fix:
+http://git.qemu.org/qemu.git/commit/?id=9651ac55e5de0e1534d898316cc851af6ffc4334
+
+--- ioemu-qemu-xen/hw/e1000.c.orig 2009-08-06 12:56:34.000000000 +0000
++++ ioemu-qemu-xen/hw/e1000.c
+@@ -244,16 +244,20 @@ set_eecd(E1000State *s, int index, uint3
+
+ s->eecd_state.old_eecd = val & (E1000_EECD_SK | E1000_EECD_CS |
+ E1000_EECD_DI|E1000_EECD_FWE_MASK|E1000_EECD_REQ);
++ if (!(E1000_EECD_CS & val)) // CS inactive; nothing to do
++ return;
++ if (E1000_EECD_CS & (val ^ oldval)) { // CS rise edge; reset state
++ s->eecd_state.val_in = 0;
++ s->eecd_state.bitnum_in = 0;
++ s->eecd_state.bitnum_out = 0;
++ s->eecd_state.reading = 0;
++ }
+ if (!(E1000_EECD_SK & (val ^ oldval))) // no clock edge
+ return;
+ if (!(E1000_EECD_SK & val)) { // falling edge
+ s->eecd_state.bitnum_out++;
+ return;
+ }
+- if (!(val & E1000_EECD_CS)) { // rising, no CS (EEPROM reset)
+- memset(&s->eecd_state, 0, sizeof s->eecd_state);
+- return;
+- }
+ s->eecd_state.val_in <<= 1;
+ if (val & E1000_EECD_DI)
+ s->eecd_state.val_in |= 1;