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