Changeset 45965 in vbox for trunk/src/VBox/VMM
- Timestamp:
- May 9, 2013 3:32:14 PM (12 years ago)
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/CPUMAllRegs.cpp
r45798 r45965 1532 1532 { 1533 1533 uint8_t u8Tpr; 1534 int rc = PDMApicGetTPR(pVCpu, &u8Tpr, NULL /* pfPending*/);1534 int rc = PDMApicGetTPR(pVCpu, &u8Tpr, NULL /* pfPending */, NULL /* pu8PendingIrq */); 1535 1535 if (RT_FAILURE(rc)) 1536 1536 { -
trunk/src/VBox/VMM/VMMAll/PDMAll.cpp
r44528 r45965 279 279 Assert(pVM->pdm.s.Apic.CTX_SUFF(pfnSetTPR)); 280 280 pdmLock(pVM); 281 *pfPending = pVM->pdm.s.Apic.CTX_SUFF(pfnHasPendingIrq)(pVM->pdm.s.Apic.CTX_SUFF(pDevIns), pVCpu->idCpu); 281 *pfPending = pVM->pdm.s.Apic.CTX_SUFF(pfnHasPendingIrq)(pVM->pdm.s.Apic.CTX_SUFF(pDevIns), pVCpu->idCpu, 282 NULL /* pu8PendingIrq */); 282 283 pdmUnlock(pVM); 283 284 return VINF_SUCCESS; … … 316 317 * @param pu8TPR Where to store the TRP. 317 318 * @param pfPending Pending interrupt state (out). 319 * @param pu8PendingIrq Where to store the highest-priority pending IRQ 320 * (optional, can be NULL) (out). 318 321 * 319 322 * @remarks No-long-jump zone!!! 320 323 */ 321 VMMDECL(int) PDMApicGetTPR(PVMCPU pVCpu, uint8_t *pu8TPR, bool *pfPending )324 VMMDECL(int) PDMApicGetTPR(PVMCPU pVCpu, uint8_t *pu8TPR, bool *pfPending, uint8_t *pu8PendingIrq) 322 325 { 323 326 PVM pVM = pVCpu->CTX_SUFF(pVM); … … 332 335 *pu8TPR = pVM->pdm.s.Apic.CTX_SUFF(pfnGetTPR)(pVM->pdm.s.Apic.CTX_SUFF(pDevIns), pVCpu->idCpu); 333 336 if (pfPending) 334 *pfPending = pVM->pdm.s.Apic.CTX_SUFF(pfnHasPendingIrq)(pVM->pdm.s.Apic.CTX_SUFF(pDevIns), pVCpu->idCpu); 337 { 338 *pfPending = pVM->pdm.s.Apic.CTX_SUFF(pfnHasPendingIrq)(pVM->pdm.s.Apic.CTX_SUFF(pDevIns), pVCpu->idCpu, 339 pu8PendingIrq); 340 } 335 341 return VINF_SUCCESS; 336 342 } -
trunk/src/VBox/VMM/VMMR0/HMVMXR0.cpp
r45963 r45965 2487 2487 bool fPendingIntr = false; 2488 2488 uint8_t u8GuestTpr = 0; 2489 rc = PDMApicGetTPR(pVCpu, &u8GuestTpr, &fPendingIntr );2489 rc = PDMApicGetTPR(pVCpu, &u8GuestTpr, &fPendingIntr, NULL /* pu8PendingIntr */); 2490 2490 AssertRCReturn(rc, rc); 2491 2491 -
trunk/src/VBox/VMM/VMMR0/HWSVMR0.cpp
r45957 r45965 1402 1402 /* TPR caching in CR8 */ 1403 1403 bool fPending; 1404 rc2 = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending );1404 rc2 = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending, NULL /* pu8PendingIrq */); 1405 1405 AssertRC(rc2); 1406 1406 … … 2867 2867 case HMTPRINSTR_READ: 2868 2868 /* TPR caching in CR8 */ 2869 rc = PDMApicGetTPR(pVCpu, &u8Tpr, &fPending );2869 rc = PDMApicGetTPR(pVCpu, &u8Tpr, &fPending, NULL /* pu8PendingIrq */); 2870 2870 AssertRC(rc); 2871 2871 -
trunk/src/VBox/VMM/VMMR0/HWVMXR0.cpp
r45955 r45965 3177 3177 bool fPending; 3178 3178 3179 rc2 = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending );3179 rc2 = PDMApicGetTPR(pVCpu, &u8LastTPR, &fPending, NULL /* pu8PendingIrq */); 3180 3180 AssertRC(rc2); 3181 3181 /* The TPR can be found at offset 0x80 in the APIC mmio page. */ -
trunk/src/VBox/VMM/include/PDMInternal.h
r45299 r45965 563 563 DECLR3CALLBACKMEMBER(int, pfnGetInterruptR3,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint32_t *puTagSrc)); 564 564 /** @copydoc PDMAPICREG::pfnHasPendingIrqR3 */ 565 DECLR3CALLBACKMEMBER(bool, pfnHasPendingIrqR3,(PPDMDEVINS pDevIns, VMCPUID idCpu ));565 DECLR3CALLBACKMEMBER(bool, pfnHasPendingIrqR3,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint8_t *pu8PendingIrq)); 566 566 /** @copydoc PDMAPICREG::pfnSetBaseR3 */ 567 567 DECLR3CALLBACKMEMBER(void, pfnSetBaseR3,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint64_t u64Base)); … … 587 587 DECLR0CALLBACKMEMBER(int, pfnGetInterruptR0,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint32_t *puTagSrc)); 588 588 /** @copydoc PDMAPICREG::pfnHasPendingIrqR3 */ 589 DECLR0CALLBACKMEMBER(bool, pfnHasPendingIrqR0,(PPDMDEVINS pDevIns, VMCPUID idCpu ));589 DECLR0CALLBACKMEMBER(bool, pfnHasPendingIrqR0,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint8_t *pu8PendingIrq)); 590 590 /** @copydoc PDMAPICREG::pfnSetBaseR3 */ 591 591 DECLR0CALLBACKMEMBER(void, pfnSetBaseR0,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint64_t u64Base)); … … 611 611 DECLRCCALLBACKMEMBER(int, pfnGetInterruptRC,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint32_t *puTagSrc)); 612 612 /** @copydoc PDMAPICREG::pfnHasPendingIrqR3 */ 613 DECLRCCALLBACKMEMBER(bool, pfnHasPendingIrqRC,(PPDMDEVINS pDevIns, VMCPUID idCpu ));613 DECLRCCALLBACKMEMBER(bool, pfnHasPendingIrqRC,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint8_t *pu8PendingIrq)); 614 614 /** @copydoc PDMAPICREG::pfnSetBaseR3 */ 615 615 DECLRCCALLBACKMEMBER(void, pfnSetBaseRC,(PPDMDEVINS pDevIns, VMCPUID idCpu, uint64_t u64Base));
Note:
See TracChangeset
for help on using the changeset viewer.