Changeset 25995 in vbox for trunk/src/VBox
- Timestamp:
- Jan 25, 2010 11:33:03 AM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 56866
- Location:
- trunk/src/VBox
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/Makefile.kmk
r25993 r25995 676 676 677 677 ifdef VBOX_WITH_HPET 678 VBoxDDR0_DEFS += VBOX_WITH_HPET679 VBoxDDR0_SOURCES += PC/DevHPET.cpp678 VBoxDDR0_DEFS += VBOX_WITH_HPET 679 VBoxDDR0_SOURCES += PC/DevHPET.cpp 680 680 endif 681 681 -
trunk/src/VBox/VMM/PDMDevHlp.cpp
r25893 r25995 1955 1955 return VINF_SUCCESS; 1956 1956 } 1957 1957 /** @copydoc PDMDEVHLPR3::pfnHPETRegister */ 1958 static DECLCALLBACK(int) pdmR3DevHlp_HPETRegister(PPDMDEVINS pDevIns, PPDMHPETREG pHpetReg, PCPDMHPETHLPR3 *ppHpetHlpR3) 1959 { 1960 PDMDEV_ASSERT_DEVINS(pDevIns); 1961 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 1962 LogFlow(("pdmR3DevHlp_HPETRegister: caller='%s'/%d:\n")); 1963 1964 /* 1965 * Validate input. 1966 */ 1967 if (pHpetReg->u32Version != PDM_HPETREG_VERSION) 1968 { 1969 AssertMsgFailed(("u32Version=%#x expected %#x\n", pHpetReg->u32Version, PDM_HPETREG_VERSION)); 1970 LogFlow(("pdmR3DevHlp_HPETRegister: caller='%s'/%d: returns %Rrc (version)\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VERR_INVALID_PARAMETER)); 1971 return VERR_INVALID_PARAMETER; 1972 } 1973 1974 if (!ppHpetHlpR3) 1975 { 1976 Assert(ppHpetHlpR3); 1977 LogFlow(("pdmR3DevHlp_HPETRegister: caller='%s'/%d: returns %Rrc (ppApicHlpR3)\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VERR_INVALID_PARAMETER)); 1978 return VERR_INVALID_PARAMETER; 1979 } 1980 1981 /* set the helper pointer and return. */ 1982 *ppHpetHlpR3 = &g_pdmR3DevHpetHlp; 1983 LogFlow(("pdmR3DevHlp_HPETRegister: caller='%s'/%d: returns %Rrc\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, VINF_SUCCESS)); 1984 return VINF_SUCCESS; 1985 } 1958 1986 1959 1987 /** @copydoc PDMDEVHLPR3::pfnDMACRegister */ … … 2809 2837 pdmR3DevHlp_APICRegister, 2810 2838 pdmR3DevHlp_IOAPICRegister, 2839 pdmR3DevHlp_HPETRegister, 2811 2840 pdmR3DevHlp_DMACRegister, 2812 2841 pdmR3DevHlp_PhysRead, … … 2899 2928 } 2900 2929 2930 /** @copydoc PDMDEVHLPR3::pfnHPETRegister */ 2931 static DECLCALLBACK(int) pdmR3DevHlp_Untrusted_HPETRegister(PPDMDEVINS pDevIns, PPDMHPETREG pHpetReg, PCPDMHPETHLPR3 *ppHpetHlpR3) 2932 { 2933 PDMDEV_ASSERT_DEVINS(pDevIns); 2934 AssertReleaseMsgFailed(("Untrusted device called trusted helper! '%s'/%d\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance)); 2935 NOREF(pHpetReg); 2936 NOREF(ppHpetHlpR3); 2937 return VERR_ACCESS_DENIED; 2938 } 2901 2939 2902 2940 /** @copydoc PDMDEVHLPR3::pfnDMACRegister */ … … 3276 3314 pdmR3DevHlp_Untrusted_APICRegister, 3277 3315 pdmR3DevHlp_Untrusted_IOAPICRegister, 3316 pdmR3DevHlp_Untrusted_HPETRegister, 3278 3317 pdmR3DevHlp_Untrusted_DMACRegister, 3279 3318 pdmR3DevHlp_Untrusted_PhysRead, … … 3347 3386 3348 3387 /** @} */ 3349 -
trunk/src/VBox/VMM/PDMDevMiscHlp.cpp
r24125 r25995 57 57 return; 58 58 } 59 59 60 60 PVMCPU pVCpu = &pVM->aCpus[0]; /* for PIC we always deliver to CPU 0, MP use APIC */ 61 61 … … 531 531 532 532 533 /** @copydoc PDMHPETHLPR3::pfnSetLegacyMode */ 534 static DECLCALLBACK(int) pdmR3HpetHlp_SetLegacyMode(PPDMDEVINS pDevIns, bool fActivate) 535 { 536 PDMDEV_ASSERT_DEVINS(pDevIns); 537 LogFlow(("pdmR3HpetHlp_SetLegacyMode: caller='%s'/%d: fActivate=%d\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, fActivate)); 538 return 0; 539 } 540 541 /** @copydoc PDMHPETHLPR3::pfnLock */ 542 static DECLCALLBACK(int) pdmR3HpetHlp_Lock(PPDMDEVINS pDevIns, int rc) 543 { 544 PDMDEV_ASSERT_DEVINS(pDevIns); 545 LogFlow(("pdmR3HpetHlp_Lock: caller='%s'/%d: rc=%Rrc\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, rc)); 546 return pdmLockEx(pDevIns->Internal.s.pVMR3, rc); 547 } 548 549 550 /** @copydoc PDMHPETHLPR3::pfnUnlock */ 551 static DECLCALLBACK(void) pdmR3HpetHlp_Unlock(PPDMDEVINS pDevIns) 552 { 553 PDMDEV_ASSERT_DEVINS(pDevIns); 554 LogFlow(("pdmR3HpetHlp_Unlock: caller='%s'/%d:\n", pDevIns->pDevReg->szDeviceName, pDevIns->iInstance)); 555 pdmUnlock(pDevIns->Internal.s.pVMR3); 556 } 557 558 /** @copydoc PDMHPETHLPR3::pfnGetRCHelpers */ 559 static DECLCALLBACK(PCPDMHPETHLPRC) pdmR3HpetHlp_GetRCHelpers(PPDMDEVINS pDevIns) 560 { 561 PDMDEV_ASSERT_DEVINS(pDevIns); 562 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 563 RTRCPTR pRCHelpers = 0; 564 int rc = PDMR3LdrGetSymbolRC(pDevIns->Internal.s.pVMR3, NULL, "g_pdmRCHpetHlp", &pRCHelpers); 565 AssertReleaseRC(rc); 566 AssertRelease(pRCHelpers); 567 LogFlow(("pdmR3HpetHlp_GetGCHelpers: caller='%s'/%d: returns %RRv\n", 568 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, pRCHelpers)); 569 return pRCHelpers; 570 } 571 572 /** @copydoc PDMHPETHLPR3::pfnGetR0Helpers */ 573 static DECLCALLBACK(PCPDMHPETHLPR0) pdmR3HpetHlp_GetR0Helpers(PPDMDEVINS pDevIns) 574 { 575 PDMDEV_ASSERT_DEVINS(pDevIns); 576 VM_ASSERT_EMT(pDevIns->Internal.s.pVMR3); 577 PCPDMHPETHLPR0 pR0Helpers = 0; 578 int rc = PDMR3LdrGetSymbolR0(pDevIns->Internal.s.pVMR3, NULL, "g_pdmR0HpetHlp", &pR0Helpers); 579 AssertReleaseRC(rc); 580 AssertRelease(pR0Helpers); 581 LogFlow(("pdmR3HpetHlp_GetR0Helpers: caller='%s'/%d: returns %RHv\n", 582 pDevIns->pDevReg->szDeviceName, pDevIns->iInstance, pR0Helpers)); 583 return pR0Helpers; 584 } 585 533 586 /** 534 587 * PCI Bus Device Helpers. … … 549 602 /** @} */ 550 603 604 /** 605 * HPET Device Helpers. 606 */ 607 const PDMHPETHLPR3 g_pdmR3DevHpetHlp = 608 { 609 PDM_HPETHLPR3_VERSION, 610 pdmR3HpetHlp_SetLegacyMode, 611 pdmR3HpetHlp_Lock, 612 pdmR3HpetHlp_Unlock, 613 pdmR3HpetHlp_GetRCHelpers, 614 pdmR3HpetHlp_GetR0Helpers, 615 PDM_HPETHLPR3_VERSION, /* the end */ 616 }; 617 618 /** @} */ 619 551 620 552 621 … … 573 642 PDM_RTCHLP_VERSION 574 643 }; 575 576 -
trunk/src/VBox/VMM/PDMInternal.h
r25891 r25995 1055 1055 extern const PDMDMACHLP g_pdmR3DevDmacHlp; 1056 1056 extern const PDMRTCHLP g_pdmR3DevRtcHlp; 1057 extern const PDMHPETHLPR3 g_pdmR3DevHpetHlp; 1057 1058 #endif 1058 1059 -
trunk/src/VBox/VMM/VMMGC/PDMGCDevice.cpp
r24139 r25995 49 49 extern DECLEXPORT(const PDMIOAPICHLPRC) g_pdmRCIoApicHlp; 50 50 extern DECLEXPORT(const PDMPCIHLPRC) g_pdmRCPciHlp; 51 extern DECLEXPORT(const PDMHPETHLPRC) g_pdmRCHpetHlp; 51 52 RT_C_DECLS_END 52 53 … … 112 113 static DECLCALLBACK(int) pdmRCPciHlp_Lock(PPDMDEVINS pDevIns, int rc); 113 114 static DECLCALLBACK(void) pdmRCPciHlp_Unlock(PPDMDEVINS pDevIns); 115 /** @} */ 116 117 118 /** @name HPET RC Helpers 119 * @{ 120 */ 121 static DECLCALLBACK(int) pdmRCHpetHlp_Lock(PPDMDEVINS pDevIns, int rc); 122 static DECLCALLBACK(void) pdmRCHpetHlp_Unlock(PPDMDEVINS pDevIns); 114 123 /** @} */ 115 124 … … 197 206 }; 198 207 199 208 /** 209 * The Raw-Mode Context HPET Helper Callbacks. 210 */ 211 extern DECLEXPORT(const PDMHPETHLPRC) g_pdmRCHpetHlp = 212 { 213 PDM_HPETHLPRC_VERSION, 214 pdmRCHpetHlp_Lock, 215 pdmRCHpetHlp_Unlock, 216 PDM_HPETHLPRC_VERSION, /* the end */ 217 }; 200 218 201 219 … … 683 701 } 684 702 } 703 704 705 /** @copydoc PDMHPETHLPRC::pfnLock */ 706 static DECLCALLBACK(int) pdmRCHpetHlp_Lock(PPDMDEVINS pDevIns, int rc) 707 { 708 PDMDEV_ASSERT_DEVINS(pDevIns); 709 return pdmLockEx(pDevIns->Internal.s.pVMRC, rc); 710 } 711 712 713 /** @copydoc PDMHPETHLPRC::pfnUnlock */ 714 static DECLCALLBACK(void) pdmRCHpetHlp_Unlock(PPDMDEVINS pDevIns) 715 { 716 PDMDEV_ASSERT_DEVINS(pDevIns); 717 pdmUnlock(pDevIns->Internal.s.pVMRC); 718 } -
trunk/src/VBox/VMM/VMMR0/PDMR0Device.cpp
r24139 r25995 51 51 extern DECLEXPORT(const PDMIOAPICHLPR0) g_pdmR0IoApicHlp; 52 52 extern DECLEXPORT(const PDMPCIHLPR0) g_pdmR0PciHlp; 53 extern DECLEXPORT(const PDMHPETHLPR0) g_pdmR0HpetHlp; 53 54 RT_C_DECLS_END 54 55 … … 115 116 static DECLCALLBACK(int) pdmR0PciHlp_Lock(PPDMDEVINS pDevIns, int rc); 116 117 static DECLCALLBACK(void) pdmR0PciHlp_Unlock(PPDMDEVINS pDevIns); 118 /** @} */ 119 120 /** @name HPET GC Helpers 121 * @{ 122 */ 123 static DECLCALLBACK(int) pdmR0HpetHlp_Lock(PPDMDEVINS pDevIns, int rc); 124 static DECLCALLBACK(void) pdmR0HpetHlp_Unlock(PPDMDEVINS pDevIns); 117 125 /** @} */ 118 126 … … 201 209 }; 202 210 203 211 /** 212 * The Guest Context HPET Helper Callbacks. 213 */ 214 extern DECLEXPORT(const PDMHPETHLPR0) g_pdmR0HpetHlp = 215 { 216 PDM_HPETHLPR0_VERSION, 217 pdmR0HpetHlp_Lock, 218 pdmR0HpetHlp_Unlock, 219 PDM_HPETHLPR0_VERSION, /* the end */ 220 }; 204 221 205 222 … … 720 737 } 721 738 } 739 740 /** @copydoc PDMHPETHLPR0::pfnLock */ 741 static DECLCALLBACK(int) pdmR0HpetHlp_Lock(PPDMDEVINS pDevIns, int rc) 742 { 743 PDMDEV_ASSERT_DEVINS(pDevIns); 744 return pdmLockEx(pDevIns->Internal.s.pVMR0, rc); 745 } 746 747 748 /** @copydoc PDMHPETHLPR0::pfnUnlock */ 749 static DECLCALLBACK(void) pdmR0HpetHlp_Unlock(PPDMDEVINS pDevIns) 750 { 751 PDMDEV_ASSERT_DEVINS(pDevIns); 752 pdmUnlock(pDevIns->Internal.s.pVMR0); 753 }
Note:
See TracChangeset
for help on using the changeset viewer.