VirtualBox

Ignore:
Timestamp:
May 19, 2016 11:57:10 AM (9 years ago)
Author:
vboxsync
Message:

Main/Machine+BIOSSettings: introduce APIC/X2APIC CPU feature settings and a BIOS setting what should be used.
Frontends/VBoxManage: corresponding changes to allow making the settings changes
Devices/BIOS+EFI: placeholder for the BIOS setting part, which isn't implemented yet

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

Legend:

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

    r60734 r61042  
    681681                     "                            [--hpet on|off]\n"
    682682                     "                            [--triplefaultreset on|off]\n"
     683                     "                            [--apic on|off]\n"
     684                     "                            [--x2apic on|off]\n"
    683685                     "                            [--paravirtprovider none|default|legacy|minimal|\n"
    684686                     "                                                hyperv|kvm]\n"
     
    720722                     "                            [--bioslogoimagepath <imagepath>]\n"
    721723                     "                            [--biosbootmenu disabled|menuonly|messageandmenu]\n"
     724                     "                            [--biosapic disabled|apic|x2apic]\n"
    722725                     "                            [--biossystemtimeoffset <msec>]\n"
    723726                     "                            [--biospxedebug on|off]\n"
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp

    r60410 r61042  
    55
    66/*
    7  * Copyright (C) 2006-2015 Oracle Corporation
     7 * Copyright (C) 2006-2016 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    618618    SHOW_BOOLEAN_METHOD(   machine, GetCPUProperty(CPUPropertyType_PAE, &f), "pae", "PAE");
    619619    SHOW_BOOLEAN_METHOD(   machine, GetCPUProperty(CPUPropertyType_LongMode, &f), "longmode", "Long Mode");
     620    SHOW_BOOLEAN_METHOD(   machine, GetCPUProperty(CPUPropertyType_TripleFaultReset, &f), "triplefaultreset", "Triple Fault Reset");
     621    SHOW_BOOLEAN_METHOD(   machine, GetCPUProperty(CPUPropertyType_APIC, &f), "apic", "APIC");
     622    SHOW_BOOLEAN_METHOD(   machine, GetCPUProperty(CPUPropertyType_X2APIC, &f), "x2apic", "X2APIC");
    620623    SHOW_ULONG_PROP(       machine, CPUIDPortabilityLevel, "cpuid-portability-level",   "CPUID Portability Level", "");
    621624
     
    738741    SHOW_BOOLEAN_PROP(biosSettings, ACPIEnabled,                "acpi",                 "ACPI");
    739742    SHOW_BOOLEAN_PROP(biosSettings, IOAPICEnabled,              "ioapic",               "IOAPIC");
     743
     744    APICMode_T apicMode;
     745    CHECK_ERROR2I_RET(biosSettings, COMGETTER(APICMode)(&apicMode), hrcCheck);
     746    const char *pszAPIC;
     747    switch (apicMode)
     748    {
     749        case APICMode_Disabled:
     750            pszAPIC = "disabled";
     751            break;
     752        case APICMode_APIC:
     753        default:
     754            if (details == VMINFO_MACHINEREADABLE)
     755                pszAPIC = "apic";
     756            else
     757                pszAPIC = "APIC";
     758            break;
     759        case APICMode_X2APIC:
     760            if (details == VMINFO_MACHINEREADABLE)
     761                pszBootMenu = "x2apic";
     762            else
     763                pszBootMenu = "x2APIC";
     764            break;
     765    }
     766    if (details == VMINFO_MACHINEREADABLE)
     767        RTPrintf("biosapic=\"%s\"\n", pszAPIC);
     768    else
     769        RTPrintf("BIOS APIC mode:  %s\n", pszAPIC);
     770
    740771    SHOW_LONG64_PROP(biosSettings,  TimeOffset,                 "biossystemtimeoffset", "Time offset",  "ms");
    741772    SHOW_BOOLEAN_PROP_EX(machine,   RTCUseUTC,                  "rtcuseutc",            "RTC",          "UTC", "local time");
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp

    r60410 r61042  
    55
    66/*
    7  * Copyright (C) 2006-2015 Oracle Corporation
     7 * Copyright (C) 2006-2016 Oracle Corporation
    88 *
    99 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    6363    MODIFYVM_CPUID_PORTABILITY,
    6464    MODIFYVM_TFRESET,
     65    MODIFYVM_APIC,
     66    MODIFYVM_X2APIC,
    6567    MODIFYVM_PARAVIRTPROVIDER,
    6668    MODIFYVM_PARAVIRTDEBUG,
     
    8991    MODIFYVM_BIOSLOGOIMAGEPATH,
    9092    MODIFYVM_BIOSBOOTMENU,
     93    MODIFYVM_BIOSAPIC,
    9194    MODIFYVM_BIOSSYSTEMTIMEOFFSET,
    9295    MODIFYVM_BIOSPXEDEBUG,
     
    236239    { "--cpuid-portability-level",  MODIFYVM_CPUID_PORTABILITY,         RTGETOPT_REQ_UINT32 },
    237240    { "--triplefaultreset",         MODIFYVM_TFRESET,                   RTGETOPT_REQ_BOOL_ONOFF },
     241    { "--apic",                     MODIFYVM_APIC,                      RTGETOPT_REQ_BOOL_ONOFF },
     242    { "--x2apic",                   MODIFYVM_X2APIC,                    RTGETOPT_REQ_BOOL_ONOFF },
    238243    { "--paravirtprovider",         MODIFYVM_PARAVIRTPROVIDER,          RTGETOPT_REQ_STRING },
    239244    { "--paravirtdebug",            MODIFYVM_PARAVIRTDEBUG,             RTGETOPT_REQ_STRING },
     
    265270    { "--biosbootmenu",             MODIFYVM_BIOSBOOTMENU,              RTGETOPT_REQ_STRING },
    266271    { "--biossystemtimeoffset",     MODIFYVM_BIOSSYSTEMTIMEOFFSET,      RTGETOPT_REQ_INT64 },
     272    { "--biosapic",                 MODIFYVM_BIOSAPIC,                  RTGETOPT_REQ_STRING },
    267273    { "--biospxedebug",             MODIFYVM_BIOSPXEDEBUG,              RTGETOPT_REQ_BOOL_ONOFF },
    268274    { "--boot",                     MODIFYVM_BOOT,                      RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
     
    672678            }
    673679
     680            case MODIFYVM_APIC:
     681            {
     682                CHECK_ERROR(sessionMachine, SetCPUProperty(CPUPropertyType_APIC, ValueUnion.f));
     683                break;
     684            }
     685
     686            case MODIFYVM_X2APIC:
     687            {
     688                CHECK_ERROR(sessionMachine, SetCPUProperty(CPUPropertyType_X2APIC, ValueUnion.f));
     689                break;
     690            }
     691
    674692            case MODIFYVM_PARAVIRTPROVIDER:
    675693            {
     
    887905                {
    888906                    errorArgument("Invalid --biosbootmenu argument '%s'", ValueUnion.psz);
     907                    rc = E_FAIL;
     908                }
     909                break;
     910            }
     911
     912            case MODIFYVM_BIOSAPIC:
     913            {
     914                if (!RTStrICmp(ValueUnion.psz, "disabled"))
     915                {
     916                    CHECK_ERROR(biosSettings, COMSETTER(APICMode)(APICMode_Disabled));
     917                }
     918                else if (   !RTStrICmp(ValueUnion.psz, "apic")
     919                         || !RTStrICmp(ValueUnion.psz, "lapic")
     920                         || !RTStrICmp(ValueUnion.psz, "xapic"))
     921                {
     922                    CHECK_ERROR(biosSettings, COMSETTER(APICMode)(APICMode_APIC));
     923                }
     924                else if (!RTStrICmp(ValueUnion.psz, "x2apic"))
     925                {
     926                    CHECK_ERROR(biosSettings, COMSETTER(APICMode)(APICMode_X2APIC));
     927                }
     928                else
     929                {
     930                    errorArgument("Invalid --biosapic argument '%s'", ValueUnion.psz);
    889931                    rc = E_FAIL;
    890932                }
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