Changeset 11224 in vbox for trunk/src/VBox
- Timestamp:
- Aug 7, 2008 6:25:15 PM (17 years ago)
- svn:sync-xref-src-repo-rev:
- 34279
- Location:
- trunk/src/VBox
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Bus/DevPCI.cpp
r11192 r11224 1483 1483 1484 1484 PciBusReg.u32Version = PDM_PCIBUSREG_VERSION; 1485 PciBusReg.pfnRegister HC= pciRegister;1486 PciBusReg.pfnIORegionRegister HC= pciIORegionRegister;1487 PciBusReg.pfnSetConfigCallbacks HC= pciSetConfigCallbacks;1488 PciBusReg.pfnSetIrq HC= pciSetIrq;1489 PciBusReg.pfnSaveExec HC= pciGenericSaveExec;1490 PciBusReg.pfnLoadExec HC= pciGenericLoadExec;1491 PciBusReg.pfnFakePCIBIOS HC= pciFakePCIBIOS;1492 PciBusReg.pszSetIrq GC = fGCEnabled ? "pciSetIrq" : NULL;1485 PciBusReg.pfnRegisterR3 = pciRegister; 1486 PciBusReg.pfnIORegionRegisterR3 = pciIORegionRegister; 1487 PciBusReg.pfnSetConfigCallbacksR3 = pciSetConfigCallbacks; 1488 PciBusReg.pfnSetIrqR3 = pciSetIrq; 1489 PciBusReg.pfnSaveExecR3 = pciGenericSaveExec; 1490 PciBusReg.pfnLoadExecR3 = pciGenericLoadExec; 1491 PciBusReg.pfnFakePCIBIOSR3 = pciFakePCIBIOS; 1492 PciBusReg.pszSetIrqRC = fGCEnabled ? "pciSetIrq" : NULL; 1493 1493 PciBusReg.pszSetIrqR0 = fR0Enabled ? "pciSetIrq" : NULL; 1494 1494 rc = pDevIns->pDevHlp->pfnPCIBusRegister(pDevIns, &PciBusReg, &pBus->pPciHlpR3); -
trunk/src/VBox/VMM/PDM.cpp
r11219 r11224 300 300 for (unsigned i = 0; i < ELEMENTS(pVM->pdm.s.aPciBuses); i++) 301 301 { 302 if (pVM->pdm.s.aPciBuses[i].pDevIns GC)303 { 304 pVM->pdm.s.aPciBuses[i].pDevIns GC += offDelta;305 pVM->pdm.s.aPciBuses[i].pfnSetIrq GC += offDelta;302 if (pVM->pdm.s.aPciBuses[i].pDevInsRC) 303 { 304 pVM->pdm.s.aPciBuses[i].pDevInsRC += offDelta; 305 pVM->pdm.s.aPciBuses[i].pfnSetIrqRC += offDelta; 306 306 } 307 307 } -
trunk/src/VBox/VMM/PDMDevice.cpp
r11219 r11224 2355 2355 PVM pVM = pDevIns->Internal.s.pVMHC; 2356 2356 VM_ASSERT_EMT(pVM); 2357 LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: pPciBusReg=%p:{.u32Version=%#x, .pfnRegister HC=%p, .pfnIORegionRegisterHC=%p, .pfnSetIrqHC=%p, "2358 ".pfnSaveExec HC=%p, .pfnLoadExecHC=%p, .pfnFakePCIBIOSHC=%p, .pszSetIrqGC=%p:{%s}} ppPciHlpR3=%p\n",2359 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, pPciBusReg, pPciBusReg->u32Version, pPciBusReg->pfnRegister HC,2360 pPciBusReg->pfnIORegionRegister HC, pPciBusReg->pfnSetIrqHC, pPciBusReg->pfnSaveExecHC, pPciBusReg->pfnLoadExecHC,2361 pPciBusReg->pfnFakePCIBIOS HC, pPciBusReg->pszSetIrqGC, pPciBusReg->pszSetIrqGC, ppPciHlpR3));2357 LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: pPciBusReg=%p:{.u32Version=%#x, .pfnRegisterR3=%p, .pfnIORegionRegisterR3=%p, .pfnSetIrqR3=%p, " 2358 ".pfnSaveExecR3=%p, .pfnLoadExecR3=%p, .pfnFakePCIBIOSR3=%p, .pszSetIrqRC=%p:{%s}, .pszSetIrqR0=%p:{%s}} ppPciHlpR3=%p\n", 2359 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, pPciBusReg, pPciBusReg->u32Version, pPciBusReg->pfnRegisterR3, 2360 pPciBusReg->pfnIORegionRegisterR3, pPciBusReg->pfnSetIrqR3, pPciBusReg->pfnSaveExecR3, pPciBusReg->pfnLoadExecR3, 2361 pPciBusReg->pfnFakePCIBIOSR3, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqRC, pPciBusReg->pszSetIrqR0, pPciBusReg->pszSetIrqR0, ppPciHlpR3)); 2362 2362 2363 2363 /* … … 2370 2370 return VERR_INVALID_PARAMETER; 2371 2371 } 2372 if ( !pPciBusReg->pfnRegister HC2373 || !pPciBusReg->pfnIORegionRegister HC2374 || !pPciBusReg->pfnSetIrq HC2375 || !pPciBusReg->pfnSaveExec HC2376 || !pPciBusReg->pfnLoadExec HC2377 || !pPciBusReg->pfnFakePCIBIOS HC)2378 { 2379 Assert(pPciBusReg->pfnRegister HC);2380 Assert(pPciBusReg->pfnIORegionRegister HC);2381 Assert(pPciBusReg->pfnSetIrq HC);2382 Assert(pPciBusReg->pfnSaveExec HC);2383 Assert(pPciBusReg->pfnLoadExec HC);2384 Assert(pPciBusReg->pfnFakePCIBIOS HC);2385 LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: returns %Vrc ( HCcallbacks)\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VERR_INVALID_PARAMETER));2372 if ( !pPciBusReg->pfnRegisterR3 2373 || !pPciBusReg->pfnIORegionRegisterR3 2374 || !pPciBusReg->pfnSetIrqR3 2375 || !pPciBusReg->pfnSaveExecR3 2376 || !pPciBusReg->pfnLoadExecR3 2377 || !pPciBusReg->pfnFakePCIBIOSR3) 2378 { 2379 Assert(pPciBusReg->pfnRegisterR3); 2380 Assert(pPciBusReg->pfnIORegionRegisterR3); 2381 Assert(pPciBusReg->pfnSetIrqR3); 2382 Assert(pPciBusReg->pfnSaveExecR3); 2383 Assert(pPciBusReg->pfnLoadExecR3); 2384 Assert(pPciBusReg->pfnFakePCIBIOSR3); 2385 LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: returns %Vrc (R3 callbacks)\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VERR_INVALID_PARAMETER)); 2386 2386 return VERR_INVALID_PARAMETER; 2387 2387 } 2388 if ( pPciBusReg->pszSetIrq GC2389 && !VALID_PTR(pPciBusReg->pszSetIrq GC))2390 { 2391 Assert(VALID_PTR(pPciBusReg->pszSetIrq GC));2388 if ( pPciBusReg->pszSetIrqRC 2389 && !VALID_PTR(pPciBusReg->pszSetIrqRC)) 2390 { 2391 Assert(VALID_PTR(pPciBusReg->pszSetIrqRC)); 2392 2392 LogFlow(("pdmR3DevHlp_PCIBusRegister: caller='%s'/%d: returns %Vrc (GC callbacks)\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VERR_INVALID_PARAMETER)); 2393 2393 return VERR_INVALID_PARAMETER; … … 2423 2423 2424 2424 /* 2425 * Resolve and init the GC bits.2426 */ 2427 if (pPciBusReg->pszSetIrq GC)2428 { 2429 int rc = PDMR3GetSymbolGCLazy(pVM, pDevIns->pDevReg->szGCMod, pPciBusReg->pszSetIrq GC, &pPciBus->pfnSetIrqGC);2430 AssertMsgRC(rc, ("%s::%s rc=%Vrc\n", pDevIns->pDevReg->szGCMod, pPciBusReg->pszSetIrq GC, rc));2425 * Resolve and init the RC bits. 2426 */ 2427 if (pPciBusReg->pszSetIrqRC) 2428 { 2429 int rc = PDMR3GetSymbolGCLazy(pVM, pDevIns->pDevReg->szGCMod, pPciBusReg->pszSetIrqRC, &pPciBus->pfnSetIrqRC); 2430 AssertMsgRC(rc, ("%s::%s rc=%Vrc\n", pDevIns->pDevReg->szGCMod, pPciBusReg->pszSetIrqRC, rc)); 2431 2431 if (VBOX_FAILURE(rc)) 2432 2432 { … … 2434 2434 return rc; 2435 2435 } 2436 pPciBus->pDevIns GC = PDMDEVINS_2_GCPTR(pDevIns);2436 pPciBus->pDevInsRC = PDMDEVINS_2_RCPTR(pDevIns); 2437 2437 } 2438 2438 else 2439 2439 { 2440 pPciBus->pfnSetIrq GC = 0;2441 pPciBus->pDevIns GC = 0;2440 pPciBus->pfnSetIrqRC = 0; 2441 pPciBus->pDevInsRC = 0; 2442 2442 } 2443 2443 … … 2463 2463 2464 2464 /* 2465 * Init the HCbits.2465 * Init the R3 bits. 2466 2466 */ 2467 2467 pPciBus->iBus = iBus; 2468 2468 pPciBus->pDevInsR3 = pDevIns; 2469 pPciBus->pfnRegisterR3 = pPciBusReg->pfnRegister HC;2470 pPciBus->pfnIORegionRegisterR3 = pPciBusReg->pfnIORegionRegister HC;2471 pPciBus->pfnSetConfigCallbacksR3 = pPciBusReg->pfnSetConfigCallbacks HC;2472 pPciBus->pfnSetIrqR3 = pPciBusReg->pfnSetIrq HC;2473 pPciBus->pfnSaveExecR3 = pPciBusReg->pfnSaveExec HC;2474 pPciBus->pfnLoadExecR3 = pPciBusReg->pfnLoadExec HC;2475 pPciBus->pfnFakePCIBIOSR3 = pPciBusReg->pfnFakePCIBIOS HC;2469 pPciBus->pfnRegisterR3 = pPciBusReg->pfnRegisterR3; 2470 pPciBus->pfnIORegionRegisterR3 = pPciBusReg->pfnIORegionRegisterR3; 2471 pPciBus->pfnSetConfigCallbacksR3 = pPciBusReg->pfnSetConfigCallbacksR3; 2472 pPciBus->pfnSetIrqR3 = pPciBusReg->pfnSetIrqR3; 2473 pPciBus->pfnSaveExecR3 = pPciBusReg->pfnSaveExecR3; 2474 pPciBus->pfnLoadExecR3 = pPciBusReg->pfnLoadExecR3; 2475 pPciBus->pfnFakePCIBIOSR3 = pPciBusReg->pfnFakePCIBIOSR3; 2476 2476 2477 2477 Log(("PDM: Registered PCI bus device '%s'/%d pDevIns=%p\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, pDevIns)); -
trunk/src/VBox/VMM/PDMInternal.h
r11221 r11224 473 473 /** Pointer to PCI Bus device instance. */ 474 474 PPDMDEVINSR3 pDevInsR3; 475 /** @copydoc PDMPCIBUSREG::pfnSetIrq HC*/475 /** @copydoc PDMPCIBUSREG::pfnSetIrqR3 */ 476 476 DECLR3CALLBACKMEMBER(void, pfnSetIrqR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, int iIrq, int iLevel)); 477 /** @copydoc PDMPCIBUSREG::pfnRegister HC*/477 /** @copydoc PDMPCIBUSREG::pfnRegisterR3 */ 478 478 DECLR3CALLBACKMEMBER(int, pfnRegisterR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, const char *pszName, int iDev)); 479 /** @copydoc PDMPCIBUSREG::pfnIORegionRegister HC*/479 /** @copydoc PDMPCIBUSREG::pfnIORegionRegisterR3 */ 480 480 DECLR3CALLBACKMEMBER(int, pfnIORegionRegisterR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, int iRegion, uint32_t cbRegion, 481 481 PCIADDRESSSPACE enmType, PFNPCIIOREGIONMAP pfnCallback)); 482 /** @copydoc PDMPCIBUSREG::pfnSetConfigCallbacks HC*/482 /** @copydoc PDMPCIBUSREG::pfnSetConfigCallbacksR3 */ 483 483 DECLR3CALLBACKMEMBER(void, pfnSetConfigCallbacksR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, PFNPCICONFIGREAD pfnRead, 484 484 PPFNPCICONFIGREAD ppfnReadOld, PFNPCICONFIGWRITE pfnWrite, PPFNPCICONFIGWRITE ppfnWriteOld)); 485 /** @copydoc PDMPCIBUSREG::pfnSaveExec HC*/485 /** @copydoc PDMPCIBUSREG::pfnSaveExecR3 */ 486 486 DECLR3CALLBACKMEMBER(int, pfnSaveExecR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, PSSMHANDLE pSSMHandle)); 487 /** @copydoc PDMPCIBUSREG::pfnLoadExec HC*/487 /** @copydoc PDMPCIBUSREG::pfnLoadExecR3 */ 488 488 DECLR3CALLBACKMEMBER(int, pfnLoadExecR3,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, PSSMHANDLE pSSMHandle)); 489 /** @copydoc PDMPCIBUSREG::pfnFakePCIBIOS HC*/489 /** @copydoc PDMPCIBUSREG::pfnFakePCIBIOSR3 */ 490 490 DECLR3CALLBACKMEMBER(int, pfnFakePCIBIOSR3,(PPDMDEVINS pDevIns)); 491 491 492 492 /** Pointer to the PIC device instance - R0. */ 493 493 R0PTRTYPE(PPDMDEVINS) pDevInsR0; 494 /** @copydoc PDMPCIBUSREG::pfnSetIrq HC*/494 /** @copydoc PDMPCIBUSREG::pfnSetIrqR3 */ 495 495 DECLR0CALLBACKMEMBER(void, pfnSetIrqR0,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, int iIrq, int iLevel)); 496 496 497 497 /** Pointer to PCI Bus device instance. */ 498 PPDMDEVINSGC pDevIns GC;499 /** @copydoc PDMPCIBUSREG::pfnSetIrq HC*/500 DECLRCCALLBACKMEMBER(void, pfnSetIrq GC,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, int iIrq, int iLevel));498 PPDMDEVINSGC pDevInsRC; 499 /** @copydoc PDMPCIBUSREG::pfnSetIrqR3 */ 500 DECLRCCALLBACKMEMBER(void, pfnSetIrqRC,(PPDMDEVINS pDevIns, PPCIDEVICE pPciDev, int iIrq, int iLevel)); 501 501 } PDMPCIBUS; 502 502 -
trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp
r11219 r11224 220 220 if ( pPciDev 221 221 && pPciBus 222 && pPciBus->pDevIns GC)222 && pPciBus->pDevInsRC) 223 223 { 224 224 pdmLock(pVM); 225 pPciBus->pfnSetIrq GC(pPciBus->pDevInsGC, pPciDev, iIrq, iLevel);225 pPciBus->pfnSetIrqRC(pPciBus->pDevInsRC, pPciDev, iIrq, iLevel); 226 226 pdmUnlock(pVM); 227 227 } -
trunk/src/VBox/VMM/testcase/tstVMStructGC.cpp
r11219 r11224 248 248 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsR0); 249 249 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqR0); 250 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevIns GC);251 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrq GC);250 GEN_CHECK_OFF(PDM, aPciBuses[0].pDevInsRC); 251 GEN_CHECK_OFF(PDM, aPciBuses[0].pfnSetIrqRC); 252 252 GEN_CHECK_OFF(PDM, Pic); 253 253 GEN_CHECK_OFF(PDM, Pic.pDevInsR3);
Note:
See TracChangeset
for help on using the changeset viewer.