pkgsrc-WIP-changes archive

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

virtualbox-svn: Add missing files



Module Name:	pkgsrc-wip
Committed By:	Kamil Rytarowski <n54%gmx.com@localhost>
Pushed By:	kamil
Date:		Sat Aug 13 00:24:35 2016 +0200
Changeset:	b6682beecfc841f199fe33147acececb3f63eb5d

Modified Files:
	virtualbox-svn/Makefile
	virtualbox-svn/distinfo
Added Files:
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile.kup
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c
	virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_files__vboxdrv

Log Message:
virtualbox-svn: Add missing files

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=b6682beecfc841f199fe33147acececb3f63eb5d

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 virtualbox-svn/Makefile                            |   3 +-
 virtualbox-svn/distinfo                            |   7 +
 ...ch-src_VBox_HostDrivers_Support_netbsd_Makefile | 185 ++++++
 ...rc_VBox_HostDrivers_Support_netbsd_Makefile.kup |   0
 ...VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c | 643 +++++++++++++++++++++
 ...ox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def |   6 +
 ...ox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp | 190 ++++++
 ...tDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c |  60 ++
 ..._VBox_HostDrivers_Support_netbsd_files__vboxdrv | 220 +++++++
 9 files changed, 1313 insertions(+), 1 deletion(-)

diffs:
diff --git a/virtualbox-svn/Makefile b/virtualbox-svn/Makefile
index 4e7a665..6e79e46 100644
--- a/virtualbox-svn/Makefile
+++ b/virtualbox-svn/Makefile
@@ -52,7 +52,7 @@ VBLIBDIR=	${PREFIX}/lib/virtualbox
 KMK_ENV_VARS+=	KBUILD_PATH=${WRKSRC}/kBuild
 KMK_ENV_VARS+=	KBUILD_LIB_SEARCH_ROOTS="/ /usr/ ${X11BASE}/ ${PREFIX}/"
 # Multiple jobs tend to be broken
-KMK_FLAGS+=	-j1
+KMK_FLAGS+=	-j${MAKE_JOBS}
 
 .if ${OPSYS} == "NetBSD"
 BUILDLINK_PASSTHRU_DIRS+=	/usr/src
@@ -101,6 +101,7 @@ do-build:
 do-install:
 	${RUN} cd ${WRKSRC} && . ./env.sh && kmk install
 
+.include "../../textproc/libxml2/buildlink3.mk"
 .include "../../wip/mk/svn-package2.mk"
 .include "../../mk/java-vm.mk"
 .include "../../net/libIDL/buildlink3.mk"
diff --git a/virtualbox-svn/distinfo b/virtualbox-svn/distinfo
index 5255f57..0baf817 100644
--- a/virtualbox-svn/distinfo
+++ b/virtualbox-svn/distinfo
@@ -20,6 +20,13 @@ SHA1 (patch-src_VBox_ExtPacks_VBoxDTrace_onnv_lib_libdtrace_common_dt__cc.c) = f
 SHA1 (patch-src_VBox_ExtPacks_VBoxDTrace_onnv_lib_libdtrace_common_dt__options.c) = a107b46ced20e8964951a115bae4006591fc0843
 SHA1 (patch-src_VBox_HostDrivers_Support_SUPDrvIDC.h) = df93779d885d4d661f7fbd3d2cfe02517f8ddac6
 SHA1 (patch-src_VBox_HostDrivers_Support_SUPR3HardenedMain.cpp) = 0e086dc3914c2993206cd0f6aa932f4ca5f93f00
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_Makefile) = acc98972409405fa7bcb68c61a724752723c22ff
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_Makefile.kup) = da39a3ee5e6b4b0d3255bfef95601890afd80709
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c) = cd9943cd4304503614ffb29242742113024015f1
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def) = 7b647e504679ff0e86e9591f0c42b3b87cc60fcc
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp) = f3396d90a13877552ba3d5ec92edf7448f4d0873
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c) = a72afe70adda30b9458a594db7f337fa18bf781a
+SHA1 (patch-src_VBox_HostDrivers_Support_netbsd_files__vboxdrv) = 200ddd0634bfea6e63464c94b39d0ee45d70540d
 SHA1 (patch-src_VBox_Installer_darwin_VirtualBox_postflight) = d073de54d5de4f61e154003e8e2acc039b6e059b
 SHA1 (patch-src_VBox_Installer_darwin_VirtualBox_preflight) = f24f7d6dd449e6ad664b8e5a8f5861dd7e0f13e8
 SHA1 (patch-src_VBox_Main_cbinding_VBoxCAPIGlue.c) = 03d23375afaf4448751141bedb7771abc7635f3c
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile
new file mode 100644
index 0000000..5b088a6
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile
@@ -0,0 +1,185 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/Makefile.orig	2016-08-12 22:24:09.738096810 +0000
++++ src/VBox/HostDrivers/Support/netbsd/Makefile
+@@ -0,0 +1,180 @@
++#  Makefile 60603 2016-04-20 14:32:19Z vboxsync
++## @file
++# Makefile for the VirtualBox NetBSD Host Driver.
++#
++
++#
++# Copyright (C) 2006-2015 Oracle Corporation
++#
++# This file is part of VirtualBox Open Source Edition (OSE), as
++# available from http://www.virtualbox.org. This file is free software;
++# you can redistribute it and/or modify it under the terms of the GNU
++# General Public License (GPL) as published by the Free Software
++# Foundation, in version 2 as it comes in the "COPYING" file of the
++# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++#
++# The contents of this file may alternatively be used under the terms
++# of the Common Development and Distribution License Version 1.0
++# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
++# VirtualBox OSE distribution, in which case the provisions of the
++# CDDL are applicable instead of those of the GPL.
++#
++# You may elect to license modified versions of this file under the
++# terms and conditions of either the GPL or the CDDL or both.
++#
++
++KMOD = vboxdrv
++
++CFLAGS += -DRT_OS_FREEBSD -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DSUPDRV_WITH_RELEASE_LOGGER -DVBOX -DRT_WITH_VBOX -Iinclude -I. -Ir0drv -w -DVBOX_WITH_HARDENING -DVBOX_WITH_64_BITS_GUESTS
++
++.if (${MACHINE_ARCH} == "i386")
++ CFLAGS += -DRT_ARCH_X86
++.elif (${MACHINE_ARCH} == "amd64")
++ CFLAGS += -DRT_ARCH_AMD64
++.endif
++
++SRCS = \
++	SUPDrv.c \
++	SUPDrvGip.c \
++	SUPDrvSem.c \
++	SUPDrvTracer.c \
++	SUPLibAll.c \
++
++.PATH:	${.CURDIR}/netbsd
++SRCS += \
++	SUPDrv-netbsd.c
++
++.PATH:	${.CURDIR}/alloc
++SRCS += \
++	heapsimple.c \
++	alloc.c
++
++.PATH:	${.CURDIR}/common/err
++SRCS += \
++	RTErrConvertFromErrno.c \
++	RTErrConvertToErrno.c
++
++.PATH:	${.CURDIR}/common/log
++SRCS += \
++	log.c \
++	logellipsis.c \
++	logrel.c \
++	logrelellipsis.c \
++	logcom.c \
++	logformat.c
++
++.PATH:	${.CURDIR}/common/misc
++SRCS += \
++	RTAssertMsg1Weak.c \
++	RTAssertMsg2.c \
++	RTAssertMsg2Add.c \
++	RTAssertMsg2AddWeak.c \
++	RTAssertMsg2AddWeakV.c \
++	RTAssertMsg2Weak.c \
++	RTAssertMsg2WeakV.c \
++	assert.c \
++	handletable.c \
++	handletablectx.c \
++	once.c \
++	term.c \
++	thread.c
++
++.PATH:	${.CURDIR}/common/string
++SRCS += \
++	RTStrNCmp.c \
++	RTStrNLen.c \
++	RTStrCopy.c \
++	RTStrCopyEx.c \
++	RTStrCopyP.c \
++	strformat.c \
++	strformatrt.c \
++	strformattype.c \
++	strprintf.c \
++	strtonum.c \
++	memchr.c \
++	stringalloc.c
++
++.PATH:	${.CURDIR}/common/rand
++SRCS += \
++	rand.c \
++	randadv.c \
++	randparkmiller.c
++
++.PATH:	${.CURDIR}/common/path
++SRCS += \
++	RTPathStripFilename.c
++
++.PATH:	${.CURDIR}/common/checksum
++SRCS += \
++	crc32.c \
++	ipv4.c \
++	ipv6.c
++
++.PATH:	${.CURDIR}/common/table
++SRCS += \
++	avlpv.c
++
++.PATH:	${.CURDIR}/common/time
++SRCS += \
++	time.c
++
++.PATH:	${.CURDIR}/generic
++SRCS += \
++	uuid-generic.c \
++	RTAssertShouldPanic-generic.c \
++	RTLogWriteDebugger-generic.c \
++	RTLogWriteStdOut-stub-generic.c \
++	RTLogWriteStdErr-stub-generic.c \
++	RTLogWriteUser-generic.c \
++	RTMpGetArraySize-generic.c \
++	RTMpOnPair-generic.c \
++	RTRandAdvCreateSystemFaster-generic.c \
++	RTRandAdvCreateSystemTruer-generic.c \
++	RTSemEventWait-2-ex-generic.c \
++	RTSemEventWaitNoResume-2-ex-generic.c \
++	RTSemEventMultiWait-2-ex-generic.c \
++	RTSemEventMultiWaitNoResume-2-ex-generic.c \
++	RTTimerCreate-generic.c \
++	errvars-generic.c \
++	mppresent-generic.c \
++	timer-generic.c
++
++.PATH:	${.CURDIR}/r0drv
++SRCS += \
++	alloc-r0drv.c \
++	alloc-ef-r0drv.c \
++	initterm-r0drv.c \
++	memobj-r0drv.c \
++	powernotification-r0drv.c
++
++.PATH:	${.CURDIR}/r0drv/netbsd
++SRCS += \
++	assert-r0drv-netbsd.c \
++	alloc-r0drv-netbsd.c \
++	initterm-r0drv-netbsd.c \
++	memobj-r0drv-netbsd.c \
++	memuserkernel-r0drv-netbsd.c \
++	mp-r0drv-netbsd.c \
++	process-r0drv-netbsd.c \
++	semevent-r0drv-netbsd.c \
++	semeventmulti-r0drv-netbsd.c \
++	semfastmutex-r0drv-netbsd.c \
++	semmutex-r0drv-netbsd.c \
++	spinlock-r0drv-netbsd.c \
++	thread-r0drv-netbsd.c \
++	thread2-r0drv-netbsd.c \
++	time-r0drv-netbsd.c
++
++.PATH:	${.CURDIR}/r0drv/generic
++SRCS += \
++	semspinmutex-r0drv-generic.c \
++	mpnotification-r0drv-generic.c \
++	threadctxhooks-r0drv-generic.c \
++	RTMpIsCpuWorkPending-r0drv-generic.c
++
++.PATH:	${.CURDIR}/VBox
++SRCS += \
++	log-vbox.c
++
++.include <bsd.kmod.mk>
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile.kup b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_Makefile.kup
new file mode 100644
index 0000000..e69de29
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c
new file mode 100644
index 0000000..f726b39
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.c
@@ -0,0 +1,643 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/SUPDrv-netbsd.c.orig	2016-08-12 22:24:09.739811553 +0000
++++ src/VBox/HostDrivers/Support/netbsd/SUPDrv-netbsd.c
+@@ -0,0 +1,638 @@
++/*  SUPDrv-netbsd.c 59217 2015-12-22 21:11:49Z vboxsync */
++/** @file
++ * VBoxDrv - The VirtualBox Support Driver - NetBSD specifics.
++ */
++
++/*
++ * Copyright (c) 2007 knut st. osmundsen <bird-src-spam%anduin.net@localhost>
++ *
++ * Permission is hereby granted, free of charge, to any person
++ * obtaining a copy of this software and associated documentation
++ * files (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.
++ */
++
++
++/*********************************************************************************************************************************
++*   Header Files                                                                                                                 *
++*********************************************************************************************************************************/
++#define LOG_GROUP LOG_GROUP_SUP_DRV
++/* Deal with conflicts first. */
++#include <sys/param.h>
++#undef PVM
++#include <sys/types.h>
++#include <sys/module.h>
++#include <sys/systm.h>
++#include <sys/errno.h>
++#include <sys/kernel.h>
++#include <sys/fcntl.h>
++#include <sys/conf.h>
++#include <sys/uio.h>
++
++#include "../SUPDrvInternal.h"
++#include <VBox/version.h>
++#include <iprt/initterm.h>
++#include <iprt/string.h>
++#include <iprt/spinlock.h>
++#include <iprt/process.h>
++#include <iprt/assert.h>
++#include <iprt/uuid.h>
++#include <VBox/log.h>
++#include <iprt/alloc.h>
++#include <iprt/err.h>
++#include <iprt/asm.h>
++
++#ifdef VBOX_WITH_HARDENING
++# define VBOXDRV_PERM 0600
++#else
++# define VBOXDRV_PERM 0666
++#endif
++
++
++/*********************************************************************************************************************************
++*   Internal Functions                                                                                                           *
++*********************************************************************************************************************************/
++static int VBoxDrvNetBSDModuleEvent(struct module *pMod, int enmEventType, void *pvArg);
++static int VBoxDrvNetBSDLoad(void);
++static int VBoxDrvNetBSDUnload(void);
++
++static d_open_t     VBoxDrvNetBSDOpenUsr;
++static d_open_t     VBoxDrvNetBSDOpenSys;
++static void         vboxdrvNetBSDDtr(void *pvData);
++static d_ioctl_t    VBoxDrvNetBSDIOCtl;
++static int          VBoxDrvNetBSDIOCtlSlow(PSUPDRVSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd);
++
++
++/*********************************************************************************************************************************
++*   Global Variables                                                                                                             *
++*********************************************************************************************************************************/
++/**
++ * Module info structure used by the kernel.
++ */
++static moduledata_t         g_VBoxDrvNetBSDModule =
++{
++    "vboxdrv",
++    VBoxDrvNetBSDModuleEvent,
++    NULL
++};
++
++/** Declare the module as a pseudo device. */
++DECLARE_MODULE(vboxdrv,     g_VBoxDrvNetBSDModule, SI_SUB_PSEUDO, SI_ORDER_ANY);
++MODULE_VERSION(vboxdrv, 1);
++
++/**
++ * The /dev/vboxdrv character device entry points.
++ */
++static struct cdevsw        g_VBoxDrvNetBSDChrDevSwSys =
++{
++    .d_version =        D_VERSION,
++    .d_open =           VBoxDrvNetBSDOpenSys,
++    .d_ioctl =          VBoxDrvNetBSDIOCtl,
++    .d_name =           "vboxdrv"
++};
++/** The /dev/vboxdrv character device. */
++static struct cdev         *g_pVBoxDrvNetBSDChrDevSys;
++
++/**
++ * The /dev/vboxdrvu character device entry points.
++ */
++static struct cdevsw        g_VBoxDrvNetBSDChrDevSwUsr =
++{
++    .d_version =        D_VERSION,
++    .d_open =           VBoxDrvNetBSDOpenUsr,
++    .d_ioctl =          VBoxDrvNetBSDIOCtl,
++    .d_name =           "vboxdrvu"
++};
++/** The /dev/vboxdrvu character device. */
++static struct cdev         *g_pVBoxDrvNetBSDChrDevUsr;
++
++/** Reference counter. */
++static volatile uint32_t    g_cUsers;
++
++/** The device extention. */
++static SUPDRVDEVEXT         g_VBoxDrvNetBSDDevExt;
++
++/**
++ * Module event handler.
++ *
++ * @param   pMod            The module structure.
++ * @param   enmEventType    The event type (modeventtype_t).
++ * @param   pvArg           Module argument. NULL.
++ *
++ * @return  0 on success, errno.h status code on failure.
++ */
++static int VBoxDrvNetBSDModuleEvent(struct module *pMod, int enmEventType, void *pvArg)
++{
++    int rc;
++    switch (enmEventType)
++    {
++        case MOD_LOAD:
++            rc = VBoxDrvNetBSDLoad();
++            break;
++
++        case MOD_UNLOAD:
++            mtx_unlock(&Giant);
++            rc = VBoxDrvNetBSDUnload();
++            mtx_lock(&Giant);
++            break;
++
++        case MOD_SHUTDOWN:
++        case MOD_QUIESCE:
++        default:
++            return EOPNOTSUPP;
++    }
++
++    if (RT_SUCCESS(rc))
++        return 0;
++    return RTErrConvertToErrno(rc);
++}
++
++
++static int VBoxDrvNetBSDLoad(void)
++{
++    g_cUsers = 0;
++
++    /*
++     * Initialize the runtime.
++     */
++    int rc = RTR0Init(0);
++    if (RT_SUCCESS(rc))
++    {
++        Log(("VBoxDrvNetBSDLoad:\n"));
++
++        /*
++         * Initialize the device extension.
++         */
++        rc = supdrvInitDevExt(&g_VBoxDrvNetBSDDevExt, sizeof(SUPDRVSESSION));
++        if (RT_SUCCESS(rc))
++        {
++            /*
++             * Configure character devices. Add symbolic links for compatibility.
++             */
++            g_pVBoxDrvNetBSDChrDevSys = make_dev(&g_VBoxDrvNetBSDChrDevSwSys, 0, UID_ROOT, GID_WHEEL, VBOXDRV_PERM, "vboxdrv");
++            g_pVBoxDrvNetBSDChrDevUsr = make_dev(&g_VBoxDrvNetBSDChrDevSwUsr, 1, UID_ROOT, GID_WHEEL, 0666,         "vboxdrvu");
++            return VINF_SUCCESS;
++        }
++
++        printf("vboxdrv: supdrvInitDevExt failed, rc=%d\n", rc);
++        RTR0Term();
++    }
++    else
++        printf("vboxdrv: RTR0Init failed, rc=%d\n", rc);
++    return rc;
++}
++
++static int VBoxDrvNetBSDUnload(void)
++{
++    Log(("VBoxDrvNetBSDUnload:\n"));
++
++    if (g_cUsers > 0)
++        return VERR_RESOURCE_BUSY;
++
++    /*
++     * Reserve what we did in VBoxDrvNetBSDInit.
++     */
++    destroy_dev(g_pVBoxDrvNetBSDChrDevUsr);
++    destroy_dev(g_pVBoxDrvNetBSDChrDevSys);
++
++    supdrvDeleteDevExt(&g_VBoxDrvNetBSDDevExt);
++
++    RTR0TermForced();
++
++    memset(&g_VBoxDrvNetBSDDevExt, 0, sizeof(g_VBoxDrvNetBSDDevExt));
++    return VINF_SUCCESS;
++}
++
++
++/**
++ *
++ * @returns 0 on success, errno on failure.
++ *          EBUSY if the device is used by someone else.
++ * @param   pDev            The device node.
++ * @param   fOpen           The open flags.
++ * @param   iDevType        Some device type thing we don't use.
++ * @param   pTd             The thread.
++ * @param   fUnrestricted   Set if opening /dev/vboxdrv, clear if /dev/vboxdrvu.
++ */
++static int vboxdrvNetBSDOpenCommon(struct cdev *pDev, int fOpen, int iDevType, struct thread *pTd, bool fUnrestricted)
++{
++    PSUPDRVSESSION pSession;
++    int rc;
++
++    /*
++     * Let's be a bit picky about the flags...
++     */
++    if (fOpen != (FREAD | FWRITE /*=O_RDWR*/))
++    {
++        Log(("VBoxDrvNetBSDOpen: fOpen=%#x expected %#x\n", fOpen, O_RDWR));
++        return EINVAL;
++    }
++
++    /*
++     * Create a new session.
++     */
++    rc = supdrvCreateSession(&g_VBoxDrvNetBSDDevExt, true /* fUser */, fUnrestricted, &pSession);
++    if (RT_SUCCESS(rc))
++    {
++        /** @todo get (r)uid and (r)gid.
++        pSession->Uid = stuff;
++        pSession->Gid = stuff; */
++        rc = devfs_set_cdevpriv(pSession, vboxdrvNetBSDDtr); Assert(rc == 0);
++        Log(("VBoxDrvNetBSDOpen: pSession=%p\n", pSession));
++        ASMAtomicIncU32(&g_cUsers);
++        return 0;
++    }
++
++    return RTErrConvertToErrno(rc);
++}
++
++
++/** For vboxdrv. */
++static int VBoxDrvNetBSDOpenSys(struct cdev *pDev, int fOpen, int iDevType, struct thread *pTd)
++{
++    return vboxdrvNetBSDOpenCommon(pDev, fOpen, iDevType, pTd, true);
++}
++
++
++/** For vboxdrvu. */
++static int VBoxDrvNetBSDOpenUsr(struct cdev *pDev, int fOpen, int iDevType, struct thread *pTd)
++{
++    return vboxdrvNetBSDOpenCommon(pDev, fOpen, iDevType, pTd, false);
++}
++
++
++/**
++ * Close a file device previously opened by VBoxDrvNetBSDOpen.
++ *
++ * @returns 0 on success.
++ * @param   pvData      The session being closed.
++ */
++static void vboxdrvNetBSDDtr(void *pvData)
++{
++    PSUPDRVSESSION pSession = pvData;
++    Log(("vboxdrvNetBSDDtr: pSession=%p\n", pSession));
++
++    /*
++     * Close the session.
++     */
++    supdrvSessionRelease(pSession);
++    ASMAtomicDecU32(&g_cUsers);
++}
++
++
++/**
++ * I/O control request.
++ *
++ * @returns depends...
++ * @param   pDev        The device.
++ * @param   ulCmd       The command.
++ * @param   pvData      Pointer to the data.
++ * @param   fFile       The file descriptor flags.
++ * @param   pTd         The calling thread.
++ */
++static int VBoxDrvNetBSDIOCtl(struct cdev *pDev, u_long ulCmd, caddr_t pvData, int fFile, struct thread *pTd)
++{
++    PSUPDRVSESSION pSession;
++    devfs_get_cdevpriv((void **)&pSession);
++
++    /*
++     * Deal with the fast ioctl path first.
++     */
++    if (   (   ulCmd == SUP_IOCTL_FAST_DO_RAW_RUN
++            || ulCmd == SUP_IOCTL_FAST_DO_HM_RUN
++            || ulCmd == SUP_IOCTL_FAST_DO_NOP)
++        && pSession->fUnrestricted == true)
++        return supdrvIOCtlFast(ulCmd, *(uint32_t *)pvData, &g_VBoxDrvNetBSDDevExt, pSession);
++
++    return VBoxDrvNetBSDIOCtlSlow(pSession, ulCmd, pvData, pTd);
++}
++
++
++/**
++ * Deal with the 'slow' I/O control requests.
++ *
++ * @returns 0 on success, appropriate errno on failure.
++ * @param   pSession    The session.
++ * @param   ulCmd       The command.
++ * @param   pvData      The request data.
++ * @param   pTd         The calling thread.
++ */
++static int VBoxDrvNetBSDIOCtlSlow(PSUPDRVSESSION pSession, u_long ulCmd, caddr_t pvData, struct thread *pTd)
++{
++    PSUPREQHDR  pHdr;
++    uint32_t    cbReq = IOCPARM_LEN(ulCmd);
++    void       *pvUser = NULL;
++
++    /*
++     * Buffered request?
++     */
++    if ((IOC_DIRMASK & ulCmd) == IOC_INOUT)
++    {
++        pHdr = (PSUPREQHDR)pvData;
++        if (RT_UNLIKELY(cbReq < sizeof(*pHdr)))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: cbReq=%#x < %#x; ulCmd=%#lx\n", cbReq, (int)sizeof(*pHdr), ulCmd));
++            return EINVAL;
++        }
++        if (RT_UNLIKELY((pHdr->fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: bad magic fFlags=%#x; ulCmd=%#lx\n", pHdr->fFlags, ulCmd));
++            return EINVAL;
++        }
++        if (RT_UNLIKELY(    RT_MAX(pHdr->cbIn, pHdr->cbOut) != cbReq
++                        ||  pHdr->cbIn < sizeof(*pHdr)
++                        ||  pHdr->cbOut < sizeof(*pHdr)))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: max(%#x,%#x) != %#x; ulCmd=%#lx\n", pHdr->cbIn, pHdr->cbOut, cbReq, ulCmd));
++            return EINVAL;
++        }
++    }
++    /*
++     * Big unbuffered request?
++     */
++    else if ((IOC_DIRMASK & ulCmd) == IOC_VOID && !cbReq)
++    {
++        /*
++         * Read the header, validate it and figure out how much that needs to be buffered.
++         */
++        SUPREQHDR Hdr;
++        pvUser = *(void **)pvData;
++        int rc = copyin(pvUser, &Hdr, sizeof(Hdr));
++        if (RT_UNLIKELY(rc))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: copyin(%p,Hdr,) -> %#x; ulCmd=%#lx\n", pvUser, rc, ulCmd));
++            return rc;
++        }
++        if (RT_UNLIKELY((Hdr.fFlags & SUPREQHDR_FLAGS_MAGIC_MASK) != SUPREQHDR_FLAGS_MAGIC))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: bad magic fFlags=%#x; ulCmd=%#lx\n", Hdr.fFlags, ulCmd));
++            return EINVAL;
++        }
++        cbReq = RT_MAX(Hdr.cbIn, Hdr.cbOut);
++        if (RT_UNLIKELY(    Hdr.cbIn < sizeof(Hdr)
++                        ||  Hdr.cbOut < sizeof(Hdr)
++                        ||  cbReq > _1M*16))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: max(%#x,%#x); ulCmd=%#lx\n", Hdr.cbIn, Hdr.cbOut, ulCmd));
++            return EINVAL;
++        }
++
++        /*
++         * Allocate buffer and copy in the data.
++         */
++        pHdr = (PSUPREQHDR)RTMemTmpAlloc(cbReq);
++        if (RT_UNLIKELY(!pHdr))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: failed to allocate buffer of %d bytes; ulCmd=%#lx\n", cbReq, ulCmd));
++            return ENOMEM;
++        }
++        rc = copyin(pvUser, pHdr, Hdr.cbIn);
++        if (RT_UNLIKELY(rc))
++        {
++            OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: copyin(%p,%p,%#x) -> %#x; ulCmd=%#lx\n",
++                        pvUser, pHdr, Hdr.cbIn, rc, ulCmd));
++            RTMemTmpFree(pHdr);
++            return rc;
++        }
++        if (Hdr.cbIn < cbReq)
++            RT_BZERO((uint8_t *)pHdr + Hdr.cbIn, cbReq - Hdr.cbIn);
++    }
++    else
++    {
++        Log(("VBoxDrvNetBSDIOCtlSlow: huh? cbReq=%#x ulCmd=%#lx\n", cbReq, ulCmd));
++        return EINVAL;
++    }
++
++    /*
++     * Process the IOCtl.
++     */
++    int rc = supdrvIOCtl(ulCmd, &g_VBoxDrvNetBSDDevExt, pSession, pHdr, cbReq);
++    if (RT_LIKELY(!rc))
++    {
++        /*
++         * If unbuffered, copy back the result before returning.
++         */
++        if (pvUser)
++        {
++            uint32_t cbOut = pHdr->cbOut;
++            if (cbOut > cbReq)
++            {
++                OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: too much output! %#x > %#x; uCmd=%#lx!\n", cbOut, cbReq, ulCmd));
++                cbOut = cbReq;
++            }
++            rc = copyout(pHdr, pvUser, cbOut);
++            if (RT_UNLIKELY(rc))
++                OSDBGPRINT(("VBoxDrvNetBSDIOCtlSlow: copyout(%p,%p,%#x) -> %d; uCmd=%#lx!\n", pHdr, pvUser, cbOut, rc, ulCmd));
++
++            Log(("VBoxDrvNetBSDIOCtlSlow: returns %d / %d ulCmd=%lx\n", 0, pHdr->rc, ulCmd));
++
++            /* cleanup */
++            RTMemTmpFree(pHdr);
++        }
++    }
++    else
++    {
++        /*
++         * The request failed, just clean up.
++         */
++        if (pvUser)
++            RTMemTmpFree(pHdr);
++
++        Log(("VBoxDrvNetBSDIOCtlSlow: ulCmd=%lx pData=%p failed, rc=%d\n", ulCmd, pvData, rc));
++        rc = EINVAL;
++    }
++
++    return rc;
++}
++
++
++/**
++ * The SUPDRV IDC entry point.
++ *
++ * @returns VBox status code, see supdrvIDC.
++ * @param   uReq        The request code.
++ * @param   pReq        The request.
++ */
++int VBOXCALL SUPDrvNetBSDIDC(uint32_t uReq, PSUPDRVIDCREQHDR pReq)
++{
++    PSUPDRVSESSION  pSession;
++
++    /*
++     * Some quick validations.
++     */
++    if (RT_UNLIKELY(!VALID_PTR(pReq)))
++        return VERR_INVALID_POINTER;
++
++    pSession = pReq->pSession;
++    if (pSession)
++    {
++        if (RT_UNLIKELY(!VALID_PTR(pReq->pSession)))
++            return VERR_INVALID_PARAMETER;
++        if (RT_UNLIKELY(pSession->pDevExt != &g_VBoxDrvNetBSDDevExt))
++            return VERR_INVALID_PARAMETER;
++    }
++    else if (RT_UNLIKELY(uReq != SUPDRV_IDC_REQ_CONNECT))
++        return VERR_INVALID_PARAMETER;
++
++    /*
++     * Do the job.
++     */
++    return supdrvIDC(uReq, &g_VBoxDrvNetBSDDevExt, pSession, pReq);
++}
++
++
++void VBOXCALL supdrvOSCleanupSession(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession)
++{
++    NOREF(pDevExt);
++    NOREF(pSession);
++}
++
++
++void VBOXCALL supdrvOSSessionHashTabInserted(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser)
++{
++    NOREF(pDevExt); NOREF(pSession); NOREF(pvUser);
++}
++
++
++void VBOXCALL supdrvOSSessionHashTabRemoved(PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, void *pvUser)
++{
++    NOREF(pDevExt); NOREF(pSession); NOREF(pvUser);
++}
++
++
++void VBOXCALL   supdrvOSObjInitCreator(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession)
++{
++    NOREF(pObj);
++    NOREF(pSession);
++}
++
++
++bool VBOXCALL   supdrvOSObjCanAccess(PSUPDRVOBJ pObj, PSUPDRVSESSION pSession, const char *pszObjName, int *prc)
++{
++    NOREF(pObj);
++    NOREF(pSession);
++    NOREF(pszObjName);
++    NOREF(prc);
++    return false;
++}
++
++
++bool VBOXCALL  supdrvOSGetForcedAsyncTscMode(PSUPDRVDEVEXT pDevExt)
++{
++    return false;
++}
++
++
++bool VBOXCALL  supdrvOSAreCpusOfflinedOnSuspend(void)
++{
++    /** @todo verify this. */
++    return false;
++}
++
++
++bool VBOXCALL  supdrvOSAreTscDeltasInSync(void)
++{
++    return false;
++}
++
++
++int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
++{
++    NOREF(pDevExt); NOREF(pImage); NOREF(pszFilename);
++    return VERR_NOT_SUPPORTED;
++}
++
++
++int  VBOXCALL   supdrvOSLdrValidatePointer(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, void *pv, const uint8_t *pbImageBits)
++{
++    NOREF(pDevExt); NOREF(pImage); NOREF(pv); NOREF(pbImageBits);
++    return VERR_NOT_SUPPORTED;
++}
++
++
++int  VBOXCALL   supdrvOSLdrLoad(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const uint8_t *pbImageBits, PSUPLDRLOAD pReq)
++{
++    NOREF(pDevExt); NOREF(pImage); NOREF(pbImageBits); NOREF(pReq);
++    return VERR_NOT_SUPPORTED;
++}
++
++
++void VBOXCALL   supdrvOSLdrUnload(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage)
++{
++    NOREF(pDevExt); NOREF(pImage);
++}
++
++
++void VBOXCALL   supdrvOSLdrNotifyOpened(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
++{
++    NOREF(pDevExt); NOREF(pImage); NOREF(pszFilename);
++}
++
++
++void VBOXCALL   supdrvOSLdrNotifyUnloaded(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage)
++{
++    NOREF(pDevExt); NOREF(pImage);
++}
++
++
++#ifdef SUPDRV_WITH_MSR_PROBER
++
++int VBOXCALL    supdrvOSMsrProberRead(uint32_t uMsr, RTCPUID idCpu, uint64_t *puValue)
++{
++    NOREF(uMsr); NOREF(idCpu); NOREF(puValue);
++    return VERR_NOT_SUPPORTED;
++}
++
++
++int VBOXCALL    supdrvOSMsrProberWrite(uint32_t uMsr, RTCPUID idCpu, uint64_t uValue)
++{
++    NOREF(uMsr); NOREF(idCpu); NOREF(uValue);
++    return VERR_NOT_SUPPORTED;
++}
++
++
++int VBOXCALL    supdrvOSMsrProberModify(RTCPUID idCpu, PSUPMSRPROBER pReq)
++{
++    NOREF(idCpu); NOREF(pReq);
++    return VERR_NOT_SUPPORTED;
++}
++
++#endif /* SUPDRV_WITH_MSR_PROBER */
++
++
++SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...)
++{
++    va_list va;
++    char szMsg[256];
++    int cch;
++
++    va_start(va, pszFormat);
++    cch = RTStrPrintfV(szMsg, sizeof(szMsg), pszFormat, va);
++    va_end(va);
++
++    printf("%s", szMsg);
++
++    return cch;
++}
++
++
++SUPR0DECL(uint32_t) SUPR0GetKernelFeatures(void)
++{
++    return 0;
++}
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def
new file mode 100644
index 0000000..b8c057c
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPDrv-netbsd.def
@@ -0,0 +1,6 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/SUPDrv-netbsd.def.orig	2016-08-12 22:24:09.740629324 +0000
++++ src/VBox/HostDrivers/Support/netbsd/SUPDrv-netbsd.def
+@@ -0,0 +1 @@
++SUPDrvNetBSDIDC
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp
new file mode 100644
index 0000000..6a3aad4
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPLib-netbsd.cpp
@@ -0,0 +1,190 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/SUPLib-netbsd.cpp.orig	2016-08-12 22:24:09.741438436 +0000
++++ src/VBox/HostDrivers/Support/netbsd/SUPLib-netbsd.cpp
+@@ -0,0 +1,185 @@
++/*  SUPLib-freebsd.cpp 62490 2016-07-22 18:41:49Z vboxsync */
++/** @file
++ * VirtualBox Support Library - NetBSD specific parts.
++ */
++
++/*
++ * Copyright (C) 2006-2016 Oracle Corporation
++ *
++ * This file is part of VirtualBox Open Source Edition (OSE), as
++ * available from http://www.virtualbox.org. This file is free software;
++ * you can redistribute it and/or modify it under the terms of the GNU
++ * General Public License (GPL) as published by the Free Software
++ * Foundation, in version 2 as it comes in the "COPYING" file of the
++ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++ *
++ * The contents of this file may alternatively be used under the terms
++ * of the Common Development and Distribution License Version 1.0
++ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
++ * VirtualBox OSE distribution, in which case the provisions of the
++ * CDDL are applicable instead of those of the GPL.
++ *
++ * You may elect to license modified versions of this file under the
++ * terms and conditions of either the GPL or the CDDL or both.
++ */
++
++
++/*********************************************************************************************************************************
++*   Header Files                                                                                                                 *
++*********************************************************************************************************************************/
++#define LOG_GROUP LOG_GROUP_SUP
++#ifdef IN_SUP_HARDENED_R3
++# undef DEBUG /* Warning: disables RT_STRICT */
++# define LOG_DISABLED
++# define RTLOG_REL_DISABLED
++# include <iprt/log.h>
++#endif
++
++#include <VBox/types.h>
++#include <VBox/sup.h>
++#include <VBox/param.h>
++#include <VBox/err.h>
++#include <VBox/log.h>
++#include <iprt/path.h>
++#include <iprt/assert.h>
++#include <iprt/mem.h>
++#include <iprt/err.h>
++#include <iprt/string.h>
++#include "../SUPLibInternal.h"
++#include "../SUPDrvIOC.h"
++
++#include <sys/fcntl.h>
++#include <sys/ioctl.h>
++#include <errno.h>
++#include <unistd.h>
++#include <stdlib.h>
++#include <stdio.h>
++
++
++/*********************************************************************************************************************************
++*   Defined Constants And Macros                                                                                                 *
++*********************************************************************************************************************************/
++/** System device name. */
++#define DEVICE_NAME_SYS "/dev/vboxdrv"
++/** User device name. */
++#define DEVICE_NAME_USR "/dev/vboxdrvu"
++
++
++
++int suplibOsInit(PSUPLIBDATA pThis, bool fPreInited, bool fUnrestricted, SUPINITOP *penmWhat, PRTERRINFO pErrInfo)
++{
++    /*
++     * Nothing to do if pre-inited.
++     */
++    if (fPreInited)
++        return VINF_SUCCESS;
++
++    /*
++     * Try open the BSD device.
++     */
++    int hDevice = open(fUnrestricted ? DEVICE_NAME_SYS : DEVICE_NAME_USR, O_RDWR, 0);
++    if (hDevice < 0)
++    {
++        int rc;
++        switch (errno)
++        {
++            case ENODEV:    rc = VERR_VM_DRIVER_LOAD_ERROR; break;
++            case EPERM:
++            case EACCES:    rc = VERR_VM_DRIVER_NOT_ACCESSIBLE; break;
++            case ENOENT:    rc = VERR_VM_DRIVER_NOT_INSTALLED; break;
++            default:        rc = VERR_VM_DRIVER_OPEN_ERROR; break;
++        }
++        LogRel(("Failed to open \"%s\", errno=%d, rc=%Rrc\n", fUnrestricted ? DEVICE_NAME_SYS : DEVICE_NAME_USR, errno, rc));
++        return rc;
++    }
++
++    /*
++     * Mark the file handle close on exec.
++     */
++    if (fcntl(hDevice, F_SETFD, FD_CLOEXEC) != 0)
++    {
++#ifdef IN_SUP_HARDENED_R3
++        int rc = VERR_INTERNAL_ERROR;
++#else
++        int err = errno;
++        int rc = RTErrConvertFromErrno(err);
++        LogRel(("suplibOSInit: setting FD_CLOEXEC failed, errno=%d (%Rrc)\n", err, rc));
++#endif
++        close(hDevice);
++        return rc;
++    }
++
++    /*
++     * We're done.
++     */
++    pThis->hDevice       = hDevice;
++    pThis->fUnrestricted = fUnrestricted;
++    return VINF_SUCCESS;
++}
++
++
++#ifndef IN_SUP_HARDENED_R3
++
++int suplibOsTerm(PSUPLIBDATA pThis)
++{
++    /*
++     * Check if we're inited at all.
++     */
++    if (pThis->hDevice != (intptr_t)NIL_RTFILE)
++    {
++        if (close(pThis->hDevice))
++            AssertFailed();
++        pThis->hDevice = (intptr_t)NIL_RTFILE;
++    }
++    return VINF_SUCCESS;
++}
++
++
++int suplibOsInstall(void)
++{
++    return VERR_NOT_IMPLEMENTED;
++}
++
++
++int suplibOsUninstall(void)
++{
++    return VERR_NOT_IMPLEMENTED;
++}
++
++
++int suplibOsIOCtl(PSUPLIBDATA pThis, uintptr_t uFunction, void *pvReq, size_t cbReq)
++{
++    if (RT_LIKELY(ioctl(pThis->hDevice, uFunction, pvReq) >= 0))
++        return VINF_SUCCESS;
++    return RTErrConvertFromErrno(errno);
++}
++
++
++int suplibOsIOCtlFast(PSUPLIBDATA pThis, uintptr_t uFunction, uintptr_t idCpu)
++{
++    int rc = ioctl(pThis->hDevice, uFunction, idCpu);
++    if (rc == -1)
++        rc = errno;
++    return rc;
++}
++
++
++int suplibOsPageAlloc(PSUPLIBDATA pThis, size_t cPages, void **ppvPages)
++{
++    NOREF(pThis);
++    *ppvPages = RTMemPageAllocZ(cPages << PAGE_SHIFT);
++    if (*ppvPages)
++        return VINF_SUCCESS;
++    return RTErrConvertFromErrno(errno);
++}
++
++
++int suplibOsPageFree(PSUPLIBDATA pThis, void *pvPages, size_t cPages)
++{
++    NOREF(pThis);
++    RTMemPageFree(pvPages, cPages * PAGE_SIZE);
++    return VINF_SUCCESS;
++}
++
++#endif /* !IN_SUP_HARDENED_R3 */
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c
new file mode 100644
index 0000000..95edcf6
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_SUPR0IdcClient-netbsd.c
@@ -0,0 +1,60 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/SUPR0IdcClient-netbsd.c.orig	2016-08-12 22:24:09.742243496 +0000
++++ src/VBox/HostDrivers/Support/netbsd/SUPR0IdcClient-netbsd.c
+@@ -0,0 +1,55 @@
++/* SUPR0IdcClient-netbsd.c 62490 2016-07-22 18:41:49Z vboxsync */
++/** @file
++ * VirtualBox Support Driver - IDC Client Lib, NetBSD Specific Code.
++ */
++
++/*
++ * Copyright (C) 2008-2016 Oracle Corporation
++ *
++ * This file is part of VirtualBox Open Source Edition (OSE), as
++ * available from http://www.virtualbox.org. This file is free software;
++ * you can redistribute it and/or modify it under the terms of the GNU
++ * General Public License (GPL) as published by the Free Software
++ * Foundation, in version 2 as it comes in the "COPYING" file of the
++ * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++ * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++ *
++ * The contents of this file may alternatively be used under the terms
++ * of the Common Development and Distribution License Version 1.0
++ * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
++ * VirtualBox OSE distribution, in which case the provisions of the
++ * CDDL are applicable instead of those of the GPL.
++ *
++ * You may elect to license modified versions of this file under the
++ * terms and conditions of either the GPL or the CDDL or both.
++ */
++
++
++/*********************************************************************************************************************************
++*   Header Files                                                                                                                 *
++*********************************************************************************************************************************/
++#include "../SUPR0IdcClientInternal.h"
++#include <VBox/err.h>
++
++
++int VBOXCALL supR0IdcNativeOpen(PSUPDRVIDCHANDLE pHandle, PSUPDRVIDCREQCONNECT pReq)
++{
++    return supR0IdcNativeCall(pHandle, SUPDRV_IDC_REQ_CONNECT, &pReq->Hdr);
++}
++
++
++int VBOXCALL supR0IdcNativeClose(PSUPDRVIDCHANDLE pHandle, PSUPDRVIDCREQHDR pReq)
++{
++    return supR0IdcNativeCall(pHandle, SUPDRV_IDC_REQ_DISCONNECT, pReq);
++}
++
++
++int VBOXCALL supR0IdcNativeCall(PSUPDRVIDCHANDLE pHandle, uint32_t iReq, PSUPDRVIDCREQHDR pReq)
++{
++    int rc = SUPDrvNetBSDIDC(iReq, pReq);
++    if (RT_SUCCESS(rc))
++        rc = pReq->rc;
++
++    NOREF(pHandle);
++    return rc;
++}
diff --git a/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_files__vboxdrv b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_files__vboxdrv
new file mode 100644
index 0000000..8edc90b
--- /dev/null
+++ b/virtualbox-svn/patches/patch-src_VBox_HostDrivers_Support_netbsd_files__vboxdrv
@@ -0,0 +1,220 @@
+$NetBSD$
+
+--- src/VBox/HostDrivers/Support/netbsd/files_vboxdrv.orig	2016-08-12 22:24:09.743043249 +0000
++++ src/VBox/HostDrivers/Support/netbsd/files_vboxdrv
+@@ -0,0 +1,215 @@
++#!/bin/sh
++#  files_vboxdrv 60603 2016-04-20 14:32:19Z vboxsync
++## @file
++# Shared file between Makefile.kmk and export_modules
++#
++
++#
++# Copyright (C) 2007-2015 Oracle Corporation
++#
++# This file is part of VirtualBox Open Source Edition (OSE), as
++# available from http://www.virtualbox.org. This file is free software;
++# you can redistribute it and/or modify it under the terms of the GNU
++# General Public License (GPL) as published by the Free Software
++# Foundation, in version 2 as it comes in the "COPYING" file of the
++# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
++# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
++#
++# The contents of this file may alternatively be used under the terms
++# of the Common Development and Distribution License Version 1.0
++# (CDDL) only, as it comes in the "COPYING.CDDL" file of the
++# VirtualBox OSE distribution, in which case the provisions of the
++# CDDL are applicable instead of those of the GPL.
++#
++# You may elect to license modified versions of this file under the
++# terms and conditions of either the GPL or the CDDL or both.
++#
++
++FILES_VBOXDRV_NOBIN=" \
++    ${PATH_ROOT}/include/iprt/alloc.h=>include/iprt/alloc.h \
++    ${PATH_ROOT}/include/iprt/alloca.h=>include/iprt/alloca.h \
++    ${PATH_ROOT}/include/iprt/asm.h=>include/iprt/asm.h \
++    ${PATH_ROOT}/include/iprt/asm-amd64-x86.h=>include/iprt/asm-amd64-x86.h \
++    ${PATH_ROOT}/include/iprt/asm-math.h=>include/iprt/asm-math.h \
++    ${PATH_ROOT}/include/iprt/assert.h=>include/iprt/assert.h \
++    ${PATH_ROOT}/include/iprt/avl.h=>include/iprt/avl.h \
++    ${PATH_ROOT}/include/iprt/cdefs.h=>include/iprt/cdefs.h \
++    ${PATH_ROOT}/include/iprt/cpuset.h=>include/iprt/cpuset.h \
++    ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \
++    ${PATH_ROOT}/include/iprt/ctype.h=>include/iprt/ctype.h \
++    ${PATH_ROOT}/include/iprt/err.h=>include/iprt/err.h \
++    ${PATH_ROOT}/include/iprt/errno.h=>include/iprt/errno.h \
++    ${PATH_ROOT}/include/iprt/heap.h=>include/iprt/heap.h \
++    ${PATH_ROOT}/include/iprt/handletable.h=>include/iprt/handletable.h \
++    ${PATH_ROOT}/include/iprt/initterm.h=>include/iprt/initterm.h \
++    ${PATH_ROOT}/include/iprt/latin1.h=>include/iprt/latin1.h \
++    ${PATH_ROOT}/include/iprt/list.h=>include/iprt/list.h \
++    ${PATH_ROOT}/include/iprt/log.h=>include/iprt/log.h \
++    ${PATH_ROOT}/include/iprt/mangling.h=>include/iprt/mangling.h \
++    ${PATH_ROOT}/include/iprt/mem.h=>include/iprt/mem.h \
++    ${PATH_ROOT}/include/iprt/memobj.h=>include/iprt/memobj.h \
++    ${PATH_ROOT}/include/iprt/mp.h=>include/iprt/mp.h \
++    ${PATH_ROOT}/include/iprt/net.h=>include/iprt/net.h \
++    ${PATH_ROOT}/include/iprt/param.h=>include/iprt/param.h \
++    ${PATH_ROOT}/include/iprt/power.h=>include/iprt/power.h \
++    ${PATH_ROOT}/include/iprt/process.h=>include/iprt/process.h \
++    ${PATH_ROOT}/include/iprt/semaphore.h=>include/iprt/semaphore.h \
++    ${PATH_ROOT}/include/iprt/spinlock.h=>include/iprt/spinlock.h \
++    ${PATH_ROOT}/include/iprt/stdarg.h=>include/iprt/stdarg.h \
++    ${PATH_ROOT}/include/iprt/stdint.h=>include/iprt/stdint.h \
++    ${PATH_ROOT}/include/iprt/string.h=>include/iprt/string.h \
++    ${PATH_ROOT}/include/iprt/thread.h=>include/iprt/thread.h \
++    ${PATH_ROOT}/include/iprt/time.h=>include/iprt/time.h \
++    ${PATH_ROOT}/include/iprt/timer.h=>include/iprt/timer.h \
++    ${PATH_ROOT}/include/iprt/types.h=>include/iprt/types.h \
++    ${PATH_ROOT}/include/iprt/uint128.h=>include/iprt/uint128.h \
++    ${PATH_ROOT}/include/iprt/uni.h=>include/iprt/uni.h \
++    ${PATH_ROOT}/include/iprt/utf16.h=>include/iprt/utf16.h \
++    ${PATH_ROOT}/include/iprt/uuid.h=>include/iprt/uuid.h \
++    ${PATH_ROOT}/include/iprt/crc.h=>include/iprt/crc.h \
++    ${PATH_ROOT}/include/iprt/net.h=>include/iprt/net.h \
++    ${PATH_ROOT}/include/iprt/rand.h=>include/iprt/rand.h \
++    ${PATH_ROOT}/include/iprt/path.h=>include/iprt/path.h \
++    ${PATH_ROOT}/include/iprt/once.h=>include/iprt/once.h \
++    ${PATH_ROOT}/include/iprt/critsect.h=>include/iprt/critsect.h \
++    ${PATH_ROOT}/include/iprt/x86.h=>include/iprt/x86.h \
++    ${PATH_ROOT}/include/iprt/lockvalidator.h=>include/iprt/lockvalidator.h \
++    ${PATH_ROOT}/include/iprt/nocrt/limits.h=>include/iprt/nocrt/limits.h \
++    ${PATH_ROOT}/include/VBox/cdefs.h=>include/VBox/cdefs.h \
++    ${PATH_ROOT}/include/VBox/err.h=>include/VBox/err.h \
++    ${PATH_ROOT}/include/VBox/log.h=>include/VBox/log.h \
++    ${PATH_ROOT}/include/VBox/param.h=>include/VBox/param.h \
++    ${PATH_ROOT}/include/VBox/sup.h=>include/VBox/sup.h \
++    ${PATH_ROOT}/include/VBox/types.h=>include/VBox/types.h \
++    ${PATH_ROOT}/include/VBox/version.h=>include/VBox/version.h \
++    ${PATH_ROOT}/include/VBox/SUPDrvMangling.h=>include/VBox/SUPDrvMangling.h \
++    ${PATH_ROOT}/include/VBox/VBoxTpG.h=>include/VBox/VBoxTpG.h \
++    ${PATH_ROOT}/include/VBox/vmm/hm_vmx.h=>include/VBox/vmm/hm_vmx.h \
++    ${PATH_ROOT}/include/VBox/vmm/hm_svm.h=>include/VBox/vmm/hm_svm.h \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/netbsd/SUPDrv-netbsd.c=>netbsd/SUPDrv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrv.cpp=>SUPDrv.c \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvGip.cpp=>SUPDrvGip.c \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvSem.cpp=>SUPDrvSem.c \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvTracer.cpp=>SUPDrvTracer.c \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIDC.h=>SUPDrvIDC.h \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIOC.h=>SUPDrvIOC.h \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvInternal.h=>SUPDrvInternal.h \
++    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPLibAll.cpp=>SUPLibAll.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/alloc/heapsimple.cpp=>alloc/heapsimple.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/alloc/alloc.cpp=>alloc/alloc.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/err/RTErrConvertFromErrno.cpp=>common/err/RTErrConvertFromErrno.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/err/RTErrConvertToErrno.cpp=>common/err/RTErrConvertToErrno.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/log.cpp=>common/log/log.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/logellipsis.cpp=>common/log/logellipsis.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/logrel.cpp=>common/log/logrel.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/logrelellipsis.cpp=>common/log/logrelellipsis.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/logcom.cpp=>common/log/logcom.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/log/logformat.cpp=>common/log/logformat.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg1Weak.cpp=>common/misc/RTAssertMsg1Weak.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2.cpp=>common/misc/RTAssertMsg2.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2Add.cpp=>common/misc/RTAssertMsg2Add.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2AddWeak.cpp=>common/misc/RTAssertMsg2AddWeak.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2AddWeakV.cpp=>common/misc/RTAssertMsg2AddWeakV.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2Weak.cpp=>common/misc/RTAssertMsg2Weak.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/RTAssertMsg2WeakV.cpp=>common/misc/RTAssertMsg2WeakV.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/assert.cpp=>common/misc/assert.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.cpp=>common/misc/handletable.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletable.h=>common/misc/handletable.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/handletablectx.cpp=>common/misc/handletablectx.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/once.cpp=>common/misc/once.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/term.cpp=>common/misc/term.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/misc/thread.cpp=>common/misc/thread.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyP.cpp=>common/string/RTStrCopyP.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopy.cpp=>common/string/RTStrCopy.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrCopyEx.cpp=>common/string/RTStrCopyEx.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNCmp.cpp=>common/string/RTStrNCmp.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/RTStrNLen.cpp=>common/string/RTStrNLen.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/strformat.cpp=>common/string/strformat.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/strformatrt.cpp=>common/string/strformatrt.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/strformattype.cpp=>common/string/strformattype.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/strprintf.cpp=>common/string/strprintf.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/strtonum.cpp=>common/string/strtonum.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/memchr.cpp=>common/string/memchr.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/string/stringalloc.cpp=>common/string/stringalloc.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/rand/rand.cpp=>common/rand/rand.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/rand/randadv.cpp=>common/rand/randadv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/rand/randparkmiller.cpp=>common/rand/randparkmiller.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/path/RTPathStripFilename.cpp=>common/path/RTPathStripFilename.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/checksum/crc32.cpp=>common/checksum/crc32.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/checksum/ipv4.cpp=>common/checksum/ipv4.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/checksum/ipv6.cpp=>common/checksum/ipv6.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avlpv.cpp=>common/table/avlpv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_Base.cpp.h=>common/table/avl_Base.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_Get.cpp.h=>common/table/avl_Get.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_GetBestFit.cpp.h=>common/table/avl_GetBestFit.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_RemoveBestFit.cpp.h=>common/table/avl_RemoveBestFit.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_DoWithAll.cpp.h=>common/table/avl_DoWithAll.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/table/avl_Destroy.cpp.h=>common/table/avl_Destroy.cpp.h \
++    ${PATH_ROOT}/src/VBox/Runtime/common/time/time.cpp=>common/time/time.c \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/assert.h=>include/internal/assert.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/initterm.h=>include/internal/initterm.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/iprt.h=>include/internal/iprt.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/lockvalidator.h=>include/internal/lockvalidator.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/magics.h=>include/internal/magics.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/mem.h=>include/internal/mem.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/memobj.h=>include/internal/memobj.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/string.h=>include/internal/string.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/thread.h=>include/internal/thread.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/rand.h=>include/internal/rand.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/sched.h=>include/internal/sched.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/process.h=>include/internal/process.h \
++    ${PATH_ROOT}/src/VBox/Runtime/include/internal/time.h=>include/internal/time.h \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTAssertShouldPanic-generic.cpp=>generic/RTAssertShouldPanic-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTLogWriteStdErr-stub-generic.cpp=>generic/RTLogWriteStdErr-stub-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTLogWriteStdOut-stub-generic.cpp=>generic/RTLogWriteStdOut-stub-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTLogWriteUser-generic.cpp=>generic/RTLogWriteUser-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTLogWriteDebugger-generic.cpp=>generic/RTLogWriteDebugger-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTRandAdvCreateSystemFaster-generic.cpp=>generic/RTRandAdvCreateSystemFaster-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTRandAdvCreateSystemTruer-generic.cpp=>generic/RTRandAdvCreateSystemTruer-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTSemEventWait-2-ex-generic.cpp=>generic/RTSemEventWait-2-ex-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTSemEventWaitNoResume-2-ex-generic.cpp=>generic/RTSemEventWaitNoResume-2-ex-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTSemEventMultiWait-2-ex-generic.cpp=>generic/RTSemEventMultiWait-2-ex-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTSemEventMultiWaitNoResume-2-ex-generic.cpp=>generic/RTSemEventMultiWaitNoResume-2-ex-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTTimerCreate-generic.cpp=>generic/RTTimerCreate-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTMpGetArraySize-generic.cpp=>generic/RTMpGetArraySize-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/RTMpOnPair-generic.cpp=>generic/RTMpOnPair-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/errvars-generic.cpp=>generic/errvars-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/mppresent-generic.cpp=>generic/mppresent-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/timer-generic.cpp=>generic/timer-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/generic/uuid-generic.cpp=>generic/uuid-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.cpp=>r0drv/alloc-r0drv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-ef-r0drv.cpp=>r0drv/alloc-ef-r0drv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/alloc-r0drv.h=>r0drv/alloc-r0drv.h \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/initterm-r0drv.cpp=>r0drv/initterm-r0drv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/mp-r0drv.h=>r0drv/mp-r0drv.h \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/power-r0drv.h=>r0drv/power-r0drv.h \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/powernotification-r0drv.c=>r0drv/powernotification-r0drv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/assert-r0drv-netbsd.c=>r0drv/netbsd/assert-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/alloc-r0drv-netbsd.c=>r0drv/netbsd/alloc-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/initterm-r0drv-netbsd.c=>r0drv/netbsd/initterm-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/memobj-r0drv-netbsd.c=>r0drv/netbsd/memobj-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/memuserkernel-r0drv-netbsd.c=>r0drv/netbsd/memuserkernel-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/mp-r0drv-netbsd.c=>r0drv/netbsd/mp-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/process-r0drv-netbsd.c=>r0drv/netbsd/process-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/semevent-r0drv-netbsd.c=>r0drv/netbsd/semevent-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/semeventmulti-r0drv-netbsd.c=>r0drv/netbsd/semeventmulti-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/semfastmutex-r0drv-netbsd.c=>r0drv/netbsd/semfastmutex-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/semmutex-r0drv-netbsd.c=>r0drv/netbsd/semmutex-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/spinlock-r0drv-netbsd.c=>r0drv/netbsd/spinlock-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/the-netbsd-kernel.h=>r0drv/netbsd/the-netbsd-kernel.h \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/thread-r0drv-netbsd.c=>r0drv/netbsd/thread-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/thread2-r0drv-netbsd.c=>r0drv/netbsd/thread2-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/time-r0drv-netbsd.c=>r0drv/netbsd/time-r0drv-netbsd.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/netbsd/sleepqueue-r0drv-netbsd.h=>r0drv/netbsd/sleepqueue-r0drv-netbsd.h \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/semspinmutex-r0drv-generic.c=>r0drv/generic/semspinmutex-r0drv-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/mpnotification-r0drv-generic.cpp=>r0drv/generic/mpnotification-r0drv-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/threadctxhooks-r0drv-generic.cpp=>r0drv/generic/threadctxhooks-r0drv-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.cpp=>r0drv/generic/RTMpIsCpuWorkPending-r0drv-generic.c \
++    ${PATH_ROOT}/src/VBox/Runtime/r0drv/memobj-r0drv.cpp=>r0drv/memobj-r0drv.c \
++    ${PATH_ROOT}/src/VBox/Runtime/VBox/log-vbox.cpp=>VBox/log-vbox.c \
++    ${PATH_OUT}/version-generated.h=>version-generated.h \
++    ${PATH_OUT}/product-generated.h=>product-generated.h \
++"
++
++FILES_VBOXDRV_BIN=" \
++"


Home | Main Index | Thread Index | Old Index