Index: /trunk/include/VBox/sup.h
===================================================================
--- /trunk/include/VBox/sup.h	(revision 23724)
+++ /trunk/include/VBox/sup.h	(revision 23725)
@@ -935,7 +935,7 @@
 
 /**
- * Check if the host kernel can run in VMX root mode. 
- *    
- * @returns VINF_SUCCESS if supported, error code indicating why if not. 
+ * Check if the host kernel can run in VMX root mode.
+ *
+ * @returns VINF_SUCCESS if supported, error code indicating why if not.
  */
 SUPR3DECL(int) SUPR3QueryVTxSupported(void);
@@ -943,10 +943,10 @@
 
 /**
- * Return VT-x/AMD-V capabilities
- *    
- * @returns VINF_SUCCESS if supported, error code indicating why if not. 
- * @param   pCaps       Pointer to capability dword (out)
- */
-SUPR3DECL(int) SUPR3QueryVTCaps(uint32_t *pCaps);
+ * Return VT-x/AMD-V capabilities.
+ *
+ * @returns VINF_SUCCESS if supported, error code indicating why if not.
+ * @param   pfCaps      Pointer to capability dword (out).
+ */
+SUPR3DECL(int) SUPR3QueryVTCaps(uint32_t *pfCaps);
 
 /** @} */
@@ -1015,5 +1015,5 @@
 SUPR0DECL(int) SUPR0PageFree(PSUPDRVSESSION pSession, RTR3PTR pvR3);
 SUPR0DECL(int) SUPR0GipMap(PSUPDRVSESSION pSession, PRTR3PTR ppGipR3, PRTHCPHYS pHCPhysGip);
-SUPR0DECL(int) SUPR0QueryVTCaps(PSUPDRVSESSION pSession, uint32_t *pCaps);
+SUPR0DECL(int) SUPR0QueryVTCaps(PSUPDRVSESSION pSession, uint32_t *pfCaps);
 SUPR0DECL(int) SUPR0GipUnmap(PSUPDRVSESSION pSession);
 SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...);
Index: /trunk/src/VBox/HostDrivers/Support/Makefile.kmk
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/Makefile.kmk	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/Makefile.kmk	(revision 23725)
@@ -179,4 +179,5 @@
 	win/SUPDrvA-win.asm \
 	SUPDrv.c \
+	SUPDrvAgnostic.c \
 	win/VBoxDrv.rc
 VBoxDrv_LDFLAGS.x86   = -Entry:DriverEntry@8
@@ -234,5 +235,6 @@
 vboxdrv_SOURCES       = \
 	$(KBUILD_TARGET)/SUPDrv-$(KBUILD_TARGET).c \
-	SUPDrv.c
+	SUPDrv.c \
+	SUPDrvAgnostic.c
 ifndef VBOX_LINUX_VERSION_2_4
 vboxdrv_SOURCES      += \
@@ -318,4 +320,5 @@
 VBoxDrvTiger_SOURCES     = \
 	SUPDrv.c \
+	SUPDrvAgnostic.c \
 	$(KBUILD_TARGET)/SUPDrv-$(KBUILD_TARGET).cpp
 
@@ -397,5 +400,6 @@
 VBoxDrvLib_SOURCES    = \
 	os2/SUPDrv-os2.cpp \
-	SUPDrv.c
+	SUPDrv.c \
+	SUPDrvAgnostic.c
 
 endif # os2
@@ -412,5 +416,6 @@
 	$(KBUILD_TARGET)/SUPDrv-$(KBUILD_TARGET).c \
 	$(PATH_SUB_CURRENT)/$(KBUILD_TARGET)/SUPDrv-$(KBUILD_TARGET).def \
-	SUPDrv.c
+	SUPDrv.c \
+	SUPDrvAgnostic.c
 ## @todo the SUPDrv-freebsd.def is most probably gonna break it and require build system hacking...
 
@@ -454,5 +459,6 @@
 vboxdrv_SOURCES       = \
 	$(KBUILD_TARGET)/SUPDrv-$(KBUILD_TARGET).c \
-	SUPDrv.c
+	SUPDrv.c \
+	SUPDrvAgnostic.c
 
 endif # solaris
Index: /trunk/src/VBox/HostDrivers/Support/SUPDrv.c
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPDrv.c	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/SUPDrv.c	(revision 23725)
@@ -50,6 +50,4 @@
 #include <VBox/log.h>
 #include <VBox/err.h>
-#include <VBox/hwacc_svm.h>
-#include <VBox/hwacc_vmx.h>
 #if defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
 # include <iprt/crc32.h>
@@ -3679,5 +3677,5 @@
 
 
-SUPR0DECL(int) SUPR0QueryVTCaps(PSUPDRVSESSION pSession, uint32_t *pCaps)
+SUPR0DECL(int) SUPR0QueryVTCaps(PSUPDRVSESSION pSession, uint32_t *pfCaps)
 {
     /*
@@ -3685,92 +3683,7 @@
      */
     AssertReturn(SUP_IS_SESSION_VALID(pSession), VERR_INVALID_PARAMETER);
-    AssertReturn(pCaps, VERR_INVALID_POINTER);
-
-    *pCaps = 0;
-
-    if (ASMHasCpuId())
-    {
-        uint32_t u32FeaturesECX;
-        uint32_t u32Dummy;
-        uint32_t u32FeaturesEDX;
-        uint32_t u32VendorEBX, u32VendorECX, u32VendorEDX, u32AMDFeatureEDX, u32AMDFeatureECX;
-        uint64_t val;
-
-        ASMCpuId(0, &u32Dummy, &u32VendorEBX, &u32VendorECX, &u32VendorEDX);
-        ASMCpuId(1, &u32Dummy, &u32Dummy, &u32FeaturesECX, &u32FeaturesEDX);
-        /* Query AMD features. */
-        ASMCpuId(0x80000001, &u32Dummy, &u32Dummy, &u32AMDFeatureECX, &u32AMDFeatureEDX);
-
-        if (    u32VendorEBX == X86_CPUID_VENDOR_INTEL_EBX
-            &&  u32VendorECX == X86_CPUID_VENDOR_INTEL_ECX
-            &&  u32VendorEDX == X86_CPUID_VENDOR_INTEL_EDX
-           )
-        {
-            if (    (u32FeaturesECX & X86_CPUID_FEATURE_ECX_VMX)
-                 && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR)
-                 && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR)
-               )
-            {
-                val = ASMRdMsr(MSR_IA32_FEATURE_CONTROL);
-                /*
-                 * Both the LOCK and VMXON bit must be set; otherwise VMXON will generate a #GP.
-                 * Once the lock bit is set, this MSR can no longer be modified.
-                 */
-                if (   (val & (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK))
-                           == (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK) /* enabled and locked */
-                    ||  !(val & MSR_IA32_FEATURE_CONTROL_LOCK) /* not enabled, but not locked either */)
-                {
-                    VMX_CAPABILITY vtCaps;
-
-                    *pCaps |= SUPVTCAPS_VT_X;
-
-                    vtCaps.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS);
-                    if (vtCaps.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_USE_SECONDARY_EXEC_CTRL)
-                    {
-                        vtCaps.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS2);
-                        if (vtCaps.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_EPT)
-                            *pCaps |= SUPVTCAPS_NESTED_PAGING;
-                    }
-                    return VINF_SUCCESS;
-                }
-                else
-                    return VERR_VMX_MSR_LOCKED_OR_DISABLED;
-            }
-            else 
-                return VERR_VMX_NO_VMX;
-        }
-        else
-        if (    u32VendorEBX == X86_CPUID_VENDOR_AMD_EBX
-            &&  u32VendorECX == X86_CPUID_VENDOR_AMD_ECX
-            &&  u32VendorEDX == X86_CPUID_VENDOR_AMD_EDX
-           )
-        {
-            if (   (u32AMDFeatureECX & X86_CPUID_AMD_FEATURE_ECX_SVM)
-                && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR)
-                && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR)
-               )
-            {
-                /* Check if SVM is disabled */
-                val = ASMRdMsr(MSR_K8_VM_CR);
-                if (!(val & MSR_K8_VM_CR_SVM_DISABLE))
-                {
-                    *pCaps |= SUPVTCAPS_AMD_V;
-
-                    /* Query AMD features. */
-                    ASMCpuId(0x8000000A, &u32Dummy, &u32Dummy, &u32Dummy, &u32FeaturesEDX);
-
-                    if (u32FeaturesEDX & AMD_CPUID_SVM_FEATURE_EDX_NESTED_PAGING)
-                        *pCaps |= SUPVTCAPS_NESTED_PAGING;
-
-                    return VINF_SUCCESS;
-                }
-                else
-                    return VERR_SVM_DISABLED;
-            }
-            else
-                return VERR_SVM_NO_SVM;
-        }
-    }
-    return VERR_UNSUPPORTED_CPU;
+    AssertPtrReturn(pfCaps, VERR_INVALID_POINTER);
+
+    return supR0QueryVTCaps(pfCaps);
 }
 
Index: /trunk/src/VBox/HostDrivers/Support/SUPDrvAgnostic.c
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPDrvAgnostic.c	(revision 23725)
+++ /trunk/src/VBox/HostDrivers/Support/SUPDrvAgnostic.c	(revision 23725)
@@ -0,0 +1,153 @@
+/* $Revision$ */
+/** @file
+ * VBoxDrv - The VirtualBox Support Driver - Common OS agnostic.
+ */
+
+/*
+ * Copyright (C) 2006-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.
+ *
+ * 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.
+ *
+ * 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.
+ */
+
+/*******************************************************************************
+*   Header Files                                                               *
+*******************************************************************************/
+#define LOG_GROUP LOG_GROUP_SUP_DRV
+#define SUPDRV_AGNOSTIC
+#include "SUPDrvInternal.h"
+
+/** @todo trim this down. */
+#include <iprt/param.h>
+#include <iprt/alloc.h>
+#include <iprt/cpuset.h>
+#include <iprt/handletable.h>
+#include <iprt/mp.h>
+#include <iprt/power.h>
+#include <iprt/process.h>
+#include <iprt/semaphore.h>
+#include <iprt/spinlock.h>
+#include <iprt/thread.h>
+#include <iprt/uuid.h>
+
+#include <VBox/param.h>
+#include <VBox/log.h>
+#include <VBox/err.h>
+#include <VBox/hwacc_svm.h>
+#include <VBox/hwacc_vmx.h>
+#include <VBox/x86.h>
+
+
+
+/**
+ * Internal worker for SUPR0QueryVTCaps.
+ *
+ * @returns See QUPR0QueryVTCaps.
+ * @param   pfCaps              See QUPR0QueryVTCaps
+ */
+int VBOXCALL supR0QueryVTCaps(uint32_t *pfCaps)
+{
+    *pfCaps = 0;
+
+    if (ASMHasCpuId())
+    {
+        uint32_t u32FeaturesECX;
+        uint32_t u32Dummy;
+        uint32_t u32FeaturesEDX;
+        uint32_t u32VendorEBX, u32VendorECX, u32VendorEDX, u32AMDFeatureEDX, u32AMDFeatureECX;
+        uint64_t val;
+
+        ASMCpuId(0, &u32Dummy, &u32VendorEBX, &u32VendorECX, &u32VendorEDX);
+        ASMCpuId(1, &u32Dummy, &u32Dummy, &u32FeaturesECX, &u32FeaturesEDX);
+        /* Query AMD features. */
+        ASMCpuId(0x80000001, &u32Dummy, &u32Dummy, &u32AMDFeatureECX, &u32AMDFeatureEDX);
+
+        if (    u32VendorEBX == X86_CPUID_VENDOR_INTEL_EBX
+            &&  u32VendorECX == X86_CPUID_VENDOR_INTEL_ECX
+            &&  u32VendorEDX == X86_CPUID_VENDOR_INTEL_EDX
+           )
+        {
+            if (    (u32FeaturesECX & X86_CPUID_FEATURE_ECX_VMX)
+                 && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR)
+                 && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR)
+               )
+            {
+                val = ASMRdMsr(MSR_IA32_FEATURE_CONTROL);
+                /*
+                 * Both the LOCK and VMXON bit must be set; otherwise VMXON will generate a #GP.
+                 * Once the lock bit is set, this MSR can no longer be modified.
+                 */
+                if (       (val & (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK))
+                        ==        (MSR_IA32_FEATURE_CONTROL_VMXON|MSR_IA32_FEATURE_CONTROL_LOCK) /* enabled and locked */
+                    ||  !(val & MSR_IA32_FEATURE_CONTROL_LOCK) /* not enabled, but not locked either */
+                   )
+                {
+                    VMX_CAPABILITY vtCaps;
+
+                    *pfCaps |= SUPVTCAPS_VT_X;
+
+                    vtCaps.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS);
+                    if (vtCaps.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC_USE_SECONDARY_EXEC_CTRL)
+                    {
+                        vtCaps.u = ASMRdMsr(MSR_IA32_VMX_PROCBASED_CTLS2);
+                        if (vtCaps.n.allowed1 & VMX_VMCS_CTRL_PROC_EXEC2_EPT)
+                            *pfCaps |= SUPVTCAPS_NESTED_PAGING;
+                    }
+                    return VINF_SUCCESS;
+                }
+                return VERR_VMX_MSR_LOCKED_OR_DISABLED;
+            }
+            return VERR_VMX_NO_VMX;
+        }
+
+        if (    u32VendorEBX == X86_CPUID_VENDOR_AMD_EBX
+            &&  u32VendorECX == X86_CPUID_VENDOR_AMD_ECX
+            &&  u32VendorEDX == X86_CPUID_VENDOR_AMD_EDX
+           )
+        {
+            if (   (u32AMDFeatureECX & X86_CPUID_AMD_FEATURE_ECX_SVM)
+                && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_MSR)
+                && (u32FeaturesEDX & X86_CPUID_FEATURE_EDX_FXSR)
+               )
+            {
+                /* Check if SVM is disabled */
+                val = ASMRdMsr(MSR_K8_VM_CR);
+                if (!(val & MSR_K8_VM_CR_SVM_DISABLE))
+                {
+                    *pfCaps |= SUPVTCAPS_AMD_V;
+
+                    /* Query AMD features. */
+                    ASMCpuId(0x8000000A, &u32Dummy, &u32Dummy, &u32Dummy, &u32FeaturesEDX);
+
+                    if (u32FeaturesEDX & AMD_CPUID_SVM_FEATURE_EDX_NESTED_PAGING)
+                        *pfCaps |= SUPVTCAPS_NESTED_PAGING;
+
+                    return VINF_SUCCESS;
+                }
+                return VERR_SVM_DISABLED;
+            }
+            return VERR_SVM_NO_SVM;
+        }
+    }
+
+    return VERR_UNSUPPORTED_CPU;
+}
+
Index: /trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h	(revision 23725)
@@ -47,6 +47,8 @@
 #include <iprt/err.h>
 
-
-#if defined(RT_OS_WINDOWS)
+#ifdef SUPDRV_AGNOSTIC
+/* do nothing */
+
+#elif defined(RT_OS_WINDOWS)
     RT_C_DECLS_BEGIN
 #   if (_MSC_VER >= 1400) && !defined(VBOX_WITH_PATCHED_DDK)
@@ -186,7 +188,9 @@
 
 /* check kernel version */
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-# error Unsupported kernel version!
-#endif
+# ifndef SUPDRV_AGNOSTIC
+#  if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#   error Unsupported kernel version!
+#  endif
+# endif
 
 RT_C_DECLS_BEGIN
@@ -531,19 +535,21 @@
      * This is NIL_RTR0PROCESS for kernel sessions and valid for user ones. */
     RTR0PROCESS                     R0Process;
-#if defined(RT_OS_DARWIN)
+#ifndef SUPDRV_AGNOSTIC
+# if defined(RT_OS_DARWIN)
     /** Pointer to the associated org_virtualbox_SupDrvClient object. */
     void                           *pvSupDrvClient;
     /** Whether this session has been opened or not. */
     bool                            fOpened;
-#endif
-#if defined(RT_OS_OS2)
+# endif
+# if defined(RT_OS_OS2)
     /** The system file number of this session. */
     uint16_t                        sfn;
     uint16_t                        Alignment; /**< Alignment */
-#endif
-#if defined(RT_OS_DARWIN) || defined(RT_OS_OS2) || defined(RT_OS_SOLARIS)
+# endif
+# if defined(RT_OS_DARWIN) || defined(RT_OS_OS2) || defined(RT_OS_SOLARIS)
     /** Pointer to the next session with the same hash. */
     PSUPDRVSESSION                  pNextHash;
-#endif
+# endif
+#endif /* !SUPDRV_AGNOSTIC */
 } SUPDRVSESSION;
 
@@ -607,11 +613,4 @@
     RTCPUID volatile                idGipMaster;
 
-#ifdef RT_OS_WINDOWS
-    /* Callback object returned by ExCreateCallback. */
-    PCALLBACK_OBJECT                pObjPowerCallback;
-    /* Callback handle returned by ExRegisterCallback. */
-    PVOID                           hPowerCallback;
-#endif
-
     /** Component factory mutex.
      * This protects pComponentFactoryHead and component factory querying. */
@@ -619,4 +618,13 @@
     /** The head of the list of registered component factories. */
     PSUPDRVFACTORYREG               pComponentFactoryHead;
+
+#ifndef SUPDRV_AGNOSTIC
+# ifdef RT_OS_WINDOWS
+    /* Callback object returned by ExCreateCallback. */
+    PCALLBACK_OBJECT                pObjPowerCallback;
+    /* Callback handle returned by ExRegisterCallback. */
+    PVOID                           hPowerCallback;
+# endif
+#endif
 } SUPDRVDEVEXT;
 
@@ -632,7 +640,9 @@
 int  VBOXCALL   supdrvOSEnableVTx(bool fEnabled);
 
+
 /*******************************************************************************
 *   Shared Functions                                                           *
 *******************************************************************************/
+/* SUPDrv.c */
 int  VBOXCALL   supdrvIOCtl(uintptr_t uIOCtl, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession, PSUPREQHDR pReqHdr);
 int  VBOXCALL   supdrvIOCtlFast(uintptr_t uIOCtl, VMCPUID idCpu, PSUPDRVDEVEXT pDevExt, PSUPDRVSESSION pSession);
@@ -649,4 +659,7 @@
 bool VBOXCALL   supdrvDetermineAsyncTsc(uint64_t *pu64DiffCores);
 
+/* SUPDrvAgnostic.c */
+int  VBOXCALL   supR0QueryVTCaps(uint32_t *pfCaps);
+
 RT_C_DECLS_END
 
Index: /trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/SUPLib.cpp	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/SUPLib.cpp	(revision 23725)
@@ -2067,9 +2067,10 @@
 }
 
-SUPR3DECL(int) SUPR3QueryVTCaps(uint32_t *pCaps)
-{
-    AssertPtrReturn(pCaps, VERR_INVALID_POINTER);
-
-    *pCaps = 0;
+
+SUPR3DECL(int) SUPR3QueryVTCaps(uint32_t *pfCaps)
+{
+    AssertPtrReturn(pfCaps, VERR_INVALID_POINTER);
+
+    *pfCaps = 0;
 
     /* fake */
@@ -2093,7 +2094,7 @@
         rc = Req.Hdr.rc;
         if (RT_SUCCESS(rc))
-            *pCaps = Req.u.Out.Caps;
-    }
-    return rc;
-}
-
+            *pfCaps = Req.u.Out.Caps;
+    }
+    return rc;
+}
+
Index: /trunk/src/VBox/HostDrivers/Support/freebsd/Makefile
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/freebsd/Makefile	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/freebsd/Makefile	(revision 23725)
@@ -43,4 +43,5 @@
 	freebsd/SUPDrv-freebsd.c \
 	SUPDrv.c \
+	SUPDrvAgnostic.c \
 	alloc/heapsimple.c \
 	common/err/RTErrConvertFromErrno.c \
Index: /trunk/src/VBox/HostDrivers/Support/freebsd/files_vboxdrv
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/freebsd/files_vboxdrv	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/freebsd/files_vboxdrv	(revision 23725)
@@ -76,4 +76,5 @@
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c=>freebsd/SUPDrv-freebsd.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrv.c=>SUPDrv.c \
+    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvAgnostic.c=>SUPDrvAgnostic.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIDC.h=>SUPDrvIDC.h \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIOC.h=>SUPDrvIOC.h \
Index: /trunk/src/VBox/HostDrivers/Support/linux/Makefile
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/linux/Makefile	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/linux/Makefile	(revision 23725)
@@ -77,4 +77,5 @@
 	linux/SUPDrv-linux.o \
 	SUPDrv.o \
+	SUPDrvAgnostic.o \
 	r0drv/alloc-r0drv.o \
 	r0drv/initterm-r0drv.o \
Index: /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv
===================================================================
--- /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv	(revision 23724)
+++ /trunk/src/VBox/HostDrivers/Support/linux/files_vboxdrv	(revision 23725)
@@ -68,4 +68,5 @@
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c=>linux/SUPDrv-linux.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrv.c=>SUPDrv.c \
+    ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvAgnostic.c=>SUPDrvAgnostic.c \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIDC.h=>SUPDrvIDC.h \
     ${PATH_ROOT}/src/VBox/HostDrivers/Support/SUPDrvIOC.h=>SUPDrvIOC.h \
