VirtualBox

Ignore:
Timestamp:
Apr 27, 2016 3:53:28 PM (9 years ago)
Author:
vboxsync
Message:

ConsoleImpl2.cpp: No APIC and I/O APIC for pre 386 profiles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r60664 r60721  
    989989         * dead wrong on 8086 (see http://www.os2museum.com/wp/undocumented-8086-opcodes/).
    990990         */
     991        bool fDisableApic = false;
    991992        if (   bstr.equals("Intel 80386") /* just for now */
    992993            || bstr.equals("Intel 80286")
     
    994995            || bstr.equals("Nec V20")
    995996            || bstr.equals("Intel 8086") )
     997        {
    996998            InsertConfigInteger(pEM, "IemExecutesAll", true);
     999            if (!bstr.equals("Intel 80386"))
     1000            {
     1001                fDisableApic = true;
     1002                fIOAPIC      = false;
     1003            }
     1004        }
    9971005
    9981006        /*
     
    15411549         *      thus only single insert
    15421550         */
    1543         InsertConfigNode(pDevices, "apic", &pDev);
    1544         InsertConfigNode(pDev, "0", &pInst);
    1545         InsertConfigInteger(pInst, "Trusted",              1); /* boolean */
    1546         InsertConfigNode(pInst,    "Config", &pCfg);
    1547         InsertConfigInteger(pCfg,  "IOAPIC", fIOAPIC);
    1548         InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
    1549 
    1550         if (fIOAPIC)
    1551         {
    1552             /*
    1553              * I/O Advanced Programmable Interrupt Controller.
    1554              */
    1555             InsertConfigNode(pDevices, "ioapic", &pDev);
    1556             InsertConfigNode(pDev,     "0", &pInst);
     1551        if (fDisableApic)
     1552        {
     1553            InsertConfigNode(pDevices, "apic", &pDev);
     1554            InsertConfigNode(pDev, "0", &pInst);
    15571555            InsertConfigInteger(pInst, "Trusted",          1); /* boolean */
    15581556            InsertConfigNode(pInst,    "Config", &pCfg);
     1557            InsertConfigInteger(pCfg,  "IOAPIC", fIOAPIC);
    15591558            InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
     1559
     1560            if (fIOAPIC)
     1561            {
     1562                /*
     1563                 * I/O Advanced Programmable Interrupt Controller.
     1564                 */
     1565                InsertConfigNode(pDevices, "ioapic", &pDev);
     1566                InsertConfigNode(pDev,     "0", &pInst);
     1567                InsertConfigInteger(pInst, "Trusted",      1); /* boolean */
     1568                InsertConfigNode(pInst,    "Config", &pCfg);
     1569                InsertConfigInteger(pCfg,  "NumCPUs", cCpus);
     1570            }
    15601571        }
    15611572
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