Index: trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp	(revision 91800)
+++ trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp	(revision 91801)
@@ -76,4 +76,25 @@
 #endif
 
+#ifdef __cplusplus
+# if __cplusplus >= 201100 || RT_MSC_PREREQ(RT_MSC_VER_VS2019)
+#  define SUPDRV_CAN_COUNT_FUNCTION_ARGS
+#  ifdef _MSC_VER
+#   pragma warning(push)
+#   pragma warning(disable:4577)
+#   include <type_traits>
+#   pragma warning(pop)
+
+#  elif defined(RT_OS_DARWIN)
+#   define _LIBCPP_CSTDDEF
+#   include <__nullptr>
+#   include <type_traits>
+
+#  else
+#   include <type_traits>
+#  endif
+# endif
+#endif
+
+
 /*
  * Logging assignments:
@@ -154,24 +175,47 @@
 *   Global Variables                                                                                                             *
 *********************************************************************************************************************************/
-/** @def STKBACK
- * Indicates that the symbol needs to switch back to the kernel stack on darwin.
- * See @bugref{10124} for details. */
+/** @def SUPEXP_CHECK_ARGS
+ * This is for checking the argument count of the function in the entry,
+ * just to make sure we don't accidentally export something the wrapper
+ * can't deal with.
+ *
+ * Using some C++11 magic to do the counting.
+ *
+ * The error is reported by overflowing the SUPFUNC::cArgs field, so the
+ * warnings can probably be a little mysterious.
+ *
+ * @note Doesn't work for CLANG 11.  Works for Visual C++, unless there
+ *       are function pointers in the argument list.
+ */
+#if defined(SUPDRV_CAN_COUNT_FUNCTION_ARGS) && RT_CLANG_PREREQ(99, 0)
+template <typename RetType, typename ... Types>
+constexpr std::integral_constant<unsigned, sizeof ...(Types)>
+CountFunctionArguments(RetType(RTCALL *)(Types ...))
+{
+    return std::integral_constant<unsigned, sizeof ...(Types)>{};
+}
+# define SUPEXP_CHECK_ARGS(a_cArgs, a_Name) \
+    ((a_cArgs) >= decltype(CountFunctionArguments(a_Name))::value ? (uint8_t)(a_cArgs) : 1023)
+
+#else
+# define SUPEXP_CHECK_ARGS(a_cArgs, a_Name)     a_cArgs
+#endif
+
+/** @name Function table entry macros.
+ * @note The SUPEXP_STK_BACKF macro is because VC++ has trouble with functions
+ *       with function pointer arguments (probably noexcept related).
+ * @{ */
+#define SUPEXP_CUSTOM(a_cArgs, a_Name, a_Value) { #a_Name,      a_cArgs,                            (void *)(uintptr_t)(a_Value) }
+#define SUPEXP_STK_OKAY(a_cArgs, a_Name)        { #a_Name,      SUPEXP_CHECK_ARGS(a_cArgs, a_Name), (void *)(uintptr_t)a_Name }
 #ifdef RT_OS_DARWIN
-# define STKBACK(a) "StkBack_" a
+# define SUPEXP_STK_BACK(a_cArgs, a_Name) { "StkBack_" #a_Name, SUPEXP_CHECK_ARGS(a_cArgs, a_Name), (void *)(uintptr_t)a_Name }
 #else
-# define STKBACK(a) a
+# define SUPEXP_STK_BACK(a_cArgs, a_Name)       { #a_Name,      SUPEXP_CHECK_ARGS(a_cArgs, a_Name), (void *)(uintptr_t)a_Name }
+# ifdef _MSC_VER
+#  define SUPEXP_STK_BACKF(a_cArgs, a_Name)     { #a_Name,      a_cArgs,                            (void *)(uintptr_t)a_Name }
+# endif
 #endif
-/** @def STKOKAY
- * The oposite of STKBACK, just for make the table nicly aligned. */
-#define STKOKAY(a) a
-
-/** @name Function table entry macros.
- *  @{ */
-#define SUPEXP_CUSTOM(a_cArgs, a_Name, a_Value) { #a_Name,              a_cArgs,    (void *)(uintptr_t)(a_Value) }
-#define SUPEXP_STK_OKAY(a_cArgs, a_Name)        { #a_Name,              0,          (void *)(uintptr_t)a_Name }
-#ifdef RT_OS_DARWIN
-# define SUPEXP_STK_BACK(a_cArgs, a_Name)       { "StkBack_" #a_Name,   0,          (void *)(uintptr_t)a_Name }
-#else
-# define SUPEXP_STK_BACK(a_cArgs, a_Name)       { #a_Name,              0,          (void *)(uintptr_t)a_Name }
+#ifndef SUPEXP_STK_BACKF
+# define SUPEXP_STK_BACKF(a_cArgs, a_Name)      SUPEXP_STK_BACK(a_cArgs, a_Name)
 #endif
 /** @} */
@@ -193,321 +237,321 @@
         /* Entries with absolute addresses determined at runtime, fixup
            code makes ugly ASSUMPTIONS about the order here: */
-    SUPEXP_CUSTOM(  0,  SUPR0AbsIs64bit,          0),
-    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelCS,    0),
-    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelSS,    0),
-    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelDS,    0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelCS,         0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelSS,         0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelDS,         0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelES,         0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelFS,         0),
-    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelGS,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsIs64bit,          0),
+    SUPEXP_CUSTOM(      0,  SUPR0Abs64bitKernelCS,    0),
+    SUPEXP_CUSTOM(      0,  SUPR0Abs64bitKernelSS,    0),
+    SUPEXP_CUSTOM(      0,  SUPR0Abs64bitKernelDS,    0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelCS,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelSS,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelDS,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelES,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelFS,         0),
+    SUPEXP_CUSTOM(      0,  SUPR0AbsKernelGS,         0),
         /* Normal function & data pointers: */
-    SUPEXP_CUSTOM(  0,  g_pSUPGlobalInfoPage,     &g_pSUPGlobalInfoPage),            /* SED: DATA */
-    SUPEXP_STK_OKAY(0,  SUPGetGIP),
-    SUPEXP_STK_BACK(22, SUPReadTscWithDelta),
-    SUPEXP_STK_BACK(22, SUPGetTscDeltaSlow),
-    SUPEXP_STK_BACK(22, SUPGetCpuHzFromGipForAsyncMode),
-    SUPEXP_STK_OKAY(0,  SUPIsTscFreqCompatible),
-    SUPEXP_STK_OKAY(0,  SUPIsTscFreqCompatibleEx),
-    SUPEXP_STK_BACK(22, SUPR0BadContext),
-    SUPEXP_STK_BACK(22, SUPR0ComponentDeregisterFactory),
-    SUPEXP_STK_BACK(22, SUPR0ComponentQueryFactory),
-    SUPEXP_STK_BACK(22, SUPR0ComponentRegisterFactory),
-    SUPEXP_STK_BACK(22, SUPR0ContAlloc),
-    SUPEXP_STK_BACK(22, SUPR0ContFree),
-    SUPEXP_STK_BACK(22, SUPR0ChangeCR4),
-    SUPEXP_STK_BACK(22, SUPR0EnableVTx),
-    SUPEXP_STK_BACK(22, SUPR0SuspendVTxOnCpu),
-    SUPEXP_STK_BACK(22, SUPR0ResumeVTxOnCpu),
-    SUPEXP_STK_OKAY(0,  SUPR0GetCurrentGdtRw),
-    SUPEXP_STK_OKAY(0,  SUPR0GetKernelFeatures),
-    SUPEXP_STK_BACK(22, SUPR0GetHwvirtMsrs),
-    SUPEXP_STK_BACK(22, SUPR0GetPagingMode),
-    SUPEXP_STK_BACK(22, SUPR0GetSvmUsability),
-    SUPEXP_STK_BACK(22, SUPR0GetVTSupport),
-    SUPEXP_STK_BACK(22, SUPR0GetVmxUsability),
-    SUPEXP_STK_BACK(22, SUPR0LdrIsLockOwnerByMod),
-    SUPEXP_STK_BACK(22, SUPR0LdrLock),
-    SUPEXP_STK_BACK(22, SUPR0LdrUnlock),
-    SUPEXP_STK_BACK(22, SUPR0LdrModByName),
-    SUPEXP_STK_BACK(22, SUPR0LdrModRelease),
-    SUPEXP_STK_BACK(22, SUPR0LdrModRetain),
-    SUPEXP_STK_BACK(22, SUPR0LockMem),
-    SUPEXP_STK_BACK(22, SUPR0LowAlloc),
-    SUPEXP_STK_BACK(22, SUPR0LowFree),
-    SUPEXP_STK_BACK(22, SUPR0MemAlloc),
-    SUPEXP_STK_BACK(22, SUPR0MemFree),
-    SUPEXP_STK_BACK(22, SUPR0MemGetPhys),
-    SUPEXP_STK_BACK(22, SUPR0ObjAddRef),
-    SUPEXP_STK_BACK(22, SUPR0ObjAddRefEx),
-    SUPEXP_STK_BACK(22, SUPR0ObjRegister),
-    SUPEXP_STK_BACK(22, SUPR0ObjRelease),
-    SUPEXP_STK_BACK(22, SUPR0ObjVerifyAccess),
-    SUPEXP_STK_BACK(22, SUPR0PageAllocEx),
-    SUPEXP_STK_BACK(22, SUPR0PageFree),
-    SUPEXP_STK_BACK(22, SUPR0PageMapKernel),
-    SUPEXP_STK_BACK(22, SUPR0PageProtect),
+    SUPEXP_CUSTOM(      0,  g_pSUPGlobalInfoPage,     &g_pSUPGlobalInfoPage),            /* SED: DATA */
+    SUPEXP_STK_OKAY(    0,  SUPGetGIP),
+    SUPEXP_STK_BACK(    1,  SUPReadTscWithDelta),
+    SUPEXP_STK_BACK(    1,  SUPGetTscDeltaSlow),
+    SUPEXP_STK_BACK(    1,  SUPGetCpuHzFromGipForAsyncMode),
+    SUPEXP_STK_OKAY(    3,  SUPIsTscFreqCompatible),
+    SUPEXP_STK_OKAY(    3,  SUPIsTscFreqCompatibleEx),
+    SUPEXP_STK_BACK(    4,  SUPR0BadContext),
+    SUPEXP_STK_BACK(    2,  SUPR0ComponentDeregisterFactory),
+    SUPEXP_STK_BACK(    4,  SUPR0ComponentQueryFactory),
+    SUPEXP_STK_BACK(    2,  SUPR0ComponentRegisterFactory),
+    SUPEXP_STK_BACK(    5,  SUPR0ContAlloc),
+    SUPEXP_STK_BACK(    2,  SUPR0ContFree),
+    SUPEXP_STK_BACK(    2,  SUPR0ChangeCR4),
+    SUPEXP_STK_BACK(    1,  SUPR0EnableVTx),
+    SUPEXP_STK_BACK(    0,  SUPR0SuspendVTxOnCpu),
+    SUPEXP_STK_BACK(    1,  SUPR0ResumeVTxOnCpu),
+    SUPEXP_STK_OKAY(    1,  SUPR0GetCurrentGdtRw),
+    SUPEXP_STK_OKAY(    0,  SUPR0GetKernelFeatures),
+    SUPEXP_STK_BACK(    3,  SUPR0GetHwvirtMsrs),
+    SUPEXP_STK_BACK(    0,  SUPR0GetPagingMode),
+    SUPEXP_STK_BACK(    1,  SUPR0GetSvmUsability),
+    SUPEXP_STK_BACK(    1,  SUPR0GetVTSupport),
+    SUPEXP_STK_BACK(    1,  SUPR0GetVmxUsability),
+    SUPEXP_STK_BACK(    2,  SUPR0LdrIsLockOwnerByMod),
+    SUPEXP_STK_BACK(    1,  SUPR0LdrLock),
+    SUPEXP_STK_BACK(    1,  SUPR0LdrUnlock),
+    SUPEXP_STK_BACK(    3,  SUPR0LdrModByName),
+    SUPEXP_STK_BACK(    2,  SUPR0LdrModRelease),
+    SUPEXP_STK_BACK(    2,  SUPR0LdrModRetain),
+    SUPEXP_STK_BACK(    4,  SUPR0LockMem),
+    SUPEXP_STK_BACK(    5,  SUPR0LowAlloc),
+    SUPEXP_STK_BACK(    2,  SUPR0LowFree),
+    SUPEXP_STK_BACK(    4,  SUPR0MemAlloc),
+    SUPEXP_STK_BACK(    2,  SUPR0MemFree),
+    SUPEXP_STK_BACK(    3,  SUPR0MemGetPhys),
+    SUPEXP_STK_BACK(    2,  SUPR0ObjAddRef),
+    SUPEXP_STK_BACK(    3,  SUPR0ObjAddRefEx),
+    SUPEXP_STK_BACKF(   5,  SUPR0ObjRegister),
+    SUPEXP_STK_BACK(    2,  SUPR0ObjRelease),
+    SUPEXP_STK_BACK(    3,  SUPR0ObjVerifyAccess),
+    SUPEXP_STK_BACK(    6,  SUPR0PageAllocEx),
+    SUPEXP_STK_BACK(    2,  SUPR0PageFree),
+    SUPEXP_STK_BACK(    6,  SUPR0PageMapKernel),
+    SUPEXP_STK_BACK(    6,  SUPR0PageProtect),
 #if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
-    SUPEXP_STK_OKAY(0,  SUPR0HCPhysToVirt),         /* only-linux, only-solaris, only-freebsd */
+    SUPEXP_STK_OKAY(    2,  SUPR0HCPhysToVirt),         /* only-linux, only-solaris, only-freebsd */
 #endif
-    SUPEXP_STK_BACK(22, SUPR0PrintfV),
-    SUPEXP_STK_BACK(22, SUPR0GetSessionGVM),
-    SUPEXP_STK_BACK(22, SUPR0GetSessionVM),
-    SUPEXP_STK_BACK(22, SUPR0SetSessionVM),
-    SUPEXP_STK_BACK(22, SUPR0TscDeltaMeasureBySetIndex),
-    SUPEXP_STK_BACK(22, SUPR0TracerDeregisterDrv),
-    SUPEXP_STK_BACK(22, SUPR0TracerDeregisterImpl),
-    SUPEXP_STK_BACK(22, SUPR0TracerFireProbe),
-    SUPEXP_STK_BACK(22, SUPR0TracerRegisterDrv),
-    SUPEXP_STK_BACK(22, SUPR0TracerRegisterImpl),
-    SUPEXP_STK_BACK(22, SUPR0TracerRegisterModule),
-    SUPEXP_STK_BACK(22, SUPR0TracerUmodProbeFire),
-    SUPEXP_STK_BACK(22, SUPR0UnlockMem),
+    SUPEXP_STK_BACK(    2,  SUPR0PrintfV),
+    SUPEXP_STK_BACK(    1,  SUPR0GetSessionGVM),
+    SUPEXP_STK_BACK(    1,  SUPR0GetSessionVM),
+    SUPEXP_STK_BACK(    3,  SUPR0SetSessionVM),
+    SUPEXP_STK_BACK(    6,  SUPR0TscDeltaMeasureBySetIndex),
+    SUPEXP_STK_BACK(    1,  SUPR0TracerDeregisterDrv),
+    SUPEXP_STK_BACK(    2,  SUPR0TracerDeregisterImpl),
+    SUPEXP_STK_BACK(    6,  SUPR0TracerFireProbe),
+    SUPEXP_STK_BACK(    3,  SUPR0TracerRegisterDrv),
+    SUPEXP_STK_BACK(    4,  SUPR0TracerRegisterImpl),
+    SUPEXP_STK_BACK(    2,  SUPR0TracerRegisterModule),
+    SUPEXP_STK_BACK(    2,  SUPR0TracerUmodProbeFire),
+    SUPEXP_STK_BACK(    2,  SUPR0UnlockMem),
 #ifdef RT_OS_WINDOWS
-    SUPEXP_STK_BACK(22, SUPR0IoCtlSetupForHandle),  /* only-windows */
-    SUPEXP_STK_BACK(22, SUPR0IoCtlPerform),         /* only-windows */
-    SUPEXP_STK_BACK(22, SUPR0IoCtlCleanup),         /* only-windows */
+    SUPEXP_STK_BACK(    4,  SUPR0IoCtlSetupForHandle),  /* only-windows */
+    SUPEXP_STK_BACK(    9,  SUPR0IoCtlPerform),         /* only-windows */
+    SUPEXP_STK_BACK(    1,  SUPR0IoCtlCleanup),         /* only-windows */
 #endif
-    SUPEXP_STK_BACK(22, SUPSemEventClose),
-    SUPEXP_STK_BACK(22, SUPSemEventCreate),
-    SUPEXP_STK_BACK(22, SUPSemEventGetResolution),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiClose),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiCreate),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiGetResolution),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiReset),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiSignal),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiWait),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNoResume),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNsAbsIntr),
-    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNsRelIntr),
-    SUPEXP_STK_BACK(22, SUPSemEventSignal),
-    SUPEXP_STK_BACK(22, SUPSemEventWait),
-    SUPEXP_STK_BACK(22, SUPSemEventWaitNoResume),
-    SUPEXP_STK_BACK(22, SUPSemEventWaitNsAbsIntr),
-    SUPEXP_STK_BACK(22, SUPSemEventWaitNsRelIntr),
-
-    SUPEXP_STK_BACK(22, RTAssertAreQuiet),
-    SUPEXP_STK_BACK(22, RTAssertMayPanic),
-    SUPEXP_STK_BACK(22, RTAssertMsg1),
-    SUPEXP_STK_BACK(22, RTAssertMsg2AddV),
-    SUPEXP_STK_BACK(22, RTAssertMsg2V),
-    SUPEXP_STK_BACK(22, RTAssertSetMayPanic),
-    SUPEXP_STK_BACK(22, RTAssertSetQuiet),
-    SUPEXP_STK_OKAY(0,  RTCrc32),
-    SUPEXP_STK_OKAY(0,  RTCrc32Finish),
-    SUPEXP_STK_OKAY(0,  RTCrc32Process),
-    SUPEXP_STK_OKAY(0,  RTCrc32Start),
-    SUPEXP_STK_OKAY(0,  RTErrConvertFromErrno),
-    SUPEXP_STK_OKAY(0,  RTErrConvertToErrno),
-    SUPEXP_STK_BACK(22, RTHandleTableAllocWithCtx),
-    SUPEXP_STK_BACK(22, RTHandleTableCreate),
-    SUPEXP_STK_BACK(22, RTHandleTableCreateEx),
-    SUPEXP_STK_BACK(22, RTHandleTableDestroy),
-    SUPEXP_STK_BACK(22, RTHandleTableFreeWithCtx),
-    SUPEXP_STK_BACK(22, RTHandleTableLookupWithCtx),
-    SUPEXP_STK_BACK(22, RTLogBulkUpdate),
-    SUPEXP_STK_BACK(22, RTLogCheckGroupFlags),
-    SUPEXP_STK_BACK(22, RTLogCreateExV),
-    SUPEXP_STK_BACK(22, RTLogDestroy),
-    SUPEXP_STK_BACK(22, RTLogDefaultInstance),
-    SUPEXP_STK_BACK(22, RTLogDefaultInstanceEx),
-    SUPEXP_STK_BACK(22, SUPR0DefaultLogInstanceEx),
-    SUPEXP_STK_BACK(22, RTLogGetDefaultInstance),
-    SUPEXP_STK_BACK(22, RTLogGetDefaultInstanceEx),
-    SUPEXP_STK_BACK(22, SUPR0GetDefaultLogInstanceEx),
-    SUPEXP_STK_BACK(22, RTLogLoggerExV),
-    SUPEXP_STK_BACK(22, RTLogPrintfV),
-    SUPEXP_STK_BACK(22, RTLogRelGetDefaultInstance),
-    SUPEXP_STK_BACK(22, RTLogRelGetDefaultInstanceEx),
-    SUPEXP_STK_BACK(22, SUPR0GetDefaultLogRelInstanceEx),
-    SUPEXP_STK_BACK(22, RTLogSetDefaultInstanceThread),
-    SUPEXP_STK_BACK(22, RTLogSetFlushCallback),
-    SUPEXP_STK_BACK(22, RTLogSetR0ProgramStart),
-    SUPEXP_STK_BACK(22, RTLogSetR0ThreadNameV),
-    SUPEXP_STK_BACK(22, RTMemAllocExTag),
-    SUPEXP_STK_BACK(22, RTMemAllocTag),
-    SUPEXP_STK_BACK(22, RTMemAllocVarTag),
-    SUPEXP_STK_BACK(22, RTMemAllocZTag),
-    SUPEXP_STK_BACK(22, RTMemAllocZVarTag),
-    SUPEXP_STK_BACK(22, RTMemDupExTag),
-    SUPEXP_STK_BACK(22, RTMemDupTag),
-    SUPEXP_STK_BACK(22, RTMemFree),
-    SUPEXP_STK_BACK(22, RTMemFreeEx),
-    SUPEXP_STK_BACK(22, RTMemReallocTag),
-    SUPEXP_STK_BACK(22, RTMpCpuId),
-    SUPEXP_STK_BACK(22, RTMpCpuIdFromSetIndex),
-    SUPEXP_STK_BACK(22, RTMpCpuIdToSetIndex),
-    SUPEXP_STK_BACK(22, RTMpCurSetIndex),
-    SUPEXP_STK_BACK(22, RTMpCurSetIndexAndId),
-    SUPEXP_STK_BACK(22, RTMpGetArraySize),
-    SUPEXP_STK_BACK(22, RTMpGetCount),
-    SUPEXP_STK_BACK(22, RTMpGetMaxCpuId),
-    SUPEXP_STK_BACK(22, RTMpGetOnlineCount),
-    SUPEXP_STK_BACK(22, RTMpGetOnlineSet),
-    SUPEXP_STK_BACK(22, RTMpGetSet),
-    SUPEXP_STK_BACK(22, RTMpIsCpuOnline),
-    SUPEXP_STK_BACK(22, RTMpIsCpuPossible),
-    SUPEXP_STK_BACK(22, RTMpIsCpuWorkPending),
-    SUPEXP_STK_BACK(22, RTMpNotificationDeregister),
-    SUPEXP_STK_BACK(22, RTMpNotificationRegister),
-    SUPEXP_STK_BACK(22, RTMpOnAll),
-    SUPEXP_STK_BACK(22, RTMpOnOthers),
-    SUPEXP_STK_BACK(22, RTMpOnSpecific),
-    SUPEXP_STK_BACK(22, RTMpPokeCpu),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4AddDataChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4AddTCPChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4AddUDPChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4FinalizeChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4HdrChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsDHCPValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsHdrValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsTCPSizeValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsTCPValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsUDPSizeValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4IsUDPValid),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4PseudoChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4PseudoChecksumBits),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4TCPChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv4UDPChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksumBits),
-    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksumEx),
-    SUPEXP_STK_OKAY(0,  RTNetTCPChecksum),
-    SUPEXP_STK_OKAY(0,  RTNetUDPChecksum),
-    SUPEXP_STK_BACK(22, RTPowerNotificationDeregister),
-    SUPEXP_STK_BACK(22, RTPowerNotificationRegister),
-    SUPEXP_STK_BACK(22, RTProcSelf),
-    SUPEXP_STK_BACK(22, RTR0AssertPanicSystem),
+    SUPEXP_STK_BACK(    2,  SUPSemEventClose),
+    SUPEXP_STK_BACK(    2,  SUPSemEventCreate),
+    SUPEXP_STK_BACK(    1,  SUPSemEventGetResolution),
+    SUPEXP_STK_BACK(    2,  SUPSemEventMultiClose),
+    SUPEXP_STK_BACK(    2,  SUPSemEventMultiCreate),
+    SUPEXP_STK_BACK(    1,  SUPSemEventMultiGetResolution),
+    SUPEXP_STK_BACK(    2,  SUPSemEventMultiReset),
+    SUPEXP_STK_BACK(    2,  SUPSemEventMultiSignal),
+    SUPEXP_STK_BACK(    3,  SUPSemEventMultiWait),
+    SUPEXP_STK_BACK(    3,  SUPSemEventMultiWaitNoResume),
+    SUPEXP_STK_BACK(    3,  SUPSemEventMultiWaitNsAbsIntr),
+    SUPEXP_STK_BACK(    3,  SUPSemEventMultiWaitNsRelIntr),
+    SUPEXP_STK_BACK(    2,  SUPSemEventSignal),
+    SUPEXP_STK_BACK(    3,  SUPSemEventWait),
+    SUPEXP_STK_BACK(    3,  SUPSemEventWaitNoResume),
+    SUPEXP_STK_BACK(    3,  SUPSemEventWaitNsAbsIntr),
+    SUPEXP_STK_BACK(    3,  SUPSemEventWaitNsRelIntr),
+
+    SUPEXP_STK_BACK(    0,  RTAssertAreQuiet),
+    SUPEXP_STK_BACK(    0,  RTAssertMayPanic),
+    SUPEXP_STK_BACK(    4,  RTAssertMsg1),
+    SUPEXP_STK_BACK(    2,  RTAssertMsg2AddV),
+    SUPEXP_STK_BACK(    2,  RTAssertMsg2V),
+    SUPEXP_STK_BACK(    1,  RTAssertSetMayPanic),
+    SUPEXP_STK_BACK(    1,  RTAssertSetQuiet),
+    SUPEXP_STK_OKAY(    2,  RTCrc32),
+    SUPEXP_STK_OKAY(    1,  RTCrc32Finish),
+    SUPEXP_STK_OKAY(    3,  RTCrc32Process),
+    SUPEXP_STK_OKAY(    0,  RTCrc32Start),
+    SUPEXP_STK_OKAY(    1,  RTErrConvertFromErrno),
+    SUPEXP_STK_OKAY(    1,  RTErrConvertToErrno),
+    SUPEXP_STK_BACK(    4,  RTHandleTableAllocWithCtx),
+    SUPEXP_STK_BACK(    1,  RTHandleTableCreate),
+    SUPEXP_STK_BACKF(   6,  RTHandleTableCreateEx),
+    SUPEXP_STK_BACKF(   3,  RTHandleTableDestroy),
+    SUPEXP_STK_BACK(    3,  RTHandleTableFreeWithCtx),
+    SUPEXP_STK_BACK(    3,  RTHandleTableLookupWithCtx),
+    SUPEXP_STK_BACK(    5,  RTLogBulkUpdate),
+    SUPEXP_STK_BACK(    2,  RTLogCheckGroupFlags),
+    SUPEXP_STK_BACKF(   17, RTLogCreateExV),
+    SUPEXP_STK_BACK(    1,  RTLogDestroy),
+    SUPEXP_STK_BACK(    0,  RTLogDefaultInstance),
+    SUPEXP_STK_BACK(    1,  RTLogDefaultInstanceEx),
+    SUPEXP_STK_BACK(    1,  SUPR0DefaultLogInstanceEx),
+    SUPEXP_STK_BACK(    0,  RTLogGetDefaultInstance),
+    SUPEXP_STK_BACK(    1,  RTLogGetDefaultInstanceEx),
+    SUPEXP_STK_BACK(    1,  SUPR0GetDefaultLogInstanceEx),
+    SUPEXP_STK_BACK(    5,  RTLogLoggerExV),
+    SUPEXP_STK_BACK(    2,  RTLogPrintfV),
+    SUPEXP_STK_BACK(    0,  RTLogRelGetDefaultInstance),
+    SUPEXP_STK_BACK(    1,  RTLogRelGetDefaultInstanceEx),
+    SUPEXP_STK_BACK(    1,  SUPR0GetDefaultLogRelInstanceEx),
+    SUPEXP_STK_BACK(    2,  RTLogSetDefaultInstanceThread),
+    SUPEXP_STK_BACKF(   2,  RTLogSetFlushCallback),
+    SUPEXP_STK_BACK(    2,  RTLogSetR0ProgramStart),
+    SUPEXP_STK_BACK(    3,  RTLogSetR0ThreadNameV),
+    SUPEXP_STK_BACK(    5,  RTMemAllocExTag),
+    SUPEXP_STK_BACK(    2,  RTMemAllocTag),
+    SUPEXP_STK_BACK(    2,  RTMemAllocVarTag),
+    SUPEXP_STK_BACK(    2,  RTMemAllocZTag),
+    SUPEXP_STK_BACK(    2,  RTMemAllocZVarTag),
+    SUPEXP_STK_BACK(    4,  RTMemDupExTag),
+    SUPEXP_STK_BACK(    3,  RTMemDupTag),
+    SUPEXP_STK_BACK(    1,  RTMemFree),
+    SUPEXP_STK_BACK(    2,  RTMemFreeEx),
+    SUPEXP_STK_BACK(    3,  RTMemReallocTag),
+    SUPEXP_STK_BACK(    0,  RTMpCpuId),
+    SUPEXP_STK_BACK(    1,  RTMpCpuIdFromSetIndex),
+    SUPEXP_STK_BACK(    1,  RTMpCpuIdToSetIndex),
+    SUPEXP_STK_BACK(    0,  RTMpCurSetIndex),
+    SUPEXP_STK_BACK(    1,  RTMpCurSetIndexAndId),
+    SUPEXP_STK_BACK(    0,  RTMpGetArraySize),
+    SUPEXP_STK_BACK(    0,  RTMpGetCount),
+    SUPEXP_STK_BACK(    0,  RTMpGetMaxCpuId),
+    SUPEXP_STK_BACK(    0,  RTMpGetOnlineCount),
+    SUPEXP_STK_BACK(    1,  RTMpGetOnlineSet),
+    SUPEXP_STK_BACK(    1,  RTMpGetSet),
+    SUPEXP_STK_BACK(    1,  RTMpIsCpuOnline),
+    SUPEXP_STK_BACK(    1,  RTMpIsCpuPossible),
+    SUPEXP_STK_BACK(    0,  RTMpIsCpuWorkPending),
+    SUPEXP_STK_BACKF(   2,  RTMpNotificationDeregister),
+    SUPEXP_STK_BACKF(   2,  RTMpNotificationRegister),
+    SUPEXP_STK_BACKF(   3,  RTMpOnAll),
+    SUPEXP_STK_BACKF(   3,  RTMpOnOthers),
+    SUPEXP_STK_BACKF(   4,  RTMpOnSpecific),
+    SUPEXP_STK_BACK(    1,  RTMpPokeCpu),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv4AddDataChecksum),
+    SUPEXP_STK_OKAY(    2,  RTNetIPv4AddTCPChecksum),
+    SUPEXP_STK_OKAY(    2,  RTNetIPv4AddUDPChecksum),
+    SUPEXP_STK_OKAY(    1,  RTNetIPv4FinalizeChecksum),
+    SUPEXP_STK_OKAY(    1,  RTNetIPv4HdrChecksum),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv4IsDHCPValid),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv4IsHdrValid),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv4IsTCPSizeValid),
+    SUPEXP_STK_OKAY(    6,  RTNetIPv4IsTCPValid),
+    SUPEXP_STK_OKAY(    3,  RTNetIPv4IsUDPSizeValid),
+    SUPEXP_STK_OKAY(    5,  RTNetIPv4IsUDPValid),
+    SUPEXP_STK_OKAY(    1,  RTNetIPv4PseudoChecksum),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv4PseudoChecksumBits),
+    SUPEXP_STK_OKAY(    3,  RTNetIPv4TCPChecksum),
+    SUPEXP_STK_OKAY(    3,  RTNetIPv4UDPChecksum),
+    SUPEXP_STK_OKAY(    1,  RTNetIPv6PseudoChecksum),
+    SUPEXP_STK_OKAY(    4,  RTNetIPv6PseudoChecksumBits),
+    SUPEXP_STK_OKAY(    3,  RTNetIPv6PseudoChecksumEx),
+    SUPEXP_STK_OKAY(    4,  RTNetTCPChecksum),
+    SUPEXP_STK_OKAY(    2,  RTNetUDPChecksum),
+    SUPEXP_STK_BACKF(   2,  RTPowerNotificationDeregister),
+    SUPEXP_STK_BACKF(   2,  RTPowerNotificationRegister),
+    SUPEXP_STK_BACK(    0,  RTProcSelf),
+    SUPEXP_STK_BACK(    0,  RTR0AssertPanicSystem),
 #if defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) || defined(RT_OS_WINDOWS)
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoOpen),          /* only-darwin, only-solaris, only-windows */
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQueryMember),   /* only-darwin, only-solaris, only-windows */
+    SUPEXP_STK_BACK(    2,  RTR0DbgKrnlInfoOpen),          /* only-darwin, only-solaris, only-windows */
+    SUPEXP_STK_BACK(    5,  RTR0DbgKrnlInfoQueryMember),   /* only-darwin, only-solaris, only-windows */
 # if defined(RT_OS_SOLARIS)
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQuerySize),     /* only-solaris */
+    SUPEXP_STK_BACK(    4,  RTR0DbgKrnlInfoQuerySize),     /* only-solaris */
 # endif
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQuerySymbol),   /* only-darwin, only-solaris, only-windows */
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoRelease),       /* only-darwin, only-solaris, only-windows */
-    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoRetain),        /* only-darwin, only-solaris, only-windows */
+    SUPEXP_STK_BACK(    4,  RTR0DbgKrnlInfoQuerySymbol),   /* only-darwin, only-solaris, only-windows */
+    SUPEXP_STK_BACK(    1,  RTR0DbgKrnlInfoRelease),       /* only-darwin, only-solaris, only-windows */
+    SUPEXP_STK_BACK(    1,  RTR0DbgKrnlInfoRetain),        /* only-darwin, only-solaris, only-windows */
 #endif
-    SUPEXP_STK_BACK(22, RTR0MemAreKrnlAndUsrDifferent),
-    SUPEXP_STK_BACK(22, RTR0MemKernelIsValidAddr),
-    SUPEXP_STK_BACK(22, RTR0MemKernelCopyFrom),
-    SUPEXP_STK_BACK(22, RTR0MemKernelCopyTo),
-    SUPEXP_STK_OKAY(0,  RTR0MemObjAddress),
-    SUPEXP_STK_OKAY(0,  RTR0MemObjAddressR3),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocContTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocLargeTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocLowTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocPageTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysExTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysNCTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjEnterPhysTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjFree),
-    SUPEXP_STK_BACK(22, RTR0MemObjGetPagePhysAddr),
-    SUPEXP_STK_OKAY(0,  RTR0MemObjIsMapping),
-    SUPEXP_STK_BACK(22, RTR0MemObjLockUserTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjLockKernelTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjMapKernelExTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjMapKernelTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjMapUserTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjMapUserExTag),
-    SUPEXP_STK_BACK(22, RTR0MemObjProtect),
-    SUPEXP_STK_OKAY(0,  RTR0MemObjSize),
-    SUPEXP_STK_BACK(22, RTR0MemUserCopyFrom),
-    SUPEXP_STK_BACK(22, RTR0MemUserCopyTo),
-    SUPEXP_STK_BACK(22, RTR0MemUserIsValidAddr),
-    SUPEXP_STK_BACK(22, RTR0ProcHandleSelf),
-    SUPEXP_STK_BACK(22, RTSemEventCreate),
-    SUPEXP_STK_BACK(22, RTSemEventDestroy),
-    SUPEXP_STK_BACK(22, RTSemEventGetResolution),
-    SUPEXP_STK_BACK(22, RTSemEventIsSignalSafe),
-    SUPEXP_STK_BACK(22, RTSemEventMultiCreate),
-    SUPEXP_STK_BACK(22, RTSemEventMultiDestroy),
-    SUPEXP_STK_BACK(22, RTSemEventMultiGetResolution),
-    SUPEXP_STK_BACK(22, RTSemEventMultiIsSignalSafe),
-    SUPEXP_STK_BACK(22, RTSemEventMultiReset),
-    SUPEXP_STK_BACK(22, RTSemEventMultiSignal),
-    SUPEXP_STK_BACK(22, RTSemEventMultiWait),
-    SUPEXP_STK_BACK(22, RTSemEventMultiWaitEx),
-    SUPEXP_STK_BACK(22, RTSemEventMultiWaitExDebug),
-    SUPEXP_STK_BACK(22, RTSemEventMultiWaitNoResume),
-    SUPEXP_STK_BACK(22, RTSemEventSignal),
-    SUPEXP_STK_BACK(22, RTSemEventWait),
-    SUPEXP_STK_BACK(22, RTSemEventWaitEx),
-    SUPEXP_STK_BACK(22, RTSemEventWaitExDebug),
-    SUPEXP_STK_BACK(22, RTSemEventWaitNoResume),
-    SUPEXP_STK_BACK(22, RTSemFastMutexCreate),
-    SUPEXP_STK_BACK(22, RTSemFastMutexDestroy),
-    SUPEXP_STK_BACK(22, RTSemFastMutexRelease),
-    SUPEXP_STK_BACK(22, RTSemFastMutexRequest),
-    SUPEXP_STK_BACK(22, RTSemMutexCreate),
-    SUPEXP_STK_BACK(22, RTSemMutexDestroy),
-    SUPEXP_STK_BACK(22, RTSemMutexRelease),
-    SUPEXP_STK_BACK(22, RTSemMutexRequest),
-    SUPEXP_STK_BACK(22, RTSemMutexRequestDebug),
-    SUPEXP_STK_BACK(22, RTSemMutexRequestNoResume),
-    SUPEXP_STK_BACK(22, RTSemMutexRequestNoResumeDebug),
-    SUPEXP_STK_BACK(22, RTSpinlockAcquire),
-    SUPEXP_STK_BACK(22, RTSpinlockCreate),
-    SUPEXP_STK_BACK(22, RTSpinlockDestroy),
-    SUPEXP_STK_BACK(22, RTSpinlockRelease),
-    SUPEXP_STK_OKAY(0,  RTStrCopy),
-    SUPEXP_STK_BACK(22, RTStrDupTag),
-    SUPEXP_STK_BACK(22, RTStrFormatNumber),
-    SUPEXP_STK_BACK(22, RTStrFormatTypeDeregister),
-    SUPEXP_STK_BACK(22, RTStrFormatTypeRegister),
-    SUPEXP_STK_BACK(22, RTStrFormatTypeSetUser),
-    SUPEXP_STK_BACK(22, RTStrFormatV),
-    SUPEXP_STK_BACK(22, RTStrFree),
-    SUPEXP_STK_OKAY(0,  RTStrNCmp),
-    SUPEXP_STK_BACK(22, RTStrPrintfExV),
-    SUPEXP_STK_BACK(22, RTStrPrintfV),
-    SUPEXP_STK_BACK(22, RTStrPrintf2ExV),
-    SUPEXP_STK_BACK(22, RTStrPrintf2V),
-    SUPEXP_STK_BACK(22, RTThreadCreate),
-    SUPEXP_STK_BACK(22, RTThreadCtxHookIsEnabled),
-    SUPEXP_STK_BACK(22, RTThreadCtxHookCreate),
-    SUPEXP_STK_BACK(22, RTThreadCtxHookDestroy),
-    SUPEXP_STK_BACK(22, RTThreadCtxHookDisable),
-    SUPEXP_STK_BACK(22, RTThreadCtxHookEnable),
-    SUPEXP_STK_BACK(22, RTThreadGetName),
-    SUPEXP_STK_BACK(22, RTThreadGetNative),
-    SUPEXP_STK_BACK(22, RTThreadGetType),
-    SUPEXP_STK_BACK(22, RTThreadIsInInterrupt),
-    SUPEXP_STK_BACK(22, RTThreadNativeSelf),
-    SUPEXP_STK_BACK(22, RTThreadPreemptDisable),
-    SUPEXP_STK_BACK(22, RTThreadPreemptIsEnabled),
-    SUPEXP_STK_BACK(22, RTThreadPreemptIsPending),
-    SUPEXP_STK_BACK(22, RTThreadPreemptIsPendingTrusty),
-    SUPEXP_STK_BACK(22, RTThreadPreemptIsPossible),
-    SUPEXP_STK_BACK(22, RTThreadPreemptRestore),
-    SUPEXP_STK_BACK(22, RTThreadQueryTerminationStatus),
-    SUPEXP_STK_BACK(22, RTThreadSelf),
-    SUPEXP_STK_BACK(22, RTThreadSelfName),
-    SUPEXP_STK_BACK(22, RTThreadSleep),
-    SUPEXP_STK_BACK(22, RTThreadUserReset),
-    SUPEXP_STK_BACK(22, RTThreadUserSignal),
-    SUPEXP_STK_BACK(22, RTThreadUserWait),
-    SUPEXP_STK_BACK(22, RTThreadUserWaitNoResume),
-    SUPEXP_STK_BACK(22, RTThreadWait),
-    SUPEXP_STK_BACK(22, RTThreadWaitNoResume),
-    SUPEXP_STK_BACK(22, RTThreadYield),
-    SUPEXP_STK_BACK(22, RTTimeNow),
-    SUPEXP_STK_BACK(22, RTTimerCanDoHighResolution),
-    SUPEXP_STK_BACK(22, RTTimerChangeInterval),
-    SUPEXP_STK_BACK(22, RTTimerCreate),
-    SUPEXP_STK_BACK(22, RTTimerCreateEx),
-    SUPEXP_STK_BACK(22, RTTimerDestroy),
-    SUPEXP_STK_BACK(22, RTTimerGetSystemGranularity),
-    SUPEXP_STK_BACK(22, RTTimerReleaseSystemGranularity),
-    SUPEXP_STK_BACK(22, RTTimerRequestSystemGranularity),
-    SUPEXP_STK_BACK(22, RTTimerStart),
-    SUPEXP_STK_BACK(22, RTTimerStop),
-    SUPEXP_STK_BACK(22, RTTimeSystemMilliTS),
-    SUPEXP_STK_BACK(22, RTTimeSystemNanoTS),
-    SUPEXP_STK_OKAY(0,  RTUuidCompare),
-    SUPEXP_STK_OKAY(0,  RTUuidCompareStr),
-    SUPEXP_STK_OKAY(0,  RTUuidFromStr),
+    SUPEXP_STK_BACK(    0,  RTR0MemAreKrnlAndUsrDifferent),
+    SUPEXP_STK_BACK(    1,  RTR0MemKernelIsValidAddr),
+    SUPEXP_STK_BACK(    3,  RTR0MemKernelCopyFrom),
+    SUPEXP_STK_BACK(    3,  RTR0MemKernelCopyTo),
+    SUPEXP_STK_OKAY(    1,  RTR0MemObjAddress),
+    SUPEXP_STK_OKAY(    1,  RTR0MemObjAddressR3),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjAllocContTag),
+    SUPEXP_STK_BACK(    5,  RTR0MemObjAllocLargeTag),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjAllocLowTag),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjAllocPageTag),
+    SUPEXP_STK_BACK(    5,  RTR0MemObjAllocPhysExTag),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjAllocPhysNCTag),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjAllocPhysTag),
+    SUPEXP_STK_BACK(    5,  RTR0MemObjEnterPhysTag),
+    SUPEXP_STK_BACK(    2,  RTR0MemObjFree),
+    SUPEXP_STK_BACK(    2,  RTR0MemObjGetPagePhysAddr),
+    SUPEXP_STK_OKAY(    1,  RTR0MemObjIsMapping),
+    SUPEXP_STK_BACK(    6,  RTR0MemObjLockUserTag),
+    SUPEXP_STK_BACK(    5,  RTR0MemObjLockKernelTag),
+    SUPEXP_STK_BACK(    8,  RTR0MemObjMapKernelExTag),
+    SUPEXP_STK_BACK(    6,  RTR0MemObjMapKernelTag),
+    SUPEXP_STK_BACK(    9,  RTR0MemObjMapUserExTag),
+    SUPEXP_STK_BACK(    7,  RTR0MemObjMapUserTag),
+    SUPEXP_STK_BACK(    4,  RTR0MemObjProtect),
+    SUPEXP_STK_OKAY(    1,  RTR0MemObjSize),
+    SUPEXP_STK_BACK(    3,  RTR0MemUserCopyFrom),
+    SUPEXP_STK_BACK(    3,  RTR0MemUserCopyTo),
+    SUPEXP_STK_BACK(    1,  RTR0MemUserIsValidAddr),
+    SUPEXP_STK_BACK(    0,  RTR0ProcHandleSelf),
+    SUPEXP_STK_BACK(    1,  RTSemEventCreate),
+    SUPEXP_STK_BACK(    1,  RTSemEventDestroy),
+    SUPEXP_STK_BACK(    0,  RTSemEventGetResolution),
+    SUPEXP_STK_BACK(    0,  RTSemEventIsSignalSafe),
+    SUPEXP_STK_BACK(    1,  RTSemEventMultiCreate),
+    SUPEXP_STK_BACK(    1,  RTSemEventMultiDestroy),
+    SUPEXP_STK_BACK(    0,  RTSemEventMultiGetResolution),
+    SUPEXP_STK_BACK(    0,  RTSemEventMultiIsSignalSafe),
+    SUPEXP_STK_BACK(    1,  RTSemEventMultiReset),
+    SUPEXP_STK_BACK(    1,  RTSemEventMultiSignal),
+    SUPEXP_STK_BACK(    2,  RTSemEventMultiWait),
+    SUPEXP_STK_BACK(    3,  RTSemEventMultiWaitEx),
+    SUPEXP_STK_BACK(    7,  RTSemEventMultiWaitExDebug),
+    SUPEXP_STK_BACK(    2,  RTSemEventMultiWaitNoResume),
+    SUPEXP_STK_BACK(    1,  RTSemEventSignal),
+    SUPEXP_STK_BACK(    2,  RTSemEventWait),
+    SUPEXP_STK_BACK(    3,  RTSemEventWaitEx),
+    SUPEXP_STK_BACK(    7,  RTSemEventWaitExDebug),
+    SUPEXP_STK_BACK(    2,  RTSemEventWaitNoResume),
+    SUPEXP_STK_BACK(    1,  RTSemFastMutexCreate),
+    SUPEXP_STK_BACK(    1,  RTSemFastMutexDestroy),
+    SUPEXP_STK_BACK(    1,  RTSemFastMutexRelease),
+    SUPEXP_STK_BACK(    1,  RTSemFastMutexRequest),
+    SUPEXP_STK_BACK(    1,  RTSemMutexCreate),
+    SUPEXP_STK_BACK(    1,  RTSemMutexDestroy),
+    SUPEXP_STK_BACK(    1,  RTSemMutexRelease),
+    SUPEXP_STK_BACK(    2,  RTSemMutexRequest),
+    SUPEXP_STK_BACK(    6,  RTSemMutexRequestDebug),
+    SUPEXP_STK_BACK(    2,  RTSemMutexRequestNoResume),
+    SUPEXP_STK_BACK(    6,  RTSemMutexRequestNoResumeDebug),
+    SUPEXP_STK_BACK(    1,  RTSpinlockAcquire),
+    SUPEXP_STK_BACK(    3,  RTSpinlockCreate),
+    SUPEXP_STK_BACK(    1,  RTSpinlockDestroy),
+    SUPEXP_STK_BACK(    1,  RTSpinlockRelease),
+    SUPEXP_STK_OKAY(    3,  RTStrCopy),
+    SUPEXP_STK_BACK(    2,  RTStrDupTag),
+    SUPEXP_STK_BACK(    6,  RTStrFormatNumber),
+    SUPEXP_STK_BACK(    1,  RTStrFormatTypeDeregister),
+    SUPEXP_STK_BACKF(   3,  RTStrFormatTypeRegister),
+    SUPEXP_STK_BACKF(   2,  RTStrFormatTypeSetUser),
+    SUPEXP_STK_BACKF(   6,  RTStrFormatV),
+    SUPEXP_STK_BACK(    1,  RTStrFree),
+    SUPEXP_STK_OKAY(    3,  RTStrNCmp),
+    SUPEXP_STK_BACKF(   6,  RTStrPrintfExV),
+    SUPEXP_STK_BACK(    4,  RTStrPrintfV),
+    SUPEXP_STK_BACKF(   6,  RTStrPrintf2ExV),
+    SUPEXP_STK_BACK(    4,  RTStrPrintf2V),
+    SUPEXP_STK_BACKF(   7,  RTThreadCreate),
+    SUPEXP_STK_BACK(    1,  RTThreadCtxHookIsEnabled),
+    SUPEXP_STK_BACKF(   4,  RTThreadCtxHookCreate),
+    SUPEXP_STK_BACK(    1,  RTThreadCtxHookDestroy),
+    SUPEXP_STK_BACK(    1,  RTThreadCtxHookDisable),
+    SUPEXP_STK_BACK(    1,  RTThreadCtxHookEnable),
+    SUPEXP_STK_BACK(    1,  RTThreadGetName),
+    SUPEXP_STK_BACK(    1,  RTThreadGetNative),
+    SUPEXP_STK_BACK(    1,  RTThreadGetType),
+    SUPEXP_STK_BACK(    1,  RTThreadIsInInterrupt),
+    SUPEXP_STK_BACK(    0,  RTThreadNativeSelf),
+    SUPEXP_STK_BACK(    1,  RTThreadPreemptDisable),
+    SUPEXP_STK_BACK(    1,  RTThreadPreemptIsEnabled),
+    SUPEXP_STK_BACK(    1,  RTThreadPreemptIsPending),
+    SUPEXP_STK_BACK(    0,  RTThreadPreemptIsPendingTrusty),
+    SUPEXP_STK_BACK(    0,  RTThreadPreemptIsPossible),
+    SUPEXP_STK_BACK(    1,  RTThreadPreemptRestore),
+    SUPEXP_STK_BACK(    1,  RTThreadQueryTerminationStatus),
+    SUPEXP_STK_BACK(    0,  RTThreadSelf),
+    SUPEXP_STK_BACK(    0,  RTThreadSelfName),
+    SUPEXP_STK_BACK(    1,  RTThreadSleep),
+    SUPEXP_STK_BACK(    1,  RTThreadUserReset),
+    SUPEXP_STK_BACK(    1,  RTThreadUserSignal),
+    SUPEXP_STK_BACK(    2,  RTThreadUserWait),
+    SUPEXP_STK_BACK(    2,  RTThreadUserWaitNoResume),
+    SUPEXP_STK_BACK(    3,  RTThreadWait),
+    SUPEXP_STK_BACK(    3,  RTThreadWaitNoResume),
+    SUPEXP_STK_BACK(    0,  RTThreadYield),
+    SUPEXP_STK_BACK(    1,  RTTimeNow),
+    SUPEXP_STK_BACK(    0,  RTTimerCanDoHighResolution),
+    SUPEXP_STK_BACK(    2,  RTTimerChangeInterval),
+    SUPEXP_STK_BACKF(   4,  RTTimerCreate),
+    SUPEXP_STK_BACKF(   5,  RTTimerCreateEx),
+    SUPEXP_STK_BACK(    1,  RTTimerDestroy),
+    SUPEXP_STK_BACK(    0,  RTTimerGetSystemGranularity),
+    SUPEXP_STK_BACK(    1,  RTTimerReleaseSystemGranularity),
+    SUPEXP_STK_BACK(    2,  RTTimerRequestSystemGranularity),
+    SUPEXP_STK_BACK(    2,  RTTimerStart),
+    SUPEXP_STK_BACK(    1,  RTTimerStop),
+    SUPEXP_STK_BACK(    0,  RTTimeSystemMilliTS),
+    SUPEXP_STK_BACK(    0,  RTTimeSystemNanoTS),
+    SUPEXP_STK_OKAY(    2,  RTUuidCompare),
+    SUPEXP_STK_OKAY(    2,  RTUuidCompareStr),
+    SUPEXP_STK_OKAY(    2,  RTUuidFromStr),
 /* SED: END */
 };
Index: trunk/src/VBox/HostDrivers/Support/SUPR0-asm-files.sed
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPR0-asm-files.sed	(revision 91800)
+++ trunk/src/VBox/HostDrivers/Support/SUPR0-asm-files.sed	(revision 91801)
@@ -36,6 +36,6 @@
 
 # We are only interested in the SUPEXP_STK_BACK lines.
-/^ *SUPEXP_STK_BACK(/!d
-s/^ *SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)),.*$*/    \$(SUPR0_0_OUTDIR)\/StkBack_\1.asm \\/
+/^ *SUPEXP_STK_BACKF*(/!d
+s/^ *SUPEXP_STK_BACKF*( *[0-9][0-9]* *, *\([^)][^)]*\)),.*$*/    \$(SUPR0_0_OUTDIR)\/StkBack_\1.asm \\/
 b end
 
Index: trunk/src/VBox/HostDrivers/Support/SUPR0-asm.sed
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPR0-asm.sed	(revision 91800)
+++ trunk/src/VBox/HostDrivers/Support/SUPR0-asm.sed	(revision 91801)
@@ -36,6 +36,6 @@
 
 # We are only interested in the SUPEXP_STK_BACK lines.
-/^ *SUPEXP_STK_BACK(/!d
-s/^ *SUPEXP_STK_BACK( *\([0-9][0-9]*\) *, *\([^)][^)]*\)),.*$/\/\/ ##### BEGINFILE \"StkBack_\2.asm\"\n%include "VBox\/SUPR0StackWrapper.mac"\nSUPR0StackWrapperGeneric \2\n\/\/ ##### ENDFILE/
+/^ *SUPEXP_STK_BACKF*(/!d
+s/^ *SUPEXP_STK_BACKF*( *\([0-9][0-9]*\) *, *\([^)][^)]*\)),.*$/\/\/ ##### BEGINFILE \"StkBack_\2.asm\"\n%include "VBox\/SUPR0StackWrapper.mac"\nSUPR0StackWrapperGeneric \2\n\/\/ ##### ENDFILE/
 b end
 
Index: trunk/src/VBox/HostDrivers/Support/SUPR0-def-lx.sed
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPR0-def-lx.sed	(revision 91800)
+++ trunk/src/VBox/HostDrivers/Support/SUPR0-def-lx.sed	(revision 91801)
@@ -48,5 +48,5 @@
 s/SUPEXP_CUSTOM( *[0-9][0-9]* *, *\([^),][^),]*\), [^)]*), */_\1 /
 s/SUPEXP_STK_OKAY( *[0-9][0-9]* *, *\([^)][^)]*\)), */_\1 /
-s/SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)), */_\1 /
+s/SUPEXP_STK_BACKF*( *[0-9][0-9]* *, *\([^)][^)]*\)), */_\1 /
 
 # Handle trailing selection comment (/* solaris-only, os2-only */).
Index: trunk/src/VBox/HostDrivers/Support/SUPR0-def-pe.sed
===================================================================
--- trunk/src/VBox/HostDrivers/Support/SUPR0-def-pe.sed	(revision 91800)
+++ trunk/src/VBox/HostDrivers/Support/SUPR0-def-pe.sed	(revision 91801)
@@ -48,5 +48,5 @@
 s/SUPEXP_CUSTOM( *[0-9][0-9]* *, *\([^),][^),]*\), [^)]*), */\1 /
 s/SUPEXP_STK_OKAY( *[0-9][0-9]* *, *\([^)][^)]*\)), */\1 /
-s/SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)), */\1 /
+s/SUPEXP_STK_BACKF*( *[0-9][0-9]* *, *\([^)][^)]*\)), */\1 /
 
 # Handle trailing selection comment (/* solaris-only, windows-only */).
