Changeset 73199 in vbox for trunk/src/VBox/VMM/include
- Timestamp:
- Jul 18, 2018 12:13:55 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 123804
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/include/PGMInternal.h
r73073 r73199 2980 2980 #define PGM_GST_NAME_RC_AMD64_STR(name) "pgmRCGstAMD64" #name 2981 2981 #define PGM_GST_NAME_R0_AMD64_STR(name) "pgmR0GstAMD64" #name 2982 #define PGM_GST_PFN(name, pVCpu) ((pVCpu)->pgm.s.PGM_CTX(pfn,Gst##name))2983 2982 #define PGM_GST_DECL(type, name) PGM_CTX_DECL(type) PGM_GST_NAME(name) 2984 2983 … … 3064 3063 /** @} */ 3065 3064 3065 3066 /** 3067 * Function pointers for guest paging. 3068 */ 3069 typedef struct PGMMODEDATAGST 3070 { 3071 /** The guest mode type. */ 3072 uint32_t uType; 3073 DECLCALLBACKMEMBER(int, pfnGetPage)(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys); 3074 DECLCALLBACKMEMBER(int, pfnModifyPage)(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask); 3075 DECLCALLBACKMEMBER(int, pfnGetPDE)(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde); 3076 DECLCALLBACKMEMBER(int, pfnEnter)(PVMCPU pVCpu, RTGCPHYS GCPhysCR3); 3077 DECLCALLBACKMEMBER(int, pfnExit)(PVMCPU pVCpu); 3078 DECLCALLBACKMEMBER(int, pfnRelocate)(PVMCPU pVCpu, RTGCPTR offDelta); /**< Only in ring-3. */ 3079 } PGMMODEDATAGST; 3080 3081 /** The length of g_aPgmGuestModeData. */ 3082 #if defined(VBOX_WITH_64_BITS_GUESTS) && !defined(IN_RC) 3083 # define PGM_GUEST_MODE_DATA_ARRAY_SIZE (PGM_TYPE_AMD64 + 1) 3084 #else 3085 # define PGM_GUEST_MODE_DATA_ARRAY_SIZE (PGM_TYPE_PAE + 1) 3086 #endif 3087 /** The guest mode data array. */ 3088 extern PGMMODEDATAGST const g_aPgmGuestModeData[PGM_GUEST_MODE_DATA_ARRAY_SIZE]; 3089 3090 3066 3091 /** 3067 3092 * Data for each paging mode. … … 3087 3112 DECLR0CALLBACKMEMBER(int, pfnR0ShwGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTHCPHYS pHCPhys)); 3088 3113 DECLR0CALLBACKMEMBER(int, pfnR0ShwModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask, uint32_t fOpFlags)); 3089 /** @} */3090 3091 /** @name Function pointers for Guest paging.3092 * @{3093 */3094 DECLR3CALLBACKMEMBER(int, pfnR3GstRelocate,(PVMCPU pVCpu, RTGCPTR offDelta));3095 DECLR3CALLBACKMEMBER(int, pfnR3GstExit,(PVMCPU pVCpu));3096 DECLR3CALLBACKMEMBER(int, pfnR3GstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));3097 DECLR3CALLBACKMEMBER(int, pfnR3GstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));3098 DECLR3CALLBACKMEMBER(int, pfnR3GstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));3099 DECLRCCALLBACKMEMBER(int, pfnRCGstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));3100 DECLRCCALLBACKMEMBER(int, pfnRCGstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));3101 DECLRCCALLBACKMEMBER(int, pfnRCGstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));3102 DECLR0CALLBACKMEMBER(int, pfnR0GstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));3103 DECLR0CALLBACKMEMBER(int, pfnR0GstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));3104 DECLR0CALLBACKMEMBER(int, pfnR0GstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));3105 3114 /** @} */ 3106 3115 … … 3919 3928 /** The guest paging mode. */ 3920 3929 PGMMODE enmGuestMode; 3930 /** Guest mode data table index (PGM_TYPE_XXX). */ 3931 uint8_t volatile idxGuestModeData; 3932 /** Shadow mode data table index (PGM_TYPE_XXX). */ 3933 uint8_t volatile idxShadowModeData; 3934 /** Both mode data table index (complicated). */ 3935 uint8_t volatile idxBothModeData; 3936 /** Alignment padding. */ 3937 uint8_t abPadding[5]; 3921 3938 3922 3939 /** The current physical address represented in the guest CR3 register. */ … … 4047 4064 DECLR0CALLBACKMEMBER(int, pfnR0ShwModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask, uint32_t fOpFlags)); 4048 4065 4049 /** @} */4050 4051 /** @name Function pointers for Guest paging.4052 * @{4053 */4054 DECLR3CALLBACKMEMBER(int, pfnR3GstRelocate,(PVMCPU pVCpu, RTGCPTR offDelta));4055 DECLR3CALLBACKMEMBER(int, pfnR3GstExit,(PVMCPU pVCpu));4056 DECLR3CALLBACKMEMBER(int, pfnR3GstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));4057 DECLR3CALLBACKMEMBER(int, pfnR3GstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));4058 DECLR3CALLBACKMEMBER(int, pfnR3GstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));4059 DECLRCCALLBACKMEMBER(int, pfnRCGstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));4060 DECLRCCALLBACKMEMBER(int, pfnRCGstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));4061 DECLRCCALLBACKMEMBER(int, pfnRCGstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));4062 #if HC_ARCH_BITS == 644063 RTRCPTR alignment3; /**< structure size alignment. */4064 #endif4065 4066 DECLR0CALLBACKMEMBER(int, pfnR0GstGetPage,(PVMCPU pVCpu, RTGCPTR GCPtr, uint64_t *pfFlags, PRTGCPHYS pGCPhys));4067 DECLR0CALLBACKMEMBER(int, pfnR0GstModifyPage,(PVMCPU pVCpu, RTGCPTR GCPtr, size_t cbPages, uint64_t fFlags, uint64_t fMask));4068 DECLR0CALLBACKMEMBER(int, pfnR0GstGetPDE,(PVMCPU pVCpu, RTGCPTR GCPtr, PX86PDEPAE pPde));4069 4066 /** @} */ 4070 4067
Note:
See TracChangeset
for help on using the changeset viewer.