VirtualBox

Changeset 38874 in vbox


Ignore:
Timestamp:
Sep 27, 2011 8:59:11 AM (13 years ago)
Author:
vboxsync
Message:

FE/VBoxManage: Add discard option

Location:
trunk/src/VBox/Frontends/VBoxManage
Files:
2 edited

Legend:

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

    r38787 r38874  
    472472                     "                            [--tempeject on|off]\n"
    473473                     "                            [--nonrotational on|off]\n"
     474                     "                            [--discard on|off]\n"
    474475                     "                            [--bandwidthgroup <name>]\n"
    475476                     "                            [--forceunmount]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageStorageController.cpp

    r38330 r38874  
    5454    { "--tempeject",        'e', RTGETOPT_REQ_STRING },
    5555    { "--nonrotational",    'n', RTGETOPT_REQ_STRING },
     56    { "--discard",          'u', RTGETOPT_REQ_STRING },
    5657    { "--bandwidthgroup",   'b', RTGETOPT_REQ_STRING },
    5758    { "--forceunmount",     'f', RTGETOPT_REQ_NOTHING },
     
    8889    const char *pszTempEject = NULL;
    8990    const char *pszNonRotational = NULL;
     91    const char *pszDiscard = NULL;
    9092    const char *pszBandwidthGroup = NULL;
    9193    Bstr bstrNewUuid;
     
    184186                if (ValueUnion.psz)
    185187                    pszNonRotational = ValueUnion.psz;
     188                else
     189                    rc = E_FAIL;
     190                break;
     191            }
     192
     193            case 'u':   // nonrotational <on|off>
     194            {
     195                if (ValueUnion.psz)
     196                    pszDiscard = ValueUnion.psz;
    186197                else
    187198                    rc = E_FAIL;
     
    796807        }
    797808
     809        if (   pszNonRotational
     810            && (SUCCEEDED(rc)))
     811        {
     812            ComPtr<IMediumAttachment> mattach;
     813            CHECK_ERROR(machine, GetMediumAttachment(Bstr(pszCtl).raw(), port,
     814                                                     device, mattach.asOutParam()));
     815
     816            if (SUCCEEDED(rc))
     817            {
     818                if (!RTStrICmp(pszDiscard, "on"))
     819                {
     820                    CHECK_ERROR(machine, DiscardDevice(Bstr(pszCtl).raw(),
     821                                                       port, device, TRUE));
     822                }
     823                else if (!RTStrICmp(pszDiscard, "off"))
     824                {
     825                    CHECK_ERROR(machine, DiscardDevice(Bstr(pszCtl).raw(),
     826                                                       port, device, FALSE));
     827                }
     828                else
     829                    throw Utf8StrFmt("Invalid --nonrotational argument '%s'", pszNonRotational);
     830            }
     831            else
     832                throw Utf8StrFmt("Couldn't find the controller attachment for the controller '%s'\n", pszCtl);
     833        }
     834
     835
    798836        if (   pszBandwidthGroup
    799837            && !fRunTime
Note: See TracChangeset for help on using the changeset viewer.

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