]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
UBUNTU: ubuntu: vbox -- update to 5.2.8-dfsg-2
authorSeth Forshee <seth.forshee@canonical.com>
Wed, 7 Mar 2018 09:54:14 +0000 (10:54 +0100)
committerSeth Forshee <seth.forshee@canonical.com>
Wed, 7 Mar 2018 14:06:51 +0000 (15:06 +0100)
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
18 files changed:
ubuntu/vbox/BOM
ubuntu/vbox/dkms.conf
ubuntu/vbox/vboxguest/VBoxGuest-linux.c
ubuntu/vbox/vboxguest/common/time/time.c
ubuntu/vbox/vboxguest/include/VBox/err.h
ubuntu/vbox/vboxguest/include/iprt/mangling.h
ubuntu/vbox/vboxguest/include/iprt/time.h
ubuntu/vbox/vboxguest/include/iprt/x86.h
ubuntu/vbox/vboxguest/revision-generated.h
ubuntu/vbox/vboxguest/version-generated.h
ubuntu/vbox/vboxsf/include/VBox/err.h
ubuntu/vbox/vboxsf/include/VBox/shflsvc.h
ubuntu/vbox/vboxsf/include/iprt/mangling.h
ubuntu/vbox/vboxsf/include/iprt/time.h
ubuntu/vbox/vboxsf/revision-generated.h
ubuntu/vbox/vboxsf/version-generated.h
ubuntu/vbox/vboxvideo/revision-generated.h
ubuntu/vbox/vboxvideo/version-generated.h

index b7ec8471a8f4a8be339de318bb493dec5c2a4d8f..a91487b40937b4f524b94f753108a7f38e48bac3 100644 (file)
@@ -1,2 +1,2 @@
-Source: http://ports.ubuntu.com/pool/multiverse/v/virtualbox/virtualbox-guest-dkms_5.2.6-dfsg-5_all.deb
-Version: 5.2.6-dfsg-5
+Source: http://ports.ubuntu.com/pool/multiverse/v/virtualbox/virtualbox-guest-dkms_5.2.8-dfsg-2_all.deb
+Version: 5.2.8-dfsg-2
index 1259a5a9c31f90f507f63a1163514667c000ccc5..8f84302356dfabff03d5fc1b21a5f6816cf8e765 100644 (file)
@@ -1,5 +1,5 @@
 PACKAGE_NAME="virtualbox-guest"
-PACKAGE_VERSION="5.2.6"
+PACKAGE_VERSION="5.2.8"
 CLEAN="rm -f *.*o"
 BUILT_MODULE_NAME[0]="vboxguest"
 BUILT_MODULE_LOCATION[0]="vboxguest"
index d5acad2ac5bbd08485499dcefa89c742af8a1052..8236bcfbe4abbfc073ab4088c2c08b1fc46c9350 100644 (file)
@@ -1,4 +1,4 @@
-/* $Rev: 118839 $ */
+/* $Rev: 120349 $ */
 /** @file
  * VBoxGuest - Linux specifics.
  *
 # define VBOXGUEST_WITH_INPUT_DRIVER
 #endif
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
+# define CONST_4_15 const
+#else
+# define CONST_4_15
+#endif
+
 #include "VBoxGuestInternal.h"
 #ifdef VBOXGUEST_WITH_INPUT_DRIVER
 # include <linux/input.h>
@@ -1058,11 +1064,7 @@ void VGDrvNativeISRMousePollEvent(PVBOXGUESTDEVEXT pDevExt)
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
 
 /** log and dbg_log parameter setter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogGrpSet(const char *pszValue, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogGrpSet(const char *pszValue, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogGrpSet(const char *pszValue, CONST_4_15 struct kernel_param *pParam)
 {
     if (g_fLoggerCreated)
     {
@@ -1077,11 +1079,7 @@ static int vgdrvLinuxParamLogGrpSet(const char *pszValue, struct kernel_param *p
 }
 
 /** log and dbg_log parameter getter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogGrpGet(char *pszBuf, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogGrpGet(char *pszBuf, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogGrpGet(char *pszBuf, CONST_4_15 struct kernel_param *pParam)
 {
     PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
     *pszBuf = '\0';
@@ -1092,11 +1090,7 @@ static int vgdrvLinuxParamLogGrpGet(char *pszBuf, struct kernel_param *pParam)
 
 
 /** log and dbg_log_flags parameter setter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, CONST_4_15 struct kernel_param *pParam)
 {
     if (g_fLoggerCreated)
     {
@@ -1110,11 +1104,7 @@ static int vgdrvLinuxParamLogFlagsSet(const char *pszValue, struct kernel_param
 }
 
 /** log and dbg_log_flags parameter getter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, CONST_4_15 struct kernel_param *pParam)
 {
     PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
     *pszBuf = '\0';
@@ -1125,11 +1115,7 @@ static int vgdrvLinuxParamLogFlagsGet(char *pszBuf, struct kernel_param *pParam)
 
 
 /** log and dbg_log_dest parameter setter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogDstSet(const char *pszValue, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogDstSet(const char *pszValue, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogDstSet(const char *pszValue, CONST_4_15 struct kernel_param *pParam)
 {
     if (g_fLoggerCreated)
     {
@@ -1143,11 +1129,7 @@ static int vgdrvLinuxParamLogDstSet(const char *pszValue, struct kernel_param *p
 }
 
 /** log and dbg_log_dest parameter getter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamLogDstGet(char *pszBuf, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamLogDstGet(char *pszBuf, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamLogDstGet(char *pszBuf, CONST_4_15 struct kernel_param *pParam)
 {
     PRTLOGGER pLogger = pParam->name[0] == 'd' ? RTLogDefaultInstance() : RTLogRelGetDefaultInstance();
     *pszBuf = '\0';
@@ -1158,11 +1140,7 @@ static int vgdrvLinuxParamLogDstGet(char *pszBuf, struct kernel_param *pParam)
 
 
 /** r3_log_to_host parameter setter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, CONST_4_15 struct kernel_param *pParam)
 {
     if (    pszValue == NULL
         || *pszValue == '\0'
@@ -1180,11 +1158,7 @@ static int vgdrvLinuxParamR3LogToHostSet(const char *pszValue, struct kernel_par
 }
 
 /** r3_log_to_host parameter getter. */
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0)
-static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, const struct kernel_param *pParam)
-#else
-static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, struct kernel_param *pParam)
-#endif
+static int vgdrvLinuxParamR3LogToHostGet(char *pszBuf, CONST_4_15 struct kernel_param *pParam)
 {
     strcpy(pszBuf, g_DevExt.fLoggingEnabled ? "enabled" : "disabled");
     return strlen(pszBuf);
index 33e864a6046e7041abe215abe52c4f5fa35faed1..2e79ed963390d64655cda2b874fa96ed57bf9f61 100644 (file)
 /** The min nano second into the min day.             (1677-09-21T00-12-43.145224192) */
 #define RTTIME_MIN_DAY_NANO     ( INT64_C(1000000000) * (00*3600 + 12*60 + 43) + 145224192 )
 
+/**
+ * Asserts that a_pTime is normalized.
+ */
+#define RTTIME_ASSERT_NORMALIZED(a_pTime) \
+    do \
+    { \
+        Assert(RT_ABS((a_pTime)->offUTC) <= 840); \
+        Assert((a_pTime)->u32Nanosecond < 1000000000); \
+        Assert((a_pTime)->u8Second < 60); \
+        Assert((a_pTime)->u8Minute < 60); \
+        Assert((a_pTime)->u8Hour < 24); \
+        Assert((a_pTime)->u8Month >= 1 && (a_pTime)->u8Month <= 12); \
+        Assert((a_pTime)->u8WeekDay < 7); \
+        Assert((a_pTime)->u16YearDay >= 1); \
+        Assert((a_pTime)->u16YearDay <= (rtTimeIsLeapYear((a_pTime)->i32Year) ? 366 : 365)); \
+        Assert((a_pTime)->u8MonthDay >= 1 && (a_pTime)->u8MonthDay <= 31); \
+    } while (0)
+
 
 /*********************************************************************************************************************************
 *   Global Variables                                                                                                             *
@@ -905,3 +923,187 @@ RTDECL(PRTTIMESPEC) RTTimeSpecFromString(PRTTIMESPEC pTime, const char *pszStrin
 }
 RT_EXPORT_SYMBOL(RTTimeSpecFromString);
 
+
+/**
+ * Adds one day to @a pTime.
+ *
+ * ASSUMES it is zulu time so DST can be ignored.
+ */
+static PRTTIME rtTimeAdd1Day(PRTTIME pTime)
+{
+    Assert(!pTime->offUTC);
+    rtTimeNormalizeInternal(pTime);
+    pTime->u8MonthDay += 1;
+    pTime->u16YearDay = 0;
+    return rtTimeNormalizeInternal(pTime);
+}
+
+
+/**
+ * Subtracts one day from @a pTime.
+ *
+ * ASSUMES it is zulu time so DST can be ignored.
+ */
+static PRTTIME rtTimeSub1Day(PRTTIME pTime)
+{
+    Assert(!pTime->offUTC);
+    rtTimeNormalizeInternal(pTime);
+    if (pTime->u16YearDay > 1)
+    {
+        pTime->u16YearDay -= 0;
+        pTime->u8Month     = 0;
+        pTime->u8MonthDay  = 0;
+    }
+    else
+    {
+        pTime->i32Year    -= 1;
+        pTime->u16YearDay  = rtTimeIsLeapYear(pTime->i32Year) ? 366 : 365;
+        pTime->u8MonthDay  = 31;
+        pTime->u8Month     = 12;
+    }
+    return rtTimeNormalizeInternal(pTime);
+}
+
+
+/**
+ * Adds a signed number of minutes to @a pTime.
+ *
+ * ASSUMES it is zulu time so DST can be ignored.
+ *
+ * @param   pTime       The time structure to work on.
+ * @param   cAddend     Number of minutes to add.
+ *                      ASSUMES the value isn't all that high!
+ */
+static PRTTIME rtTimeAddMinutes(PRTTIME pTime, int32_t cAddend)
+{
+    Assert(RT_ABS(cAddend) < 31 * 24 * 60);
+
+    /*
+     * Work on minutes of the day.
+     */
+    int32_t const   cMinutesInDay = 24 * 60;
+    int32_t         iDayMinute    = (unsigned)pTime->u8Hour * 60 + pTime->u8Minute;
+    iDayMinute += cAddend;
+
+    while (iDayMinute >= cMinutesInDay)
+    {
+        rtTimeAdd1Day(pTime);
+        iDayMinute -= cMinutesInDay;
+    }
+
+    while (iDayMinute < 0)
+    {
+        rtTimeSub1Day(pTime);
+        iDayMinute += cMinutesInDay;
+    }
+
+    pTime->u8Hour   = iDayMinute / 60;
+    pTime->u8Minute = iDayMinute % 60;
+
+    return pTime;
+}
+
+
+/**
+ * Converts @a pTime to zulu time (UTC) if needed.
+ *
+ * @returns pTime.
+ * @param   pTime       What to convers (in/out).
+ */
+static PRTTIME rtTimeConvertToZulu(PRTTIME pTime)
+{
+    RTTIME_ASSERT_NORMALIZED(pTime);
+    if ((pTime->fFlags & RTTIME_FLAGS_TYPE_MASK) != RTTIME_FLAGS_TYPE_UTC)
+    {
+        int32_t offUTC = pTime->offUTC;
+        pTime->offUTC  = 0;
+        pTime->fFlags &= ~RTTIME_FLAGS_TYPE_MASK;
+        pTime->fFlags |= RTTIME_FLAGS_TYPE_UTC;
+        if (offUTC != 0)
+            rtTimeAddMinutes(pTime, offUTC);
+    }
+    return pTime;
+}
+
+
+/**
+ * Compares two normalized time structures.
+ *
+ * @retval  0 if equal.
+ * @retval  -1 if @a pLeft is earlier than @a pRight.
+ * @retval  1 if @a pRight is earlier than @a pLeft.
+ *
+ * @param   pLeft       The left side time.  NULL is accepted.
+ * @param   pRight      The right side time.  NULL is accepted.
+ *
+ * @note    A NULL time is considered smaller than anything else.  If both are
+ *          NULL, they are considered equal.
+ */
+RTDECL(int) RTTimeCompare(PCRTTIME pLeft, PCRTTIME pRight)
+{
+#ifdef RT_STRICT
+    if (pLeft)
+        RTTIME_ASSERT_NORMALIZED(pLeft);
+    if (pRight)
+        RTTIME_ASSERT_NORMALIZED(pRight);
+#endif
+
+    int iRet;
+    if (pLeft)
+    {
+        if (pRight)
+        {
+            /*
+             * Only work with normalized zulu time.
+             */
+            RTTIME TmpLeft;
+            if (   pLeft->offUTC     != 0
+                || pLeft->u16YearDay == 0
+                || pLeft->u16YearDay >  366
+                || pLeft->u8Hour     >= 60
+                || pLeft->u8Minute   >= 60
+                || pLeft->u8Second   >= 60)
+            {
+                TmpLeft = *pLeft;
+                pLeft = rtTimeConvertToZulu(rtTimeNormalizeInternal(&TmpLeft));
+            }
+
+            RTTIME TmpRight;
+            if (   pRight->offUTC     != 0
+                || pRight->u16YearDay == 0
+                || pRight->u16YearDay >  366
+                || pRight->u8Hour     >= 60
+                || pRight->u8Minute   >= 60
+                || pRight->u8Second   >= 60)
+            {
+                TmpRight = *pRight;
+                pRight = rtTimeConvertToZulu(rtTimeNormalizeInternal(&TmpRight));
+            }
+
+            /*
+             * Do the comparison.
+             */
+            if (       pLeft->i32Year       != pRight->i32Year)
+                iRet = pLeft->i32Year       <  pRight->i32Year       ? -1 : 1;
+            else if (  pLeft->u16YearDay    != pRight->u16YearDay)
+                iRet = pLeft->u16YearDay    <  pRight->u16YearDay    ? -1 : 1;
+            else if (  pLeft->u8Hour        != pRight->u8Hour)
+                iRet = pLeft->u8Hour        <  pRight->u8Hour        ? -1 : 1;
+            else if (  pLeft->u8Minute      != pRight->u8Minute)
+                iRet = pLeft->u8Minute      <  pRight->u8Minute      ? -1 : 1;
+            else if (  pLeft->u8Second      != pRight->u8Second)
+                iRet = pLeft->u8Second      <  pRight->u8Second      ? -1 : 1;
+            else if (  pLeft->u32Nanosecond != pRight->u32Nanosecond)
+                iRet = pLeft->u32Nanosecond <  pRight->u32Nanosecond ? -1 : 1;
+            else
+                iRet = 0;
+        }
+        else
+            iRet = 1;
+    }
+    else
+        iRet = pRight ? -1 : 0;
+    return iRet;
+}
+RT_EXPORT_SYMBOL(RTTimeCompare);
+
index a8a81071d11cde37f383eb33294f647029405ea0..3bd4bce9f1a893aec63f28492d80bff904b85d14 100644 (file)
 #define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_1        (-3748)
 /** The process trying to open VBoxDrv is not a budding VM process (2). */
 #define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_2        (-3749)
+
+/** Raw-mode is unavailable courtesy of Hyper-V. */
+#define VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT        (-7000)
 /** @} */
 
 
index 50d63dbf7af85adedfc607c323da381aa45e6a95..e7aef73d91a9dcd4f5ab89e4b432a5e3946e3a0a 100644 (file)
 # define RTThreadWait                                   RT_MANGLER(RTThreadWait)
 # define RTThreadWaitNoResume                           RT_MANGLER(RTThreadWaitNoResume)
 # define RTThreadYield                                  RT_MANGLER(RTThreadYield)
+# define RTTimeCompare                                  RT_MANGLER(RTTimeCompare)
 # define RTTimeDbgBad                                   RT_MANGLER(RTTimeDbgBad)
 # define RTTimeDbgExpired                               RT_MANGLER(RTTimeDbgExpired)
 # define RTTimeDbgRaces                                 RT_MANGLER(RTTimeDbgRaces)
index 1b5e714527b4e0113283c39c3149947df98c0ee6..0728a30a46daff443f18f31e8b14851893200657 100644 (file)
@@ -785,6 +785,21 @@ RTDECL(PRTTIME) RTTimeFromString(PRTTIME pTime, const char *pszString);
  */
 RTDECL(bool) RTTimeIsLeapYear(int32_t i32Year);
 
+/**
+ * Compares two normalized time structures.
+ *
+ * @retval  0 if equal.
+ * @retval  -1 if @a pLeft is earlier than @a pRight.
+ * @retval  1 if @a pRight is earlier than @a pLeft.
+ *
+ * @param   pLeft       The left side time.  NULL is accepted.
+ * @param   pRight      The right side time.  NULL is accepted.
+ *
+ * @note    A NULL time is considered smaller than anything else.  If both are
+ *          NULL, they are considered equal.
+ */
+RTDECL(int) RTTimeCompare(PCRTTIME pLeft, PCRTTIME pRight);
+
 /**
  * Gets the current nanosecond timestamp.
  *
index 8e00242291e0a69ecdbe56c828ea21217e4b2941..86c81b18f5c4189daf5c6f867116e8a09a6076d1 100644 (file)
@@ -616,7 +616,7 @@ typedef const X86CPUIDFEATEDX *PCX86CPUIDFEATEDX;
 /** EDX Bit 27 - IBRS & IBPB - Supports the STIBP flag in IA32_SPEC_CTRL. */
 #define X86_CPUID_STEXT_FEATURE_EDX_STIBP             RT_BIT_32(27)
 
-/** EDX Bit 29 - ARCHCAP - Supports the IA32_ARCH_CAP MSR. */
+/** EDX Bit 29 - ARCHCAP - Supports the IA32_ARCH_CAPABILITIES MSR. */
 #define X86_CPUID_STEXT_FEATURE_EDX_ARCHCAP           RT_BIT_32(29)
 
 /** @} */
@@ -897,6 +897,8 @@ typedef const X86CPUIDFEATEDX *PCX86CPUIDFEATEDX;
 #define X86_CR4_VMXE                        RT_BIT_32(13)
 /** Bit 14 - SMXE - Safer Mode Extensions Enabled. */
 #define X86_CR4_SMXE                        RT_BIT_32(14)
+/** Bit 16 - FSGSBASE - Read/write FSGSBASE instructions Enable. */
+#define X86_CR4_FSGSBASE                    RT_BIT_32(16)
 /** Bit 17 - PCIDE - Process-Context Identifiers Enabled. */
 #define X86_CR4_PCIDE                       RT_BIT_32(17)
 /** Bit 18 - OSXSAVE - Operating System Support for XSAVE and processor
@@ -1202,7 +1204,7 @@ AssertCompile(X86_DR7_ANY_RW_IO(UINT32_C(0x00040000)) == 0);
 
 /** Architecture capabilities (bugfixes).
  * @note May move  */
-#define MSR_IA32_ARCH_CAP                   UINT32_C(0x10a)
+#define MSR_IA32_ARCH_CAPABILITIES          UINT32_C(0x10a)
 /** CPU is no subject to spectre problems. */
 #define MSR_IA32_ARCH_CAP_F_SPECTRE_FIX     RT_BIT_32(0)
 /** CPU has better IBRS and you can leave it on all the time. */
@@ -2584,6 +2586,20 @@ typedef const X86PML4 *PCX86PML4;
 
 /** @} */
 
+/**
+ * Intel PCID invalidation types.
+ */
+/** Individual address invalidation. */
+#define X86_INVPCID_TYPE_INDV_ADDR                  0
+/** Single-context invalidation. */
+#define X86_INVPCID_TYPE_SINGLE_CONTEXT             1
+/** All-context including globals invalidation. */
+#define X86_INVPCID_TYPE_ALL_CONTEXT_INCL_GLOBAL    2
+/** All-context excluding globals invalidation. */
+#define X86_INVPCID_TYPE_ALL_CONTEXT_EXCL_GLOBAL    3
+/** The maximum valid invalidation type value.   */
+#define X86_INVPCID_TYPE_MAX_VALID                  X86_INVPCID_TYPE_ALL_CONTEXT_EXCL_GLOBAL
+
 /**
  * 32-bit protected mode FSTENV image.
  */
index 12fe9f0a0d425c1fbcbf50641b179d57f08768e8..0d17f75c60a40b74e16952cc9b3f96efff9fc861 100644 (file)
@@ -1 +1 @@
-#define VBOX_SVN_REV 120293
+#define VBOX_SVN_REV 120774
index 403d0602fdd7844d478a9636a68335b33795ed58..4e38f4f645220fbeba5f967dd43653cc721c9798 100644 (file)
@@ -3,9 +3,9 @@
 
 #define VBOX_VERSION_MAJOR 5
 #define VBOX_VERSION_MINOR 2
-#define VBOX_VERSION_BUILD 6
-#define VBOX_VERSION_STRING_RAW "5.2.6"
-#define VBOX_VERSION_STRING "5.2.6_KernelUbuntu"
+#define VBOX_VERSION_BUILD 8
+#define VBOX_VERSION_STRING_RAW "5.2.8"
+#define VBOX_VERSION_STRING "5.2.8_KernelUbuntu"
 #define VBOX_API_VERSION_STRING "5_2"
 
 #define VBOX_PRIVATE_BUILD_DESC "Private build by buildd"
index a8a81071d11cde37f383eb33294f647029405ea0..3bd4bce9f1a893aec63f28492d80bff904b85d14 100644 (file)
 #define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_1        (-3748)
 /** The process trying to open VBoxDrv is not a budding VM process (2). */
 #define VERR_SUPDRV_NOT_BUDDING_VM_PROCESS_2        (-3749)
+
+/** Raw-mode is unavailable courtesy of Hyper-V. */
+#define VERR_SUPDRV_NO_RAW_MODE_HYPER_V_ROOT        (-7000)
 /** @} */
 
 
index eb34789c513ec287b3ef85401e8a8328fac041a3..fdcd5c300a93a51a36d912a8051203ba86251178 100644 (file)
@@ -483,6 +483,8 @@ DECLINLINE(void) vbfsCopyFsObjInfoFromIprt(PSHFLFSOBJINFO pDst, PCRTFSOBJINFO pS
     pDst->ChangeTime        = pSrc->ChangeTime;
     pDst->BirthTime         = pSrc->BirthTime;
     pDst->Attr.fMode        = pSrc->Attr.fMode;
+    /* Clear bits which we don't pass through for security reasons. */
+    pDst->Attr.fMode       &= ~(RTFS_UNIX_ISUID | RTFS_UNIX_ISGID | RTFS_UNIX_ISTXT);
     RT_ZERO(pDst->Attr.u);
     switch (pSrc->Attr.enmAdditional)
     {
index 50d63dbf7af85adedfc607c323da381aa45e6a95..e7aef73d91a9dcd4f5ab89e4b432a5e3946e3a0a 100644 (file)
 # define RTThreadWait                                   RT_MANGLER(RTThreadWait)
 # define RTThreadWaitNoResume                           RT_MANGLER(RTThreadWaitNoResume)
 # define RTThreadYield                                  RT_MANGLER(RTThreadYield)
+# define RTTimeCompare                                  RT_MANGLER(RTTimeCompare)
 # define RTTimeDbgBad                                   RT_MANGLER(RTTimeDbgBad)
 # define RTTimeDbgExpired                               RT_MANGLER(RTTimeDbgExpired)
 # define RTTimeDbgRaces                                 RT_MANGLER(RTTimeDbgRaces)
index 1b5e714527b4e0113283c39c3149947df98c0ee6..0728a30a46daff443f18f31e8b14851893200657 100644 (file)
@@ -785,6 +785,21 @@ RTDECL(PRTTIME) RTTimeFromString(PRTTIME pTime, const char *pszString);
  */
 RTDECL(bool) RTTimeIsLeapYear(int32_t i32Year);
 
+/**
+ * Compares two normalized time structures.
+ *
+ * @retval  0 if equal.
+ * @retval  -1 if @a pLeft is earlier than @a pRight.
+ * @retval  1 if @a pRight is earlier than @a pLeft.
+ *
+ * @param   pLeft       The left side time.  NULL is accepted.
+ * @param   pRight      The right side time.  NULL is accepted.
+ *
+ * @note    A NULL time is considered smaller than anything else.  If both are
+ *          NULL, they are considered equal.
+ */
+RTDECL(int) RTTimeCompare(PCRTTIME pLeft, PCRTTIME pRight);
+
 /**
  * Gets the current nanosecond timestamp.
  *
index 12fe9f0a0d425c1fbcbf50641b179d57f08768e8..0d17f75c60a40b74e16952cc9b3f96efff9fc861 100644 (file)
@@ -1 +1 @@
-#define VBOX_SVN_REV 120293
+#define VBOX_SVN_REV 120774
index 403d0602fdd7844d478a9636a68335b33795ed58..4e38f4f645220fbeba5f967dd43653cc721c9798 100644 (file)
@@ -3,9 +3,9 @@
 
 #define VBOX_VERSION_MAJOR 5
 #define VBOX_VERSION_MINOR 2
-#define VBOX_VERSION_BUILD 6
-#define VBOX_VERSION_STRING_RAW "5.2.6"
-#define VBOX_VERSION_STRING "5.2.6_KernelUbuntu"
+#define VBOX_VERSION_BUILD 8
+#define VBOX_VERSION_STRING_RAW "5.2.8"
+#define VBOX_VERSION_STRING "5.2.8_KernelUbuntu"
 #define VBOX_API_VERSION_STRING "5_2"
 
 #define VBOX_PRIVATE_BUILD_DESC "Private build by buildd"
index 12fe9f0a0d425c1fbcbf50641b179d57f08768e8..0d17f75c60a40b74e16952cc9b3f96efff9fc861 100644 (file)
@@ -1 +1 @@
-#define VBOX_SVN_REV 120293
+#define VBOX_SVN_REV 120774
index 403d0602fdd7844d478a9636a68335b33795ed58..4e38f4f645220fbeba5f967dd43653cc721c9798 100644 (file)
@@ -3,9 +3,9 @@
 
 #define VBOX_VERSION_MAJOR 5
 #define VBOX_VERSION_MINOR 2
-#define VBOX_VERSION_BUILD 6
-#define VBOX_VERSION_STRING_RAW "5.2.6"
-#define VBOX_VERSION_STRING "5.2.6_KernelUbuntu"
+#define VBOX_VERSION_BUILD 8
+#define VBOX_VERSION_STRING_RAW "5.2.8"
+#define VBOX_VERSION_STRING "5.2.8_KernelUbuntu"
 #define VBOX_API_VERSION_STRING "5_2"
 
 #define VBOX_PRIVATE_BUILD_DESC "Private build by buildd"