Changeset 25278 in vbox for trunk/src/VBox/HostDrivers/Support/SUPLib.cpp
- Timestamp:
- Dec 9, 2009 4:37:00 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 55820
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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));
Note:
See TracChangeset
for help on using the changeset viewer.