VirtualBox

Ignore:
Timestamp:
Nov 11, 2010 8:17:47 PM (14 years ago)
Author:
vboxsync
Message:

Main, FE/VBoxManage: Make it possible to mark specific controllers as bootable which means that the BIOS can access devices attached to the controller to boot from it

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

Legend:

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

    r33825 r34010  
    478478                     "                            [--sataportcount <1-30>]\n"
    479479                     "                            [--hostiocache on|off]\n"
     480                     "                            [--bootable on|off]\n"
    480481                     "                            [--remove]\n"
    481482                     "\n");
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r33904 r34010  
    666666        const char *pszCtl = NULL;
    667667        ULONG ulValue = 0;
     668        BOOL  fBootable = FALSE;
    668669        Bstr storageCtlName;
    669670
     
    724725        else
    725726            RTPrintf("Storage Controller Port Count (%u):      %lu\n", i, ulValue);
     727
     728        storageCtl->COMGETTER(Bootable)(&fBootable);
     729        if (details == VMINFO_MACHINEREADABLE)
     730            RTPrintf("storagecontrollerbootable%u=\"%s\"\n", i, fBootable ? "on" : "off");
     731        else
     732            RTPrintf("Storage Controller Bootable (%u):        %s\n", i, fBootable ? "on" : "off");
    726733    }
    727734
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageStorageController.cpp

    r33540 r34010  
    647647    { "--remove",           'r', RTGETOPT_REQ_NOTHING },
    648648    { "--hostiocache",      'i', RTGETOPT_REQ_STRING },
     649    { "--bootable",         'b', RTGETOPT_REQ_STRING },
    649650};
    650651
     
    657658    const char       *pszCtlType     = NULL;
    658659    const char       *pszHostIOCache = NULL;
     660    const char       *pszBootable    = NULL;
    659661    ULONG             satabootdev    = ~0U;
    660662    ULONG             sataidedev     = ~0U;
     
    728730            }
    729731
     732            case 'b':
     733            {
     734                pszBootable = ValueUnion.psz;
     735                break;
     736            }
     737
    730738            default:
    731739            {
     
    949957            }
    950958        }
     959
     960        if (   pszBootable
     961            && SUCCEEDED(rc))
     962        {
     963            if (SUCCEEDED(rc))
     964            {
     965                if (!RTStrICmp(pszBootable, "on"))
     966                {
     967                    CHECK_ERROR(machine, SetStorageControllerBootable(Bstr(pszCtl).raw(), TRUE));
     968                }
     969                else if (!RTStrICmp(pszBootable, "off"))
     970                {
     971                    CHECK_ERROR(machine, SetStorageControllerBootable(Bstr(pszCtl).raw(), FALSE));
     972                }
     973                else
     974                {
     975                    errorArgument("Invalid --bootable argument '%s'", pszHostIOCache);
     976                    rc = E_FAIL;
     977                }
     978            }
     979            else
     980            {
     981                errorArgument("Couldn't find the controller with the name: '%s'\n", pszCtl);
     982                rc = E_FAIL;
     983            }
     984        }
    951985    }
    952986
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