Changeset 61807 in vbox
- Timestamp:
- Jun 21, 2016 7:41:29 PM (9 years ago)
- svn:sync-xref-src-repo-rev:
- 108208
- Location:
- trunk/src/VBox/VMM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/APICAll.cpp
r61800 r61807 1793 1793 * @interface_method_impl{PDMAPICREG,pfnReadMsrR3} 1794 1794 */ 1795 DECLCALLBACK(VBOXSTRICTRC) apicReadMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t *pu64Value)1795 APICBOTHCBDECL(VBOXSTRICTRC) apicReadMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t *pu64Value) 1796 1796 { 1797 1797 /* … … 1900 1900 * @interface_method_impl{PDMAPICREG,pfnWriteMsrR3} 1901 1901 */ 1902 DECLCALLBACK(VBOXSTRICTRC) apicWriteMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t u64Value)1902 APICBOTHCBDECL(VBOXSTRICTRC) apicWriteMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t u64Value) 1903 1903 { 1904 1904 /* … … 2037 2037 * @interface_method_impl{PDMAPICREG,pfnSetBaseMsrR3} 2038 2038 */ 2039 DECLCALLBACK(VBOXSTRICTRC) apicSetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint64_t u64BaseMsr)2039 APICBOTHCBDECL(VBOXSTRICTRC) apicSetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint64_t u64BaseMsr) 2040 2040 { 2041 2041 Assert(pVCpu); … … 2174 2174 * @interface_method_impl{PDMAPICREG,pfnGetBaseMsrR3} 2175 2175 */ 2176 DECLCALLBACK(uint64_t) apicGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu)2176 APICBOTHCBDECL(uint64_t) apicGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu) 2177 2177 { 2178 2178 VMCPU_ASSERT_EMT_OR_NOT_RUNNING(pVCpu); … … 2186 2186 * @interface_method_impl{PDMAPICREG,pfnSetTprR3} 2187 2187 */ 2188 DECLCALLBACK(void) apicSetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Tpr)2188 APICBOTHCBDECL(void) apicSetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Tpr) 2189 2189 { 2190 2190 apicSetTpr(pVCpu, u8Tpr); … … 2218 2218 * @interface_method_impl{PDMAPICREG,pfnGetTprR3} 2219 2219 */ 2220 DECLCALLBACK(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr)2220 APICBOTHCBDECL(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr) 2221 2221 { 2222 2222 VMCPU_ASSERT_EMT(pVCpu); … … 2239 2239 * @interface_method_impl{PDMAPICREG,pfnGetTimerFreqR3} 2240 2240 */ 2241 DECLCALLBACK(uint64_t) apicGetTimerFreq(PPDMDEVINS pDevIns)2241 APICBOTHCBDECL(uint64_t) apicGetTimerFreq(PPDMDEVINS pDevIns) 2242 2242 { 2243 2243 PVM pVM = PDMDevHlpGetVM(pDevIns); … … 2253 2253 * @remarks This is a private interface between the IOAPIC and the APIC. 2254 2254 */ 2255 DECLCALLBACK(int) apicBusDeliver(PPDMDEVINS pDevIns, uint8_t uDest, uint8_t uDestMode, uint8_t uDeliveryMode, uint8_t uVector,2255 APICBOTHCBDECL(int) apicBusDeliver(PPDMDEVINS pDevIns, uint8_t uDest, uint8_t uDestMode, uint8_t uDeliveryMode, uint8_t uVector, 2256 2256 uint8_t uPolarity, uint8_t uTriggerMode, uint32_t uTagSrc) 2257 2257 { … … 2287 2287 * @remarks This is a private interface between the PIC and the APIC. 2288 2288 */ 2289 DECLCALLBACK(VBOXSTRICTRC) apicLocalInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Pin, uint8_t u8Level, int rcRZ)2289 APICBOTHCBDECL(VBOXSTRICTRC) apicLocalInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Pin, uint8_t u8Level, int rcRZ) 2290 2290 { 2291 2291 NOREF(pDevIns); … … 2448 2448 * @interface_method_impl{PDMAPICREG,pfnGetInterruptR3} 2449 2449 */ 2450 DECLCALLBACK(int) apicGetInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t *pu8Vector, uint32_t *pu32TagSrc)2450 APICBOTHCBDECL(int) apicGetInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t *pu8Vector, uint32_t *pu32TagSrc) 2451 2451 { 2452 2452 VMCPU_ASSERT_EMT(pVCpu); … … 2520 2520 * @callback_method_impl{FNIOMMMIOREAD} 2521 2521 */ 2522 DECLCALLBACK(int) apicReadMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb)2522 APICBOTHCBDECL(int) apicReadMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb) 2523 2523 { 2524 2524 NOREF(pvUser); … … 2544 2544 * @callback_method_impl{FNIOMMMIOWRITE} 2545 2545 */ 2546 DECLCALLBACK(int) apicWriteMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void const *pv, unsigned cb)2546 APICBOTHCBDECL(int) apicWriteMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void const *pv, unsigned cb) 2547 2547 { 2548 2548 NOREF(pvUser); -
trunk/src/VBox/VMM/include/APICInternal.h
r61795 r61807 1408 1408 RT_C_DECLS_BEGIN 1409 1409 1410 const char *apicGetModeName(APICMODE enmMode); 1411 const char *apicGetDestFormatName(XAPICDESTFORMAT enmDestFormat); 1412 const char *apicGetDeliveryModeName(XAPICDELIVERYMODE enmDeliveryMode); 1413 const char *apicGetDestModeName(XAPICDESTMODE enmDestMode); 1414 const char *apicGetTriggerModeName(XAPICTRIGGERMODE enmTriggerMode); 1415 const char *apicGetDestShorthandName(XAPICDESTSHORTHAND enmDestShorthand); 1416 const char *apicGetTimerModeName(XAPICTIMERMODE enmTimerMode); 1417 void apicHintTimerFreq(PAPICCPU pApicCpu, uint32_t uInitialCount, uint8_t uTimerShift); 1418 APICMODE apicGetMode(uint64_t uApicBaseMsr); 1419 1420 DECLCALLBACK(uint64_t) apicGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu); 1421 DECLCALLBACK(VBOXSTRICTRC) apicSetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint64_t uBase); 1422 DECLCALLBACK(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr); 1423 DECLCALLBACK(void) apicSetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Tpr); 1424 DECLCALLBACK(uint64_t) apicGetTimerFreq(PPDMDEVINS pDevIns); 1425 DECLCALLBACK(int) apicReadMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb); 1426 DECLCALLBACK(int) apicWriteMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void const *pv, unsigned cb); 1427 DECLCALLBACK(VBOXSTRICTRC) apicReadMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t *pu64Val); 1428 DECLCALLBACK(VBOXSTRICTRC) apicWriteMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t u64Val); 1429 DECLCALLBACK(int) apicGetInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t *puVector, uint32_t *puTagSrc); 1430 DECLCALLBACK(VBOXSTRICTRC) apicLocalInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Pin, uint8_t u8Level, int rcRZ); 1431 DECLCALLBACK(int) apicBusDeliver(PPDMDEVINS pDevIns, uint8_t uDest, uint8_t uDestMode, uint8_t uDeliveryMode, 1432 uint8_t uVector, uint8_t uPolarity, uint8_t uTriggerMode, uint32_t uTagSrc); 1433 1434 VMM_INT_DECL(void) apicPostInterrupt(PVMCPU pVCpu, uint8_t uVector, XAPICTRIGGERMODE enmTriggerMode); 1435 VMM_INT_DECL(void) apicStartTimer(PVMCPU pVCpu, uint32_t uInitialCount); 1436 VMM_INT_DECL(void) apicStopTimer(PVMCPU pVCpu); 1437 VMM_INT_DECL(void) apicSetInterruptFF(PVMCPU pVCpu, PDMAPICIRQ enmType); 1438 VMM_INT_DECL(void) apicClearInterruptFF(PVMCPU pVCpu, PDMAPICIRQ enmType); 1410 1411 /** @def APICBOTHCBDECL 1412 * Macro for declaring a callback which is static in HC and exported in GC. 1413 */ 1414 #if defined(IN_RC) || defined(IN_RING0) 1415 # ifdef __cplusplus 1416 # define APICBOTHCBDECL(type) extern "C" DECLEXPORT(type) 1417 # else 1418 # define APICBOTHCBDECL(type) DECLEXPORT(type) 1419 # endif 1420 #else 1421 # define APICBOTHCBDECL(type) DECLCALLBACK(type) 1422 #endif 1423 1424 const char *apicGetModeName(APICMODE enmMode); 1425 const char *apicGetDestFormatName(XAPICDESTFORMAT enmDestFormat); 1426 const char *apicGetDeliveryModeName(XAPICDELIVERYMODE enmDeliveryMode); 1427 const char *apicGetDestModeName(XAPICDESTMODE enmDestMode); 1428 const char *apicGetTriggerModeName(XAPICTRIGGERMODE enmTriggerMode); 1429 const char *apicGetDestShorthandName(XAPICDESTSHORTHAND enmDestShorthand); 1430 const char *apicGetTimerModeName(XAPICTIMERMODE enmTimerMode); 1431 void apicHintTimerFreq(PAPICCPU pApicCpu, uint32_t uInitialCount, uint8_t uTimerShift); 1432 APICMODE apicGetMode(uint64_t uApicBaseMsr); 1433 1434 APICBOTHCBDECL(uint64_t) apicGetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu); 1435 APICBOTHCBDECL(VBOXSTRICTRC) apicSetBaseMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint64_t uBase); 1436 APICBOTHCBDECL(uint8_t) apicGetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, bool *pfPending, uint8_t *pu8PendingIntr); 1437 APICBOTHCBDECL(void) apicSetTpr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Tpr); 1438 APICBOTHCBDECL(uint64_t) apicGetTimerFreq(PPDMDEVINS pDevIns); 1439 APICBOTHCBDECL(int) apicReadMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void *pv, unsigned cb); 1440 APICBOTHCBDECL(int) apicWriteMmio(PPDMDEVINS pDevIns, void *pvUser, RTGCPHYS GCPhysAddr, void const *pv, unsigned cb); 1441 APICBOTHCBDECL(VBOXSTRICTRC) apicReadMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t *pu64Val); 1442 APICBOTHCBDECL(VBOXSTRICTRC) apicWriteMsr(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint32_t u32Reg, uint64_t u64Val); 1443 APICBOTHCBDECL(int) apicGetInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t *puVector, uint32_t *puTagSrc); 1444 APICBOTHCBDECL(VBOXSTRICTRC) apicLocalInterrupt(PPDMDEVINS pDevIns, PVMCPU pVCpu, uint8_t u8Pin, uint8_t u8Level, int rcRZ); 1445 APICBOTHCBDECL(int) apicBusDeliver(PPDMDEVINS pDevIns, uint8_t uDest, uint8_t uDestMode, uint8_t uDeliveryMode, 1446 uint8_t uVector, uint8_t uPolarity, uint8_t uTriggerMode, uint32_t uTagSrc); 1447 1448 VMM_INT_DECL(void) apicPostInterrupt(PVMCPU pVCpu, uint8_t uVector, XAPICTRIGGERMODE enmTriggerMode); 1449 VMM_INT_DECL(void) apicStartTimer(PVMCPU pVCpu, uint32_t uInitialCount); 1450 VMM_INT_DECL(void) apicStopTimer(PVMCPU pVCpu); 1451 VMM_INT_DECL(void) apicSetInterruptFF(PVMCPU pVCpu, PDMAPICIRQ enmType); 1452 VMM_INT_DECL(void) apicClearInterruptFF(PVMCPU pVCpu, PDMAPICIRQ enmType); 1439 1453 1440 1454 #ifdef IN_RING3 1441 VMMR3_INT_DECL(void) apicR3ResetCpu(PVMCPU pVCpu, bool fResetApicBaseMsr);1455 VMMR3_INT_DECL(void) apicR3ResetCpu(PVMCPU pVCpu, bool fResetApicBaseMsr); 1442 1456 #endif 1443 1457
Note:
See TracChangeset
for help on using the changeset viewer.