vbox的更動 99820 路徑 trunk/src/VBox/Devices/Bus/DevPCI.cpp
- 時間撮記:
- 2023-5-17 上午07:31:36 (22 月 以前)
- svn:sync-xref-src-repo-rev:
- 157456
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Devices/Bus/DevPCI.cpp
r99775 r99820 290 290 DECLINLINE(int) get_pci_irq_level(PDEVPCIROOT pGlobals, int irq_num) 291 291 { 292 return (pGlobals-> Piix3.auPciLegacyIrqLevels[irq_num] != 0);292 return (pGlobals->u.Piix3.auPciLegacyIrqLevels[irq_num] != 0); 293 293 } 294 294 … … 347 347 /* As per above treat ACPI in a special way */ 348 348 pic_irq = pPciDev->abConfig[PCI_INTERRUPT_LINE]; 349 pGlobals-> Piix3.iAcpiIrq = pic_irq;350 pGlobals-> Piix3.iAcpiIrqLevel = iLevel & PDM_IRQ_LEVEL_HIGH;349 pGlobals->u.Piix3.iAcpiIrq = pic_irq; 350 pGlobals->u.Piix3.iAcpiIrqLevel = iLevel & PDM_IRQ_LEVEL_HIGH; 351 351 } 352 352 else … … 356 356 357 357 if (pPciDev->Int.s.uIrqPinState == PDM_IRQ_LEVEL_HIGH) 358 ASMAtomicIncU32(&pGlobals-> Piix3.auPciLegacyIrqLevels[irq_num]);358 ASMAtomicIncU32(&pGlobals->u.Piix3.auPciLegacyIrqLevels[irq_num]); 359 359 else if (pPciDev->Int.s.uIrqPinState == PDM_IRQ_LEVEL_LOW) 360 ASMAtomicDecU32(&pGlobals-> Piix3.auPciLegacyIrqLevels[irq_num]);360 ASMAtomicDecU32(&pGlobals->u.Piix3.auPciLegacyIrqLevels[irq_num]); 361 361 362 362 /* now we change the pic irq level according to the piix irq mappings */ … … 366 366 if ((iLevel & PDM_IRQ_LEVEL_FLIP_FLOP) == PDM_IRQ_LEVEL_FLIP_FLOP) 367 367 { 368 ASMAtomicDecU32(&pGlobals-> Piix3.auPciLegacyIrqLevels[irq_num]);368 ASMAtomicDecU32(&pGlobals->u.Piix3.auPciLegacyIrqLevels[irq_num]); 369 369 pPciDev->Int.s.uIrqPinState = PDM_IRQ_LEVEL_LOW; 370 370 } … … 384 384 if (pic_irq == pbCfg[0x63]) 385 385 pic_level |= get_pci_irq_level(pGlobals, 3); /* PIRQD */ 386 if (pic_irq == pGlobals-> Piix3.iAcpiIrq)387 pic_level |= pGlobals-> Piix3.iAcpiIrqLevel;386 if (pic_irq == pGlobals->u.Piix3.iAcpiIrq) 387 pic_level |= pGlobals->u.Piix3.iAcpiIrqLevel; 388 388 389 389 Log3Func(("%s: iLevel=%d iIrq=%d pic_irq=%d pic_level=%d uTagSrc=%#x\n", … … 988 988 * Save IRQ states. 989 989 */ 990 for (unsigned i = 0; i < RT_ELEMENTS(pThis-> Piix3.auPciLegacyIrqLevels); i++)991 pHlp->pfnSSMPutU32(pSSM, pThis-> Piix3.auPciLegacyIrqLevels[i]);990 for (unsigned i = 0; i < RT_ELEMENTS(pThis->u.Piix3.auPciLegacyIrqLevels); i++) 991 pHlp->pfnSSMPutU32(pSSM, pThis->u.Piix3.auPciLegacyIrqLevels[i]); 992 992 for (unsigned i = 0; i < RT_ELEMENTS(pThis->auPciApicIrqLevels); i++) 993 993 pHlp->pfnSSMPutU32(pSSM, pThis->auPciApicIrqLevels[i]); 994 994 995 pHlp->pfnSSMPutU32(pSSM, pThis-> Piix3.iAcpiIrqLevel);996 pHlp->pfnSSMPutS32(pSSM, pThis-> Piix3.iAcpiIrq);995 pHlp->pfnSSMPutU32(pSSM, pThis->u.Piix3.iAcpiIrqLevel); 996 pHlp->pfnSSMPutS32(pSSM, pThis->u.Piix3.iAcpiIrq); 997 997 998 998 pHlp->pfnSSMPutU32(pSSM, UINT32_MAX); /* separator */ … … 1170 1170 if (uVersion >= VBOX_PCI_SAVED_STATE_VERSION_IRQ_STATES) 1171 1171 { 1172 for (uint8_t i = 0; i < RT_ELEMENTS(pThis-> Piix3.auPciLegacyIrqLevels); i++)1173 pHlp->pfnSSMGetU32V(pSSM, &pThis-> Piix3.auPciLegacyIrqLevels[i]);1172 for (uint8_t i = 0; i < RT_ELEMENTS(pThis->u.Piix3.auPciLegacyIrqLevels); i++) 1173 pHlp->pfnSSMGetU32V(pSSM, &pThis->u.Piix3.auPciLegacyIrqLevels[i]); 1174 1174 for (uint8_t i = 0; i < RT_ELEMENTS(pThis->auPciApicIrqLevels); i++) 1175 1175 pHlp->pfnSSMGetU32V(pSSM, &pThis->auPciApicIrqLevels[i]); 1176 1176 1177 pHlp->pfnSSMGetU32(pSSM, &pThis-> Piix3.iAcpiIrqLevel);1178 pHlp->pfnSSMGetS32(pSSM, &pThis-> Piix3.iAcpiIrq);1177 pHlp->pfnSSMGetU32(pSSM, &pThis->u.Piix3.iAcpiIrqLevel); 1178 pHlp->pfnSSMGetS32(pSSM, &pThis->u.Piix3.iAcpiIrq); 1179 1179 } 1180 1180 … … 1230 1230 pHlp->pfnPrintf(pHlp, "PCI IRQ levels:\n"); 1231 1231 for (int i = 0; i < DEVPCI_LEGACY_IRQ_PINS; ++i) 1232 pHlp->pfnPrintf(pHlp, " IRQ%c: %u\n", 'A' + i, pGlobals-> Piix3.auPciLegacyIrqLevels[i]);1232 pHlp->pfnPrintf(pHlp, " IRQ%c: %u\n", 'A' + i, pGlobals->u.Piix3.auPciLegacyIrqLevels[i]); 1233 1233 } 1234 1234 … … 1301 1301 pGlobals->uPciBiosIo = 0xc000; 1302 1302 pGlobals->uPciBiosMmio = 0xf0000000; 1303 memset((void *)&pGlobals-> Piix3.auPciLegacyIrqLevels, 0, sizeof(pGlobals->Piix3.auPciLegacyIrqLevels));1303 memset((void *)&pGlobals->u.Piix3.auPciLegacyIrqLevels, 0, sizeof(pGlobals->u.Piix3.auPciLegacyIrqLevels)); 1304 1304 pGlobals->fUseIoApic = fUseIoApic; 1305 1305 memset((void *)&pGlobals->auPciApicIrqLevels, 0, sizeof(pGlobals->auPciApicIrqLevels));
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器