- Timestamp:
- Jun 4, 2010 4:23:29 PM (15 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/VBoxGuestLib.h
r29516 r30040 560 560 VBGLR3DECL(int) VbglR3CheckSharedModules(void); 561 561 VBGLR3DECL(bool) VbglR3PageSharingIsEnabled(void); 562 VBGLR3DECL(int) VbglR3PageIsShared(RTGCPTR pPage, bool *pfShared, bool *pfReadWrite); 562 563 /** @} */ 563 564 -
trunk/include/VBox/VMMDev.h
r29344 r30040 175 175 VMMDevReq_CheckSharedModules = 214, 176 176 VMMDevReq_GetPageSharingStatus = 215, 177 VMMDevReq_DebugIsPageShared = 216, 177 178 VMMDevReq_SizeHack = 0x7fffffff 178 179 } VMMDevRequestType; … … 1185 1186 } VMMDevPageSharingStatusRequest; 1186 1187 AssertCompileSize(VMMDevPageSharingStatusRequest, 24+4); 1188 1189 1190 /** 1191 * Page sharing status query (debug build only) 1192 */ 1193 typedef struct 1194 { 1195 /** Header. */ 1196 VMMDevRequestHeader header; 1197 /** Page address. */ 1198 RTGCPTR GCPtrPage; 1199 /** Shared flag (out) */ 1200 bool fShared; 1201 /** Read/write flag (out) */ 1202 bool fReadWrite; 1203 /** Alignment */ 1204 bool fAlignment[2]; 1205 } VMMDevPageIsSharedRequest; 1187 1206 1188 1207 #pragma pack() … … 1696 1715 case VMMDevReq_GetPageSharingStatus: 1697 1716 return sizeof(VMMDevPageSharingStatusRequest); 1698 1717 case VMMDevReq_DebugIsPageShared: 1718 return sizeof(VMMDevPageIsSharedRequest); 1699 1719 default: 1700 1720 return 0; -
trunk/include/VBox/pgm.h
r30027 r30040 572 572 VMMR3DECL(int) PGMR3SharedModuleUnregister(PVM pVM, char *pszModuleName, char *pszVersion, RTGCPTR GCBaseAddr, uint32_t cbModule); 573 573 VMMR3DECL(int) PGMR3SharedModuleCheckAll(PVM pVM); 574 VMMR3DECL(int) PGMR3SharedModuleGetPageState(PVM pVM, RTGCPTR GCPtrPage, bool *pfShared, bool *pfReadWrite); 574 575 /** @} */ 575 576 -
trunk/src/VBox/Additions/common/VBoxGuestLib/VBoxGuestR3LibModule.cpp
r29538 r30040 144 144 } 145 145 146 /** 147 * Checks if page sharing is enabled. 148 * 149 * @returns true/false enabled/disabled 150 */ 151 VBGLR3DECL(int) VbglR3PageIsShared(RTGCPTR pPage, bool *pfShared, bool *pfReadWrite) 152 { 153 #ifdef DEBUG 154 VMMDevPageIsSharedRequest Req; 155 156 vmmdevInitRequest(&Req.header, VMMDevReq_DebugIsPageShared); 157 Req.GCPtrPage = pPage; 158 int rc = vbglR3GRPerform(&Req.header); 159 if (RT_SUCCESS(rc)) 160 { 161 *pfShared = Req.fShared; 162 *pfReadWrite = Req.fReadWrite; 163 } 164 return rc; 165 #else 166 return VERR_NOT_IMPLEMENTED; 167 #endif 168 }
Note:
See TracChangeset
for help on using the changeset viewer.