VirtualBox

Changeset 25278 in vbox


Ignore:
Timestamp:
Dec 9, 2009 4:37:00 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
55820
Message:

SUPDrv: Major IOC version change - preparing to use the native ring-0 loader on windwos.

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/Config.kmk

    r25261 r25278  
    20672067 TEMPLATE_VBOXGC_LIBS               = \
    20682068        $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib
     2069 TEMPLATE_VBOXGC_POST_CMDS          = $(VBOX_SIGN_IMAGE_CMDS)
    20692070endif # pe
    20702071
     
    21842185TEMPLATE_VBOXR0_LIBS.x86            = \
    21852186        $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib
    2186  ifdef VBOX_WITH_NATIVE_R0_LOADER
    21872187TEMPLATE_VBOXR0_POST_CMDS           = $(VBOX_SIGN_DRIVER_CMDS)
    2188  endif
    21892188endif # pe
    21902189
  • trunk/include/VBox/sup.h

    r25275 r25278  
    219219#if defined(IN_SUP_R0) || defined(IN_SUP_R3) || defined(IN_SUP_GC)
    220220extern DECLEXPORT(PSUPGLOBALINFOPAGE)   g_pSUPGlobalInfoPage;
    221 #elif defined(IN_RING0)
    222 # if 0 /* VBOX_WITH_NATIVE_R0_LOADER */
    223 #  define g_pSUPGlobalInfoPage          (SUPGetGIP())
     221
     222#elif !defined(IN_RING0) || defined(RT_OS_WINDOWS)
     223extern DECLIMPORT(PSUPGLOBALINFOPAGE)   g_pSUPGlobalInfoPage;
     224
     225#else /* IN_RING0 && !RT_OS_WINDOWS */
     226# if !defined(__GNUC__) || defined(RT_OS_DARWIN) || !defined(RT_ARCH_AMD64)
     227#  define g_pSUPGlobalInfoPage          (&g_SUPGlobalInfoPage)
    224228# else
    225 extern DECLIMPORT(SUPGLOBALINFOPAGE)    g_SUPGlobalInfoPage;
    226 #  if defined(__GNUC__) && !defined(RT_OS_DARWIN) && defined(RT_ARCH_AMD64)
     229#  define g_pSUPGlobalInfoPage          (SUPGetGIPHlp())
    227230/** Workaround for ELF+GCC problem on 64-bit hosts.
    228231 * (GCC emits a mov with a R_X86_64_32 reloc, we need R_X86_64_64.) */
     
    234237    return pGIP;
    235238}
    236 #   define g_pSUPGlobalInfoPage          (SUPGetGIPHlp())
    237 #  else
    238 #   define g_pSUPGlobalInfoPage          (&g_SUPGlobalInfoPage)
    239 #  endif
    240239# endif
    241 #else
    242 extern DECLIMPORT(PSUPGLOBALINFOPAGE)   g_pSUPGlobalInfoPage;
     240/** The GIP.
     241 * We save a level of indirection by exporting the GIP instead of a variable
     242 * pointing to it. */
     243extern DECLIMPORT(SUPGLOBALINFOPAGE)    g_SUPGlobalInfoPage;
    243244#endif
    244245
  • trunk/src/VBox/HostDrivers/Support/Makefile.kmk

    r25260 r25278  
    8484        $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC) \
    8585        $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,)
    86 ifdef VBOX_WITH_NATIVE_R0_LOADER
    87  SUPR3_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    88 endif
    8986SUPR3_INCS         := $(PATH_SUB_CURRENT)
    9087SUPR3_INCS.l4       = $(L4_INCDIR)
     
    105102        $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC,) \
    106103        $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,)
    107 ifdef VBOX_WITH_NATIVE_R0_LOADER
    108  SUPR3HardenedStatic_DEFS   += VBOX_WITH_NATIVE_R0_LOADER
    109 endif
    110104SUPR3HardenedStatic_INCS     = .
    111105SUPR3HardenedStatic_SOURCES  = \
     
    179173VBoxDrv_DEFS         += VBOX_WITH_VMMR0_DISABLE_PREEMPTION
    180174endif
    181 ifdef VBOX_WITH_NATIVE_R0_LOADER
    182  VBoxDrv_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    183 endif
    184175VBoxDrv_SDKS          = W2K3DDK WINPSDKINCS
    185176VBoxDrv_INCS         := $(PATH_SUB_CURRENT)
     
    236227ifdef VBOX_LINUX_VERSION_2_4
    237228vboxdrv_DEFS         += EXPORT_SYMTAB
    238 endif
    239 ifdef VBOX_WITH_NATIVE_R0_LOADER
    240  VBoxDrv_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    241229endif
    242230vboxdrv_INCS         := \
     
    326314VBoxDrvTiger_INST        = $(INST_VBOXDRV_TIGER)Contents/MacOS/
    327315VBoxDrvTiger_DEFS       := IN_RT_R0 IN_SUP_R0 SUPDRV_WITH_RELEASE_LOGGER VBOX_SVN_REV=$(VBOX_SVN_REV)
    328 ifdef VBOX_WITH_NATIVE_R0_LOADER
    329  VBoxDrvTiger_DEFS      += VBOX_WITH_NATIVE_R0_LOADER
    330 endif
    331316VBoxDrvTiger_DEFS.debug += DEBUG_DARWIN_GIP
    332317VBoxDrvTiger_INCS        = .
     
    394379VBoxDrv_TEMPLATE      = VBOXR0DRV
    395380VBoxDrv_DEFS          = IN_RT_R0 IN_SUP_R0
    396 ifdef VBOX_WITH_NATIVE_R0_LOADER
    397  VBoxDrv_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    398 endif
    399381VBoxDrv_INCS         := $(PATH_SUB_CURRENT)
    400382#VBoxDrv_LDFLAGS       = -s -t -v
     
    413395VBoxDrvLib_NOINST     = 1
    414396VBoxDrvLib_DEFS       = IN_RT_R0 IN_SUP_R0
    415 ifdef VBOX_WITH_NATIVE_R0_LOADER
    416  VBoxDrvLib_DEFS     += VBOX_WITH_NATIVE_R0_LOADER
    417 endif
    418397VBoxDrvLib_INCS      := \
    419398        . \
     
    432411vboxdrv_TEMPLATE      = VBOXR0DRV
    433412vboxdrv_DEFS          = IN_RT_R0 IN_SUP_R0 SUPDRV_WITH_RELEASE_LOGGER VBOX_SVN_REV=$(VBOX_SVN_REV)
    434 ifdef VBOX_WITH_NATIVE_R0_LOADER
    435  vboxdrv_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    436 endif
    437413vboxdrv_INCS         := $(PATH_SUB_CURRENT)
    438414vboxdrv_LIBS          = $(PATH_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB)
     
    478454endif
    479455vboxdrv_DEFS         += VBOX_SVN_REV=$(VBOX_SVN_REV)
    480 ifdef VBOX_WITH_NATIVE_R0_LOADER
    481  vboxdrv_DEFS        += VBOX_WITH_NATIVE_R0_LOADER
    482 endif
    483456vboxdrv_DEPS         += $(VBOX_SVN_REV_KMK)
    484457vboxdrv_INCS         := $(PATH_SUB_CURRENT)
  • trunk/src/VBox/HostDrivers/Support/SUPDrv.c

    r25275 r25278  
    262262*******************************************************************************/
    263263/** Pointer to the global info page for implementing SUPGetGIP(). */
    264 static PSUPGLOBALINFOPAGE g_pSUPGlobalInfoPageInternal = NULL;
     264static PSUPGLOBALINFOPAGE      g_pSUPGlobalInfoPageInternal = NULL;
     265#if defined(RT_OS_WINDOWS)
     266DECLEXPORT(PSUPGLOBALINFOPAGE) g_pSUPGlobalInfoPage = NULL;
     267# define SUPR0_EXPORT_GIP_POINTER
     268#endif
    265269
    266270/**
     
    317321    { "SUPR0EnableVTx",                         (void *)SUPR0EnableVTx },
    318322    { "SUPGetGIP",                              (void *)SUPGetGIP },
     323    { "g_pSUPGlobalInfoPage",                   (void *)&g_pSUPGlobalInfoPageInternal },
    319324    { "RTMemAlloc",                             (void *)UNWIND_WRAP(RTMemAlloc) },
    320325    { "RTMemAllocZ",                            (void *)UNWIND_WRAP(RTMemAllocZ) },
     
    12941299            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs > 0);
    12951300            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs < 16*_1M);
    1296 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    12971301            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0);
    12981302            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0);
    12991303            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits < pReq->u.In.cbImageWithTabs);
    1300 #endif
    13011304            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.szName[0]);
    13021305            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, memchr(pReq->u.In.szName, '\0', sizeof(pReq->u.In.szName)));
    13031306            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, !supdrvCheckInvalidChar(pReq->u.In.szName, ";:()[]{}/\\|&*%#@!~`\"'"));
    1304 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    13051307            REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, memchr(pReq->u.In.szFilename, '\0', sizeof(pReq->u.In.szFilename)));
    1306 #endif
    13071308
    13081309            /* execute */
     
    34703471            pReq->u.Out.pvImageBase   = pImage->pvImage;
    34713472            pReq->u.Out.fNeedsLoading = pImage->uState == SUP_IOCTL_LDR_OPEN;
    3472 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    34733473            pReq->u.Out.fNativeLoader = pImage->fNative;
    3474 #endif
    34753474            supdrvLdrAddUsage(pSession, pImage);
    34763475            RTSemFastMutexRelease(pDevExt->mtxLdr);
     
    34983497    pImage->pvImageAlloc    = NULL;
    34993498    pImage->cbImageWithTabs = pReq->u.In.cbImageWithTabs;
    3500 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    35013499    pImage->cbImageBits     = pReq->u.In.cbImageBits;
    3502 #else
    3503     pImage->cbImageBits     = pReq->u.In.cbImageWithTabs;
    3504 #endif
    35053500    pImage->cSymbols        = 0;
    35063501    pImage->paSymbols       = NULL;
     
    35183513     * on the older method.
    35193514     */
    3520 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    35213515    pImage->fNative         = true;
    3522     RTSemFastMutexRelease(pDevExt->mtxLdr); /*hack*/
    35233516    rc = supdrvOSLdrOpen(pDevExt, pImage, pReq->u.In.szFilename);
    3524     RTSemFastMutexRequest(pDevExt->mtxLdr); /*hack*/
    3525 #else
    3526     rc = VERR_NOT_SUPPORTED;
    3527 #endif
    35283517    if (rc == VERR_NOT_SUPPORTED)
    35293518    {
    35303519        pImage->pvImageAlloc = RTMemExecAlloc(pImage->cbImageBits + 31);
    35313520        pImage->pvImage     = RT_ALIGN_P(pImage->pvImageAlloc, 32);
    3532 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    35333521        pImage->fNative     = false;
    3534 #endif
    35353522        rc = pImage->pvImageAlloc ? VINF_SUCCESS : VERR_NO_MEMORY;
    35363523    }
     
    35543541    pReq->u.Out.pvImageBase   = pImage->pvImage;
    35553542    pReq->u.Out.fNeedsLoading = true;
    3556 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    35573543    pReq->u.Out.fNativeLoader = pImage->fNative;
    3558 #endif
    35593544    RTSemFastMutexRelease(pDevExt->mtxLdr);
    35603545
     
    35913576        }
    35923577
    3593 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    35943578        if (pImage->fNative)
    35953579        {
     
    36023586            }
    36033587        }
    3604 #endif
    36053588    }
    36063589    return VINF_SUCCESS;
     
    36433626     * Validate input.
    36443627     */
    3645 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    36463628    if (   pImage->cbImageWithTabs != pReq->u.In.cbImageWithTabs
    36473629        || pImage->cbImageBits     != pReq->u.In.cbImageBits)
    3648 #else
    3649     if (pImage->cbImageWithTabs != pReq->u.In.cbImageWithTabs)
    3650 #endif
    36513630    {
    36523631        RTSemFastMutexRelease(pDevExt->mtxLdr);
    3653 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    36543632        Log(("SUP_IOCTL_LDR_LOAD: image size mismatch!! %d(prep) != %d(load) or %d != %d\n",
    36553633             pImage->cbImageWithTabs, pReq->u.In.cbImageWithTabs, pImage->cbImageBits, pReq->u.In.cbImageBits));
    3656 #else
    3657         Log(("SUP_IOCTL_LDR_LOAD: image size mismatch!! %d(prep) != %d(load)\n", pImage->cbImageWithTabs, pReq->u.In.cbImageWithTabs));
    3658 #endif
    36593634        return VERR_INVALID_HANDLE;
    36603635    }
     
    37513726        pImage->pfnModuleTerm = pReq->u.In.pfnModuleTerm;
    37523727
    3753 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    37543728        if (pImage->fNative)
    37553729            rc = supdrvOSLdrLoad(pDevExt, pImage, pReq->u.In.achImage);
    37563730        else
    3757 #endif
    37583731            memcpy(pImage->pvImage, &pReq->u.In.achImage[0], pImage->cbImageBits);
    37593732    }
     
    42474220    }
    42484221
    4249 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    42504222    /* do native unload if appropriate. */
    42514223    if (pImage->fNative)
    42524224        supdrvOSLdrUnload(pDevExt, pImage);
    4253 #endif
    42544225
    42554226    /* free the image */
     
    45654536            dprintf(("supdrvGipCreate: %ld ns interval.\n", (long)u32Interval));
    45664537            g_pSUPGlobalInfoPageInternal = pGip;
     4538#ifdef SUPR0_EXPORT_GIP_POINTER
     4539            g_pSUPGlobalInfoPage = pGip;
     4540#endif
    45674541            return VINF_SUCCESS;
    45684542        }
     
    46034577    }
    46044578    g_pSUPGlobalInfoPageInternal = NULL;
     4579#ifdef SUPR0_EXPORT_GIP_POINTER
     4580    g_pSUPGlobalInfoPage = NULL;
     4581#endif
    46054582
    46064583    /*
  • trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h

    r25275 r25278  
    3131#ifndef ___SUPDrvIOC_h___
    3232#define ___SUPDrvIOC_h___
    33 
    34 /*#define VBOX_WITH_NATIVE_R0_LOADER*/
    3533
    3634/*
     
    198196 * @todo Pending work on next major version change:
    199197 *          - Nothing.
    200  *
    201  * @remarks Major version 0x0011YYYY was consumed by the 3.0.12 release. The
    202  *          next major version used on the trunk will be 0x00120000!
    203  */
    204 #ifdef VBOX_WITH_NATIVE_R0_LOADER
     198 */
    205199#define SUPDRV_IOC_VERSION                              0x00120000
    206 #else
    207 #define SUPDRV_IOC_VERSION                              0x00100001
    208 #endif
    209200
    210201/** SUP_IOCTL_COOKIE. */
     
    300291            /** Size of the image we'll be loading (includeing tables). */
    301292            uint32_t        cbImageWithTabs;
    302 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    303293            /** The size of the image bits. (Less or equal to cbImageWithTabs.) */
    304294            uint32_t        cbImageBits;
    305 #endif
    306295            /** Image name.
    307296             * This is the NAME of the image, not the file name. It is used
    308297             * to share code with other processes. (Max len is 32 chars!)  */
    309298            char            szName[32];
    310 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    311299            /** Image file name.
    312300             * This can be used to load the image using a native loader. */
    313301            char            szFilename[196];
    314 #endif
    315302        } In;
    316303        struct
     
    320307            /** Indicate whether or not the image requires loading. */
    321308            bool            fNeedsLoading;
    322 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    323309            /** Indicates that we're using the native ring-0 loader. */
    324310            bool            fNativeLoader;
    325 #endif
    326311        } Out;
    327312    } u;
     
    425410            /** Entry point type. */
    426411            SUPLDRLOADEP    eEPType;
    427 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    428412            /** The size of the image bits (starting at offset 0 and
    429413             * approaching offSymbols). */
    430414            uint32_t        cbImageBits;
    431 #endif
    432415            /** The offset of the symbol table. */
    433416            uint32_t        offSymbols;
  • trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h

    r25262 r25278  
    428428    /** Usage count. */
    429429    uint32_t volatile               cUsage;
    430 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    431 # ifdef RT_OS_WINDOWS
     430#ifdef RT_OS_WINDOWS
    432431    /** The section object for the loaded image (fNative=true). */
    433432    void                           *pvNtSectionObj;
    434 # endif
     433#endif
    435434    /** Whether it's loaded by the native loader or not. */
    436435    bool                            fNative;
    437 #endif
    438436    /** Image name. */
    439437    char                            szName[32];
     
    666664int  VBOXCALL   supdrvOSEnableVTx(bool fEnabled);
    667665
    668 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    669 
    670666/**
    671667 * Try open the image using the native loader.
     
    717713void VBOXCALL   supdrvOSLdrUnload(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage);
    718714
    719 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    720715
    721716/*******************************************************************************
  • trunk/src/VBox/HostDrivers/Support/SUPLib.cpp

    r25263 r25278  
    272272        strcpy(CookieReq.u.In.szMagic, SUPCOOKIE_MAGIC);
    273273        CookieReq.u.In.u32ReqVersion = SUPDRV_IOC_VERSION;
    274 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    275274        const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00120000
    276275                                   ?  0x00120000
    277276                                   :  SUPDRV_IOC_VERSION & 0xffff0000;
    278 #else
    279        const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00100001
    280                                        ?  0x00100001
    281                                    :  SUPDRV_IOC_VERSION & 0xffff0000;
    282 #endif
    283277        CookieReq.u.In.u32MinVersion = uMinVersion;
    284278        rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_COOKIE, &CookieReq, SUP_IOCTL_COOKIE_SIZE);
     
    14981492    if (    pszModule
    14991493        &&  *pszModule
    1500 #if defined(VBOX_WITH_NATIVE_R0_LOADER) && defined(RT_OS_WINDOWS)
    15011494        &&  strcmp(pszModule, "VBoxDrv.sys")
    1502 #else
    1503         &&  strcmp(pszModule, "SUPR0.dll")
    1504 #endif
    15051495        &&  strcmp(pszModule, "VMMR0.r0"))
    15061496    {
     
    15211511     * Lookup symbol.
    15221512     */
     1513    /** @todo is this actually used??? */
    15231514    /* skip the 64-bit ELF import prefix first. */
    15241515    if (!strncmp(pszSymbol, "SUPR0$", sizeof("SUPR0$") - 1))
     
    15561547     * The GIP.
    15571548     */
    1558     /** @todo R0 mapping? */
    15591549    if (    pszSymbol
    15601550        &&  g_pSUPGlobalInfoPage
    15611551        &&  g_pSUPGlobalInfoPageR0
    1562         &&  !strcmp(pszSymbol, "g_SUPGlobalInfoPage"))
     1552        &&  !strcmp(pszSymbol, "g_SUPGlobalInfoPage")
     1553       )
    15631554    {
    15641555        *pValue = (uintptr_t)g_pSUPGlobalInfoPageR0;
     
    16631654    AssertPtrReturn(ppvImageBase, VERR_INVALID_PARAMETER);
    16641655    AssertReturn(strlen(pszModule) < RT_SIZEOFMEMB(SUPLDROPEN, u.In.szName), VERR_FILENAME_TOO_LONG);
    1665 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    16661656    char szAbsFilename[RT_SIZEOFMEMB(SUPLDROPEN, u.In.szFilename)];
    16671657    rc = RTPathAbs(pszFilename, szAbsFilename, sizeof(szAbsFilename));
     
    16691659        return rc;
    16701660    pszFilename = szAbsFilename;
    1671 #endif
    16721661
    16731662    const bool fIsVMMR0 = !strcmp(pszModule, "VMMR0.r0");
     
    17051694        OpenReq.Hdr.rc = VERR_INTERNAL_ERROR;
    17061695        OpenReq.u.In.cbImageWithTabs = cbImageWithTabs;
    1707 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    17081696        OpenReq.u.In.cbImageBits = (uint32_t)CalcArgs.cbImage;
    1709 #endif
    17101697        strcpy(OpenReq.u.In.szName, pszModule);
    1711 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    17121698        strcpy(OpenReq.u.In.szFilename, pszFilename);
    1713 #endif
    17141699        if (!g_u32FakeMode)
    17151700        {
     
    18201805                            pLoadReq->u.In.cbStrTab                   = (uint32_t)CalcArgs.cbStrings;
    18211806                            AssertRelease(pLoadReq->u.In.cbStrTab == CalcArgs.cbStrings);
    1822 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    18231807                            pLoadReq->u.In.cbImageBits                = (uint32_t)CalcArgs.cbImage;
    1824 #endif
    18251808                            pLoadReq->u.In.offSymbols                 = offSymTab;
    18261809                            pLoadReq->u.In.cSymbols                   = CalcArgs.cSymbols;
     
    18391822                               )
    18401823                            {
    1841                                 LogRel(("SUP: Loaded %s (%s) at %#p - ModuleInit at %RTptr and ModuleTerm at %RTptr\n", pszModule, pszFilename,
    1842                                         OpenReq.u.Out.pvImageBase, ModuleInit, ModuleTerm));
     1824                                LogRel(("SUP: Loaded %s (%s) at %#p - ModuleInit at %RTptr and ModuleTerm at %RTptr%s\n",
     1825                                        pszModule, pszFilename, OpenReq.u.Out.pvImageBase, ModuleInit, ModuleTerm,
     1826                                        OpenReq.u.Out.fNativeLoader ? " using the native ring-0 loader" : ""));
    18431827                                if (fIsVMMR0)
    18441828                                {
     
    18701854            if (fIsVMMR0)
    18711855                g_pvVMMR0 = OpenReq.u.Out.pvImageBase;
    1872             LogRel(("SUP: Opened %s (%s) at %#p.\n", pszModule, pszFilename, OpenReq.u.Out.pvImageBase));
     1856            LogRel(("SUP: Opened %s (%s) at %#p.\n", pszModule, pszFilename, OpenReq.u.Out.pvImageBase,
     1857                    OpenReq.u.Out.fNativeLoader ? " loaded by the native ring-0 loader" : ""));
    18731858#ifdef RT_OS_WINDOWS
    18741859            LogRel(("SUP: windbg> .reload /f %s=%#p\n", pszFilename, OpenReq.u.Out.pvImageBase));
  • trunk/src/VBox/HostDrivers/Support/SUPR0.def

    r25275 r25278  
    11; $Id$
    22;; @file
    3 ; VirtualBox Support Driver - Built-in exports.
     3; VirtualBox Support Driver - Exports.
    44;
    55
    66;
    7 ; Copyright (C) 2006-2007 Sun Microsystems, Inc.
     7; Copyright (C) 2006-2009 Sun Microsystems, Inc.
    88;
    99; This file is part of VirtualBox Open Source Edition (OSE), as
     
    2929;
    3030
    31 LIBRARY SUPR0.dll
    32 ;LIBRARY VBoxDrv.sys ;- @todo VBOX_WITH_NATIVE_R0_LOADER
     31LIBRARY VBoxDrv.sys
    3332
    3433EXPORTS
     
    154153
    155154    ; data
    156     g_SUPGlobalInfoPage DATA
     155    g_pSUPGlobalInfoPage DATA
    157156
  • trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp

    r25260 r25278  
    759759}
    760760
    761 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    762761
    763762int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
     
    787786}
    788787
    789 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    790788
    791789/**
  • trunk/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c

    r25260 r25278  
    600600}
    601601
    602 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    603602
    604603int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
     
    628627}
    629628
    630 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    631629
    632630SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...)
  • trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c

    r25260 r25278  
    10061006}
    10071007
    1008 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    10091008
    10101009int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
     
    10341033}
    10351034
    1036 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    10371035
    10381036/**
  • trunk/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp

    r25260 r25278  
    382382}
    383383
    384 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    385384
    386385int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
     
    410409}
    411410
    412 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    413411
    414412/**
  • trunk/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c

    r25262 r25278  
    897897}
    898898
    899 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    900899
    901900int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
     
    927926}
    928927
    929 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    930928
    931929RTDECL(int) SUPR0Printf(const char *pszFormat, ...)
  • trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp

    r25263 r25278  
    594594}
    595595
    596 #ifdef VBOX_WITH_NATIVE_R0_LOADER
    597596
    598597#define MY_SystemLoadGdiDriverInformation               26
     
    614613int  VBOXCALL   supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename)
    615614{
     615#if 0
    616616    MYSYSTEMGDIDRIVERINFO Info;
    617617
     
    657657    pImage->pvNtSectionObj = NULL;
    658658    return VERR_INTERNAL_ERROR_5; /** @todo convert status, making sure it isn't NOT_SUPPORTED. */
     659#else
     660    NOREF(pDevExt); NOREF(pszFilename); NOREF(pImage);
     661    return VERR_NOT_SUPPORTED;
     662#endif
    659663}
    660664
     
    689693}
    690694
    691 #endif /* VBOX_WITH_NATIVE_R0_LOADER */
    692695
    693696/**
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