Changeset 61042 in vbox for trunk/src/VBox/Main/xml
- Timestamp:
- May 19, 2016 11:57:10 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/xml/Settings.cpp
r61036 r61042 2155 2155 fLogoFadeIn(true), 2156 2156 fLogoFadeOut(true), 2157 fPXEDebugEnabled(false), 2157 2158 ulLogoDisplayTime(0), 2158 2159 biosBootMenuMode(BIOSBootMenuMode_MessageAndMenu), 2159 fPXEDebugEnabled(false),2160 apicMode(APICMode_APIC), 2160 2161 llTimeOffset(0) 2161 2162 { … … 2171 2172 && fLogoFadeIn 2172 2173 && fLogoFadeOut 2174 && !fPXEDebugEnabled 2173 2175 && ulLogoDisplayTime == 0 2174 2176 && biosBootMenuMode == BIOSBootMenuMode_MessageAndMenu 2175 && !fPXEDebugEnabled 2176 && llTimeOffset == 0; 2177 && apicMode == APICMode_APIC 2178 && llTimeOffset == 0 2179 && strLogoImagePath.isEmpty(); 2177 2180 } 2178 2181 … … 2189 2192 && fLogoFadeIn == d.fLogoFadeIn 2190 2193 && fLogoFadeOut == d.fLogoFadeOut 2194 && fPXEDebugEnabled == d.fPXEDebugEnabled 2191 2195 && ulLogoDisplayTime == d.ulLogoDisplayTime 2192 && strLogoImagePath == d.strLogoImagePath2193 2196 && biosBootMenuMode == d.biosBootMenuMode 2194 && fPXEDebugEnabled == d.fPXEDebugEnabled 2195 && llTimeOffset == d.llTimeOffset); 2197 && apicMode == d.apicMode 2198 && llTimeOffset == d.llTimeOffset 2199 && strLogoImagePath == d.strLogoImagePath); 2196 2200 } 2197 2201 … … 2692 2696 fTripleFaultReset(false), 2693 2697 fPAE(false), 2698 fAPIC(true), 2699 fX2APIC(false), 2694 2700 enmLongMode(HC_ARCH_BITS == 64 ? Hardware::LongMode_Enabled : Hardware::LongMode_Disabled), 2695 2701 cCPUs(1), … … 2842 2848 && enmLongMode == h.enmLongMode 2843 2849 && fTripleFaultReset == h.fTripleFaultReset 2850 && fAPIC == h.fAPIC 2851 && fX2APIC == h.fX2APIC 2844 2852 && cCPUs == h.cCPUs 2845 2853 && fCpuHotPlug == h.fCpuHotPlug … … 3795 3803 pelmCPUChild->getAttributeValue("enabled", hw.fTripleFaultReset); 3796 3804 3805 if ((pelmCPUChild = pelmHwChild->findChildElement("APIC"))) 3806 pelmCPUChild->getAttributeValue("enabled", hw.fAPIC); 3807 if ((pelmCPUChild = pelmHwChild->findChildElement("X2APIC"))) 3808 pelmCPUChild->getAttributeValue("enabled", hw.fX2APIC); 3809 3797 3810 if ((pelmCPUChild = pelmHwChild->findChildElement("CpuIdTree"))) 3798 3811 readCpuIdTree(*pelmCPUChild, hw.llCpuIdLeafs); … … 4078 4091 if ((pelmBIOSChild = pelmHwChild->findChildElement("IOAPIC"))) 4079 4092 pelmBIOSChild->getAttributeValue("enabled", hw.biosSettings.fIOAPICEnabled); 4093 if ((pelmBIOSChild = pelmHwChild->findChildElement("APIC"))) 4094 { 4095 Utf8Str strAPIC; 4096 if (pelmBIOSChild->getAttributeValue("mode", strAPIC)) 4097 { 4098 strAPIC.toUpper(); 4099 if (strAPIC == "DISABLED") 4100 hw.biosSettings.apicMode = APICMode_Disabled; 4101 else if (strAPIC == "APIC") 4102 hw.biosSettings.apicMode = APICMode_APIC; 4103 else if (strAPIC == "X2APIC") 4104 hw.biosSettings.apicMode = APICMode_X2APIC; 4105 else 4106 throw ConfigFileError(this, pelmBIOSChild, N_("Invalid value '%s' in APIC/@mode attribute"), strAPIC.c_str()); 4107 } 4108 } 4080 4109 if ((pelmBIOSChild = pelmHwChild->findChildElement("Logo"))) 4081 4110 { … … 5100 5129 // PAE has too crazy default handling, must always save this setting. 5101 5130 pelmCPU->createChild("PAE")->setAttribute("enabled", hw.fPAE); 5131 if (m->sv >= SettingsVersion_v1_16) 5132 { 5133 } 5102 5134 if (m->sv >= SettingsVersion_v1_14 && hw.enmLongMode != Hardware::LongMode_Legacy) 5103 5135 { … … 5108 5140 if (hw.fTripleFaultReset) 5109 5141 pelmCPU->createChild("TripleFaultReset")->setAttribute("enabled", hw.fTripleFaultReset); 5142 if (m->sv >= SettingsVersion_v1_14) 5143 { 5144 if (hw.fX2APIC) 5145 pelmCPU->createChild("X2APIC")->setAttribute("enabled", hw.fX2APIC); 5146 else if (!hw.fAPIC) 5147 pelmCPU->createChild("APIC")->setAttribute("enabled", hw.fAPIC); 5148 } 5110 5149 if (hw.cCPUs > 1) 5111 5150 pelmCPU->setAttribute("count", hw.cCPUs); … … 5450 5489 if (hw.biosSettings.fIOAPICEnabled) 5451 5490 pelmBIOS->createChild("IOAPIC")->setAttribute("enabled", hw.biosSettings.fIOAPICEnabled); 5491 if (hw.biosSettings.apicMode != APICMode_APIC) 5492 { 5493 const char *pcszAPIC; 5494 switch (hw.biosSettings.apicMode) 5495 { 5496 case APICMode_Disabled: 5497 pcszAPIC = "Disabled"; 5498 break; 5499 case APICMode_APIC: 5500 default: 5501 pcszAPIC = "APIC"; 5502 break; 5503 case APICMode_X2APIC: 5504 pcszAPIC = "X2APIC"; 5505 break; 5506 } 5507 pelmBIOS->createChild("APIC")->setAttribute("mode", pcszAPIC); 5508 } 5452 5509 5453 5510 if ( !hw.biosSettings.fLogoFadeIn … … 6726 6783 if (m->sv < SettingsVersion_v1_16) 6727 6784 { 6728 // VirtualBox 5.1 adds a NVMe storage controller, paravirt debug options, cpu profile. 6785 // VirtualBox 5.1 adds a NVMe storage controller, paravirt debug 6786 // options, cpu profile, APIC settings (CPU capability and BIOS). 6729 6787 6730 6788 if ( hardwareMachine.strParavirtDebug.isNotEmpty() 6731 || (!hardwareMachine.strCpuProfile.equals("host") && hardwareMachine.strCpuProfile.isNotEmpty()) 6789 || (!hardwareMachine.strCpuProfile.equals("host") && hardwareMachine.strCpuProfile.isNotEmpty() 6790 || hardwareMachine.biosSettings.apicMode != APICMode_APIC 6791 || !hardwareMachine.fAPIC 6792 || hardwareMachine.fX2APIC) 6732 6793 ) 6733 6794 {
Note:
See TracChangeset
for help on using the changeset viewer.