VirtualBox

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


Ignore:
Timestamp:
Mar 5, 2025 12:24:57 PM (2 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167826
Message:

VMM/GIC: bugref:10404 Debug printing bits.

File:
1 edited

Legend:

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

    r108451 r108452  
    114114    { \
    115115        pHlp->pfnPrintf(pHlp, "  " a_Name " =\n"); \
    116         for (unsigned i = 0; i < RT_ELEMENTS(a_bmIntr); i += 8) \
     116        for (uint32_t i = 0; i < RT_ELEMENTS(a_bmIntr); i += 8) \
    117117            pHlp->pfnPrintf(pHlp, "    [%2u..%-2u] %#010x %#010x %#010x %#010x %#010x %#010x %#010x %#010x\n", i, i + 7, \
    118118                            (a_bmIntr)[i],   (a_bmIntr)[i+1], (a_bmIntr)[i+2], (a_bmIntr)[i+3],  \
     
    129129    GIC_DBGFINFO_DIST_INTR_BITMAP("bmIntrActive",  pGicDev->bmIntrActive);
    130130
    131     /** @todo Print priorioties and routing information. */
     131    uint32_t const cPriorities = RT_ELEMENTS(pGicDev->abIntrPriority);
     132    AssertCompile(!(cPriorities % 16));
     133    pHlp->pfnPrintf(pHlp, "  Interrupt priorities:\n");
     134    for (uint32_t i = 0; i < cPriorities; i += 16)
     135        pHlp->pfnPrintf(pHlp, "    IntId[ %4u..%-4u ] = %3u %3u %3u %3u %3u %3u %3u %3u"
     136                              "    IntId[ %4u..%-4u ] %3u %3u %3u %3u %3u %3u %3u %3u\n",
     137                        gicDistGetIntIdFromIndex(i),     gicDistGetIntIdFromIndex(i + 7),
     138                        pGicDev->abIntrPriority[i],      pGicDev->abIntrPriority[i + 1],
     139                        pGicDev->abIntrPriority[i + 2],  pGicDev->abIntrPriority[i + 3],
     140                        pGicDev->abIntrPriority[i + 4],  pGicDev->abIntrPriority[i + 5],
     141                        pGicDev->abIntrPriority[i + 6],  pGicDev->abIntrPriority[i + 7],
     142                        gicDistGetIntIdFromIndex(i + 8), gicDistGetIntIdFromIndex(i + 15),
     143                        pGicDev->abIntrPriority[i + 8],  pGicDev->abIntrPriority[i + 9],
     144                        pGicDev->abIntrPriority[i + 10], pGicDev->abIntrPriority[i + 11],
     145                        pGicDev->abIntrPriority[i + 12], pGicDev->abIntrPriority[i + 13],
     146                        pGicDev->abIntrPriority[i + 14], pGicDev->abIntrPriority[i + 15]);
     147
     148    /** @todo Print routing information. */
    132149#if 0
    133     pHlp->pfnPrintf(pHlp, " Interrupt priorities:\n");
    134     for (uint32_t i = 0; i < RT_ELEMENTS(pGicDev->abIntrPriority); i++)
    135         pHlp->pfnPrintf(pHlp, "     INTID %u    = %u\n", gicDistGetIntIdFromIndex(i), pGicDev->abIntrPriority[i]);
    136150    pHlp->pfnPrintf(pHlp, " Interrupt routing:\n");
    137151    for (uint32_t i = 0; i < RT_ELEMENTS(pGicDev->au32IntrRouting); i++)
     
    169183    pHlp->pfnPrintf(pHlp, "  bmIntrActive[0..2]  = %#010x %#010x %#010x\n", pGicCpu->bmIntrActive[0],  pGicCpu->bmIntrActive[1],  pGicCpu->bmIntrActive[2]);
    170184
    171     /** @todo Interrupt priorities. */
    172 #if 0
    173     pHlp->pfnPrintf(pHlp, " Interrupt priorities:\n");
    174     for (uint32_t i = 0; i < RT_ELEMENTS(pGicCpu->abIntrPriority); i++)
    175         pHlp->pfnPrintf(pHlp, "     INTID %u    = %u\n", gicReDistGetIntIdFromIndex(i), pGicCpu->abIntrPriority[i]);
    176 #endif
     185    uint32_t const cPriorities = RT_ELEMENTS(pGicCpu->abIntrPriority);
     186    AssertCompile(!(cPriorities % 16));
     187    pHlp->pfnPrintf(pHlp, "  Interrupt priorities:\n");
     188    for (uint32_t i = 0; i < cPriorities; i += 16)
     189        pHlp->pfnPrintf(pHlp, "    IntId[ %4u..%-4u ] = %3u %3u %3u %3u %3u %3u %3u %3u"
     190                              "    IntId[ %4u..%-4u ] %3u %3u %3u %3u %3u %3u %3u %3u\n",
     191                        gicReDistGetIntIdFromIndex(i),     gicReDistGetIntIdFromIndex(i + 7),
     192                        pGicCpu->abIntrPriority[i],        pGicCpu->abIntrPriority[i + 1],
     193                        pGicCpu->abIntrPriority[i + 2],    pGicCpu->abIntrPriority[i + 3],
     194                        pGicCpu->abIntrPriority[i + 4],    pGicCpu->abIntrPriority[i + 5],
     195                        pGicCpu->abIntrPriority[i + 6],    pGicCpu->abIntrPriority[i + 7],
     196                        gicReDistGetIntIdFromIndex(i + 8), gicReDistGetIntIdFromIndex(i + 15),
     197                        pGicCpu->abIntrPriority[i + 8],    pGicCpu->abIntrPriority[i + 9],
     198                        pGicCpu->abIntrPriority[i + 10],   pGicCpu->abIntrPriority[i + 11],
     199                        pGicCpu->abIntrPriority[i + 12],   pGicCpu->abIntrPriority[i + 13],
     200                        pGicCpu->abIntrPriority[i + 14],   pGicCpu->abIntrPriority[i + 15]);
    177201
    178202    pHlp->pfnPrintf(pHlp, "\nVCPU[%u] ICC state:\n", pVCpu->idCpu);
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