Changeset 25278 in vbox
- Timestamp:
- Dec 9, 2009 4:37:00 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 55820
- Location:
- trunk
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Config.kmk
r25261 r25278 2067 2067 TEMPLATE_VBOXGC_LIBS = \ 2068 2068 $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib 2069 TEMPLATE_VBOXGC_POST_CMDS = $(VBOX_SIGN_IMAGE_CMDS) 2069 2070 endif # pe 2070 2071 … … 2184 2185 TEMPLATE_VBOXR0_LIBS.x86 = \ 2185 2186 $(PATH_SDK_W2K3DDKX86_LIB)/int64.lib 2186 ifdef VBOX_WITH_NATIVE_R0_LOADER2187 2187 TEMPLATE_VBOXR0_POST_CMDS = $(VBOX_SIGN_DRIVER_CMDS) 2188 endif2189 2188 endif # pe 2190 2189 -
trunk/include/VBox/sup.h
r25275 r25278 219 219 #if defined(IN_SUP_R0) || defined(IN_SUP_R3) || defined(IN_SUP_GC) 220 220 extern 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) 223 extern 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) 224 228 # else 225 extern DECLIMPORT(SUPGLOBALINFOPAGE) g_SUPGlobalInfoPage; 226 # if defined(__GNUC__) && !defined(RT_OS_DARWIN) && defined(RT_ARCH_AMD64) 229 # define g_pSUPGlobalInfoPage (SUPGetGIPHlp()) 227 230 /** Workaround for ELF+GCC problem on 64-bit hosts. 228 231 * (GCC emits a mov with a R_X86_64_32 reloc, we need R_X86_64_64.) */ … … 234 237 return pGIP; 235 238 } 236 # define g_pSUPGlobalInfoPage (SUPGetGIPHlp())237 # else238 # define g_pSUPGlobalInfoPage (&g_SUPGlobalInfoPage)239 # endif240 239 # 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. */ 243 extern DECLIMPORT(SUPGLOBALINFOPAGE) g_SUPGlobalInfoPage; 243 244 #endif 244 245 -
trunk/src/VBox/HostDrivers/Support/Makefile.kmk
r25260 r25278 84 84 $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC) \ 85 85 $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,) 86 ifdef VBOX_WITH_NATIVE_R0_LOADER87 SUPR3_DEFS += VBOX_WITH_NATIVE_R0_LOADER88 endif89 86 SUPR3_INCS := $(PATH_SUB_CURRENT) 90 87 SUPR3_INCS.l4 = $(L4_INCDIR) … … 105 102 $(if $(VBOX_WITH_SUPSVC),VBOX_WITH_SUPSVC,) \ 106 103 $(if $(VBOX_WITH_MAIN),VBOX_WITH_MAIN,) 107 ifdef VBOX_WITH_NATIVE_R0_LOADER108 SUPR3HardenedStatic_DEFS += VBOX_WITH_NATIVE_R0_LOADER109 endif110 104 SUPR3HardenedStatic_INCS = . 111 105 SUPR3HardenedStatic_SOURCES = \ … … 179 173 VBoxDrv_DEFS += VBOX_WITH_VMMR0_DISABLE_PREEMPTION 180 174 endif 181 ifdef VBOX_WITH_NATIVE_R0_LOADER182 VBoxDrv_DEFS += VBOX_WITH_NATIVE_R0_LOADER183 endif184 175 VBoxDrv_SDKS = W2K3DDK WINPSDKINCS 185 176 VBoxDrv_INCS := $(PATH_SUB_CURRENT) … … 236 227 ifdef VBOX_LINUX_VERSION_2_4 237 228 vboxdrv_DEFS += EXPORT_SYMTAB 238 endif239 ifdef VBOX_WITH_NATIVE_R0_LOADER240 VBoxDrv_DEFS += VBOX_WITH_NATIVE_R0_LOADER241 229 endif 242 230 vboxdrv_INCS := \ … … 326 314 VBoxDrvTiger_INST = $(INST_VBOXDRV_TIGER)Contents/MacOS/ 327 315 VBoxDrvTiger_DEFS := IN_RT_R0 IN_SUP_R0 SUPDRV_WITH_RELEASE_LOGGER VBOX_SVN_REV=$(VBOX_SVN_REV) 328 ifdef VBOX_WITH_NATIVE_R0_LOADER329 VBoxDrvTiger_DEFS += VBOX_WITH_NATIVE_R0_LOADER330 endif331 316 VBoxDrvTiger_DEFS.debug += DEBUG_DARWIN_GIP 332 317 VBoxDrvTiger_INCS = . … … 394 379 VBoxDrv_TEMPLATE = VBOXR0DRV 395 380 VBoxDrv_DEFS = IN_RT_R0 IN_SUP_R0 396 ifdef VBOX_WITH_NATIVE_R0_LOADER397 VBoxDrv_DEFS += VBOX_WITH_NATIVE_R0_LOADER398 endif399 381 VBoxDrv_INCS := $(PATH_SUB_CURRENT) 400 382 #VBoxDrv_LDFLAGS = -s -t -v … … 413 395 VBoxDrvLib_NOINST = 1 414 396 VBoxDrvLib_DEFS = IN_RT_R0 IN_SUP_R0 415 ifdef VBOX_WITH_NATIVE_R0_LOADER416 VBoxDrvLib_DEFS += VBOX_WITH_NATIVE_R0_LOADER417 endif418 397 VBoxDrvLib_INCS := \ 419 398 . \ … … 432 411 vboxdrv_TEMPLATE = VBOXR0DRV 433 412 vboxdrv_DEFS = IN_RT_R0 IN_SUP_R0 SUPDRV_WITH_RELEASE_LOGGER VBOX_SVN_REV=$(VBOX_SVN_REV) 434 ifdef VBOX_WITH_NATIVE_R0_LOADER435 vboxdrv_DEFS += VBOX_WITH_NATIVE_R0_LOADER436 endif437 413 vboxdrv_INCS := $(PATH_SUB_CURRENT) 438 414 vboxdrv_LIBS = $(PATH_LIB)/RuntimeR0Drv$(VBOX_SUFF_LIB) … … 478 454 endif 479 455 vboxdrv_DEFS += VBOX_SVN_REV=$(VBOX_SVN_REV) 480 ifdef VBOX_WITH_NATIVE_R0_LOADER481 vboxdrv_DEFS += VBOX_WITH_NATIVE_R0_LOADER482 endif483 456 vboxdrv_DEPS += $(VBOX_SVN_REV_KMK) 484 457 vboxdrv_INCS := $(PATH_SUB_CURRENT) -
trunk/src/VBox/HostDrivers/Support/SUPDrv.c
r25275 r25278 262 262 *******************************************************************************/ 263 263 /** Pointer to the global info page for implementing SUPGetGIP(). */ 264 static PSUPGLOBALINFOPAGE g_pSUPGlobalInfoPageInternal = NULL; 264 static PSUPGLOBALINFOPAGE g_pSUPGlobalInfoPageInternal = NULL; 265 #if defined(RT_OS_WINDOWS) 266 DECLEXPORT(PSUPGLOBALINFOPAGE) g_pSUPGlobalInfoPage = NULL; 267 # define SUPR0_EXPORT_GIP_POINTER 268 #endif 265 269 266 270 /** … … 317 321 { "SUPR0EnableVTx", (void *)SUPR0EnableVTx }, 318 322 { "SUPGetGIP", (void *)SUPGetGIP }, 323 { "g_pSUPGlobalInfoPage", (void *)&g_pSUPGlobalInfoPageInternal }, 319 324 { "RTMemAlloc", (void *)UNWIND_WRAP(RTMemAlloc) }, 320 325 { "RTMemAllocZ", (void *)UNWIND_WRAP(RTMemAllocZ) }, … … 1294 1299 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs > 0); 1295 1300 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageWithTabs < 16*_1M); 1296 #ifdef VBOX_WITH_NATIVE_R0_LOADER1297 1301 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0); 1298 1302 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits > 0); 1299 1303 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.cbImageBits < pReq->u.In.cbImageWithTabs); 1300 #endif1301 1304 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, pReq->u.In.szName[0]); 1302 1305 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, memchr(pReq->u.In.szName, '\0', sizeof(pReq->u.In.szName))); 1303 1306 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, !supdrvCheckInvalidChar(pReq->u.In.szName, ";:()[]{}/\\|&*%#@!~`\"'")); 1304 #ifdef VBOX_WITH_NATIVE_R0_LOADER1305 1307 REQ_CHECK_EXPR(SUP_IOCTL_LDR_OPEN, memchr(pReq->u.In.szFilename, '\0', sizeof(pReq->u.In.szFilename))); 1306 #endif1307 1308 1308 1309 /* execute */ … … 3470 3471 pReq->u.Out.pvImageBase = pImage->pvImage; 3471 3472 pReq->u.Out.fNeedsLoading = pImage->uState == SUP_IOCTL_LDR_OPEN; 3472 #ifdef VBOX_WITH_NATIVE_R0_LOADER3473 3473 pReq->u.Out.fNativeLoader = pImage->fNative; 3474 #endif3475 3474 supdrvLdrAddUsage(pSession, pImage); 3476 3475 RTSemFastMutexRelease(pDevExt->mtxLdr); … … 3498 3497 pImage->pvImageAlloc = NULL; 3499 3498 pImage->cbImageWithTabs = pReq->u.In.cbImageWithTabs; 3500 #ifdef VBOX_WITH_NATIVE_R0_LOADER3501 3499 pImage->cbImageBits = pReq->u.In.cbImageBits; 3502 #else3503 pImage->cbImageBits = pReq->u.In.cbImageWithTabs;3504 #endif3505 3500 pImage->cSymbols = 0; 3506 3501 pImage->paSymbols = NULL; … … 3518 3513 * on the older method. 3519 3514 */ 3520 #ifdef VBOX_WITH_NATIVE_R0_LOADER3521 3515 pImage->fNative = true; 3522 RTSemFastMutexRelease(pDevExt->mtxLdr); /*hack*/3523 3516 rc = supdrvOSLdrOpen(pDevExt, pImage, pReq->u.In.szFilename); 3524 RTSemFastMutexRequest(pDevExt->mtxLdr); /*hack*/3525 #else3526 rc = VERR_NOT_SUPPORTED;3527 #endif3528 3517 if (rc == VERR_NOT_SUPPORTED) 3529 3518 { 3530 3519 pImage->pvImageAlloc = RTMemExecAlloc(pImage->cbImageBits + 31); 3531 3520 pImage->pvImage = RT_ALIGN_P(pImage->pvImageAlloc, 32); 3532 #ifdef VBOX_WITH_NATIVE_R0_LOADER3533 3521 pImage->fNative = false; 3534 #endif3535 3522 rc = pImage->pvImageAlloc ? VINF_SUCCESS : VERR_NO_MEMORY; 3536 3523 } … … 3554 3541 pReq->u.Out.pvImageBase = pImage->pvImage; 3555 3542 pReq->u.Out.fNeedsLoading = true; 3556 #ifdef VBOX_WITH_NATIVE_R0_LOADER3557 3543 pReq->u.Out.fNativeLoader = pImage->fNative; 3558 #endif3559 3544 RTSemFastMutexRelease(pDevExt->mtxLdr); 3560 3545 … … 3591 3576 } 3592 3577 3593 #ifdef VBOX_WITH_NATIVE_R0_LOADER3594 3578 if (pImage->fNative) 3595 3579 { … … 3602 3586 } 3603 3587 } 3604 #endif3605 3588 } 3606 3589 return VINF_SUCCESS; … … 3643 3626 * Validate input. 3644 3627 */ 3645 #ifdef VBOX_WITH_NATIVE_R0_LOADER3646 3628 if ( pImage->cbImageWithTabs != pReq->u.In.cbImageWithTabs 3647 3629 || pImage->cbImageBits != pReq->u.In.cbImageBits) 3648 #else3649 if (pImage->cbImageWithTabs != pReq->u.In.cbImageWithTabs)3650 #endif3651 3630 { 3652 3631 RTSemFastMutexRelease(pDevExt->mtxLdr); 3653 #ifdef VBOX_WITH_NATIVE_R0_LOADER3654 3632 Log(("SUP_IOCTL_LDR_LOAD: image size mismatch!! %d(prep) != %d(load) or %d != %d\n", 3655 3633 pImage->cbImageWithTabs, pReq->u.In.cbImageWithTabs, pImage->cbImageBits, pReq->u.In.cbImageBits)); 3656 #else3657 Log(("SUP_IOCTL_LDR_LOAD: image size mismatch!! %d(prep) != %d(load)\n", pImage->cbImageWithTabs, pReq->u.In.cbImageWithTabs));3658 #endif3659 3634 return VERR_INVALID_HANDLE; 3660 3635 } … … 3751 3726 pImage->pfnModuleTerm = pReq->u.In.pfnModuleTerm; 3752 3727 3753 #ifdef VBOX_WITH_NATIVE_R0_LOADER3754 3728 if (pImage->fNative) 3755 3729 rc = supdrvOSLdrLoad(pDevExt, pImage, pReq->u.In.achImage); 3756 3730 else 3757 #endif3758 3731 memcpy(pImage->pvImage, &pReq->u.In.achImage[0], pImage->cbImageBits); 3759 3732 } … … 4247 4220 } 4248 4221 4249 #ifdef VBOX_WITH_NATIVE_R0_LOADER4250 4222 /* do native unload if appropriate. */ 4251 4223 if (pImage->fNative) 4252 4224 supdrvOSLdrUnload(pDevExt, pImage); 4253 #endif4254 4225 4255 4226 /* free the image */ … … 4565 4536 dprintf(("supdrvGipCreate: %ld ns interval.\n", (long)u32Interval)); 4566 4537 g_pSUPGlobalInfoPageInternal = pGip; 4538 #ifdef SUPR0_EXPORT_GIP_POINTER 4539 g_pSUPGlobalInfoPage = pGip; 4540 #endif 4567 4541 return VINF_SUCCESS; 4568 4542 } … … 4603 4577 } 4604 4578 g_pSUPGlobalInfoPageInternal = NULL; 4579 #ifdef SUPR0_EXPORT_GIP_POINTER 4580 g_pSUPGlobalInfoPage = NULL; 4581 #endif 4605 4582 4606 4583 /* -
trunk/src/VBox/HostDrivers/Support/SUPDrvIOC.h
r25275 r25278 31 31 #ifndef ___SUPDrvIOC_h___ 32 32 #define ___SUPDrvIOC_h___ 33 34 /*#define VBOX_WITH_NATIVE_R0_LOADER*/35 33 36 34 /* … … 198 196 * @todo Pending work on next major version change: 199 197 * - 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 */ 205 199 #define SUPDRV_IOC_VERSION 0x00120000 206 #else207 #define SUPDRV_IOC_VERSION 0x00100001208 #endif209 200 210 201 /** SUP_IOCTL_COOKIE. */ … … 300 291 /** Size of the image we'll be loading (includeing tables). */ 301 292 uint32_t cbImageWithTabs; 302 #ifdef VBOX_WITH_NATIVE_R0_LOADER303 293 /** The size of the image bits. (Less or equal to cbImageWithTabs.) */ 304 294 uint32_t cbImageBits; 305 #endif306 295 /** Image name. 307 296 * This is the NAME of the image, not the file name. It is used 308 297 * to share code with other processes. (Max len is 32 chars!) */ 309 298 char szName[32]; 310 #ifdef VBOX_WITH_NATIVE_R0_LOADER311 299 /** Image file name. 312 300 * This can be used to load the image using a native loader. */ 313 301 char szFilename[196]; 314 #endif315 302 } In; 316 303 struct … … 320 307 /** Indicate whether or not the image requires loading. */ 321 308 bool fNeedsLoading; 322 #ifdef VBOX_WITH_NATIVE_R0_LOADER323 309 /** Indicates that we're using the native ring-0 loader. */ 324 310 bool fNativeLoader; 325 #endif326 311 } Out; 327 312 } u; … … 425 410 /** Entry point type. */ 426 411 SUPLDRLOADEP eEPType; 427 #ifdef VBOX_WITH_NATIVE_R0_LOADER428 412 /** The size of the image bits (starting at offset 0 and 429 413 * approaching offSymbols). */ 430 414 uint32_t cbImageBits; 431 #endif432 415 /** The offset of the symbol table. */ 433 416 uint32_t offSymbols; -
trunk/src/VBox/HostDrivers/Support/SUPDrvInternal.h
r25262 r25278 428 428 /** Usage count. */ 429 429 uint32_t volatile cUsage; 430 #ifdef VBOX_WITH_NATIVE_R0_LOADER 431 # ifdef RT_OS_WINDOWS 430 #ifdef RT_OS_WINDOWS 432 431 /** The section object for the loaded image (fNative=true). */ 433 432 void *pvNtSectionObj; 434 # 433 #endif 435 434 /** Whether it's loaded by the native loader or not. */ 436 435 bool fNative; 437 #endif438 436 /** Image name. */ 439 437 char szName[32]; … … 666 664 int VBOXCALL supdrvOSEnableVTx(bool fEnabled); 667 665 668 #ifdef VBOX_WITH_NATIVE_R0_LOADER669 670 666 /** 671 667 * Try open the image using the native loader. … … 717 713 void VBOXCALL supdrvOSLdrUnload(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage); 718 714 719 #endif /* VBOX_WITH_NATIVE_R0_LOADER */720 715 721 716 /******************************************************************************* -
trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
r25263 r25278 272 272 strcpy(CookieReq.u.In.szMagic, SUPCOOKIE_MAGIC); 273 273 CookieReq.u.In.u32ReqVersion = SUPDRV_IOC_VERSION; 274 #ifdef VBOX_WITH_NATIVE_R0_LOADER275 274 const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00120000 276 275 ? 0x00120000 277 276 : SUPDRV_IOC_VERSION & 0xffff0000; 278 #else279 const uint32_t uMinVersion = (SUPDRV_IOC_VERSION & 0xffff0000) == 0x00100001280 ? 0x00100001281 : SUPDRV_IOC_VERSION & 0xffff0000;282 #endif283 277 CookieReq.u.In.u32MinVersion = uMinVersion; 284 278 rc = suplibOsIOCtl(&g_supLibData, SUP_IOCTL_COOKIE, &CookieReq, SUP_IOCTL_COOKIE_SIZE); … … 1498 1492 if ( pszModule 1499 1493 && *pszModule 1500 #if defined(VBOX_WITH_NATIVE_R0_LOADER) && defined(RT_OS_WINDOWS)1501 1494 && strcmp(pszModule, "VBoxDrv.sys") 1502 #else1503 && strcmp(pszModule, "SUPR0.dll")1504 #endif1505 1495 && strcmp(pszModule, "VMMR0.r0")) 1506 1496 { … … 1521 1511 * Lookup symbol. 1522 1512 */ 1513 /** @todo is this actually used??? */ 1523 1514 /* skip the 64-bit ELF import prefix first. */ 1524 1515 if (!strncmp(pszSymbol, "SUPR0$", sizeof("SUPR0$") - 1)) … … 1556 1547 * The GIP. 1557 1548 */ 1558 /** @todo R0 mapping? */1559 1549 if ( pszSymbol 1560 1550 && g_pSUPGlobalInfoPage 1561 1551 && g_pSUPGlobalInfoPageR0 1562 && !strcmp(pszSymbol, "g_SUPGlobalInfoPage")) 1552 && !strcmp(pszSymbol, "g_SUPGlobalInfoPage") 1553 ) 1563 1554 { 1564 1555 *pValue = (uintptr_t)g_pSUPGlobalInfoPageR0; … … 1663 1654 AssertPtrReturn(ppvImageBase, VERR_INVALID_PARAMETER); 1664 1655 AssertReturn(strlen(pszModule) < RT_SIZEOFMEMB(SUPLDROPEN, u.In.szName), VERR_FILENAME_TOO_LONG); 1665 #ifdef VBOX_WITH_NATIVE_R0_LOADER1666 1656 char szAbsFilename[RT_SIZEOFMEMB(SUPLDROPEN, u.In.szFilename)]; 1667 1657 rc = RTPathAbs(pszFilename, szAbsFilename, sizeof(szAbsFilename)); … … 1669 1659 return rc; 1670 1660 pszFilename = szAbsFilename; 1671 #endif1672 1661 1673 1662 const bool fIsVMMR0 = !strcmp(pszModule, "VMMR0.r0"); … … 1705 1694 OpenReq.Hdr.rc = VERR_INTERNAL_ERROR; 1706 1695 OpenReq.u.In.cbImageWithTabs = cbImageWithTabs; 1707 #ifdef VBOX_WITH_NATIVE_R0_LOADER1708 1696 OpenReq.u.In.cbImageBits = (uint32_t)CalcArgs.cbImage; 1709 #endif1710 1697 strcpy(OpenReq.u.In.szName, pszModule); 1711 #ifdef VBOX_WITH_NATIVE_R0_LOADER1712 1698 strcpy(OpenReq.u.In.szFilename, pszFilename); 1713 #endif1714 1699 if (!g_u32FakeMode) 1715 1700 { … … 1820 1805 pLoadReq->u.In.cbStrTab = (uint32_t)CalcArgs.cbStrings; 1821 1806 AssertRelease(pLoadReq->u.In.cbStrTab == CalcArgs.cbStrings); 1822 #ifdef VBOX_WITH_NATIVE_R0_LOADER1823 1807 pLoadReq->u.In.cbImageBits = (uint32_t)CalcArgs.cbImage; 1824 #endif1825 1808 pLoadReq->u.In.offSymbols = offSymTab; 1826 1809 pLoadReq->u.In.cSymbols = CalcArgs.cSymbols; … … 1839 1822 ) 1840 1823 { 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" : "")); 1843 1827 if (fIsVMMR0) 1844 1828 { … … 1870 1854 if (fIsVMMR0) 1871 1855 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" : "")); 1873 1858 #ifdef RT_OS_WINDOWS 1874 1859 LogRel(("SUP: windbg> .reload /f %s=%#p\n", pszFilename, OpenReq.u.Out.pvImageBase)); -
trunk/src/VBox/HostDrivers/Support/SUPR0.def
r25275 r25278 1 1 ; $Id$ 2 2 ;; @file 3 ; VirtualBox Support Driver - Built-in exports.3 ; VirtualBox Support Driver - Exports. 4 4 ; 5 5 6 6 ; 7 ; Copyright (C) 2006-200 7Sun Microsystems, Inc.7 ; Copyright (C) 2006-2009 Sun Microsystems, Inc. 8 8 ; 9 9 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 29 29 ; 30 30 31 LIBRARY SUPR0.dll 32 ;LIBRARY VBoxDrv.sys ;- @todo VBOX_WITH_NATIVE_R0_LOADER 31 LIBRARY VBoxDrv.sys 33 32 34 33 EXPORTS … … 154 153 155 154 ; data 156 g_ SUPGlobalInfoPage DATA155 g_pSUPGlobalInfoPage DATA 157 156 -
trunk/src/VBox/HostDrivers/Support/darwin/SUPDrv-darwin.cpp
r25260 r25278 759 759 } 760 760 761 #ifdef VBOX_WITH_NATIVE_R0_LOADER762 761 763 762 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) … … 787 786 } 788 787 789 #endif /* VBOX_WITH_NATIVE_R0_LOADER */790 788 791 789 /** -
trunk/src/VBox/HostDrivers/Support/freebsd/SUPDrv-freebsd.c
r25260 r25278 600 600 } 601 601 602 #ifdef VBOX_WITH_NATIVE_R0_LOADER603 602 604 603 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) … … 628 627 } 629 628 630 #endif /* VBOX_WITH_NATIVE_R0_LOADER */631 629 632 630 SUPR0DECL(int) SUPR0Printf(const char *pszFormat, ...) -
trunk/src/VBox/HostDrivers/Support/linux/SUPDrv-linux.c
r25260 r25278 1006 1006 } 1007 1007 1008 #ifdef VBOX_WITH_NATIVE_R0_LOADER1009 1008 1010 1009 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) … … 1034 1033 } 1035 1034 1036 #endif /* VBOX_WITH_NATIVE_R0_LOADER */1037 1035 1038 1036 /** -
trunk/src/VBox/HostDrivers/Support/os2/SUPDrv-os2.cpp
r25260 r25278 382 382 } 383 383 384 #ifdef VBOX_WITH_NATIVE_R0_LOADER385 384 386 385 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) … … 410 409 } 411 410 412 #endif /* VBOX_WITH_NATIVE_R0_LOADER */413 411 414 412 /** -
trunk/src/VBox/HostDrivers/Support/solaris/SUPDrv-solaris.c
r25262 r25278 897 897 } 898 898 899 #ifdef VBOX_WITH_NATIVE_R0_LOADER900 899 901 900 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) … … 927 926 } 928 927 929 #endif /* VBOX_WITH_NATIVE_R0_LOADER */930 928 931 929 RTDECL(int) SUPR0Printf(const char *pszFormat, ...) -
trunk/src/VBox/HostDrivers/Support/win/SUPDrv-win.cpp
r25263 r25278 594 594 } 595 595 596 #ifdef VBOX_WITH_NATIVE_R0_LOADER597 596 598 597 #define MY_SystemLoadGdiDriverInformation 26 … … 614 613 int VBOXCALL supdrvOSLdrOpen(PSUPDRVDEVEXT pDevExt, PSUPDRVLDRIMAGE pImage, const char *pszFilename) 615 614 { 615 #if 0 616 616 MYSYSTEMGDIDRIVERINFO Info; 617 617 … … 657 657 pImage->pvNtSectionObj = NULL; 658 658 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 659 663 } 660 664 … … 689 693 } 690 694 691 #endif /* VBOX_WITH_NATIVE_R0_LOADER */692 695 693 696 /**
Note:
See TracChangeset
for help on using the changeset viewer.