Alexander Kabaev
Wed, 26 Aug 2009 05:30:55 -0700
On Tue, 25 Aug 2009 15:52:31 -0400 Alexander Kabaev <kab...@gmail.com> wrote:
Follow up to myself: attached patch is a newer version that allows vboxguest driver to load without panicking the guest kernel. http://people.freebsd.org/~kan/vbox_1.diff -- Alexander Kabaev
Index: Config.kmk
===================================================================
--- Config.kmk (revision 22444)
+++ Config.kmk (working copy)
@@ -205,8 +205,7 @@
# This indicates that additions (of some kind or another) is being _built_.
# VBOX_WITHOUT_ADDITIONS overrides it.
-#if1of ($(KBUILD_TARGET), freebsd linux os2 solaris win)
-if1of ($(KBUILD_TARGET), linux solaris win)
+if1of ($(KBUILD_TARGET), freebsd linux os2 solaris win)
VBOX_WITH_ADDITIONS = 1
endif
# Build the optional ring-0 part of the additions for syntax checking.
@@ -3533,6 +3532,9 @@
$(VBOX_LIB_VBGL_R3_SHARED) \
$(VBOX_LIB_IPRT_GUEST_R3_MINI) \
$(VBOX_LIB_VBGL_R3_SHARED)
+if1of ($(KBUILD_TARGET), freebsd)
+ TEMPLATE_VBOXGUESTR3XORGMOD_LIBS += iconv
+endif
#
Index: src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c
===================================================================
--- src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c (revision 22444)
+++ src/VBox/Runtime/r0drv/freebsd/memobj-r0drv-freebsd.c (working copy)
@@ -469,7 +469,7 @@
vm_offset_t MapAddress = pvFixed != (void *)-1
? (vm_offset_t)pvFixed
: vm_map_min(pMap);
- if (pvFixed)
+ if (pvFixed != (void *)-1)
vm_map_remove(pMap,
MapAddress,
MapAddress + cb);
Index: src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp
===================================================================
--- src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp (revision 22444)
+++ src/VBox/Additions/common/VBoxService/VBoxServiceVMInfo.cpp (working copy)
@@ -33,10 +33,10 @@
# define __STDC_LIMIT_MACROS
# include <arpa/inet.h>
# include <errno.h>
-# include <net/if.h>
# include <netinet/in.h>
# include <sys/ioctl.h>
# include <sys/socket.h>
+# include <net/if.h>
# include <unistd.h>
# include <utmp.h>
# ifdef RT_OS_SOLARIS
@@ -235,6 +235,8 @@
::LsaFreeReturnBuffer(pSessions);
#endif /* TARGET_NT4 */
+#elif defined(RT_OS_FREEBSD)
+ /* TODO: Port me */
#else
utmp* ut_user;
rc = utmpname(UTMP_FILE);
@@ -377,7 +379,7 @@
VBoxServiceError("Failed to ioctl(SIOCGIFBRDADDR) on socket: Error %d\n", errno);
return -1;
}
- #ifdef RT_OS_SOLARIS
+ #if defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
pAddress = (sockaddr_in *)&ifrequest[i].ifr_addr;
#else
pAddress = (sockaddr_in *)&ifrequest[i].ifr_netmask;
Index: src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c
===================================================================
--- src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c (revision 22444)
+++ src/VBox/Additions/common/VBoxGuest/VBoxGuest-freebsd.c (working copy)
@@ -26,22 +26,24 @@
#include <sys/param.h>
#include <sys/systm.h>
+#include <sys/conf.h>
#include <sys/kernel.h>
#include <sys/module.h>
#include <sys/bus.h>
+#include <sys/poll.h>
+#include <sys/selinfo.h>
#include <sys/queue.h>
-#include <sys/lockmgr.h>
-#include <sys/types.h>
-#include <sys/conf.h>
#include <sys/malloc.h>
#include <sys/uio.h>
#include <sys/file.h>
+#include <sys/rman.h>
#include <machine/bus.h>
-#include <sys/rman.h>
#include <machine/resource.h>
#include <dev/pci/pcivar.h>
#include <dev/pci/pcireg.h>
-
+#ifdef PVM
+# undef PVM
+#endif
#include "VBoxGuestInternal.h"
#include <VBox/log.h>
#include <iprt/assert.h>
@@ -55,8 +57,6 @@
struct VBoxGuestDeviceState
{
- /** file node minor code */
- unsigned uMinor;
/** Resource ID of the I/O port */
int iIOPortResId;
/** Pointer to the I/O port resource. */
@@ -93,6 +93,7 @@
static d_ioctl_t VBoxGuestFreeBSDIOCtl;
static d_write_t VBoxGuestFreeBSDWrite;
static d_read_t VBoxGuestFreeBSDRead;
+static d_poll_t VBoxGuestFreeBSDPoll;
/*
* IRQ related functions.
@@ -120,6 +121,7 @@
.d_ioctl = VBoxGuestFreeBSDIOCtl,
.d_read = VBoxGuestFreeBSDRead,
.d_write = VBoxGuestFreeBSDWrite,
+ .d_poll = VBoxGuestFreeBSDPoll,
.d_name = DEVICE_NAME
};
@@ -129,8 +131,9 @@
static struct clonedevs *g_pVBoxGuestFreeBSDClones;
/** The dev_clone event handler tag. */
static eventhandler_tag g_VBoxGuestFreeBSDEHTag;
+/** selinfo structure used for polling. */
+static struct selinfo g_SelInfo;
-
/**
* DEVFS event handler.
*/
@@ -162,7 +165,7 @@
if (rc)
{
*ppDev = make_dev(&g_VBoxGuestFreeBSDChrDevSW,
- unit2minor(iUnit),
+ iUnit,
UID_ROOT,
GID_WHEEL,
0644,
@@ -343,19 +346,47 @@
return rc;
}
-static ssize_t VBoxGuestFreeBSDWrite (struct cdev *pDev, struct uio *pUio, int fIo)
+static int VBoxGuestFreeBSDPoll (struct cdev *pDev, int events, struct thread *td)
{
+ int revents;
+
+ LogFlow((DEVICE_NAME "::Poll: fEvents=%d\n", fEvents));
+
+ PVBOXGUESTSESSION pSession = (PVBOXGUESTSESSION)pDev->si_drv1;
+ if (RT_UNLIKELY(!VALID_PTR(pSession))) {
+ Log((DEVICE_NAME "::Poll: no state data for %s\n", devtoname(pDev)));
+ return (events & (POLLHUP|POLLIN|POLLRDNORM|POLLOUT|POLLWRNORM));
+ }
+
+ uint32_t u32CurSeq = ASMAtomicUoReadU32(&g_DevExt.u32MousePosChangedSeq);
+ if (pSession->u32MousePosChangedSeq != u32CurSeq)
+ {
+ revents = events & (POLLIN | POLLRDNORM);
+ pSession->u32MousePosChangedSeq = u32CurSeq;
+ }
+ else
+ {
+ revents = 0;
+
+ selrecord(td, &g_SelInfo);
+ }
+
+ return revents;
+}
+
+static int VBoxGuestFreeBSDWrite (struct cdev *pDev, struct uio *pUio, int fIo)
+{
return 0;
}
-static ssize_t VBoxGuestFreeBSDRead (struct cdev *pDev, struct uio *pUio, int fIo)
+static int VBoxGuestFreeBSDRead (struct cdev *pDev, struct uio *pUio, int fIo)
{
return 0;
}
static int VBoxGuestFreeBSDDetach(device_t pDevice)
{
- struct VBoxGuestDeviceState *pState = (struct VBoxGuestDeviceState *)device_get_softc(pDevice);
+ struct VBoxGuestDeviceState *pState = device_get_softc(pDevice);
/*
* Reserve what we did in VBoxGuestFreeBSDAttach.
@@ -371,7 +402,6 @@
VBoxGuestDeleteDevExt(&g_DevExt);
- free(pState, M_VBOXDEV);
RTR0Term();
return 0;
@@ -392,6 +422,16 @@
return fOurIRQ ? 0 : 1;
}
+void VBoxGuestNativeISRMousePollEvent(PVBOXGUESTDEVEXT pDevExt)
+{
+ LogFlow((DEVICE_NAME "::NativeISRMousePollEvent:\n"));
+
+ /*
+ * Wake up poll waiters.
+ */
+ selwakeup(&g_SelInfo);
+}
+
/**
* Sets IRQ for VMMDev.
*
@@ -458,15 +498,7 @@
}
pState = device_get_softc(pDevice);
- if (!pState)
- {
- pState = malloc(sizeof(struct VBoxGuestDeviceState), M_VBOXDEV, M_NOWAIT | M_ZERO);
- if (!pState)
- return ENOMEM;
- device_set_softc(pDevice, pState);
- }
-
/*
* Allocate I/O port resource.
*/
@@ -562,11 +594,6 @@
DRIVER_MODULE(vboxguest, pci, VBoxGuestFreeBSDDriver, VBoxGuestFreeBSDClass, 0, 0);
MODULE_VERSION(vboxguest, 1);
-#if 0/** @todo This shouldn't be needed. if it is, that means exceptions hasn't been disabled correctly. */
-int __gxx_personality_v0 = 0xdeadbeef;
-#endif
-
-
/* Common code that depend on g_DevExt. */
#include "VBoxGuestIDC-unix.c.h"
Index: src/VBox/Additions/common/VBoxGuest/Makefile.kmk
===================================================================
--- src/VBox/Additions/common/VBoxGuest/Makefile.kmk (revision 22444)
+++ src/VBox/Additions/common/VBoxGuest/Makefile.kmk (working copy)
@@ -54,11 +54,11 @@
VBoxGuest_LIBS = \
$(VBOX_LIB_VBGL_R0BASE) \
$(VBOX_LIB_IPRT_GUEST_R0)
- VBoxGuest_INTERMEDIATES.freebsd = \
+ VBoxGuest_DEPS.freebsd = \
$(PATH_VBoxGuest)/pci_if.h \
$(PATH_VBoxGuest)/bus_if.h \
$(PATH_VBoxGuest)/device_if.h
- VBoxGuest_CLEAN.freebsd = $(VBoxGuest_INTERMEDIATES.freebsd)
+ VBoxGuest_CLEAN.freebsd = $(VBoxGuest_DEPS.freebsd)
else # OS/2:
# The library order is crucial, so a bit of trickery is necessary.
@@ -100,18 +100,21 @@
VBOX_AWK := /usr/bin/awk
$$(PATH_VBoxGuest)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_VBoxGuest)
$(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/bus_if.m $(PATH_VBoxGuest)/bus_if.m
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_VBoxGuest)/bus_if.m -h -p
$(QUIET)$(RM) $(PATH_VBoxGuest)/bus_if.m
$$(PATH_VBoxGuest)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_VBoxGuest)
$(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/device_if.m $(PATH_VBoxGuest)/device_if.m
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_VBoxGuest)/device_if.m -h -p
$(QUIET)$(RM) $(PATH_VBoxGuest)/device_if.m
$$(PATH_VBoxGuest)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_VBoxGuest)
$(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m $(PATH_VBoxGuest)/pci_if.m
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_VBoxGuest)/pci_if.m -h -p
$(QUIET)$(RM) $(PATH_VBoxGuest)/pci_if.m
Index: src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp
===================================================================
--- src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp (revision 22444)
+++ src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3Lib.cpp (working copy)
@@ -199,7 +199,7 @@
char szDevice[RT_MAX(sizeof(VBOXGUEST_DEVICE_NAME), sizeof(VBOXGUEST_USER_DEVICE_NAME)) + 16];
for (unsigned iUnit = 0; iUnit < 1024; iUnit++)
{
- RTStrPrintf(szDevice, sizeof(szDevice), pszDeviceName "%d", iUnit);
+ RTStrPrintf(szDevice, sizeof(szDevice), "%s%d", pszDeviceName, iUnit);
# if defined(VBOX_VBGLR3_XFREE86)
File = xf86open(szDevice, XF86_O_RDWR);
if (File >= 0)
Index: src/VBox/Additions/freebsd/drm/vboxvideo_drm.c
===================================================================
--- src/VBox/Additions/freebsd/drm/vboxvideo_drm.c (revision 0)
+++ src/VBox/Additions/freebsd/drm/vboxvideo_drm.c (revision 0)
@@ -0,0 +1,120 @@
+/*-
+ * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * 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 (including the next
+ * paragraph) 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
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS 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.
+ *
+ * Authors:
+ * Rickard E. (Rik) Faith <fa...@valinux.com>
+ * Daryll Strauss <dar...@valinux.com>
+ * Gareth Hughes <gar...@valinux.com>
+ *
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "dev/drm/drmP.h"
+#include "dev/drm/drm_pciids.h"
+
+#define DRIVER_AUTHOR "Sun Microsystems Inc."
+#define DRIVER_NAME "vboxvideo"
+#define DRIVER_DESC "VirtualBox DRM"
+#define DRIVER_DATE "20090317"
+#define DRIVER_MAJOR 1
+#define DRIVER_MINOR 0
+#define DRIVER_PATCHLEVEL 0
+
+#define vboxvideo_PCI_IDS { 0x80ee, 0xbeef, 0, "VirtualBox Video" }, \
+ { 0, 0, 0, NULL }
+
+static drm_pci_id_list_t vboxvideo_pciidlist[] = {
+ vboxvideo_PCI_IDS
+};
+
+static void vboxvideo_configure(struct drm_device *dev)
+{
+ dev->driver->buf_priv_size = 1; /* No dev_priv */
+
+ dev->driver->max_ioctl = 0;
+
+ dev->driver->name = DRIVER_NAME;
+ dev->driver->desc = DRIVER_DESC;
+ dev->driver->date = DRIVER_DATE;
+ dev->driver->major = DRIVER_MAJOR;
+ dev->driver->minor = DRIVER_MINOR;
+ dev->driver->patchlevel = DRIVER_PATCHLEVEL;
+}
+
+static int
+vboxvideo_probe(device_t kdev)
+{
+ return drm_probe(kdev, vboxvideo_pciidlist);
+}
+
+static int
+vboxvideo_attach(device_t kdev)
+{
+ struct drm_device *dev = device_get_softc(kdev);
+
+ dev->driver = malloc(sizeof(struct drm_driver_info), DRM_MEM_DRIVER,
+ M_WAITOK | M_ZERO);
+
+ vboxvideo_configure(dev);
+
+ return drm_attach(kdev, vboxvideo_pciidlist);
+}
+
+static int
+vboxvideo_detach(device_t kdev)
+{
+ struct drm_device *dev = device_get_softc(kdev);
+ int ret;
+
+ ret = drm_detach(kdev);
+
+ free(dev->driver, DRM_MEM_DRIVER);
+
+ return ret;
+}
+
+static device_method_t vboxvideo_methods[] = {
+ /* Device interface */
+ DEVMETHOD(device_probe, vboxvideo_probe),
+ DEVMETHOD(device_attach, vboxvideo_attach),
+ DEVMETHOD(device_detach, vboxvideo_detach),
+
+ { 0, 0 }
+};
+
+static driver_t vboxvideo_driver = {
+ "drm",
+ vboxvideo_methods,
+ sizeof(struct drm_device)
+};
+
+extern devclass_t drm_devclass;
+#if __FreeBSD_version >= 700010
+DRIVER_MODULE(vboxvideo, vgapci, vboxvideo_driver, drm_devclass, 0, 0);
+#else
+DRIVER_MODULE(vboxvideo, pci, vboxvideo_driver, drm_devclass, 0, 0);
+#endif
+MODULE_DEPEND(vboxvideo, drm, 1, 1, 1);
Property changes on: src/VBox/Additions/freebsd/drm/vboxvideo_drm.c
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ FreeBSD=%H
Added: svn:eol-style
+ native
Index: src/VBox/Additions/freebsd/drm/Makefile.kmk
===================================================================
--- src/VBox/Additions/freebsd/drm/Makefile.kmk (revision 0)
+++ src/VBox/Additions/freebsd/drm/Makefile.kmk (revision 0)
@@ -0,0 +1,83 @@
+# $Id: Makefile.kmk 18057 2009-03-18 12:31:39Z vboxsync $
+## @file
+# Sub-Makefile for the vboxvideo DRM module (FreeBSD kernel OpenGL module).
+#
+
+#
+# Copyright (C) 2009 Sun Microsystems, Inc.
+#
+# 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.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+# Clara, CA 95054 USA or visit http://www.sun.com if you need
+# additional information or have any questions.
+#
+
+
+SUB_DEPTH = ../../../../..
+include $(KBUILD_PATH)/subheader.kmk
+
+ifneq ($(KBUILD_HOST),freebsd)
+$(error "The FreeBSD guest additions can only be built on FreeBSD!")
+endif
+
+#
+# vboxvideo - The Video DRM (Direct Rendering Module) kernel module
+#
+SYSMODS.freebsd += vboxvideo
+vboxvideo_TEMPLATE = VBOXGUESTR0
+vboxvideo_DEFS = VBOX_WITH_HGCM VBOX_SVN_REV=$(VBOX_SVN_REV)
+vboxvideo_DEPS += $(VBOX_SVN_REV_KMK)
+vboxvideo_INCS.freebsd = $(PATH_vboxvideo)
+vboxvideo_SOURCES = \
+ vboxvideo_drm.c
+vboxvideo_LIBS = \
+ $(VBOX_LIB_VBGL_R0) \
+ $(VBOX_LIB_IPRT_GUEST_R0)
+vboxvideo_DEPS += \
+ $(PATH_vboxvideo)/pci_if.h \
+ $(PATH_vboxvideo)/bus_if.h \
+ $(PATH_vboxvideo)/device_if.h \
+ $(PATH_vboxvideo)/opt_drm.h
+vboxvideo_CLEAN.freebsd = $(vboxvideo_DEPS)
+
+#
+# FreeBSD: Genereate bus, device and pci interface headers. (explain why)
+#
+# We cannot give a output path to the awk program, it will always generate
+# the header next to the source. So, we'll have to temporarily copy the
+# source file to the destination direction for it to work out correctly.
+#
+VBOX_AWK := /usr/bin/awk
+$$(PATH_vboxvideo)/bus_if.h: $(VBOX_FREEBSD_SRC)/kern/bus_if.m
+ $(call MSG_TOOL,awk,vboxvideo,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_vboxvideo)
+ $(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/bus_if.m $(PATH_vboxvideo)/bus_if.m
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_vboxvideo)/bus_if.m -h -p
+ $(QUIET)$(RM) $(PATH_vboxvideo)/bus_if.m
+
+$$(PATH_vboxvideo)/device_if.h: $(VBOX_FREEBSD_SRC)/kern/device_if.m
+ $(call MSG_TOOL,awk,vboxvideo,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_vboxvideo)
+ $(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/kern/device_if.m $(PATH_vboxvideo)/device_if.m
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_vboxvideo)/device_if.m -h -p
+ $(QUIET)$(RM) $(PATH_vboxvideo)/device_if.m
+
+$$(PATH_vboxvideo)/pci_if.h: $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m
+ $(call MSG_TOOL,awk,vboxvideo,$<,$@)
+ $(QUIET)$(MKDIR) -p $(PATH_vboxvideo)
+ $(QUIET)$(CP) -f $(VBOX_FREEBSD_SRC)/dev/pci/pci_if.m $(PATH_vboxvideo)/pci_if.m
+ $(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/makeobjops.awk $(PATH_vboxvideo)/pci_if.m -h -p
+ $(QUIET)$(RM) $(PATH_vboxvideo)/pci_if.m
+
+$$(PATH_vboxvideo)/opt_drm.h:
+ $(QUIET)$(MKDIR) -p $(PATH_vboxvideo)
+ $(QUIET)touch $(PATH_vboxvideo)/opt_drm.h
+
+include $(KBUILD_PATH)/subfooter.kmk
Property changes on: src/VBox/Additions/freebsd/drm/Makefile.kmk
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: svn:keywords
+ FreeBSD=%H
Added: svn:eol-style
+ native
Index: src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk
===================================================================
--- src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk (revision 22444)
+++ src/VBox/Additions/freebsd/vboxvfs/Makefile.kmk (working copy)
@@ -34,7 +34,7 @@
vboxvfs_DEFS = VBOX_WITH_HGCM
vboxvfs_INCS = \
. \
- $(PATH_vboxfs)
+ $(PATH_vboxvfs)
vboxvfs_SOURCES = \
vboxvfs_vfsops.c \
vboxvfs_vnops.c
@@ -42,9 +42,9 @@
$(VBOX_LIB_VBGL_R0) \
$(VBOX_LIB_IPRT_GUEST_R0)
vboxvfs_DEPS = \
- $$(PATH_vboxvfs)/vnode_if.h \
- $$(PATH_vboxvfs)/vnode_if_newproto.h \
- $$(PATH_vboxvfs)/vnode_if_typedef.h
+ $(PATH_vboxvfs)/vnode_if.h \
+ $(PATH_vboxvfs)/vnode_if_newproto.h \
+ $(PATH_vboxvfs)/vnode_if_typedef.h
vboxvfs_CLEAN += $(vboxvfs_DEPS)
VBOX_AWK := /usr/bin/awk
@@ -52,17 +52,14 @@
$$(PATH_vboxvfs)/vnode_if.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -h
- $(QUIET)$(MV) $(PATH_vboxvfs)/vnode_if.h $(PATH_vboxvfs)/vnode_if.h
$$(PATH_vboxvfs)/vnode_if_newproto.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -p
- $(QUIET)$(MV) $(PATH_vboxvfs)/vnode_if_newproto.h $(PATH_vboxvfs)/vnode_if_newproto.h
$$(PATH_vboxvfs)/vnode_if_typedef.h: $(VBOX_FREEBSD_SRC)/kern/vnode_if.src
$(call MSG_TOOL,awk,VBoxGuest,$<,$@)
$(QUIET)$(VBOX_AWK) -f $(VBOX_FREEBSD_SRC)/tools/vnode_if.awk $(VBOX_FREEBSD_SRC)/kern/vnode_if.src -q
- $(QUIET)$(MV) $(PATH_vboxvfs)/vnode_if_typedef.h $(PATH_vboxvfs)/vnode_if_typedef.h
include $(KBUILD_PATH)/subfooter.kmk
Index: src/VBox/Additions/freebsd/Makefile.kmk
===================================================================
--- src/VBox/Additions/freebsd/Makefile.kmk (revision 22444)
+++ src/VBox/Additions/freebsd/Makefile.kmk (working copy)
@@ -27,7 +27,8 @@
endif
# Include sub-makefiles.
-include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk
+#include $(PATH_SUB_CURRENT)/vboxvfs/Makefile.kmk
+include $(PATH_SUB_CURRENT)/drm/Makefile.kmk
# Globals
VBOX_FBSD_ADD_INS_OUT_DIR := $(PATH_TARGET)/Additions/FreeBSD/Installer
@@ -59,6 +60,8 @@
$(VBOX_PATH_X11_ADDITION_INSTALLER)/98vboxadd-xclient \
$(VBOX_PATH_X11_ADDITION_INSTALLER)/x11config.pl \
$(PATH_BIN)/additions/vboxguest.ko \
+ $(PATH_BIN)/additions/vboxvideo.ko \
+ $(PATH_BIN)/additions/vboxvfs.ko \
$(PATH_BIN)/additions/VBoxClient \
$(PATH_BIN)/additions/VBoxService \
$(PATH_BIN)/additions/VBoxControl \
signature.asc
Description: PGP signature
_______________________________________________ vbox-dev mailing list vbox-dev@virtualbox.org http://vbox.innotek.de/mailman/listinfo/vbox-dev