VirtualBox

Changeset 91800 in vbox


Ignore:
Timestamp:
Oct 18, 2021 12:49:23 AM (3 years ago)
Author:
vboxsync
Message:

SUPDrv: Reworked the export table a little. SUPFUNC got a cArgs field taken from the name. bugref:10124

Location:
trunk/src/VBox/HostDrivers/Support
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/HostDrivers/Support/Makefile.kmk

    r91794 r91800  
    4949endif
    5050if   !defined(VBOX_ONLY_DOCS)
    51  if1of ($(VBOX_LDR_FMT), pe lx macho)
    52   LIBRARIES += SUPR0
    53  endif
     51 LIBRARIES += SUPR0
    5452endif
    5553if !defined(VBOX_ONLY_BUILD) && defined(VBOX_WITH_RAW_MODE)
  • trunk/src/VBox/HostDrivers/Support/SUPDrv.cpp

    r91789 r91800  
    166166#define STKOKAY(a) a
    167167
     168/** @name Function table entry macros.
     169 *  @{ */
     170#define SUPEXP_CUSTOM(a_cArgs, a_Name, a_Value) { #a_Name,              a_cArgs,    (void *)(uintptr_t)(a_Value) }
     171#define SUPEXP_STK_OKAY(a_cArgs, a_Name)        { #a_Name,              0,          (void *)(uintptr_t)a_Name }
     172#ifdef RT_OS_DARWIN
     173# define SUPEXP_STK_BACK(a_cArgs, a_Name)       { "StkBack_" #a_Name,   0,          (void *)(uintptr_t)a_Name }
     174#else
     175# define SUPEXP_STK_BACK(a_cArgs, a_Name)       { #a_Name,              0,          (void *)(uintptr_t)a_Name }
     176#endif
     177/** @} */
     178
    168179/**
    169180 * Array of the R0 SUP API.
     
    182193        /* Entries with absolute addresses determined at runtime, fixup
    183194           code makes ugly ASSUMPTIONS about the order here: */
    184     { STKOKAY("SUPR0AbsIs64bit"),                        (void *)0 },
    185     { STKOKAY("SUPR0Abs64bitKernelCS"),                  (void *)0 },
    186     { STKOKAY("SUPR0Abs64bitKernelSS"),                  (void *)0 },
    187     { STKOKAY("SUPR0Abs64bitKernelDS"),                  (void *)0 },
    188     { STKOKAY("SUPR0AbsKernelCS"),                       (void *)0 },
    189     { STKOKAY("SUPR0AbsKernelSS"),                       (void *)0 },
    190     { STKOKAY("SUPR0AbsKernelDS"),                       (void *)0 },
    191     { STKOKAY("SUPR0AbsKernelES"),                       (void *)0 },
    192     { STKOKAY("SUPR0AbsKernelFS"),                       (void *)0 },
    193     { STKOKAY("SUPR0AbsKernelGS"),                       (void *)0 },
    194         /* Normal function pointers: */
    195     { STKOKAY("g_pSUPGlobalInfoPage"),                   (void *)&g_pSUPGlobalInfoPage },            /* SED: DATA */
    196     { STKOKAY("SUPGetGIP"),                              (void *)(uintptr_t)SUPGetGIP },
    197     { STKBACK("SUPReadTscWithDelta"),                    (void *)(uintptr_t)SUPReadTscWithDelta },
    198     { STKBACK("SUPGetTscDeltaSlow"),                     (void *)(uintptr_t)SUPGetTscDeltaSlow },
    199     { STKBACK("SUPGetCpuHzFromGipForAsyncMode"),         (void *)(uintptr_t)SUPGetCpuHzFromGipForAsyncMode },
    200     { STKOKAY("SUPIsTscFreqCompatible"),                 (void *)(uintptr_t)SUPIsTscFreqCompatible },
    201     { STKOKAY("SUPIsTscFreqCompatibleEx"),               (void *)(uintptr_t)SUPIsTscFreqCompatibleEx },
    202     { STKBACK("SUPR0BadContext"),                        (void *)(uintptr_t)SUPR0BadContext },
    203     { STKBACK("SUPR0ComponentDeregisterFactory"),        (void *)(uintptr_t)SUPR0ComponentDeregisterFactory },
    204     { STKBACK("SUPR0ComponentQueryFactory"),             (void *)(uintptr_t)SUPR0ComponentQueryFactory },
    205     { STKBACK("SUPR0ComponentRegisterFactory"),          (void *)(uintptr_t)SUPR0ComponentRegisterFactory },
    206     { STKBACK("SUPR0ContAlloc"),                         (void *)(uintptr_t)SUPR0ContAlloc },
    207     { STKBACK("SUPR0ContFree"),                          (void *)(uintptr_t)SUPR0ContFree },
    208     { STKBACK("SUPR0ChangeCR4"),                         (void *)(uintptr_t)SUPR0ChangeCR4 },
    209     { STKBACK("SUPR0EnableVTx"),                         (void *)(uintptr_t)SUPR0EnableVTx },
    210     { STKBACK("SUPR0SuspendVTxOnCpu"),                   (void *)(uintptr_t)SUPR0SuspendVTxOnCpu },
    211     { STKBACK("SUPR0ResumeVTxOnCpu"),                    (void *)(uintptr_t)SUPR0ResumeVTxOnCpu },
    212     { STKOKAY("SUPR0GetCurrentGdtRw"),                   (void *)(uintptr_t)SUPR0GetCurrentGdtRw },
    213     { STKOKAY("SUPR0GetKernelFeatures"),                 (void *)(uintptr_t)SUPR0GetKernelFeatures },
    214     { STKBACK("SUPR0GetHwvirtMsrs"),                     (void *)(uintptr_t)SUPR0GetHwvirtMsrs },
    215     { STKBACK("SUPR0GetPagingMode"),                     (void *)(uintptr_t)SUPR0GetPagingMode },
    216     { STKBACK("SUPR0GetSvmUsability"),                   (void *)(uintptr_t)SUPR0GetSvmUsability },
    217     { STKBACK("SUPR0GetVTSupport"),                      (void *)(uintptr_t)SUPR0GetVTSupport },
    218     { STKBACK("SUPR0GetVmxUsability"),                   (void *)(uintptr_t)SUPR0GetVmxUsability },
    219     { STKBACK("SUPR0LdrIsLockOwnerByMod"),               (void *)(uintptr_t)SUPR0LdrIsLockOwnerByMod },
    220     { STKBACK("SUPR0LdrLock"),                           (void *)(uintptr_t)SUPR0LdrLock },
    221     { STKBACK("SUPR0LdrUnlock"),                         (void *)(uintptr_t)SUPR0LdrUnlock },
    222     { STKBACK("SUPR0LdrModByName"),                      (void *)(uintptr_t)SUPR0LdrModByName },
    223     { STKBACK("SUPR0LdrModRelease"),                     (void *)(uintptr_t)SUPR0LdrModRelease },
    224     { STKBACK("SUPR0LdrModRetain"),                      (void *)(uintptr_t)SUPR0LdrModRetain },
    225     { STKBACK("SUPR0LockMem"),                           (void *)(uintptr_t)SUPR0LockMem },
    226     { STKBACK("SUPR0LowAlloc"),                          (void *)(uintptr_t)SUPR0LowAlloc },
    227     { STKBACK("SUPR0LowFree"),                           (void *)(uintptr_t)SUPR0LowFree },
    228     { STKBACK("SUPR0MemAlloc"),                          (void *)(uintptr_t)SUPR0MemAlloc },
    229     { STKBACK("SUPR0MemFree"),                           (void *)(uintptr_t)SUPR0MemFree },
    230     { STKBACK("SUPR0MemGetPhys"),                        (void *)(uintptr_t)SUPR0MemGetPhys },
    231     { STKBACK("SUPR0ObjAddRef"),                         (void *)(uintptr_t)SUPR0ObjAddRef },
    232     { STKBACK("SUPR0ObjAddRefEx"),                       (void *)(uintptr_t)SUPR0ObjAddRefEx },
    233     { STKBACK("SUPR0ObjRegister"),                       (void *)(uintptr_t)SUPR0ObjRegister },
    234     { STKBACK("SUPR0ObjRelease"),                        (void *)(uintptr_t)SUPR0ObjRelease },
    235     { STKBACK("SUPR0ObjVerifyAccess"),                   (void *)(uintptr_t)SUPR0ObjVerifyAccess },
    236     { STKBACK("SUPR0PageAllocEx"),                       (void *)(uintptr_t)SUPR0PageAllocEx },
    237     { STKBACK("SUPR0PageFree"),                          (void *)(uintptr_t)SUPR0PageFree },
    238     { STKBACK("SUPR0PageMapKernel"),                     (void *)(uintptr_t)SUPR0PageMapKernel },
    239     { STKBACK("SUPR0PageProtect"),                       (void *)(uintptr_t)SUPR0PageProtect },
     195    SUPEXP_CUSTOM(  0,  SUPR0AbsIs64bit,          0),
     196    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelCS,    0),
     197    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelSS,    0),
     198    SUPEXP_CUSTOM(  0,  SUPR0Abs64bitKernelDS,    0),
     199    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelCS,         0),
     200    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelSS,         0),
     201    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelDS,         0),
     202    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelES,         0),
     203    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelFS,         0),
     204    SUPEXP_CUSTOM(  0,  SUPR0AbsKernelGS,         0),
     205        /* Normal function & data pointers: */
     206    SUPEXP_CUSTOM(  0,  g_pSUPGlobalInfoPage,     &g_pSUPGlobalInfoPage),            /* SED: DATA */
     207    SUPEXP_STK_OKAY(0,  SUPGetGIP),
     208    SUPEXP_STK_BACK(22, SUPReadTscWithDelta),
     209    SUPEXP_STK_BACK(22, SUPGetTscDeltaSlow),
     210    SUPEXP_STK_BACK(22, SUPGetCpuHzFromGipForAsyncMode),
     211    SUPEXP_STK_OKAY(0,  SUPIsTscFreqCompatible),
     212    SUPEXP_STK_OKAY(0,  SUPIsTscFreqCompatibleEx),
     213    SUPEXP_STK_BACK(22, SUPR0BadContext),
     214    SUPEXP_STK_BACK(22, SUPR0ComponentDeregisterFactory),
     215    SUPEXP_STK_BACK(22, SUPR0ComponentQueryFactory),
     216    SUPEXP_STK_BACK(22, SUPR0ComponentRegisterFactory),
     217    SUPEXP_STK_BACK(22, SUPR0ContAlloc),
     218    SUPEXP_STK_BACK(22, SUPR0ContFree),
     219    SUPEXP_STK_BACK(22, SUPR0ChangeCR4),
     220    SUPEXP_STK_BACK(22, SUPR0EnableVTx),
     221    SUPEXP_STK_BACK(22, SUPR0SuspendVTxOnCpu),
     222    SUPEXP_STK_BACK(22, SUPR0ResumeVTxOnCpu),
     223    SUPEXP_STK_OKAY(0,  SUPR0GetCurrentGdtRw),
     224    SUPEXP_STK_OKAY(0,  SUPR0GetKernelFeatures),
     225    SUPEXP_STK_BACK(22, SUPR0GetHwvirtMsrs),
     226    SUPEXP_STK_BACK(22, SUPR0GetPagingMode),
     227    SUPEXP_STK_BACK(22, SUPR0GetSvmUsability),
     228    SUPEXP_STK_BACK(22, SUPR0GetVTSupport),
     229    SUPEXP_STK_BACK(22, SUPR0GetVmxUsability),
     230    SUPEXP_STK_BACK(22, SUPR0LdrIsLockOwnerByMod),
     231    SUPEXP_STK_BACK(22, SUPR0LdrLock),
     232    SUPEXP_STK_BACK(22, SUPR0LdrUnlock),
     233    SUPEXP_STK_BACK(22, SUPR0LdrModByName),
     234    SUPEXP_STK_BACK(22, SUPR0LdrModRelease),
     235    SUPEXP_STK_BACK(22, SUPR0LdrModRetain),
     236    SUPEXP_STK_BACK(22, SUPR0LockMem),
     237    SUPEXP_STK_BACK(22, SUPR0LowAlloc),
     238    SUPEXP_STK_BACK(22, SUPR0LowFree),
     239    SUPEXP_STK_BACK(22, SUPR0MemAlloc),
     240    SUPEXP_STK_BACK(22, SUPR0MemFree),
     241    SUPEXP_STK_BACK(22, SUPR0MemGetPhys),
     242    SUPEXP_STK_BACK(22, SUPR0ObjAddRef),
     243    SUPEXP_STK_BACK(22, SUPR0ObjAddRefEx),
     244    SUPEXP_STK_BACK(22, SUPR0ObjRegister),
     245    SUPEXP_STK_BACK(22, SUPR0ObjRelease),
     246    SUPEXP_STK_BACK(22, SUPR0ObjVerifyAccess),
     247    SUPEXP_STK_BACK(22, SUPR0PageAllocEx),
     248    SUPEXP_STK_BACK(22, SUPR0PageFree),
     249    SUPEXP_STK_BACK(22, SUPR0PageMapKernel),
     250    SUPEXP_STK_BACK(22, SUPR0PageProtect),
    240251#if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS) || defined(RT_OS_FREEBSD)
    241     { STKOKAY("SUPR0HCPhysToVirt"),                      (void *)(uintptr_t)SUPR0HCPhysToVirt },         /* only-linux, only-solaris, only-freebsd */
     252    SUPEXP_STK_OKAY(0,  SUPR0HCPhysToVirt),         /* only-linux, only-solaris, only-freebsd */
    242253#endif
    243     { STKBACK("SUPR0PrintfV"),                           (void *)(uintptr_t)SUPR0PrintfV },
    244     { STKBACK("SUPR0GetSessionGVM"),                     (void *)(uintptr_t)SUPR0GetSessionGVM },
    245     { STKBACK("SUPR0GetSessionVM"),                      (void *)(uintptr_t)SUPR0GetSessionVM },
    246     { STKBACK("SUPR0SetSessionVM"),                      (void *)(uintptr_t)SUPR0SetSessionVM },
    247     { STKBACK("SUPR0TscDeltaMeasureBySetIndex"),         (void *)(uintptr_t)SUPR0TscDeltaMeasureBySetIndex },
    248     { STKBACK("SUPR0TracerDeregisterDrv"),               (void *)(uintptr_t)SUPR0TracerDeregisterDrv },
    249     { STKBACK("SUPR0TracerDeregisterImpl"),              (void *)(uintptr_t)SUPR0TracerDeregisterImpl },
    250     { STKBACK("SUPR0TracerFireProbe"),                   (void *)(uintptr_t)SUPR0TracerFireProbe },
    251     { STKBACK("SUPR0TracerRegisterDrv"),                 (void *)(uintptr_t)SUPR0TracerRegisterDrv },
    252     { STKBACK("SUPR0TracerRegisterImpl"),                (void *)(uintptr_t)SUPR0TracerRegisterImpl },
    253     { STKBACK("SUPR0TracerRegisterModule"),              (void *)(uintptr_t)SUPR0TracerRegisterModule },
    254     { STKBACK("SUPR0TracerUmodProbeFire"),               (void *)(uintptr_t)SUPR0TracerUmodProbeFire },
    255     { STKBACK("SUPR0UnlockMem"),                         (void *)(uintptr_t)SUPR0UnlockMem },
     254    SUPEXP_STK_BACK(22, SUPR0PrintfV),
     255    SUPEXP_STK_BACK(22, SUPR0GetSessionGVM),
     256    SUPEXP_STK_BACK(22, SUPR0GetSessionVM),
     257    SUPEXP_STK_BACK(22, SUPR0SetSessionVM),
     258    SUPEXP_STK_BACK(22, SUPR0TscDeltaMeasureBySetIndex),
     259    SUPEXP_STK_BACK(22, SUPR0TracerDeregisterDrv),
     260    SUPEXP_STK_BACK(22, SUPR0TracerDeregisterImpl),
     261    SUPEXP_STK_BACK(22, SUPR0TracerFireProbe),
     262    SUPEXP_STK_BACK(22, SUPR0TracerRegisterDrv),
     263    SUPEXP_STK_BACK(22, SUPR0TracerRegisterImpl),
     264    SUPEXP_STK_BACK(22, SUPR0TracerRegisterModule),
     265    SUPEXP_STK_BACK(22, SUPR0TracerUmodProbeFire),
     266    SUPEXP_STK_BACK(22, SUPR0UnlockMem),
    256267#ifdef RT_OS_WINDOWS
    257     { STKBACK("SUPR0IoCtlSetupForHandle"),               (void *)(uintptr_t)SUPR0IoCtlSetupForHandle },  /* only-windows */
    258     { STKBACK("SUPR0IoCtlPerform"),                      (void *)(uintptr_t)SUPR0IoCtlPerform },         /* only-windows */
    259     { STKBACK("SUPR0IoCtlCleanup"),                      (void *)(uintptr_t)SUPR0IoCtlCleanup },         /* only-windows */
     268    SUPEXP_STK_BACK(22, SUPR0IoCtlSetupForHandle),  /* only-windows */
     269    SUPEXP_STK_BACK(22, SUPR0IoCtlPerform),         /* only-windows */
     270    SUPEXP_STK_BACK(22, SUPR0IoCtlCleanup),         /* only-windows */
    260271#endif
    261     { STKBACK("SUPSemEventClose"),                       (void *)(uintptr_t)SUPSemEventClose },
    262     { STKBACK("SUPSemEventCreate"),                      (void *)(uintptr_t)SUPSemEventCreate },
    263     { STKBACK("SUPSemEventGetResolution"),               (void *)(uintptr_t)SUPSemEventGetResolution },
    264     { STKBACK("SUPSemEventMultiClose"),                  (void *)(uintptr_t)SUPSemEventMultiClose },
    265     { STKBACK("SUPSemEventMultiCreate"),                 (void *)(uintptr_t)SUPSemEventMultiCreate },
    266     { STKBACK("SUPSemEventMultiGetResolution"),          (void *)(uintptr_t)SUPSemEventMultiGetResolution },
    267     { STKBACK("SUPSemEventMultiReset"),                  (void *)(uintptr_t)SUPSemEventMultiReset },
    268     { STKBACK("SUPSemEventMultiSignal"),                 (void *)(uintptr_t)SUPSemEventMultiSignal },
    269     { STKBACK("SUPSemEventMultiWait"),                   (void *)(uintptr_t)SUPSemEventMultiWait },
    270     { STKBACK("SUPSemEventMultiWaitNoResume"),           (void *)(uintptr_t)SUPSemEventMultiWaitNoResume },
    271     { STKBACK("SUPSemEventMultiWaitNsAbsIntr"),          (void *)(uintptr_t)SUPSemEventMultiWaitNsAbsIntr },
    272     { STKBACK("SUPSemEventMultiWaitNsRelIntr"),          (void *)(uintptr_t)SUPSemEventMultiWaitNsRelIntr },
    273     { STKBACK("SUPSemEventSignal"),                      (void *)(uintptr_t)SUPSemEventSignal },
    274     { STKBACK("SUPSemEventWait"),                        (void *)(uintptr_t)SUPSemEventWait },
    275     { STKBACK("SUPSemEventWaitNoResume"),                (void *)(uintptr_t)SUPSemEventWaitNoResume },
    276     { STKBACK("SUPSemEventWaitNsAbsIntr"),               (void *)(uintptr_t)SUPSemEventWaitNsAbsIntr },
    277     { STKBACK("SUPSemEventWaitNsRelIntr"),               (void *)(uintptr_t)SUPSemEventWaitNsRelIntr },
    278 
    279     { STKBACK("RTAssertAreQuiet"),                       (void *)(uintptr_t)RTAssertAreQuiet },
    280     { STKBACK("RTAssertMayPanic"),                       (void *)(uintptr_t)RTAssertMayPanic },
    281     { STKBACK("RTAssertMsg1"),                           (void *)(uintptr_t)RTAssertMsg1 },
    282     { STKBACK("RTAssertMsg2AddV"),                       (void *)(uintptr_t)RTAssertMsg2AddV },
    283     { STKBACK("RTAssertMsg2V"),                          (void *)(uintptr_t)RTAssertMsg2V },
    284     { STKBACK("RTAssertSetMayPanic"),                    (void *)(uintptr_t)RTAssertSetMayPanic },
    285     { STKBACK("RTAssertSetQuiet"),                       (void *)(uintptr_t)RTAssertSetQuiet },
    286     { STKOKAY("RTCrc32"),                                (void *)(uintptr_t)RTCrc32 },
    287     { STKOKAY("RTCrc32Finish"),                          (void *)(uintptr_t)RTCrc32Finish },
    288     { STKOKAY("RTCrc32Process"),                         (void *)(uintptr_t)RTCrc32Process },
    289     { STKOKAY("RTCrc32Start"),                           (void *)(uintptr_t)RTCrc32Start },
    290     { STKOKAY("RTErrConvertFromErrno"),                  (void *)(uintptr_t)RTErrConvertFromErrno },
    291     { STKOKAY("RTErrConvertToErrno"),                    (void *)(uintptr_t)RTErrConvertToErrno },
    292     { STKBACK("RTHandleTableAllocWithCtx"),              (void *)(uintptr_t)RTHandleTableAllocWithCtx },
    293     { STKBACK("RTHandleTableCreate"),                    (void *)(uintptr_t)RTHandleTableCreate },
    294     { STKBACK("RTHandleTableCreateEx"),                  (void *)(uintptr_t)RTHandleTableCreateEx },
    295     { STKBACK("RTHandleTableDestroy"),                   (void *)(uintptr_t)RTHandleTableDestroy },
    296     { STKBACK("RTHandleTableFreeWithCtx"),               (void *)(uintptr_t)RTHandleTableFreeWithCtx },
    297     { STKBACK("RTHandleTableLookupWithCtx"),             (void *)(uintptr_t)RTHandleTableLookupWithCtx },
    298     { STKBACK("RTLogBulkUpdate"),                        (void *)(uintptr_t)RTLogBulkUpdate},
    299     { STKBACK("RTLogCheckGroupFlags"),                   (void *)(uintptr_t)RTLogCheckGroupFlags },
    300     { STKBACK("RTLogCreateExV"),                         (void *)(uintptr_t)RTLogCreateExV },
    301     { STKBACK("RTLogDestroy"),                           (void *)(uintptr_t)RTLogDestroy },
    302     { STKBACK("RTLogDefaultInstance"),                   (void *)(uintptr_t)RTLogDefaultInstance },
    303     { STKBACK("RTLogDefaultInstanceEx"),                 (void *)(uintptr_t)RTLogDefaultInstanceEx },
    304     { STKBACK("SUPR0DefaultLogInstanceEx"),              (void *)(uintptr_t)SUPR0DefaultLogInstanceEx },
    305     { STKBACK("RTLogGetDefaultInstance"),                (void *)(uintptr_t)RTLogGetDefaultInstance },
    306     { STKBACK("RTLogGetDefaultInstanceEx"),              (void *)(uintptr_t)RTLogGetDefaultInstanceEx },
    307     { STKBACK("SUPR0GetDefaultLogInstanceEx"),           (void *)(uintptr_t)SUPR0GetDefaultLogInstanceEx },
    308     { STKBACK("RTLogLoggerExV"),                         (void *)(uintptr_t)RTLogLoggerExV },
    309     { STKBACK("RTLogPrintfV"),                           (void *)(uintptr_t)RTLogPrintfV },
    310     { STKBACK("RTLogRelGetDefaultInstance"),             (void *)(uintptr_t)RTLogRelGetDefaultInstance },
    311     { STKBACK("RTLogRelGetDefaultInstanceEx"),           (void *)(uintptr_t)RTLogRelGetDefaultInstanceEx },
    312     { STKBACK("SUPR0GetDefaultLogRelInstanceEx"),        (void *)(uintptr_t)SUPR0GetDefaultLogRelInstanceEx },
    313     { STKBACK("RTLogSetDefaultInstanceThread"),          (void *)(uintptr_t)RTLogSetDefaultInstanceThread },
    314     { STKBACK("RTLogSetFlushCallback"),                  (void *)(uintptr_t)RTLogSetFlushCallback },
    315     { STKBACK("RTLogSetR0ProgramStart"),                 (void *)(uintptr_t)RTLogSetR0ProgramStart },
    316     { STKBACK("RTLogSetR0ThreadNameV"),                  (void *)(uintptr_t)RTLogSetR0ThreadNameV },
    317     { STKBACK("RTMemAllocExTag"),                        (void *)(uintptr_t)RTMemAllocExTag },
    318     { STKBACK("RTMemAllocTag"),                          (void *)(uintptr_t)RTMemAllocTag },
    319     { STKBACK("RTMemAllocVarTag"),                       (void *)(uintptr_t)RTMemAllocVarTag },
    320     { STKBACK("RTMemAllocZTag"),                         (void *)(uintptr_t)RTMemAllocZTag },
    321     { STKBACK("RTMemAllocZVarTag"),                      (void *)(uintptr_t)RTMemAllocZVarTag },
    322     { STKBACK("RTMemDupExTag"),                          (void *)(uintptr_t)RTMemDupExTag },
    323     { STKBACK("RTMemDupTag"),                            (void *)(uintptr_t)RTMemDupTag },
    324     { STKBACK("RTMemFree"),                              (void *)(uintptr_t)RTMemFree },
    325     { STKBACK("RTMemFreeEx"),                            (void *)(uintptr_t)RTMemFreeEx },
    326     { STKBACK("RTMemReallocTag"),                        (void *)(uintptr_t)RTMemReallocTag },
    327     { STKBACK("RTMpCpuId"),                              (void *)(uintptr_t)RTMpCpuId },
    328     { STKBACK("RTMpCpuIdFromSetIndex"),                  (void *)(uintptr_t)RTMpCpuIdFromSetIndex },
    329     { STKBACK("RTMpCpuIdToSetIndex"),                    (void *)(uintptr_t)RTMpCpuIdToSetIndex },
    330     { STKBACK("RTMpCurSetIndex"),                        (void *)(uintptr_t)RTMpCurSetIndex },
    331     { STKBACK("RTMpCurSetIndexAndId"),                   (void *)(uintptr_t)RTMpCurSetIndexAndId },
    332     { STKBACK("RTMpGetArraySize"),                       (void *)(uintptr_t)RTMpGetArraySize },
    333     { STKBACK("RTMpGetCount"),                           (void *)(uintptr_t)RTMpGetCount },
    334     { STKBACK("RTMpGetMaxCpuId"),                        (void *)(uintptr_t)RTMpGetMaxCpuId },
    335     { STKBACK("RTMpGetOnlineCount"),                     (void *)(uintptr_t)RTMpGetOnlineCount },
    336     { STKBACK("RTMpGetOnlineSet"),                       (void *)(uintptr_t)RTMpGetOnlineSet },
    337     { STKBACK("RTMpGetSet"),                             (void *)(uintptr_t)RTMpGetSet },
    338     { STKBACK("RTMpIsCpuOnline"),                        (void *)(uintptr_t)RTMpIsCpuOnline },
    339     { STKBACK("RTMpIsCpuPossible"),                      (void *)(uintptr_t)RTMpIsCpuPossible },
    340     { STKBACK("RTMpIsCpuWorkPending"),                   (void *)(uintptr_t)RTMpIsCpuWorkPending },
    341     { STKBACK("RTMpNotificationDeregister"),             (void *)(uintptr_t)RTMpNotificationDeregister },
    342     { STKBACK("RTMpNotificationRegister"),               (void *)(uintptr_t)RTMpNotificationRegister },
    343     { STKBACK("RTMpOnAll"),                              (void *)(uintptr_t)RTMpOnAll },
    344     { STKBACK("RTMpOnOthers"),                           (void *)(uintptr_t)RTMpOnOthers },
    345     { STKBACK("RTMpOnSpecific"),                         (void *)(uintptr_t)RTMpOnSpecific },
    346     { STKBACK("RTMpPokeCpu"),                            (void *)(uintptr_t)RTMpPokeCpu },
    347     { STKOKAY("RTNetIPv4AddDataChecksum"),               (void *)(uintptr_t)RTNetIPv4AddDataChecksum },
    348     { STKOKAY("RTNetIPv4AddTCPChecksum"),                (void *)(uintptr_t)RTNetIPv4AddTCPChecksum },
    349     { STKOKAY("RTNetIPv4AddUDPChecksum"),                (void *)(uintptr_t)RTNetIPv4AddUDPChecksum },
    350     { STKOKAY("RTNetIPv4FinalizeChecksum"),              (void *)(uintptr_t)RTNetIPv4FinalizeChecksum },
    351     { STKOKAY("RTNetIPv4HdrChecksum"),                   (void *)(uintptr_t)RTNetIPv4HdrChecksum },
    352     { STKOKAY("RTNetIPv4IsDHCPValid"),                   (void *)(uintptr_t)RTNetIPv4IsDHCPValid },
    353     { STKOKAY("RTNetIPv4IsHdrValid"),                    (void *)(uintptr_t)RTNetIPv4IsHdrValid },
    354     { STKOKAY("RTNetIPv4IsTCPSizeValid"),                (void *)(uintptr_t)RTNetIPv4IsTCPSizeValid },
    355     { STKOKAY("RTNetIPv4IsTCPValid"),                    (void *)(uintptr_t)RTNetIPv4IsTCPValid },
    356     { STKOKAY("RTNetIPv4IsUDPSizeValid"),                (void *)(uintptr_t)RTNetIPv4IsUDPSizeValid },
    357     { STKOKAY("RTNetIPv4IsUDPValid"),                    (void *)(uintptr_t)RTNetIPv4IsUDPValid },
    358     { STKOKAY("RTNetIPv4PseudoChecksum"),                (void *)(uintptr_t)RTNetIPv4PseudoChecksum },
    359     { STKOKAY("RTNetIPv4PseudoChecksumBits"),            (void *)(uintptr_t)RTNetIPv4PseudoChecksumBits },
    360     { STKOKAY("RTNetIPv4TCPChecksum"),                   (void *)(uintptr_t)RTNetIPv4TCPChecksum },
    361     { STKOKAY("RTNetIPv4UDPChecksum"),                   (void *)(uintptr_t)RTNetIPv4UDPChecksum },
    362     { STKOKAY("RTNetIPv6PseudoChecksum"),                (void *)(uintptr_t)RTNetIPv6PseudoChecksum },
    363     { STKOKAY("RTNetIPv6PseudoChecksumBits"),            (void *)(uintptr_t)RTNetIPv6PseudoChecksumBits },
    364     { STKOKAY("RTNetIPv6PseudoChecksumEx"),              (void *)(uintptr_t)RTNetIPv6PseudoChecksumEx },
    365     { STKOKAY("RTNetTCPChecksum"),                       (void *)(uintptr_t)RTNetTCPChecksum },
    366     { STKOKAY("RTNetUDPChecksum"),                       (void *)(uintptr_t)RTNetUDPChecksum },
    367     { STKBACK("RTPowerNotificationDeregister"),          (void *)(uintptr_t)RTPowerNotificationDeregister },
    368     { STKBACK("RTPowerNotificationRegister"),            (void *)(uintptr_t)RTPowerNotificationRegister },
    369     { STKBACK("RTProcSelf"),                             (void *)(uintptr_t)RTProcSelf },
    370     { STKBACK("RTR0AssertPanicSystem"),                  (void *)(uintptr_t)RTR0AssertPanicSystem },
     272    SUPEXP_STK_BACK(22, SUPSemEventClose),
     273    SUPEXP_STK_BACK(22, SUPSemEventCreate),
     274    SUPEXP_STK_BACK(22, SUPSemEventGetResolution),
     275    SUPEXP_STK_BACK(22, SUPSemEventMultiClose),
     276    SUPEXP_STK_BACK(22, SUPSemEventMultiCreate),
     277    SUPEXP_STK_BACK(22, SUPSemEventMultiGetResolution),
     278    SUPEXP_STK_BACK(22, SUPSemEventMultiReset),
     279    SUPEXP_STK_BACK(22, SUPSemEventMultiSignal),
     280    SUPEXP_STK_BACK(22, SUPSemEventMultiWait),
     281    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNoResume),
     282    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNsAbsIntr),
     283    SUPEXP_STK_BACK(22, SUPSemEventMultiWaitNsRelIntr),
     284    SUPEXP_STK_BACK(22, SUPSemEventSignal),
     285    SUPEXP_STK_BACK(22, SUPSemEventWait),
     286    SUPEXP_STK_BACK(22, SUPSemEventWaitNoResume),
     287    SUPEXP_STK_BACK(22, SUPSemEventWaitNsAbsIntr),
     288    SUPEXP_STK_BACK(22, SUPSemEventWaitNsRelIntr),
     289
     290    SUPEXP_STK_BACK(22, RTAssertAreQuiet),
     291    SUPEXP_STK_BACK(22, RTAssertMayPanic),
     292    SUPEXP_STK_BACK(22, RTAssertMsg1),
     293    SUPEXP_STK_BACK(22, RTAssertMsg2AddV),
     294    SUPEXP_STK_BACK(22, RTAssertMsg2V),
     295    SUPEXP_STK_BACK(22, RTAssertSetMayPanic),
     296    SUPEXP_STK_BACK(22, RTAssertSetQuiet),
     297    SUPEXP_STK_OKAY(0,  RTCrc32),
     298    SUPEXP_STK_OKAY(0,  RTCrc32Finish),
     299    SUPEXP_STK_OKAY(0,  RTCrc32Process),
     300    SUPEXP_STK_OKAY(0,  RTCrc32Start),
     301    SUPEXP_STK_OKAY(0,  RTErrConvertFromErrno),
     302    SUPEXP_STK_OKAY(0,  RTErrConvertToErrno),
     303    SUPEXP_STK_BACK(22, RTHandleTableAllocWithCtx),
     304    SUPEXP_STK_BACK(22, RTHandleTableCreate),
     305    SUPEXP_STK_BACK(22, RTHandleTableCreateEx),
     306    SUPEXP_STK_BACK(22, RTHandleTableDestroy),
     307    SUPEXP_STK_BACK(22, RTHandleTableFreeWithCtx),
     308    SUPEXP_STK_BACK(22, RTHandleTableLookupWithCtx),
     309    SUPEXP_STK_BACK(22, RTLogBulkUpdate),
     310    SUPEXP_STK_BACK(22, RTLogCheckGroupFlags),
     311    SUPEXP_STK_BACK(22, RTLogCreateExV),
     312    SUPEXP_STK_BACK(22, RTLogDestroy),
     313    SUPEXP_STK_BACK(22, RTLogDefaultInstance),
     314    SUPEXP_STK_BACK(22, RTLogDefaultInstanceEx),
     315    SUPEXP_STK_BACK(22, SUPR0DefaultLogInstanceEx),
     316    SUPEXP_STK_BACK(22, RTLogGetDefaultInstance),
     317    SUPEXP_STK_BACK(22, RTLogGetDefaultInstanceEx),
     318    SUPEXP_STK_BACK(22, SUPR0GetDefaultLogInstanceEx),
     319    SUPEXP_STK_BACK(22, RTLogLoggerExV),
     320    SUPEXP_STK_BACK(22, RTLogPrintfV),
     321    SUPEXP_STK_BACK(22, RTLogRelGetDefaultInstance),
     322    SUPEXP_STK_BACK(22, RTLogRelGetDefaultInstanceEx),
     323    SUPEXP_STK_BACK(22, SUPR0GetDefaultLogRelInstanceEx),
     324    SUPEXP_STK_BACK(22, RTLogSetDefaultInstanceThread),
     325    SUPEXP_STK_BACK(22, RTLogSetFlushCallback),
     326    SUPEXP_STK_BACK(22, RTLogSetR0ProgramStart),
     327    SUPEXP_STK_BACK(22, RTLogSetR0ThreadNameV),
     328    SUPEXP_STK_BACK(22, RTMemAllocExTag),
     329    SUPEXP_STK_BACK(22, RTMemAllocTag),
     330    SUPEXP_STK_BACK(22, RTMemAllocVarTag),
     331    SUPEXP_STK_BACK(22, RTMemAllocZTag),
     332    SUPEXP_STK_BACK(22, RTMemAllocZVarTag),
     333    SUPEXP_STK_BACK(22, RTMemDupExTag),
     334    SUPEXP_STK_BACK(22, RTMemDupTag),
     335    SUPEXP_STK_BACK(22, RTMemFree),
     336    SUPEXP_STK_BACK(22, RTMemFreeEx),
     337    SUPEXP_STK_BACK(22, RTMemReallocTag),
     338    SUPEXP_STK_BACK(22, RTMpCpuId),
     339    SUPEXP_STK_BACK(22, RTMpCpuIdFromSetIndex),
     340    SUPEXP_STK_BACK(22, RTMpCpuIdToSetIndex),
     341    SUPEXP_STK_BACK(22, RTMpCurSetIndex),
     342    SUPEXP_STK_BACK(22, RTMpCurSetIndexAndId),
     343    SUPEXP_STK_BACK(22, RTMpGetArraySize),
     344    SUPEXP_STK_BACK(22, RTMpGetCount),
     345    SUPEXP_STK_BACK(22, RTMpGetMaxCpuId),
     346    SUPEXP_STK_BACK(22, RTMpGetOnlineCount),
     347    SUPEXP_STK_BACK(22, RTMpGetOnlineSet),
     348    SUPEXP_STK_BACK(22, RTMpGetSet),
     349    SUPEXP_STK_BACK(22, RTMpIsCpuOnline),
     350    SUPEXP_STK_BACK(22, RTMpIsCpuPossible),
     351    SUPEXP_STK_BACK(22, RTMpIsCpuWorkPending),
     352    SUPEXP_STK_BACK(22, RTMpNotificationDeregister),
     353    SUPEXP_STK_BACK(22, RTMpNotificationRegister),
     354    SUPEXP_STK_BACK(22, RTMpOnAll),
     355    SUPEXP_STK_BACK(22, RTMpOnOthers),
     356    SUPEXP_STK_BACK(22, RTMpOnSpecific),
     357    SUPEXP_STK_BACK(22, RTMpPokeCpu),
     358    SUPEXP_STK_OKAY(0,  RTNetIPv4AddDataChecksum),
     359    SUPEXP_STK_OKAY(0,  RTNetIPv4AddTCPChecksum),
     360    SUPEXP_STK_OKAY(0,  RTNetIPv4AddUDPChecksum),
     361    SUPEXP_STK_OKAY(0,  RTNetIPv4FinalizeChecksum),
     362    SUPEXP_STK_OKAY(0,  RTNetIPv4HdrChecksum),
     363    SUPEXP_STK_OKAY(0,  RTNetIPv4IsDHCPValid),
     364    SUPEXP_STK_OKAY(0,  RTNetIPv4IsHdrValid),
     365    SUPEXP_STK_OKAY(0,  RTNetIPv4IsTCPSizeValid),
     366    SUPEXP_STK_OKAY(0,  RTNetIPv4IsTCPValid),
     367    SUPEXP_STK_OKAY(0,  RTNetIPv4IsUDPSizeValid),
     368    SUPEXP_STK_OKAY(0,  RTNetIPv4IsUDPValid),
     369    SUPEXP_STK_OKAY(0,  RTNetIPv4PseudoChecksum),
     370    SUPEXP_STK_OKAY(0,  RTNetIPv4PseudoChecksumBits),
     371    SUPEXP_STK_OKAY(0,  RTNetIPv4TCPChecksum),
     372    SUPEXP_STK_OKAY(0,  RTNetIPv4UDPChecksum),
     373    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksum),
     374    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksumBits),
     375    SUPEXP_STK_OKAY(0,  RTNetIPv6PseudoChecksumEx),
     376    SUPEXP_STK_OKAY(0,  RTNetTCPChecksum),
     377    SUPEXP_STK_OKAY(0,  RTNetUDPChecksum),
     378    SUPEXP_STK_BACK(22, RTPowerNotificationDeregister),
     379    SUPEXP_STK_BACK(22, RTPowerNotificationRegister),
     380    SUPEXP_STK_BACK(22, RTProcSelf),
     381    SUPEXP_STK_BACK(22, RTR0AssertPanicSystem),
    371382#if defined(RT_OS_DARWIN) || defined(RT_OS_SOLARIS) || defined(RT_OS_WINDOWS)
    372     { STKBACK("RTR0DbgKrnlInfoOpen"),                    (void *)(uintptr_t)RTR0DbgKrnlInfoOpen },          /* only-darwin, only-solaris, only-windows */
    373     { STKBACK("RTR0DbgKrnlInfoQueryMember"),             (void *)(uintptr_t)RTR0DbgKrnlInfoQueryMember },   /* only-darwin, only-solaris, only-windows */
     383    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoOpen),          /* only-darwin, only-solaris, only-windows */
     384    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQueryMember),   /* only-darwin, only-solaris, only-windows */
    374385# if defined(RT_OS_SOLARIS)
    375     { STKBACK("RTR0DbgKrnlInfoQuerySize"),               (void *)(uintptr_t)RTR0DbgKrnlInfoQuerySize },     /* only-solaris */
     386    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQuerySize),     /* only-solaris */
    376387# endif
    377     { STKBACK("RTR0DbgKrnlInfoQuerySymbol"),             (void *)(uintptr_t)RTR0DbgKrnlInfoQuerySymbol },   /* only-darwin, only-solaris, only-windows */
    378     { STKBACK("RTR0DbgKrnlInfoRelease"),                 (void *)(uintptr_t)RTR0DbgKrnlInfoRelease },       /* only-darwin, only-solaris, only-windows */
    379     { STKBACK("RTR0DbgKrnlInfoRetain"),                  (void *)(uintptr_t)RTR0DbgKrnlInfoRetain },        /* only-darwin, only-solaris, only-windows */
     388    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoQuerySymbol),   /* only-darwin, only-solaris, only-windows */
     389    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoRelease),       /* only-darwin, only-solaris, only-windows */
     390    SUPEXP_STK_BACK(22, RTR0DbgKrnlInfoRetain),        /* only-darwin, only-solaris, only-windows */
    380391#endif
    381     { STKBACK("RTR0MemAreKrnlAndUsrDifferent"),          (void *)(uintptr_t)RTR0MemAreKrnlAndUsrDifferent },
    382     { STKBACK("RTR0MemKernelIsValidAddr"),               (void *)(uintptr_t)RTR0MemKernelIsValidAddr },
    383     { STKBACK("RTR0MemKernelCopyFrom"),                  (void *)(uintptr_t)RTR0MemKernelCopyFrom },
    384     { STKBACK("RTR0MemKernelCopyTo"),                    (void *)(uintptr_t)RTR0MemKernelCopyTo },
    385     { STKOKAY("RTR0MemObjAddress"),                      (void *)(uintptr_t)RTR0MemObjAddress },
    386     { STKOKAY("RTR0MemObjAddressR3"),                    (void *)(uintptr_t)RTR0MemObjAddressR3 },
    387     { STKBACK("RTR0MemObjAllocContTag"),                 (void *)(uintptr_t)RTR0MemObjAllocContTag },
    388     { STKBACK("RTR0MemObjAllocLargeTag"),                (void *)(uintptr_t)RTR0MemObjAllocLargeTag },
    389     { STKBACK("RTR0MemObjAllocLowTag"),                  (void *)(uintptr_t)RTR0MemObjAllocLowTag },
    390     { STKBACK("RTR0MemObjAllocPageTag"),                 (void *)(uintptr_t)RTR0MemObjAllocPageTag },
    391     { STKBACK("RTR0MemObjAllocPhysExTag"),               (void *)(uintptr_t)RTR0MemObjAllocPhysExTag },
    392     { STKBACK("RTR0MemObjAllocPhysNCTag"),               (void *)(uintptr_t)RTR0MemObjAllocPhysNCTag },
    393     { STKBACK("RTR0MemObjAllocPhysTag"),                 (void *)(uintptr_t)RTR0MemObjAllocPhysTag },
    394     { STKBACK("RTR0MemObjEnterPhysTag"),                 (void *)(uintptr_t)RTR0MemObjEnterPhysTag },
    395     { STKBACK("RTR0MemObjFree"),                         (void *)(uintptr_t)RTR0MemObjFree },
    396     { STKBACK("RTR0MemObjGetPagePhysAddr"),              (void *)(uintptr_t)RTR0MemObjGetPagePhysAddr },
    397     { STKOKAY("RTR0MemObjIsMapping"),                    (void *)(uintptr_t)RTR0MemObjIsMapping },
    398     { STKBACK("RTR0MemObjLockUserTag"),                  (void *)(uintptr_t)RTR0MemObjLockUserTag },
    399     { STKBACK("RTR0MemObjLockKernelTag"),                (void *)(uintptr_t)RTR0MemObjLockKernelTag },
    400     { STKBACK("RTR0MemObjMapKernelExTag"),               (void *)(uintptr_t)RTR0MemObjMapKernelExTag },
    401     { STKBACK("RTR0MemObjMapKernelTag"),                 (void *)(uintptr_t)RTR0MemObjMapKernelTag },
    402     { STKBACK("RTR0MemObjMapUserTag"),                   (void *)(uintptr_t)RTR0MemObjMapUserTag },
    403     { STKBACK("RTR0MemObjMapUserExTag"),                 (void *)(uintptr_t)RTR0MemObjMapUserExTag },
    404     { STKBACK("RTR0MemObjProtect"),                      (void *)(uintptr_t)RTR0MemObjProtect },
    405     { STKOKAY("RTR0MemObjSize"),                         (void *)(uintptr_t)RTR0MemObjSize },
    406     { STKBACK("RTR0MemUserCopyFrom"),                    (void *)(uintptr_t)RTR0MemUserCopyFrom },
    407     { STKBACK("RTR0MemUserCopyTo"),                      (void *)(uintptr_t)RTR0MemUserCopyTo },
    408     { STKBACK("RTR0MemUserIsValidAddr"),                 (void *)(uintptr_t)RTR0MemUserIsValidAddr },
    409     { STKBACK("RTR0ProcHandleSelf"),                     (void *)(uintptr_t)RTR0ProcHandleSelf },
    410     { STKBACK("RTSemEventCreate"),                       (void *)(uintptr_t)RTSemEventCreate },
    411     { STKBACK("RTSemEventDestroy"),                      (void *)(uintptr_t)RTSemEventDestroy },
    412     { STKBACK("RTSemEventGetResolution"),                (void *)(uintptr_t)RTSemEventGetResolution },
    413     { STKBACK("RTSemEventIsSignalSafe"),                 (void *)(uintptr_t)RTSemEventIsSignalSafe },
    414     { STKBACK("RTSemEventMultiCreate"),                  (void *)(uintptr_t)RTSemEventMultiCreate },
    415     { STKBACK("RTSemEventMultiDestroy"),                 (void *)(uintptr_t)RTSemEventMultiDestroy },
    416     { STKBACK("RTSemEventMultiGetResolution"),           (void *)(uintptr_t)RTSemEventMultiGetResolution },
    417     { STKBACK("RTSemEventMultiIsSignalSafe"),            (void *)(uintptr_t)RTSemEventMultiIsSignalSafe },
    418     { STKBACK("RTSemEventMultiReset"),                   (void *)(uintptr_t)RTSemEventMultiReset },
    419     { STKBACK("RTSemEventMultiSignal"),                  (void *)(uintptr_t)RTSemEventMultiSignal },
    420     { STKBACK("RTSemEventMultiWait"),                    (void *)(uintptr_t)RTSemEventMultiWait },
    421     { STKBACK("RTSemEventMultiWaitEx"),                  (void *)(uintptr_t)RTSemEventMultiWaitEx },
    422     { STKBACK("RTSemEventMultiWaitExDebug"),             (void *)(uintptr_t)RTSemEventMultiWaitExDebug },
    423     { STKBACK("RTSemEventMultiWaitNoResume"),            (void *)(uintptr_t)RTSemEventMultiWaitNoResume },
    424     { STKBACK("RTSemEventSignal"),                       (void *)(uintptr_t)RTSemEventSignal },
    425     { STKBACK("RTSemEventWait"),                         (void *)(uintptr_t)RTSemEventWait },
    426     { STKBACK("RTSemEventWaitEx"),                       (void *)(uintptr_t)RTSemEventWaitEx },
    427     { STKBACK("RTSemEventWaitExDebug"),                  (void *)(uintptr_t)RTSemEventWaitExDebug },
    428     { STKBACK("RTSemEventWaitNoResume"),                 (void *)(uintptr_t)RTSemEventWaitNoResume },
    429     { STKBACK("RTSemFastMutexCreate"),                   (void *)(uintptr_t)RTSemFastMutexCreate },
    430     { STKBACK("RTSemFastMutexDestroy"),                  (void *)(uintptr_t)RTSemFastMutexDestroy },
    431     { STKBACK("RTSemFastMutexRelease"),                  (void *)(uintptr_t)RTSemFastMutexRelease },
    432     { STKBACK("RTSemFastMutexRequest"),                  (void *)(uintptr_t)RTSemFastMutexRequest },
    433     { STKBACK("RTSemMutexCreate"),                       (void *)(uintptr_t)RTSemMutexCreate },
    434     { STKBACK("RTSemMutexDestroy"),                      (void *)(uintptr_t)RTSemMutexDestroy },
    435     { STKBACK("RTSemMutexRelease"),                      (void *)(uintptr_t)RTSemMutexRelease },
    436     { STKBACK("RTSemMutexRequest"),                      (void *)(uintptr_t)RTSemMutexRequest },
    437     { STKBACK("RTSemMutexRequestDebug"),                 (void *)(uintptr_t)RTSemMutexRequestDebug },
    438     { STKBACK("RTSemMutexRequestNoResume"),              (void *)(uintptr_t)RTSemMutexRequestNoResume },
    439     { STKBACK("RTSemMutexRequestNoResumeDebug"),         (void *)(uintptr_t)RTSemMutexRequestNoResumeDebug },
    440     { STKBACK("RTSpinlockAcquire"),                      (void *)(uintptr_t)RTSpinlockAcquire },
    441     { STKBACK("RTSpinlockCreate"),                       (void *)(uintptr_t)RTSpinlockCreate },
    442     { STKBACK("RTSpinlockDestroy"),                      (void *)(uintptr_t)RTSpinlockDestroy },
    443     { STKBACK("RTSpinlockRelease"),                      (void *)(uintptr_t)RTSpinlockRelease },
    444     { STKOKAY("RTStrCopy"),                              (void *)(uintptr_t)RTStrCopy },
    445     { STKBACK("RTStrDupTag"),                            (void *)(uintptr_t)RTStrDupTag },
    446     { STKBACK("RTStrFormatNumber"),                      (void *)(uintptr_t)RTStrFormatNumber },
    447     { STKBACK("RTStrFormatTypeDeregister"),              (void *)(uintptr_t)RTStrFormatTypeDeregister },
    448     { STKBACK("RTStrFormatTypeRegister"),                (void *)(uintptr_t)RTStrFormatTypeRegister },
    449     { STKBACK("RTStrFormatTypeSetUser"),                 (void *)(uintptr_t)RTStrFormatTypeSetUser },
    450     { STKBACK("RTStrFormatV"),                           (void *)(uintptr_t)RTStrFormatV },
    451     { STKBACK("RTStrFree"),                              (void *)(uintptr_t)RTStrFree },
    452     { STKOKAY("RTStrNCmp"),                              (void *)(uintptr_t)RTStrNCmp },
    453     { STKBACK("RTStrPrintfExV"),                         (void *)(uintptr_t)RTStrPrintfExV },
    454     { STKBACK("RTStrPrintfV"),                           (void *)(uintptr_t)RTStrPrintfV },
    455     { STKBACK("RTStrPrintf2ExV"),                        (void *)(uintptr_t)RTStrPrintf2ExV },
    456     { STKBACK("RTStrPrintf2V"),                          (void *)(uintptr_t)RTStrPrintf2V },
    457     { STKBACK("RTThreadCreate"),                         (void *)(uintptr_t)RTThreadCreate },
    458     { STKBACK("RTThreadCtxHookIsEnabled"),               (void *)(uintptr_t)RTThreadCtxHookIsEnabled },
    459     { STKBACK("RTThreadCtxHookCreate"),                  (void *)(uintptr_t)RTThreadCtxHookCreate },
    460     { STKBACK("RTThreadCtxHookDestroy"),                 (void *)(uintptr_t)RTThreadCtxHookDestroy },
    461     { STKBACK("RTThreadCtxHookDisable"),                 (void *)(uintptr_t)RTThreadCtxHookDisable },
    462     { STKBACK("RTThreadCtxHookEnable"),                  (void *)(uintptr_t)RTThreadCtxHookEnable },
    463     { STKBACK("RTThreadGetName"),                        (void *)(uintptr_t)RTThreadGetName },
    464     { STKBACK("RTThreadGetNative"),                      (void *)(uintptr_t)RTThreadGetNative },
    465     { STKBACK("RTThreadGetType"),                        (void *)(uintptr_t)RTThreadGetType },
    466     { STKBACK("RTThreadIsInInterrupt"),                  (void *)(uintptr_t)RTThreadIsInInterrupt },
    467     { STKBACK("RTThreadNativeSelf"),                     (void *)(uintptr_t)RTThreadNativeSelf },
    468     { STKBACK("RTThreadPreemptDisable"),                 (void *)(uintptr_t)RTThreadPreemptDisable },
    469     { STKBACK("RTThreadPreemptIsEnabled"),               (void *)(uintptr_t)RTThreadPreemptIsEnabled },
    470     { STKBACK("RTThreadPreemptIsPending"),               (void *)(uintptr_t)RTThreadPreemptIsPending },
    471     { STKBACK("RTThreadPreemptIsPendingTrusty"),         (void *)(uintptr_t)RTThreadPreemptIsPendingTrusty },
    472     { STKBACK("RTThreadPreemptIsPossible"),              (void *)(uintptr_t)RTThreadPreemptIsPossible },
    473     { STKBACK("RTThreadPreemptRestore"),                 (void *)(uintptr_t)RTThreadPreemptRestore },
    474     { STKBACK("RTThreadQueryTerminationStatus"),         (void *)(uintptr_t)RTThreadQueryTerminationStatus },
    475     { STKBACK("RTThreadSelf"),                           (void *)(uintptr_t)RTThreadSelf },
    476     { STKBACK("RTThreadSelfName"),                       (void *)(uintptr_t)RTThreadSelfName },
    477     { STKBACK("RTThreadSleep"),                          (void *)(uintptr_t)RTThreadSleep },
    478     { STKBACK("RTThreadUserReset"),                      (void *)(uintptr_t)RTThreadUserReset },
    479     { STKBACK("RTThreadUserSignal"),                     (void *)(uintptr_t)RTThreadUserSignal },
    480     { STKBACK("RTThreadUserWait"),                       (void *)(uintptr_t)RTThreadUserWait },
    481     { STKBACK("RTThreadUserWaitNoResume"),               (void *)(uintptr_t)RTThreadUserWaitNoResume },
    482     { STKBACK("RTThreadWait"),                           (void *)(uintptr_t)RTThreadWait },
    483     { STKBACK("RTThreadWaitNoResume"),                   (void *)(uintptr_t)RTThreadWaitNoResume },
    484     { STKBACK("RTThreadYield"),                          (void *)(uintptr_t)RTThreadYield },
    485     { STKBACK("RTTimeNow"),                              (void *)(uintptr_t)RTTimeNow },
    486     { STKBACK("RTTimerCanDoHighResolution"),             (void *)(uintptr_t)RTTimerCanDoHighResolution },
    487     { STKBACK("RTTimerChangeInterval"),                  (void *)(uintptr_t)RTTimerChangeInterval },
    488     { STKBACK("RTTimerCreate"),                          (void *)(uintptr_t)RTTimerCreate },
    489     { STKBACK("RTTimerCreateEx"),                        (void *)(uintptr_t)RTTimerCreateEx },
    490     { STKBACK("RTTimerDestroy"),                         (void *)(uintptr_t)RTTimerDestroy },
    491     { STKBACK("RTTimerGetSystemGranularity"),            (void *)(uintptr_t)RTTimerGetSystemGranularity },
    492     { STKBACK("RTTimerReleaseSystemGranularity"),        (void *)(uintptr_t)RTTimerReleaseSystemGranularity },
    493     { STKBACK("RTTimerRequestSystemGranularity"),        (void *)(uintptr_t)RTTimerRequestSystemGranularity },
    494     { STKBACK("RTTimerStart"),                           (void *)(uintptr_t)RTTimerStart },
    495     { STKBACK("RTTimerStop"),                            (void *)(uintptr_t)RTTimerStop },
    496     { STKBACK("RTTimeSystemMilliTS"),                    (void *)(uintptr_t)RTTimeSystemMilliTS },
    497     { STKBACK("RTTimeSystemNanoTS"),                     (void *)(uintptr_t)RTTimeSystemNanoTS },
    498     { STKOKAY("RTUuidCompare"),                          (void *)(uintptr_t)RTUuidCompare },
    499     { STKOKAY("RTUuidCompareStr"),                       (void *)(uintptr_t)RTUuidCompareStr },
    500     { STKOKAY("RTUuidFromStr"),                          (void *)(uintptr_t)RTUuidFromStr },
     392    SUPEXP_STK_BACK(22, RTR0MemAreKrnlAndUsrDifferent),
     393    SUPEXP_STK_BACK(22, RTR0MemKernelIsValidAddr),
     394    SUPEXP_STK_BACK(22, RTR0MemKernelCopyFrom),
     395    SUPEXP_STK_BACK(22, RTR0MemKernelCopyTo),
     396    SUPEXP_STK_OKAY(0,  RTR0MemObjAddress),
     397    SUPEXP_STK_OKAY(0,  RTR0MemObjAddressR3),
     398    SUPEXP_STK_BACK(22, RTR0MemObjAllocContTag),
     399    SUPEXP_STK_BACK(22, RTR0MemObjAllocLargeTag),
     400    SUPEXP_STK_BACK(22, RTR0MemObjAllocLowTag),
     401    SUPEXP_STK_BACK(22, RTR0MemObjAllocPageTag),
     402    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysExTag),
     403    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysNCTag),
     404    SUPEXP_STK_BACK(22, RTR0MemObjAllocPhysTag),
     405    SUPEXP_STK_BACK(22, RTR0MemObjEnterPhysTag),
     406    SUPEXP_STK_BACK(22, RTR0MemObjFree),
     407    SUPEXP_STK_BACK(22, RTR0MemObjGetPagePhysAddr),
     408    SUPEXP_STK_OKAY(0,  RTR0MemObjIsMapping),
     409    SUPEXP_STK_BACK(22, RTR0MemObjLockUserTag),
     410    SUPEXP_STK_BACK(22, RTR0MemObjLockKernelTag),
     411    SUPEXP_STK_BACK(22, RTR0MemObjMapKernelExTag),
     412    SUPEXP_STK_BACK(22, RTR0MemObjMapKernelTag),
     413    SUPEXP_STK_BACK(22, RTR0MemObjMapUserTag),
     414    SUPEXP_STK_BACK(22, RTR0MemObjMapUserExTag),
     415    SUPEXP_STK_BACK(22, RTR0MemObjProtect),
     416    SUPEXP_STK_OKAY(0,  RTR0MemObjSize),
     417    SUPEXP_STK_BACK(22, RTR0MemUserCopyFrom),
     418    SUPEXP_STK_BACK(22, RTR0MemUserCopyTo),
     419    SUPEXP_STK_BACK(22, RTR0MemUserIsValidAddr),
     420    SUPEXP_STK_BACK(22, RTR0ProcHandleSelf),
     421    SUPEXP_STK_BACK(22, RTSemEventCreate),
     422    SUPEXP_STK_BACK(22, RTSemEventDestroy),
     423    SUPEXP_STK_BACK(22, RTSemEventGetResolution),
     424    SUPEXP_STK_BACK(22, RTSemEventIsSignalSafe),
     425    SUPEXP_STK_BACK(22, RTSemEventMultiCreate),
     426    SUPEXP_STK_BACK(22, RTSemEventMultiDestroy),
     427    SUPEXP_STK_BACK(22, RTSemEventMultiGetResolution),
     428    SUPEXP_STK_BACK(22, RTSemEventMultiIsSignalSafe),
     429    SUPEXP_STK_BACK(22, RTSemEventMultiReset),
     430    SUPEXP_STK_BACK(22, RTSemEventMultiSignal),
     431    SUPEXP_STK_BACK(22, RTSemEventMultiWait),
     432    SUPEXP_STK_BACK(22, RTSemEventMultiWaitEx),
     433    SUPEXP_STK_BACK(22, RTSemEventMultiWaitExDebug),
     434    SUPEXP_STK_BACK(22, RTSemEventMultiWaitNoResume),
     435    SUPEXP_STK_BACK(22, RTSemEventSignal),
     436    SUPEXP_STK_BACK(22, RTSemEventWait),
     437    SUPEXP_STK_BACK(22, RTSemEventWaitEx),
     438    SUPEXP_STK_BACK(22, RTSemEventWaitExDebug),
     439    SUPEXP_STK_BACK(22, RTSemEventWaitNoResume),
     440    SUPEXP_STK_BACK(22, RTSemFastMutexCreate),
     441    SUPEXP_STK_BACK(22, RTSemFastMutexDestroy),
     442    SUPEXP_STK_BACK(22, RTSemFastMutexRelease),
     443    SUPEXP_STK_BACK(22, RTSemFastMutexRequest),
     444    SUPEXP_STK_BACK(22, RTSemMutexCreate),
     445    SUPEXP_STK_BACK(22, RTSemMutexDestroy),
     446    SUPEXP_STK_BACK(22, RTSemMutexRelease),
     447    SUPEXP_STK_BACK(22, RTSemMutexRequest),
     448    SUPEXP_STK_BACK(22, RTSemMutexRequestDebug),
     449    SUPEXP_STK_BACK(22, RTSemMutexRequestNoResume),
     450    SUPEXP_STK_BACK(22, RTSemMutexRequestNoResumeDebug),
     451    SUPEXP_STK_BACK(22, RTSpinlockAcquire),
     452    SUPEXP_STK_BACK(22, RTSpinlockCreate),
     453    SUPEXP_STK_BACK(22, RTSpinlockDestroy),
     454    SUPEXP_STK_BACK(22, RTSpinlockRelease),
     455    SUPEXP_STK_OKAY(0,  RTStrCopy),
     456    SUPEXP_STK_BACK(22, RTStrDupTag),
     457    SUPEXP_STK_BACK(22, RTStrFormatNumber),
     458    SUPEXP_STK_BACK(22, RTStrFormatTypeDeregister),
     459    SUPEXP_STK_BACK(22, RTStrFormatTypeRegister),
     460    SUPEXP_STK_BACK(22, RTStrFormatTypeSetUser),
     461    SUPEXP_STK_BACK(22, RTStrFormatV),
     462    SUPEXP_STK_BACK(22, RTStrFree),
     463    SUPEXP_STK_OKAY(0,  RTStrNCmp),
     464    SUPEXP_STK_BACK(22, RTStrPrintfExV),
     465    SUPEXP_STK_BACK(22, RTStrPrintfV),
     466    SUPEXP_STK_BACK(22, RTStrPrintf2ExV),
     467    SUPEXP_STK_BACK(22, RTStrPrintf2V),
     468    SUPEXP_STK_BACK(22, RTThreadCreate),
     469    SUPEXP_STK_BACK(22, RTThreadCtxHookIsEnabled),
     470    SUPEXP_STK_BACK(22, RTThreadCtxHookCreate),
     471    SUPEXP_STK_BACK(22, RTThreadCtxHookDestroy),
     472    SUPEXP_STK_BACK(22, RTThreadCtxHookDisable),
     473    SUPEXP_STK_BACK(22, RTThreadCtxHookEnable),
     474    SUPEXP_STK_BACK(22, RTThreadGetName),
     475    SUPEXP_STK_BACK(22, RTThreadGetNative),
     476    SUPEXP_STK_BACK(22, RTThreadGetType),
     477    SUPEXP_STK_BACK(22, RTThreadIsInInterrupt),
     478    SUPEXP_STK_BACK(22, RTThreadNativeSelf),
     479    SUPEXP_STK_BACK(22, RTThreadPreemptDisable),
     480    SUPEXP_STK_BACK(22, RTThreadPreemptIsEnabled),
     481    SUPEXP_STK_BACK(22, RTThreadPreemptIsPending),
     482    SUPEXP_STK_BACK(22, RTThreadPreemptIsPendingTrusty),
     483    SUPEXP_STK_BACK(22, RTThreadPreemptIsPossible),
     484    SUPEXP_STK_BACK(22, RTThreadPreemptRestore),
     485    SUPEXP_STK_BACK(22, RTThreadQueryTerminationStatus),
     486    SUPEXP_STK_BACK(22, RTThreadSelf),
     487    SUPEXP_STK_BACK(22, RTThreadSelfName),
     488    SUPEXP_STK_BACK(22, RTThreadSleep),
     489    SUPEXP_STK_BACK(22, RTThreadUserReset),
     490    SUPEXP_STK_BACK(22, RTThreadUserSignal),
     491    SUPEXP_STK_BACK(22, RTThreadUserWait),
     492    SUPEXP_STK_BACK(22, RTThreadUserWaitNoResume),
     493    SUPEXP_STK_BACK(22, RTThreadWait),
     494    SUPEXP_STK_BACK(22, RTThreadWaitNoResume),
     495    SUPEXP_STK_BACK(22, RTThreadYield),
     496    SUPEXP_STK_BACK(22, RTTimeNow),
     497    SUPEXP_STK_BACK(22, RTTimerCanDoHighResolution),
     498    SUPEXP_STK_BACK(22, RTTimerChangeInterval),
     499    SUPEXP_STK_BACK(22, RTTimerCreate),
     500    SUPEXP_STK_BACK(22, RTTimerCreateEx),
     501    SUPEXP_STK_BACK(22, RTTimerDestroy),
     502    SUPEXP_STK_BACK(22, RTTimerGetSystemGranularity),
     503    SUPEXP_STK_BACK(22, RTTimerReleaseSystemGranularity),
     504    SUPEXP_STK_BACK(22, RTTimerRequestSystemGranularity),
     505    SUPEXP_STK_BACK(22, RTTimerStart),
     506    SUPEXP_STK_BACK(22, RTTimerStop),
     507    SUPEXP_STK_BACK(22, RTTimeSystemMilliTS),
     508    SUPEXP_STK_BACK(22, RTTimeSystemNanoTS),
     509    SUPEXP_STK_OKAY(0,  RTUuidCompare),
     510    SUPEXP_STK_OKAY(0,  RTUuidCompareStr),
     511    SUPEXP_STK_OKAY(0,  RTUuidFromStr),
    501512/* SED: END */
    502513};
  • trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h

    r91775 r91800  
    276276{
    277277    /** Name - mangled. */
    278     char            szName[48];
     278    char            szName[47];
     279    /** For internal checking. Ignore. */
     280    uint8_t         cArgs;
    279281    /** Address. */
    280282    RTR0PTR         pfn;
  • trunk/src/VBox/HostDrivers/Support/SUPLib.cpp

    r91674 r91800  
    409409    static const SUPFUNC s_aFakeFunctions[] =
    410410    {
    411         /* name                                     function */
    412         { "SUPR0AbsIs64bit",                        0 },
    413         { "SUPR0Abs64bitKernelCS",                  0 },
    414         { "SUPR0Abs64bitKernelSS",                  0 },
    415         { "SUPR0Abs64bitKernelDS",                  0 },
    416         { "SUPR0AbsKernelCS",                       8 },
    417         { "SUPR0AbsKernelSS",                       16 },
    418         { "SUPR0AbsKernelDS",                       16 },
    419         { "SUPR0AbsKernelES",                       16 },
    420         { "SUPR0AbsKernelFS",                       24 },
    421         { "SUPR0AbsKernelGS",                       32 },
    422         { "SUPR0ComponentRegisterFactory",          0xefeefffd },
    423         { "SUPR0ComponentDeregisterFactory",        0xefeefffe },
    424         { "SUPR0ComponentQueryFactory",             0xefeeffff },
    425         { "SUPR0ObjRegister",                       0xefef0000 },
    426         { "SUPR0ObjAddRef",                         0xefef0001 },
    427         { "SUPR0ObjAddRefEx",                       0xefef0001 },
    428         { "SUPR0ObjRelease",                        0xefef0002 },
    429         { "SUPR0ObjVerifyAccess",                   0xefef0003 },
    430         { "SUPR0LockMem",                           0xefef0004 },
    431         { "SUPR0UnlockMem",                         0xefef0005 },
    432         { "SUPR0ContAlloc",                         0xefef0006 },
    433         { "SUPR0ContFree",                          0xefef0007 },
    434         { "SUPR0MemAlloc",                          0xefef0008 },
    435         { "SUPR0MemGetPhys",                        0xefef0009 },
    436         { "SUPR0MemFree",                           0xefef000a },
    437         { "SUPR0Printf",                            0xefef000b },
    438         { "SUPR0GetPagingMode",                     0xefef000c },
    439         { "SUPR0EnableVTx",                         0xefef000e },
    440         { "RTMemAlloc",                             0xefef000f },
    441         { "RTMemAllocZ",                            0xefef0010 },
    442         { "RTMemFree",                              0xefef0011 },
    443         { "RTR0MemObjAddress",                      0xefef0012 },
    444         { "RTR0MemObjAddressR3",                    0xefef0013 },
    445         { "RTR0MemObjAllocPage",                    0xefef0014 },
    446         { "RTR0MemObjAllocPhysNC",                  0xefef0015 },
    447         { "RTR0MemObjAllocLow",                     0xefef0016 },
    448         { "RTR0MemObjEnterPhys",                    0xefef0017 },
    449         { "RTR0MemObjFree",                         0xefef0018 },
    450         { "RTR0MemObjGetPagePhysAddr",              0xefef0019 },
    451         { "RTR0MemObjMapUser",                      0xefef001a },
    452         { "RTR0MemObjMapKernel",                    0xefef001b },
    453         { "RTR0MemObjMapKernelEx",                  0xefef001c },
    454         { "RTMpGetArraySize",                       0xefef001c },
    455         { "RTProcSelf",                             0xefef001d },
    456         { "RTR0ProcHandleSelf",                     0xefef001e },
    457         { "RTSemEventCreate",                       0xefef001f },
    458         { "RTSemEventSignal",                       0xefef0020 },
    459         { "RTSemEventWait",                         0xefef0021 },
    460         { "RTSemEventWaitNoResume",                 0xefef0022 },
    461         { "RTSemEventDestroy",                      0xefef0023 },
    462         { "RTSemEventMultiCreate",                  0xefef0024 },
    463         { "RTSemEventMultiSignal",                  0xefef0025 },
    464         { "RTSemEventMultiReset",                   0xefef0026 },
    465         { "RTSemEventMultiWait",                    0xefef0027 },
    466         { "RTSemEventMultiWaitNoResume",            0xefef0028 },
    467         { "RTSemEventMultiDestroy",                 0xefef0029 },
    468         { "RTSemFastMutexCreate",                   0xefef002a },
    469         { "RTSemFastMutexDestroy",                  0xefef002b },
    470         { "RTSemFastMutexRequest",                  0xefef002c },
    471         { "RTSemFastMutexRelease",                  0xefef002d },
    472         { "RTSpinlockCreate",                       0xefef002e },
    473         { "RTSpinlockDestroy",                      0xefef002f },
    474         { "RTSpinlockAcquire",                      0xefef0030 },
    475         { "RTSpinlockRelease",                      0xefef0031 },
    476         { "RTSpinlockAcquireNoInts",                0xefef0032 },
    477         { "RTTimeNanoTS",                           0xefef0034 },
    478         { "RTTimeMillieTS",                         0xefef0035 },
    479         { "RTTimeSystemNanoTS",                     0xefef0036 },
    480         { "RTTimeSystemMillieTS",                   0xefef0037 },
    481         { "RTThreadNativeSelf",                     0xefef0038 },
    482         { "RTThreadSleep",                          0xefef0039 },
    483         { "RTThreadYield",                          0xefef003a },
    484         { "RTTimerCreate",                          0xefef003a },
    485         { "RTTimerCreateEx",                        0xefef003a },
    486         { "RTTimerDestroy",                         0xefef003a },
    487         { "RTTimerStart",                           0xefef003a },
    488         { "RTTimerStop",                            0xefef003a },
    489         { "RTTimerChangeInterval",                  0xefef003a },
    490         { "RTTimerGetSystemGranularity",            0xefef003a },
    491         { "RTTimerRequestSystemGranularity",        0xefef003a },
    492         { "RTTimerReleaseSystemGranularity",        0xefef003a },
    493         { "RTTimerCanDoHighResolution",             0xefef003a },
    494         { "RTLogDefaultInstance",                   0xefef003b },
    495         { "RTLogRelGetDefaultInstance",             0xefef003c },
    496         { "RTLogSetDefaultInstanceThread",          0xefef003d },
    497         { "RTLogLogger",                            0xefef003e },
    498         { "RTLogLoggerEx",                          0xefef003f },
    499         { "RTLogLoggerExV",                         0xefef0040 },
    500         { "RTAssertMsg1",                           0xefef0041 },
    501         { "RTAssertMsg2",                           0xefef0042 },
    502         { "RTAssertMsg2V",                          0xefef0043 },
    503         { "SUPR0QueryVTCaps",                       0xefef0044 },
     411        /* name                                     0, function */
     412        { "SUPR0AbsIs64bit",                        0, 0 },
     413        { "SUPR0Abs64bitKernelCS",                  0, 0 },
     414        { "SUPR0Abs64bitKernelSS",                  0, 0 },
     415        { "SUPR0Abs64bitKernelDS",                  0, 0 },
     416        { "SUPR0AbsKernelCS",                       0, 8 },
     417        { "SUPR0AbsKernelSS",                       0, 16 },
     418        { "SUPR0AbsKernelDS",                       0, 16 },
     419        { "SUPR0AbsKernelES",                       0, 16 },
     420        { "SUPR0AbsKernelFS",                       0, 24 },
     421        { "SUPR0AbsKernelGS",                       0, 32 },
     422        { "SUPR0ComponentRegisterFactory",          0, 0xefeefffd },
     423        { "SUPR0ComponentDeregisterFactory",        0, 0xefeefffe },
     424        { "SUPR0ComponentQueryFactory",             0, 0xefeeffff },
     425        { "SUPR0ObjRegister",                       0, 0xefef0000 },
     426        { "SUPR0ObjAddRef",                         0, 0xefef0001 },
     427        { "SUPR0ObjAddRefEx",                       0, 0xefef0001 },
     428        { "SUPR0ObjRelease",                        0, 0xefef0002 },
     429        { "SUPR0ObjVerifyAccess",                   0, 0xefef0003 },
     430        { "SUPR0LockMem",                           0, 0xefef0004 },
     431        { "SUPR0UnlockMem",                         0, 0xefef0005 },
     432        { "SUPR0ContAlloc",                         0, 0xefef0006 },
     433        { "SUPR0ContFree",                          0, 0xefef0007 },
     434        { "SUPR0MemAlloc",                          0, 0xefef0008 },
     435        { "SUPR0MemGetPhys",                        0, 0xefef0009 },
     436        { "SUPR0MemFree",                           0, 0xefef000a },
     437        { "SUPR0Printf",                            0, 0xefef000b },
     438        { "SUPR0GetPagingMode",                     0, 0xefef000c },
     439        { "SUPR0EnableVTx",                         0, 0xefef000e },
     440        { "RTMemAlloc",                             0, 0xefef000f },
     441        { "RTMemAllocZ",                            0, 0xefef0010 },
     442        { "RTMemFree",                              0, 0xefef0011 },
     443        { "RTR0MemObjAddress",                      0, 0xefef0012 },
     444        { "RTR0MemObjAddressR3",                    0, 0xefef0013 },
     445        { "RTR0MemObjAllocPage",                    0, 0xefef0014 },
     446        { "RTR0MemObjAllocPhysNC",                  0, 0xefef0015 },
     447        { "RTR0MemObjAllocLow",                     0, 0xefef0016 },
     448        { "RTR0MemObjEnterPhys",                    0, 0xefef0017 },
     449        { "RTR0MemObjFree",                         0, 0xefef0018 },
     450        { "RTR0MemObjGetPagePhysAddr",              0, 0xefef0019 },
     451        { "RTR0MemObjMapUser",                      0, 0xefef001a },
     452        { "RTR0MemObjMapKernel",                    0, 0xefef001b },
     453        { "RTR0MemObjMapKernelEx",                  0, 0xefef001c },
     454        { "RTMpGetArraySize",                       0, 0xefef001c },
     455        { "RTProcSelf",                             0, 0xefef001d },
     456        { "RTR0ProcHandleSelf",                     0, 0xefef001e },
     457        { "RTSemEventCreate",                       0, 0xefef001f },
     458        { "RTSemEventSignal",                       0, 0xefef0020 },
     459        { "RTSemEventWait",                         0, 0xefef0021 },
     460        { "RTSemEventWaitNoResume",                 0, 0xefef0022 },
     461        { "RTSemEventDestroy",                      0, 0xefef0023 },
     462        { "RTSemEventMultiCreate",                  0, 0xefef0024 },
     463        { "RTSemEventMultiSignal",                  0, 0xefef0025 },
     464        { "RTSemEventMultiReset",                   0, 0xefef0026 },
     465        { "RTSemEventMultiWait",                    0, 0xefef0027 },
     466        { "RTSemEventMultiWaitNoResume",            0, 0xefef0028 },
     467        { "RTSemEventMultiDestroy",                 0, 0xefef0029 },
     468        { "RTSemFastMutexCreate",                   0, 0xefef002a },
     469        { "RTSemFastMutexDestroy",                  0, 0xefef002b },
     470        { "RTSemFastMutexRequest",                  0, 0xefef002c },
     471        { "RTSemFastMutexRelease",                  0, 0xefef002d },
     472        { "RTSpinlockCreate",                       0, 0xefef002e },
     473        { "RTSpinlockDestroy",                      0, 0xefef002f },
     474        { "RTSpinlockAcquire",                      0, 0xefef0030 },
     475        { "RTSpinlockRelease",                      0, 0xefef0031 },
     476        { "RTSpinlockAcquireNoInts",                0, 0xefef0032 },
     477        { "RTTimeNanoTS",                           0, 0xefef0034 },
     478        { "RTTimeMillieTS",                         0, 0xefef0035 },
     479        { "RTTimeSystemNanoTS",                     0, 0xefef0036 },
     480        { "RTTimeSystemMillieTS",                   0, 0xefef0037 },
     481        { "RTThreadNativeSelf",                     0, 0xefef0038 },
     482        { "RTThreadSleep",                          0, 0xefef0039 },
     483        { "RTThreadYield",                          0, 0xefef003a },
     484        { "RTTimerCreate",                          0, 0xefef003a },
     485        { "RTTimerCreateEx",                        0, 0xefef003a },
     486        { "RTTimerDestroy",                         0, 0xefef003a },
     487        { "RTTimerStart",                           0, 0xefef003a },
     488        { "RTTimerStop",                            0, 0xefef003a },
     489        { "RTTimerChangeInterval",                  0, 0xefef003a },
     490        { "RTTimerGetSystemGranularity",            0, 0xefef003a },
     491        { "RTTimerRequestSystemGranularity",        0, 0xefef003a },
     492        { "RTTimerReleaseSystemGranularity",        0, 0xefef003a },
     493        { "RTTimerCanDoHighResolution",             0, 0xefef003a },
     494        { "RTLogDefaultInstance",                   0, 0xefef003b },
     495        { "RTLogRelGetDefaultInstance",             0, 0xefef003c },
     496        { "RTLogSetDefaultInstanceThread",          0, 0xefef003d },
     497        { "RTLogLogger",                            0, 0xefef003e },
     498        { "RTLogLoggerEx",                          0, 0xefef003f },
     499        { "RTLogLoggerExV",                         0, 0xefef0040 },
     500        { "RTAssertMsg1",                           0, 0xefef0041 },
     501        { "RTAssertMsg2",                           0, 0xefef0042 },
     502        { "RTAssertMsg2V",                          0, 0xefef0043 },
     503        { "SUPR0QueryVTCaps",                       0, 0xefef0044 },
    504504    };
    505505
  • trunk/src/VBox/HostDrivers/Support/SUPR0-asm-files.sed

    r91775 r91800  
    3535/SED: END/,$d
    3636
    37 # We are only interested in the STKBACK lines.
    38 /^    { STKBACK(/!d
    39 s/^    { STKBACK("\([^"][^"]*\)"),.*$/    \$(SUPR0_0_OUTDIR)\/StkBack_\1.asm \\/
     37# We are only interested in the SUPEXP_STK_BACK lines.
     38/^ *SUPEXP_STK_BACK(/!d
     39s/^ *SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)),.*$*/    \$(SUPR0_0_OUTDIR)\/StkBack_\1.asm \\/
    4040b end
    4141
  • trunk/src/VBox/HostDrivers/Support/SUPR0-asm.sed

    r91775 r91800  
    3535/SED: END/,$d
    3636
    37 # We are only interested in the STKBACK lines.
    38 /^    { STKBACK(/!d
    39 s/^    { STKBACK("\([^"][^"]*\)"),.*$/\/\/ ##### BEGINFILE \"StkBack_\1.asm\"\n%include "VBox\/SUPR0StackWrapper.mac"\nSUPR0StackWrapperGeneric \1\n\/\/ ##### ENDFILE/
     37# We are only interested in the SUPEXP_STK_BACK lines.
     38/^ *SUPEXP_STK_BACK(/!d
     39s/^ *SUPEXP_STK_BACK( *\([0-9][0-9]*\) *, *\([^)][^)]*\)),.*$/\/\/ ##### BEGINFILE \"StkBack_\2.asm\"\n%include "VBox\/SUPR0StackWrapper.mac"\nSUPR0StackWrapperGeneric \2\n\/\/ ##### ENDFILE/
    4040b end
    4141
  • trunk/src/VBox/HostDrivers/Support/SUPR0-def-lx.sed

    r91782 r91800  
    3636
    3737# Drop all lines not specifying an export.
    38 /^    { STK[BO][AK][CA][KY]/!d
     38/^    SUPEXP_/!d
    3939
    40 # Remove the darwin stack switch-back indicator.
    41 s/STKBACK(\([^)][^)]*\))/\1/
    42 s/STKOKAY(\([^)][^)]*\))/\1/
     40# Extract the export name from these type of statements:
     41#    SUPEXP_CUSTOM(  0,  g_pSUPGlobalInfoPage,     &g_pSUPGlobalInfoPage),            /* SED: DATA */
     42#    SUPEXP_STK_OKAY(0,  SUPGetGIP),
     43#    SUPEXP_STK_BACK(22, SUPReadTscWithDelta),
     44# Will be transformed to:
     45#    _g_pSUPGlobalInfoPage /* SED: DATA */
     46#    _SUPGetGIP
     47#    _SUPReadTscWithDelta
     48s/SUPEXP_CUSTOM( *[0-9][0-9]* *, *\([^),][^),]*\), [^)]*), */_\1 /
     49s/SUPEXP_STK_OKAY( *[0-9][0-9]* *, *\([^)][^)]*\)), */_\1 /
     50s/SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)), */_\1 /
    4351
    4452# Handle trailing selection comment (/* solaris-only, os2-only */).
     
    4856d
    4957
     58# Remove trailing comments.
    5059:transform
    51 # Transform the export line, the format is like this:
    52 #    { "g_pSUPGlobalInfoPage",                   (void *)&g_pSUPGlobalInfoPage },            /* SED: DATA */
    53 
    54 s/^    { "\([^"]*\)",[^}]*}[,].*$/    _\1/
    55 
    5660s, */\*.*\*/ *$,,
     61s, *$,,
    5762b end
    5863
  • trunk/src/VBox/HostDrivers/Support/SUPR0-def-pe.sed

    r91775 r91800  
    11# $Id$
    22## @file
    3 # IPRT - SED script for generating SUPR0.def
     3# IPRT - SED script for generating SUPR0.def - Windows PE.
    44#
    55
     
    3636
    3737# Drop all lines not specifying an export.
    38 /^    { STK[BO][AK][CA][KY]/!d
     38/^    SUPEXP_/!d
    3939
    40 # Remove the darwin stack switch-back indicator.
    41 s/STKBACK(\([^)][^)]*\))/\1/
    42 s/STKOKAY(\([^)][^)]*\))/\1/
     40# Extract the export name from these type of statements:
     41#    SUPEXP_CUSTOM(  0,  g_pSUPGlobalInfoPage,     &g_pSUPGlobalInfoPage),            /* SED: DATA */
     42#    SUPEXP_STK_OKAY(0,  SUPGetGIP),
     43#    SUPEXP_STK_BACK(22, SUPReadTscWithDelta),
     44# Will be transformed to:
     45#    g_pSUPGlobalInfoPage /* SED: DATA */
     46#    SUPGetGIP
     47#    SUPReadTscWithDelta
     48s/SUPEXP_CUSTOM( *[0-9][0-9]* *, *\([^),][^),]*\), [^)]*), */\1 /
     49s/SUPEXP_STK_OKAY( *[0-9][0-9]* *, *\([^)][^)]*\)), */\1 /
     50s/SUPEXP_STK_BACK( *[0-9][0-9]* *, *\([^)][^)]*\)), */\1 /
    4351
    4452# Handle trailing selection comment (/* solaris-only, windows-only */).
     
    4856d
    4957
     58# Deal with special /* SED: DATA */ comment.
    5059:transform
    51 # Transform the export line, the format is like this:
    52 #    { "g_pSUPGlobalInfoPage",                   (void *)&g_pSUPGlobalInfoPage },            /* SED: DATA */
    53 
    54 s/^    { "\([^"]*\)",[^}]*}[,]/    \1/
    55 
    5660s,/\* SED: \([A-Z]*\) \*/, \1,
    5761s, */\*.*\*/ *$,,
     62s, *$,,
    5863b end
    5964
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette