Changeset 4498 in vbox for trunk/src/VBox/Main
- Timestamp:
- Sep 3, 2007 2:40:26 PM (17 years ago)
- Location:
- trunk/src/VBox/Main
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/DisplayImpl.cpp
r4071 r4498 1962 1962 PDRVMAINDISPLAY pDrv = PDMIDISPLAYCONNECTOR_2_MAINDISPLAY(pInterface); 1963 1963 1964 #if def DEBUG_sunlover1964 #if 1 //def DEBUG_sunlover 1965 1965 LogFlowFunc (("mfVideoAccelEnabled = %d, %d,%d %dx%d\n", 1966 1966 pDrv->pDisplay->mfVideoAccelEnabled, x, y, cx, cy)); -
trunk/src/VBox/Main/GuestImpl.cpp
r4492 r4498 174 174 STDMETHODIMP Guest::COMSETTER(MemoryBalloonSize) (ULONG aMemoryBalloonSize) 175 175 { 176 AutoCaller autoCaller (this); 177 CheckComRCReturnRC (autoCaller.rc()); 178 179 AutoReaderLock alock (this); 180 181 HRESULT ret = mParent->machine()->COMSETTER(MemoryBalloonSize)(aMemoryBalloonSize); 182 if (ret == S_OK) 183 { 184 mMemoryBalloonSize = aMemoryBalloonSize; 185 /* forward the information to the VMM device */ 186 VMMDev *vmmDev = mParent->getVMMDev(); 187 if (vmmDev) 188 vmmDev->getVMMDevPort()->pfnSetMemoryBalloon(vmmDev->getVMMDevPort(), aMemoryBalloonSize); 189 } 190 191 return ret; 176 /** @todo fail if larger than physical memory */ 177 178 AutoCaller autoCaller (this); 179 CheckComRCReturnRC (autoCaller.rc()); 180 181 AutoReaderLock alock (this); 182 183 mMemoryBalloonSize = aMemoryBalloonSize; 184 185 return S_OK; 192 186 } 193 187 -
trunk/src/VBox/Main/MachineImpl.cpp
r4492 r4498 41 41 #include "GuestOSTypeImpl.h" 42 42 #include "VirtualBoxErrorInfoImpl.h" 43 #include "GuestImpl.h"44 43 45 44 #include "USBProxyService.h" … … 165 164 /* default values for a newly created machine */ 166 165 mMemorySize = 128; 167 mMemoryBalloonSize = 0;168 166 mVRAMSize = 8; 169 167 mMonitorCount = 1; … … 190 188 191 189 if (mMemorySize != that.mMemorySize || 192 mMemoryBalloonSize != that.mMemoryBalloonSize ||193 190 mVRAMSize != that.mVRAMSize || 194 191 mMonitorCount != that.mMonitorCount || … … 980 977 return S_OK; 981 978 } 982 983 984 STDMETHODIMP Machine::COMGETTER(MemoryBalloonSize) (ULONG *memoryBalloonSize)985 {986 if (!memoryBalloonSize)987 return E_POINTER;988 989 AutoCaller autoCaller (this);990 CheckComRCReturnRC (autoCaller.rc());991 992 AutoReaderLock alock (this);993 994 *memoryBalloonSize = mHWData->mMemoryBalloonSize;995 996 return S_OK;997 }998 999 STDMETHODIMP Machine::COMSETTER(MemoryBalloonSize) (ULONG memoryBalloonSize)1000 {1001 /* check limits */1002 if (memoryBalloonSize >= VMMDEV_MAX_MEMORY_BALLOON(mHWData->mMemorySize))1003 return setError (E_INVALIDARG,1004 tr ("Invalid memory balloon size: %lu MB (must be in range [%lu, %lu] MB)"),1005 memoryBalloonSize, 0, VMMDEV_MAX_MEMORY_BALLOON(mHWData->mMemorySize));1006 1007 AutoCaller autoCaller (this);1008 CheckComRCReturnRC (autoCaller.rc());1009 1010 AutoLock alock (this);1011 1012 HRESULT rc = checkStateDependency (MutableStateDep);1013 CheckComRCReturnRC (rc);1014 1015 mHWData.backup();1016 mHWData->mMemoryBalloonSize = memoryBalloonSize;1017 1018 return S_OK;1019 }1020 1021 979 1022 980 STDMETHODIMP Machine::COMGETTER(MonitorCount) (ULONG *monitorCount) … … 4053 4011 #endif 4054 4012 4055 /* Guest node (optional) */4056 CFGNODE GuestNode = 0;4057 CFGLDRGetChildNode (aNode, "Guest", 0, &GuestNode);4058 if (GuestNode)4059 {4060 uint32_t memoryBalloonSize;4061 CFGLDRQueryUInt32 (GuestNode, "memoryBalloonSize", &memoryBalloonSize);4062 mHWData->mMemoryBalloonSize = memoryBalloonSize;4063 4064 CFGLDRReleaseNode (GuestNode);4065 }4066 4067 4013 /* BIOS node (required) */ 4068 4014 { … … 5964 5910 } 5965 5911 #endif 5966 5967 /* Guest node (optional) */5968 {5969 CFGNODE GuestNode = 0;5970 CFGLDRCreateChildNode (aNode, "Guest", &GuestNode);5971 CFGLDRSetUInt32 (GuestNode, "memoryBalloonSize", mHWData->mMemoryBalloonSize);5972 CFGLDRReleaseNode (GuestNode);5973 }5974 5912 5975 5913 /* BIOS (required) */ -
trunk/src/VBox/Main/VMMDevInterface.cpp
r4492 r4498 351 351 *pcRect = cRect; 352 352 } 353 354 return VINF_SUCCESS;355 }356 357 /**358 * Request the statistics interval359 *360 * @returns VBox status code.361 * @param pInterface Pointer to this interface.362 * @param pulInterval Pointer to interval in seconds363 * @thread The emulation thread.364 */365 DECLCALLBACK(int) vmmdevQueryStatisticsInterval(PPDMIVMMDEVCONNECTOR pInterface, uint32_t *pulInterval)366 {367 PDRVMAINVMMDEV pDrv = PDMIVMMDEVCONNECTOR_2_MAINVMMDEV(pInterface);368 ULONG val = 0;369 370 if (!pulInterval)371 return VERR_INVALID_POINTER;372 373 /* store that information in IGuest */374 Guest* guest = pDrv->pVMMDev->getParent()->getGuest();375 Assert(guest);376 if (!guest)377 return VERR_INVALID_PARAMETER; /** @todo wrong error */378 379 guest->COMGETTER(StatisticsUpdateInterval)(&val);380 *pulInterval = val;381 return VINF_SUCCESS;382 }383 384 /**385 * Report new guest statistics386 *387 * @returns VBox status code.388 * @param pInterface Pointer to this interface.389 * @param pGuestStats Guest statistics390 * @thread The emulation thread.391 */392 DECLCALLBACK(int) vmmdevReportStatistics(PPDMIVMMDEVCONNECTOR pInterface, VBoxGuestStatistics *pGuestStats)393 {394 PDRVMAINVMMDEV pDrv = PDMIVMMDEVCONNECTOR_2_MAINVMMDEV(pInterface);395 396 Assert(pGuestStats);397 if (!pGuestStats)398 return VERR_INVALID_POINTER;399 400 /* store that information in IGuest */401 Guest* guest = pDrv->pVMMDev->getParent()->getGuest();402 Assert(guest);403 if (!guest)404 return VERR_INVALID_PARAMETER; /** @todo wrong error */405 406 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_CPU_LOAD)407 guest->SetStatistic(GuestStatisticType_CPULoad, pGuestStats->u32CpuLoad);408 409 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_THREADS)410 guest->SetStatistic(GuestStatisticType_Threads, pGuestStats->u32Threads);411 412 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_PROCESSES)413 guest->SetStatistic(GuestStatisticType_Processes, pGuestStats->u32Processes);414 415 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_PHYS_MEM_TOTAL)416 guest->SetStatistic(GuestStatisticType_PhysMemTotal, pGuestStats->u32PhysMemTotal);417 418 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_PHYS_MEM_AVAIL)419 guest->SetStatistic(GuestStatisticType_PhysMemAvailable, pGuestStats->u32PhysMemAvail);420 421 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_PHYS_MEM_BALLOON)422 guest->SetStatistic(GuestStatisticType_PhysMemBalloon, pGuestStats->u32PhysMemBalloon);423 424 if (pGuestStats->u32StatCaps & VBOX_GUEST_STAT_PAGE_FILE_SIZE)425 guest->SetStatistic(GuestStatisticType_PageFileSize, pGuestStats->u32PageFileSize);426 353 427 354 return VINF_SUCCESS; … … 616 543 pData->Connector.pfnSetVisibleRegion = vmmdevSetVisibleRegion; 617 544 pData->Connector.pfnQueryVisibleRegion = vmmdevQueryVisibleRegion; 618 pData->Connector.pfnReportStatistics = vmmdevReportStatistics;619 pData->Connector.pfnQueryStatisticsInterval = vmmdevQueryStatisticsInterval;620 545 621 546 #ifdef VBOX_HGCM -
trunk/src/VBox/Main/idl/VirtualBox.xidl
r4492 r4498 409 409 <enum 410 410 name="GuestStatisticType" 411 uuid=" a7cffd08-665f-4156-b2e9-2b3c64e213da"411 uuid="da89a1b7-e602-45ac-84b7-29c9d12b92d5" 412 412 > 413 413 <const name="CPULoad" value="0"> … … 436 436 </desc> 437 437 </const> 438 <const name="PhysMemBalloon" value="5"> 439 <desc> 440 Ballooned physical memory in megabytes. 441 </desc> 442 </const> 443 <const name="PageFileSize" value="6"> 438 <const name="PageFileSize" value="5"> 444 439 <desc> 445 440 Pagefile size in megabytes. … … 2021 2016 <interface 2022 2017 name="IMachine" extends="$unknown" 2023 uuid=" dcfb87c4-18a9-4a1e-9b1f-6f68f920535b"2018 uuid="31f7169f-14da-4c55-8cb6-a3665186e35e" 2024 2019 wsmap="managed" 2025 2020 > … … 2168 2163 2169 2164 <attribute name="memorySize" type="unsigned long"> 2170 <desc>System memory size in megabytes.</desc> 2171 </attribute> 2172 2173 <attribute name="memoryBalloonSize" type="unsigned long"> 2174 <desc>Initial memory balloon size in megabytes.</desc> 2165 <desc>Sytem memory size in megabytes.</desc> 2175 2166 </attribute> 2176 2167 -
trunk/src/VBox/Main/include/MachineImpl.h
r4492 r4498 221 221 222 222 ULONG mMemorySize; 223 ULONG mMemoryBalloonSize;224 223 ULONG mVRAMSize; 225 224 ULONG mMonitorCount; … … 442 441 STDMETHOD(COMGETTER(MemorySize))(ULONG *memorySize); 443 442 STDMETHOD(COMSETTER(MemorySize))(ULONG memorySize); 444 STDMETHOD(COMGETTER(MemoryBalloonSize))(ULONG *memoryBalloonSize);445 STDMETHOD(COMSETTER(MemoryBalloonSize))(ULONG memoryBalloonSize);446 443 STDMETHOD(COMGETTER(VRAMSize))(ULONG *memorySize); 447 444 STDMETHOD(COMSETTER(VRAMSize))(ULONG memorySize); -
trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
r4494 r4498 383 383 </xsd:complexType> 384 384 385 <xsd:complexType name="TGuest">386 <xsd:attribute name="MemoryBalloonSize" type="xsd:unsignedInt" default="0"/>387 </xsd:complexType>388 389 385 <xsd:complexType name="TBoot"> 390 386 <xsd:sequence>
Note:
See TracChangeset
for help on using the changeset viewer.