Changeset 81939 in vbox
- Timestamp:
- Nov 18, 2019 12:17:20 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 134736
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevIoApic.cpp
r81938 r81939 848 848 849 849 /** @interface_method_impl{DBGFREGDESC,pfnGet} */ 850 static DECLCALLBACK(int) ioapic DbgReg_GetIndex(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue)850 static DECLCALLBACK(int) ioapicR3DbgReg_GetIndex(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue) 851 851 { 852 852 RT_NOREF(pDesc); … … 857 857 858 858 /** @interface_method_impl{DBGFREGDESC,pfnSet} */ 859 static DECLCALLBACK(int) ioapic DbgReg_SetIndex(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask)859 static DECLCALLBACK(int) ioapicR3DbgReg_SetIndex(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask) 860 860 { 861 861 RT_NOREF(pDesc, pfMask); … … 866 866 867 867 /** @interface_method_impl{DBGFREGDESC,pfnGet} */ 868 static DECLCALLBACK(int) ioapic DbgReg_GetData(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue)868 static DECLCALLBACK(int) ioapicR3DbgReg_GetData(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue) 869 869 { 870 870 RT_NOREF(pDesc); … … 875 875 876 876 /** @interface_method_impl{DBGFREGDESC,pfnSet} */ 877 static DECLCALLBACK(int) ioapic DbgReg_SetData(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask)877 static DECLCALLBACK(int) ioapicR3DbgReg_SetData(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask) 878 878 { 879 879 RT_NOREF(pDesc, pfMask); … … 883 883 884 884 /** @interface_method_impl{DBGFREGDESC,pfnGet} */ 885 static DECLCALLBACK(int) ioapic DbgReg_GetVersion(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue)885 static DECLCALLBACK(int) ioapicR3DbgReg_GetVersion(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue) 886 886 { 887 887 PCIOAPIC pThis = PDMDEVINS_2_DATA((PPDMDEVINS)pvUser, PCIOAPIC); … … 893 893 894 894 /** @interface_method_impl{DBGFREGDESC,pfnGet} */ 895 static DECLCALLBACK(int) ioapic DbgReg_GetArb(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue)895 static DECLCALLBACK(int) ioapicR3DbgReg_GetArb(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue) 896 896 { 897 897 RT_NOREF(pvUser, pDesc); … … 902 902 903 903 /** @interface_method_impl{DBGFREGDESC,pfnGet} */ 904 static DECLCALLBACK(int) ioapic DbgReg_GetRte(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue)904 static DECLCALLBACK(int) ioapicR3DbgReg_GetRte(void *pvUser, PCDBGFREGDESC pDesc, PDBGFREGVAL pValue) 905 905 { 906 906 PCIOAPIC pThis = PDMDEVINS_2_DATA((PPDMDEVINS)pvUser, PCIOAPIC); … … 912 912 913 913 /** @interface_method_impl{DBGFREGDESC,pfnSet} */ 914 static DECLCALLBACK(int) ioapic DbgReg_SetRte(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask)914 static DECLCALLBACK(int) ioapicR3DbgReg_SetRte(void *pvUser, PCDBGFREGDESC pDesc, PCDBGFREGVAL pValue, PCDBGFREGVAL pfMask) 915 915 { 916 916 RT_NOREF(pfMask); … … 943 943 static DBGFREGDESC const g_aRegDesc[] = 944 944 { 945 { "index", DBGFREG_END, DBGFREGVALTYPE_U8, 0, 0, ioapic DbgReg_GetIndex, ioapicDbgReg_SetIndex, NULL, NULL },946 { "data", DBGFREG_END, DBGFREGVALTYPE_U32, 0, 0, ioapic DbgReg_GetData, ioapicDbgReg_SetData, NULL, NULL },947 { "version", DBGFREG_END, DBGFREGVALTYPE_U32, DBGFREG_FLAGS_READ_ONLY, 0, ioapic DbgReg_GetVersion, NULL, NULL, NULL },948 { "arb", DBGFREG_END, DBGFREGVALTYPE_U32, DBGFREG_FLAGS_READ_ONLY, 0, ioapic DbgReg_GetArb, NULL, NULL, NULL },949 { "rte0", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 0, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },950 { "rte1", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 1, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },951 { "rte2", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 2, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },952 { "rte3", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 3, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },953 { "rte4", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 4, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },954 { "rte5", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 5, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },955 { "rte6", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 6, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },956 { "rte7", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 7, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },957 { "rte8", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 8, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },958 { "rte9", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 9, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },959 { "rte10", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 10, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },960 { "rte11", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 11, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },961 { "rte12", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 12, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },962 { "rte13", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 13, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },963 { "rte14", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 14, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },964 { "rte15", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 15, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },965 { "rte16", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 16, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },966 { "rte17", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 17, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },967 { "rte18", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 18, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },968 { "rte19", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 19, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },969 { "rte20", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 20, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },970 { "rte21", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 21, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },971 { "rte22", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 22, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },972 { "rte23", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 23, ioapic DbgReg_GetRte, ioapicDbgReg_SetRte, NULL, &g_aRteSubs[0] },945 { "index", DBGFREG_END, DBGFREGVALTYPE_U8, 0, 0, ioapicR3DbgReg_GetIndex, ioapicR3DbgReg_SetIndex, NULL, NULL }, 946 { "data", DBGFREG_END, DBGFREGVALTYPE_U32, 0, 0, ioapicR3DbgReg_GetData, ioapicR3DbgReg_SetData, NULL, NULL }, 947 { "version", DBGFREG_END, DBGFREGVALTYPE_U32, DBGFREG_FLAGS_READ_ONLY, 0, ioapicR3DbgReg_GetVersion, NULL, NULL, NULL }, 948 { "arb", DBGFREG_END, DBGFREGVALTYPE_U32, DBGFREG_FLAGS_READ_ONLY, 0, ioapicR3DbgReg_GetArb, NULL, NULL, NULL }, 949 { "rte0", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 0, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 950 { "rte1", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 1, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 951 { "rte2", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 2, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 952 { "rte3", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 3, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 953 { "rte4", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 4, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 954 { "rte5", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 5, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 955 { "rte6", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 6, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 956 { "rte7", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 7, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 957 { "rte8", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 8, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 958 { "rte9", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 9, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 959 { "rte10", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 10, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 960 { "rte11", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 11, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 961 { "rte12", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 12, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 962 { "rte13", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 13, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 963 { "rte14", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 14, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 964 { "rte15", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 15, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 965 { "rte16", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 16, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 966 { "rte17", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 17, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 967 { "rte18", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 18, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 968 { "rte19", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 19, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 969 { "rte20", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 20, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 970 { "rte21", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 21, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 971 { "rte22", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 22, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 972 { "rte23", DBGFREG_END, DBGFREGVALTYPE_U64, 0, 23, ioapicR3DbgReg_GetRte, ioapicR3DbgReg_SetRte, NULL, &g_aRteSubs[0] }, 973 973 DBGFREGDESC_TERMINATOR() 974 974 }; … … 1057 1057 static DECLCALLBACK(int) ioapicR3SaveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM) 1058 1058 { 1059 PCIOAPIC pThis = PDMDEVINS_2_DATA(pDevIns, PCIOAPIC); 1059 PCIOAPIC pThis = PDMDEVINS_2_DATA(pDevIns, PCIOAPIC); 1060 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 1060 1061 LogFlow(("IOAPIC: ioapicR3SaveExec\n")); 1061 1062 1062 SSMR3PutU32(pSSM, pThis->uIrr);1063 SSMR3PutU8(pSSM, pThis->u8Id);1064 SSMR3PutU8(pSSM, pThis->u8Index);1063 pHlp->pfnSSMPutU32(pSSM, pThis->uIrr); 1064 pHlp->pfnSSMPutU8(pSSM, pThis->u8Id); 1065 pHlp->pfnSSMPutU8(pSSM, pThis->u8Index); 1065 1066 for (uint8_t idxRte = 0; idxRte < RT_ELEMENTS(pThis->au64RedirTable); idxRte++) 1066 SSMR3PutU64(pSSM, pThis->au64RedirTable[idxRte]);1067 pHlp->pfnSSMPutU64(pSSM, pThis->au64RedirTable[idxRte]); 1067 1068 1068 1069 return VINF_SUCCESS; … … 1075 1076 static DECLCALLBACK(int) ioapicR3LoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass) 1076 1077 { 1077 PIOAPIC pThis = PDMDEVINS_2_DATA(pDevIns, PIOAPIC); 1078 PIOAPIC pThis = PDMDEVINS_2_DATA(pDevIns, PIOAPIC); 1079 PCPDMDEVHLPR3 pHlp = pDevIns->pHlpR3; 1078 1080 LogFlow(("APIC: apicR3LoadExec: uVersion=%u uPass=%#x\n", uVersion, uPass)); 1079 1081 … … 1090 1092 1091 1093 if (uVersion == IOAPIC_SAVED_STATE_VERSION) 1092 SSMR3GetU32(pSSM, &pThis->uIrr);1093 1094 SSMR3GetU8V(pSSM, &pThis->u8Id);1095 SSMR3GetU8V(pSSM, &pThis->u8Index);1094 pHlp->pfnSSMGetU32(pSSM, &pThis->uIrr); 1095 1096 pHlp->pfnSSMGetU8V(pSSM, &pThis->u8Id); 1097 pHlp->pfnSSMGetU8V(pSSM, &pThis->u8Index); 1096 1098 for (uint8_t idxRte = 0; idxRte < RT_ELEMENTS(pThis->au64RedirTable); idxRte++) 1097 SSMR3GetU64(pSSM, &pThis->au64RedirTable[idxRte]);1099 pHlp->pfnSSMGetU64(pSSM, &pThis->au64RedirTable[idxRte]); 1098 1100 1099 1101 return VINF_SUCCESS;
Note:
See TracChangeset
for help on using the changeset viewer.