VirtualBox

Changeset 4659 in vbox


Ignore:
Timestamp:
Sep 10, 2007 12:12:13 PM (18 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
24306
Message:

Allow static and runtime changes of memory balloon and stat interval properties

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManage.cpp

    r4658 r4659  
    340340                 "                                            client <pipe>|\n"
    341341                 "                                            <devicename>]\n"
     342                 "                            [-guestmemoryballoon <balloonsize>]\n"
     343                 "                            [-gueststatisticsinterval <seconds>]\n"
    342344                 );
    343345        if (fLinux)
     
    15481550
    15491551    ULONG guestVal;
    1550     RTPrintf("Guest:\n");
     1552    RTPrintf("Guest:\n\n");
    15511553
    15521554    rc = machine->COMGETTER(MemoryBalloonSize)(&guestVal);
     
    15741576            ULONG statVal;
    15751577
    1576             RTPrintf("\nGuest statistics:\n");
     1578            RTPrintf("Guest statistics:\n\n");
    15771579
    15781580            rc = guest->GetStatistic(0, GuestStatisticType_CPULoad_Idle, &statVal);
     
    29292931    int   fUsbEnabled = -1;
    29302932    char *snapshotFolder = NULL;
     2933    ULONG guestMemBalloonSize = (ULONG)-1;
     2934    ULONG guestStatInterval = (ULONG)-1;
    29312935
    29322936    /* VM ID + at least one parameter + value */
     
    34693473                uarts_irq[n - 1]  = uVal;
    34703474            }
     3475        }
     3476        else if (strncmp(argv[i], "-guestmemoryballoon", 19) == 0)
     3477        {
     3478                if (argc <= i + 1)
     3479                    return errorArgument("Missing argument to '%s'", argv[i-1]);
     3480                i++;
     3481                uint32_t uVal;
     3482                int vrc;
     3483                vrc = RTStrToUInt32Ex(argv[i], NULL, 0, &uVal);
     3484                if (vrc != VINF_SUCCESS)
     3485                    return errorArgument("Error parsing guest memory balloon size '%s'", argv[i]);
     3486                guestMemBalloonSize = uVal;
     3487        }
     3488        else if (strncmp(argv[i], "-gueststatisticsinterval", 24) == 0)
     3489        {
     3490                if (argc <= i + 1)
     3491                    return errorArgument("Missing argument to '%s'", argv[i-1]);
     3492                i++;
     3493                uint32_t uVal;
     3494                int vrc;
     3495                vrc = RTStrToUInt32Ex(argv[i], NULL, 0, &uVal);
     3496                if (vrc != VINF_SUCCESS)
     3497                    return errorArgument("Error parsing guest statistics interval '%s'", argv[i]);
     3498                guestStatInterval = uVal;
    34713499        }
    34723500        else
     
    43564384        }
    43574385
     4386        if (    guestMemBalloonSize != -1
     4387            ||  guestStatInterval != -1)
     4388        {
     4389            if (guestMemBalloonSize != -1)
     4390                CHECK_ERROR(machine, COMSETTER(MemoryBalloonSize)(guestMemBalloonSize));
     4391            if (guestStatInterval != -1)
     4392                CHECK_ERROR(machine, COMSETTER(StatisticsUpdateInterval)(guestStatInterval));
     4393        }
     4394
    43584395        /* commit changes */
    43594396        CHECK_ERROR(machine, SaveSettings());
     
    47894826                CHECK_ERROR(floppyDrive, MountImage(uuid));
    47904827            }
     4828        }
     4829        else if (strncmp(argv[1], "-guestmemoryballoon", 19) == 0)
     4830        {
     4831            if (argc != 3)
     4832            {
     4833                errorSyntax(USAGE_CONTROLVM, "Incorrect number of parameters");
     4834                rc = E_FAIL;
     4835                break;
     4836            }
     4837            uint32_t uVal;
     4838            int vrc;
     4839            vrc = RTStrToUInt32Ex(argv[2], NULL, 0, &uVal);
     4840            if (vrc != VINF_SUCCESS)
     4841            {
     4842                errorArgument("Error parsing guest memory balloon size '%s'", argv[2]);
     4843                rc = E_FAIL;
     4844                break;
     4845            }
     4846
     4847            /* guest is running; update IGuest */
     4848            ComPtr <IGuest> guest;
     4849
     4850            rc = console->COMGETTER(Guest)(guest.asOutParam());
     4851            if (SUCCEEDED(rc))
     4852                CHECK_ERROR(guest, COMSETTER(MemoryBalloonSize)(uVal));
     4853        }
     4854        else if (strncmp(argv[1], "-gueststatisticsinterval", 24) == 0)
     4855        {
     4856            if (argc != 3)
     4857            {
     4858                errorSyntax(USAGE_CONTROLVM, "Incorrect number of parameters");
     4859                rc = E_FAIL;
     4860                break;
     4861            }
     4862            uint32_t uVal;
     4863            int vrc;
     4864            vrc = RTStrToUInt32Ex(argv[2], NULL, 0, &uVal);
     4865            if (vrc != VINF_SUCCESS)
     4866            {
     4867                errorArgument("Error parsing guest memory balloon size '%s'", argv[2]);
     4868                rc = E_FAIL;
     4869                break;
     4870            }
     4871
     4872            /* guest is running; update IGuest */
     4873            ComPtr <IGuest> guest;
     4874
     4875            rc = console->COMGETTER(Guest)(guest.asOutParam());
     4876            if (SUCCEEDED(rc))
     4877                CHECK_ERROR(guest, COMSETTER(StatisticsUpdateInterval)(uVal));
    47914878        }
    47924879        else
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette