VirtualBox

Changeset 40956 in vbox for trunk/src/VBox/VMM/VMMR3


Ignore:
Timestamp:
Apr 16, 2012 10:58:48 PM (13 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
77510
Message:

PDM,APIC,IO-APIC: More IRQ tagging.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR3/PDMDevMiscHlp.cpp

    r40937 r40956  
    240240
    241241/** @interface_method_impl{PDMAPICHLPR3,pfnCalcIrqTag} */
    242 static DECLCALLBACK(uint32_t) pdmR3ApicHlp_CalcIrqTag(PPDMDEVINS pDevIns)
    243 {
    244     PDMDEV_ASSERT_DEVINS(pDevIns);
    245     PVM pVM = pDevIns->Internal.s.pVMR3;
     242static DECLCALLBACK(uint32_t) pdmR3ApicHlp_CalcIrqTag(PPDMDEVINS pDevIns, uint8_t u8Level)
     243{
     244    PDMDEV_ASSERT_DEVINS(pDevIns);
     245    PVM pVM = pDevIns->Internal.s.pVMR3;
     246    Assert(u8Level == PDM_IRQ_LEVEL_HIGH || u8Level == PDM_IRQ_LEVEL_FLIP_FLOP);
    246247
    247248    pdmLock(pVM);
     249
    248250    uint32_t uTagSrc = pdmCalcIrqTag(pVM, pDevIns->idTracing);
     251    if (u8Level == PDM_IRQ_LEVEL_HIGH)
     252        VBOXVMM_PDM_IRQ_HIGH(VMMGetCpu(pVM), RT_LOWORD(uTagSrc), RT_HIWORD(uTagSrc));
     253    else
     254        VBOXVMM_PDM_IRQ_HILO(VMMGetCpu(pVM), RT_LOWORD(uTagSrc), RT_HIWORD(uTagSrc));
     255
     256
    249257    pdmUnlock(pVM);
    250 
    251     LogFlow(("pdmR3ApicHlp_CalcIrqTag: caller='%s'/%d: returns %#x\n", pDevIns->pReg->szName, pDevIns->iInstance, uTagSrc));
     258    LogFlow(("pdmR3ApicHlp_CalcIrqTag: caller='%s'/%d: returns %#x (u8Level=%d)\n",
     259             pDevIns->pReg->szName, pDevIns->iInstance, uTagSrc, u8Level));
    252260    return uTagSrc;
    253261}
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette