Changeset 84766 in vbox for trunk/src/VBox/VMM/VMMR3
- Timestamp:
- Jun 10, 2020 5:40:13 PM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 138565
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/DBGFR3Tracer.cpp
r84756 r84766 75 75 76 76 77 static const RTTRACELOGEVTITEMDESC g_DevMmioCreateEvtItems[] = 78 { 79 {"hMmioRegion", "The MMIO region handle being returned by IOM", RTTRACELOGTYPE_UINT64, 0}, 80 {"cbRegion", "Size of the MMIO region in bytes", RTTRACELOGTYPE_UINT64, 0}, 81 {"fIomFlags", "Flags passed to IOM", RTTRACELOGTYPE_UINT32, 0}, 82 {"iPciRegion", "PCI region used for a PCI device", RTTRACELOGTYPE_UINT32, 0}, 83 }; 84 85 static const RTTRACELOGEVTDESC g_DevMmioCreateEvtDesc = 86 { 87 "Dev.MmioCreate", 88 "MMIO region of a device is being created", 89 RTTRACELOGEVTSEVERITY_DEBUG, 90 RT_ELEMENTS(g_DevMmioCreateEvtItems), 91 &g_DevMmioCreateEvtItems[0] 92 }; 93 94 77 95 static const RTTRACELOGEVTITEMDESC g_DevMmioMapEvtItems[] = 78 96 { … … 149 167 RT_ELEMENTS(g_DevMmioFillEvtItems), 150 168 &g_DevMmioFillEvtItems[0] 169 }; 170 171 172 static const RTTRACELOGEVTITEMDESC g_DevIoPortCreateEvtItems[] = 173 { 174 {"hIoPorts", "The I/O port region handle being returned by IOM", RTTRACELOGTYPE_UINT64, 0}, 175 {"cPorts", "Size of the region in number of ports", RTTRACELOGTYPE_UINT16, 0}, 176 {"fIomFlags", "Flags passed to IOM", RTTRACELOGTYPE_UINT32, 0}, 177 {"iPciRegion", "PCI region used for a PCI device", RTTRACELOGTYPE_UINT32, 0}, 178 }; 179 180 static const RTTRACELOGEVTDESC g_DevIoPortCreateEvtDesc = 181 { 182 "Dev.IoPortCreate", 183 "I/O port region of a device is being created", 184 RTTRACELOGEVTSEVERITY_DEBUG, 185 RT_ELEMENTS(g_DevIoPortCreateEvtItems), 186 &g_DevIoPortCreateEvtItems[0] 151 187 }; 152 188 … … 560 596 break; 561 597 } 598 case DBGFTRACEREVT_MMIO_REGION_CREATE: 599 { 600 PCDBGFTRACEREVTMMIOCREATE pEvtMmioCreate = (PCDBGFTRACEREVTMMIOCREATE)(pEvtHdr + 1); 601 602 rc = RTTraceLogWrEvtAddL(pThis->hTraceLog, &g_DevMmioCreateEvtDesc, 0 /*fFlags*/, 603 pEvtHdr->idEvt, pEvtHdr->hEvtSrc, pEvtMmioCreate->hMmioRegion, pEvtMmioCreate->cbRegion, 604 pEvtMmioCreate->fIomFlags, pEvtMmioCreate->iPciRegion); 605 break; 606 } 562 607 case DBGFTRACEREVT_MMIO_MAP: 563 608 { … … 597 642 pEvtHdr->idEvt, pEvtHdr->hEvtSrc, pEvtMmioFill->hMmioRegion, pEvtMmioFill->offMmio, 598 643 pEvtMmioFill->cbItem, pEvtMmioFill->cItems, pEvtMmioFill->u32Item); 644 break; 645 } 646 case DBGFTRACEREVT_IOPORT_REGION_CREATE: 647 { 648 PCDBGFTRACEREVTIOPORTCREATE pEvtIoPortCreate = (PCDBGFTRACEREVTIOPORTCREATE)(pEvtHdr + 1); 649 650 rc = RTTraceLogWrEvtAddL(pThis->hTraceLog, &g_DevIoPortCreateEvtDesc, 0 /*fFlags*/, 651 pEvtHdr->idEvt, pEvtHdr->hEvtSrc, pEvtIoPortCreate->hIoPorts, pEvtIoPortCreate->cPorts, 652 pEvtIoPortCreate->fIomFlags, pEvtIoPortCreate->iPciRegion); 599 653 break; 600 654 } … … 1058 1112 } 1059 1113 1114 1115 /** 1116 * Registers an I/O port region create event for the given event source. 1117 * 1118 * @returns VBox status code. 1119 * @param pVM The current context VM instance data. 1120 * @param hEvtSrc The event source for the posted event. 1121 * @param hRegion The I/O port region handle returned from IOM. 1122 * @param cPorts Number of ports registered. 1123 * @param fFlags Flags passed to IOM. 1124 * @param iPciRegion For a PCI device the region index used for the I/O ports. 1125 */ 1126 VMMR3_INT_DECL(int) DBGFR3TracerEvtIoPortCreate(PVM pVM, DBGFTRACEREVTSRC hEvtSrc, uint64_t hRegion, RTIOPORT cPorts, uint32_t fFlags, 1127 uint32_t iPciRegion) 1128 { 1129 VM_ASSERT_EMT_RETURN(pVM, VERR_VM_THREAD_NOT_EMT); 1130 AssertReturn(hEvtSrc != NIL_DBGFTRACEREVTSRC, VERR_INVALID_HANDLE); 1131 1132 PUVM pUVM = pVM->pUVM; 1133 PDBGFTRACERINSR3 pThis = pUVM->dbgf.s.pTracerR3; 1134 1135 DBGFTRACEREVTIOPORTCREATE EvtIoPortCreate; 1136 RT_ZERO(EvtIoPortCreate); 1137 EvtIoPortCreate.hIoPorts = hRegion; 1138 EvtIoPortCreate.cPorts = cPorts; 1139 EvtIoPortCreate.fIomFlags = fFlags; 1140 EvtIoPortCreate.iPciRegion = iPciRegion; 1141 return dbgfTracerR3EvtPostSingle(pVM, pThis, hEvtSrc, DBGFTRACEREVT_IOPORT_REGION_CREATE, 1142 &EvtIoPortCreate, sizeof(EvtIoPortCreate), NULL /*pidEvt*/); 1143 } 1144 1145 1146 /** 1147 * Registers an MMIO region create event for the given event source. 1148 * 1149 * @returns VBox status code. 1150 * @param pVM The current context VM instance data. 1151 * @param hEvtSrc The event source for the posted event. 1152 * @param hRegion The MMIO region handle returned from IOM. 1153 * @param cbRegion Size of the MMIO region in bytes. 1154 * @param fFlags Flags passed to IOM. 1155 * @param iPciRegion For a PCI device the region index used for the MMIO region. 1156 */ 1157 VMMR3_INT_DECL(int) DBGFR3TracerEvtMmioCreate(PVM pVM, DBGFTRACEREVTSRC hEvtSrc, uint64_t hRegion, RTGCPHYS cbRegion, uint32_t fFlags, 1158 uint32_t iPciRegion) 1159 { 1160 VM_ASSERT_EMT_RETURN(pVM, VERR_VM_THREAD_NOT_EMT); 1161 AssertReturn(hEvtSrc != NIL_DBGFTRACEREVTSRC, VERR_INVALID_HANDLE); 1162 1163 PUVM pUVM = pVM->pUVM; 1164 PDBGFTRACERINSR3 pThis = pUVM->dbgf.s.pTracerR3; 1165 1166 DBGFTRACEREVTMMIOCREATE EvtMmioCreate; 1167 RT_ZERO(EvtMmioCreate); 1168 EvtMmioCreate.hMmioRegion = hRegion; 1169 EvtMmioCreate.cbRegion = cbRegion; 1170 EvtMmioCreate.fIomFlags = fFlags; 1171 EvtMmioCreate.iPciRegion = iPciRegion; 1172 return dbgfTracerR3EvtPostSingle(pVM, pThis, hEvtSrc, DBGFTRACEREVT_MMIO_REGION_CREATE, 1173 &EvtMmioCreate, sizeof(EvtMmioCreate), NULL /*pidEvt*/); 1174 } 1175 -
trunk/src/VBox/VMM/VMMR3/PDMDevHlpTracing.cpp
r84715 r84766 196 196 pTrack->u.IoPort.pfnInStr = pfnInStr; 197 197 pDevIns->Internal.s.idxDbgfTraceTrackNext++; 198 DBGFR3TracerEvtIoPortCreate(pVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, *phIoPorts, cPorts, fFlags, iPciRegion); 198 199 } 199 200 } … … 276 277 pTrack->u.Mmio.pfnFill = pfnFill; 277 278 pDevIns->Internal.s.idxDbgfTraceTrackNext++; 279 DBGFR3TracerEvtMmioCreate(pVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, *phRegion, cbRegion, fFlags, iPciRegion); 278 280 } 279 281 }
Note:
See TracChangeset
for help on using the changeset viewer.