Changeset 108877 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Apr 8, 2025 7:42:07 AM (4 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168328
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/GITSAll.cpp
r108872 r108877 65 65 #define GITS_CRIT_SECT_IS_OWNER(a_pDevIns) PDMDevHlpCritSectIsOwner((a_pDevIns), (a_pDevIns)->CTX_SUFF(pCritSectRo)) 66 66 67 /** GITS diagnostic enum description expansion. 68 * The below construct ensures typos in the input to this macro are caught 69 * during compile time. */ 70 #define GITSDIAG_DESC(a_Name) RT_CONCAT(kGitsDiag_, a_Name) < kGitsDiag_End ? RT_STR(a_Name) : "Ignored" 71 67 72 68 73 /********************************************************************************************************************************* … … 81 86 AssertCompileSize(GITSITE, 8); 82 87 83 /** GITS diagnostic enum description expansion. 84 * The below construct ensures typos in the input to this macro are caught 85 * during compile time. */ 86 #define GITSDIAG_DESC(a_Name) RT_CONCAT(kGitsDiag_, a_Name) < kGitsDiag_End ? RT_STR(a_Name) : "Ignored" 88 89 /********************************************************************************************************************************* 90 * Global Variables * 91 *********************************************************************************************************************************/ 87 92 /** GITS diagnostics description for members in GITSDIAG. */ 88 93 static const char *const g_apszGitsDiagDesc[] = … … 94 99 AssertCompile(RT_ELEMENTS(g_apszGitsDiagDesc) == kGitsDiag_End); 95 100 #undef GITSDIAG_DESC 96 97 98 /*********************************************************************************************************************************99 * Global Variables *100 *********************************************************************************************************************************/101 101 102 102 … … 420 420 pGitsDev->uCmdReadReg = 0; 421 421 pGitsDev->uCmdWriteReg = 0; 422 RT_ZERO(pGitsDev->auCt); 422 423 } 423 424 … … 571 572 { 572 573 Assert(!RT_BF_GET(pGitsDev->uTypeReg.u, GITS_BF_CTRL_REG_TYPER_PTA)); /* GITS_TYPER is read-only */ 573 /** @todo Implementing me. Figure out interrupt collection, HCC etc. */ 574 //uint64_t const uDw2 = pCmd->au64[2].u; 575 //bool const fValid = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_VALID); 576 //uint32_t const uTargetCpuId = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_RDBASE); 577 //uint16_t const uIntrCollectionId = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_IC_ID); 574 uint64_t const uDw2 = pCmd->au64[2].u; 575 bool const fValid = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_VALID); 576 uint32_t const uTargetCpuId = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_RDBASE); 577 uint16_t const uIntrCollectionId = RT_BF_GET(uDw2, GITS_BF_CMD_MAPC_DW2_IC_ID); 578 579 AssertRelease(uIntrCollectionId < RT_ELEMENTS(pGitsDev->auCt)); 580 pGitsDev->auCt[uIntrCollectionId].fValid = fValid; 581 pGitsDev->auCt[uIntrCollectionId].idTargetCpu = uTargetCpuId; 582 break; 583 } 584 585 case GITS_CMD_ID_SYNC: 586 { 587 /* Nothing to do since all previous commands have committed their changes to device state. */ 588 break; 589 } 590 591 case GITS_CMD_ID_INVALL: 592 { 593 /* Nothing to do as we currently do not cache interrupt mappings. */ 578 594 break; 579 595 }
Note:
See TracChangeset
for help on using the changeset viewer.