Lines Matching refs:pDev

177 static void ich9pciUpdateMappings(PCIDevice *pDev);
816 static int ich9pciUnmapRegion(PPCIDEVICE pDev, int iRegion)
818 PCIIORegion* pRegion = &pDev->Int.s.aIORegions[iRegion];
820 PICH9PCIBUS pBus = pDev->Int.s.CTX_SUFF(pBus);
829 rc = PDMDevHlpIOPortDeregister(pDev->pDevIns, pRegion->addr, pRegion->size);
835 if (pBus->pPciHlpR3->pfnIsMMIO2Base(pBus->pDevInsR3, pDev->pDevIns, GCPhysBase))
838 rc = pRegion->map_func(pDev, iRegion, NIL_RTGCPHYS, pRegion->size, (PCIADDRESSSPACE)(pRegion->type));
840 rc = PDMDevHlpMMIO2Unmap(pDev->pDevIns, iRegion, GCPhysBase);
843 rc = PDMDevHlpMMIODeregister(pDev->pDevIns, GCPhysBase, pRegion->size);
852 static void ich9pciUpdateMappings(PCIDevice* pDev)
856 int iCmd = ich9pciGetWord(pDev, VBOX_PCI_COMMAND);
859 PCIIORegion* pRegion = &pDev->Int.s.aIORegions[iRegion];
875 uNew = ich9pciGetDWord(pDev, uConfigReg);
889 uNew = ich9pciGetDWord(pDev, uConfigReg);
893 uNew |= ((uint64_t)ich9pciGetDWord(pDev, uConfigReg+4)) << 32;
923 ich9pciUnmapRegion(pDev, iRegion);
930 rc = pRegion->map_func(pDev, iRegion,
1077 PPCIDEVICE pDev = pBus->apDevices[i];
1078 if (pDev)
1083 SSMR3PutMem(pSSM, pDev->config, sizeof(pDev->config));
1086 int rc = SSMR3PutU32(pSSM, pDev->Int.s.fFlags);
1091 rc = SSMR3PutS32(pSSM, pDev->Int.s.uIrqPinState);
1096 rc = SSMR3PutU8(pSSM, pDev->Int.s.u8MsiCapOffset);
1099 rc = SSMR3PutU8(pSSM, pDev->Int.s.u8MsiCapSize);
1104 rc = SSMR3PutU8(pSSM, pDev->Int.s.u8MsixCapOffset);
1107 rc = SSMR3PutU8(pSSM, pDev->Int.s.u8MsixCapSize);
1111 if (pDev->Int.s.u8MsixCapOffset != 0)
1113 Assert(pDev->Int.s.pMsixPageR3 != NULL);
1114 SSMR3PutMem(pSSM, pDev->Int.s.pMsixPageR3, 0x1000);
1218 * @param pDev The PCI device.
1222 static void pciR3CommonRestoreConfig(PPCIDEVICE pDev, uint8_t const *pbSrcConfig, bool fIsBridge)
1319 Assert(!pciDevIsPassthrough(pDev));
1320 uint8_t *pbDstConfig = &pDev->config[0];
1355 pDev->name, pDev->pDevIns->iInstance, cb*8, s_aFields[i].pszName, u32Dst, u32Src));
1358 pDev->name, pDev->pDevIns->iInstance, cb*8, s_aFields[i].pszName, u32Dst, u32Src));
1361 PCIDevSetCommand(pDev, 0); /* For remapping, see ich9pciR3CommonLoadExec. */
1362 pDev->Int.s.pfnConfigWrite(pDev, off, u32Src, cb);
1373 for (uint32_t off = 0x40; off < sizeof(pDev->config); off++)
1377 pDev->name, pDev->pDevIns->iInstance, off, pbDstConfig[off], pbSrcConfig[off])); /** @todo make this Log() later. */
1411 PPCIDEVICE pDev = pBus->apDevices[i];
1412 if (pDev)
1414 uint16_t u16 = PCIDevGetCommand(pDev);
1415 pDev->Int.s.pfnConfigWrite(pDev, VBOX_PCI_COMMAND, 0, 2);
1416 PCIDevSetCommand(pDev, u16);
1417 Assert(PCIDevGetCommand(pDev) == u16);
1429 PPCIDEVICE pDev;
1443 pDev = pBus->apDevices[i];
1444 if (pDev)
1446 LogRel(("PCI: New device in slot %#x, %s (vendor=%#06x device=%#06x)\n", i, pDev->name,
1447 PCIDevGetVendorId(pDev), PCIDevGetDeviceId(pDev)));
1451 i, pDev->name, PCIDevGetVendorId(pDev), PCIDevGetDeviceId(pDev));
1487 pDev = pBus->apDevices[i];
1488 if (!pDev)
1502 if (PCIDevGetVendorId(&DevTmp) != PCIDevGetVendorId(pDev))
1505 i, pDev->name, PCIDevGetVendorId(&DevTmp), PCIDevGetVendorId(pDev));
1510 Assert(!pciDevIsPassthrough(pDev));
1511 pciR3CommonRestoreConfig(pDev, &DevTmp.config[0], false ); /** @todo fix bridge fun! */
1513 pDev->Int.s.uIrqPinState = DevTmp.Int.s.uIrqPinState;
1514 pDev->Int.s.u8MsiCapOffset = DevTmp.Int.s.u8MsiCapOffset;
1515 pDev->Int.s.u8MsiCapSize = DevTmp.Int.s.u8MsiCapSize;
1516 pDev->Int.s.u8MsixCapOffset = DevTmp.Int.s.u8MsixCapOffset;
1517 pDev->Int.s.u8MsixCapSize = DevTmp.Int.s.u8MsixCapSize;
1520 Assert(pDev->Int.s.pMsixPageR3 != NULL);
1521 memcpy(pDev->Int.s.pMsixPageR3, pvMsixPage, 0x1000);
2674 static void ich9pciResetDevice(PPCIDEVICE pDev)
2679 PCIIORegion* pRegion = &pDev->Int.s.aIORegions[iRegion];
2683 ich9pciUnmapRegion(pDev, iRegion);
2686 if (pciDevIsPassthrough(pDev))
2693 PCIDevSetCommand(pDev,
2694 PCIDevGetCommand(pDev)
2702 if (!pciDevIsPci2PciBridge(pDev))
2704 PCIDevSetByte(pDev, VBOX_PCI_CACHE_LINE_SIZE, 0x0);
2705 PCIDevSetInterruptLine(pDev, 0x0);
2709 if (pciDevIsMsiCapable(pDev))
2712 pDev->config[pDev->Int.s.u8MsiCapOffset + VBOX_MSI_CAP_MESSAGE_CONTROL] &= 0x8e;
2716 if (pciDevIsMsixCapable(pDev))
2719 pDev->config[pDev->Int.s.u8MsixCapOffset + VBOX_MSIX_CAP_MESSAGE_CONTROL + 1] &= 0x3f;
2749 static void ich9pciRelocateDevice(PPCIDEVICE pDev, RTGCINTPTR offDelta)
2751 if (pDev)
2753 pDev->Int.s.pBusRC += offDelta;
2754 if (pDev->Int.s.pMsixPageRC)
2755 pDev->Int.s.pMsixPageRC += offDelta;