- Timestamp:
- Sep 16, 2008 1:04:14 PM (16 years ago)
- Location:
- trunk/src/VBox
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/DevAPIC.cpp
r11284 r12487 180 180 #ifndef VBOX 181 181 QEMUTimer *timer; 182 183 182 struct APICState *next_apic; 184 183 #else /* VBOX */ 184 #ifdef VBOX_WITH_SMP_GUESTS 185 //struct APICState *next_apic; 186 #endif 185 187 /** The device instance - R3 Ptr. */ 186 188 PPDMDEVINSR3 pDevInsR3; … … 1543 1545 APICState *s = PDMINS_2_DATA(pDevIns, APICState *); 1544 1546 1547 #ifdef VBOX_WITH_SMP_GUESTS 1548 LogRel(("[SMP] apicMMIORead %p at %ullx\n", pDevIns, (uint64_t)GCPhysAddr)); 1549 #endif 1550 1545 1551 STAM_COUNTER_INC(&CTXSUFF(s->StatMMIORead)); 1546 1552 switch (cb) … … 1674 1680 bool fGCEnabled; 1675 1681 bool fR0Enabled; 1682 1683 #ifndef VBOX_WITH_SMP_GUESTS 1676 1684 Assert(iInstance == 0); 1685 #else 1686 LogRel(("[SMP] apicConstruct: %d %p\n", iInstance, pDevIns)); 1687 #endif 1677 1688 1678 1689 /* … … 1708 1719 pThis->lvt[i] = 1 << 16; /* mask LVT */ 1709 1720 pThis->spurious_vec = 0xff; 1721 1710 1722 1711 1723 /* … … 1771 1783 { 1772 1784 if ( fIOAPIC /* If IOAPIC is enabled, enable Local APIC in any case */ 1773 || ( u32Ebx == X86_CPUID_VENDOR_INTEL_EBX1774 && u32Ecx == X86_CPUID_VENDOR_INTEL_ECX1775 && u32Edx == X86_CPUID_VENDOR_INTEL_EDX /* GenuineIntel */)1776 || ( u32Ebx == X86_CPUID_VENDOR_AMD_EBX1777 && u32Ecx == X86_CPUID_VENDOR_AMD_ECX1778 && u32Edx == X86_CPUID_VENDOR_AMD_EDX /* AuthenticAMD */))1785 || ( u32Ebx == X86_CPUID_VENDOR_INTEL_EBX 1786 && u32Ecx == X86_CPUID_VENDOR_INTEL_ECX 1787 && u32Edx == X86_CPUID_VENDOR_INTEL_EDX /* GenuineIntel */) 1788 || ( u32Ebx == X86_CPUID_VENDOR_AMD_EBX 1789 && u32Ecx == X86_CPUID_VENDOR_AMD_ECX 1790 && u32Edx == X86_CPUID_VENDOR_AMD_EDX /* AuthenticAMD */)) 1779 1791 { 1780 1792 LogRel(("Activating Local APIC\n")); … … 1862 1874 PDM_DEVREG_CLASS_PIC, 1863 1875 /* cMaxInstances */ 1876 #ifdef VBOX_WITH_SMP_GUESTS 1877 8, 1878 #else 1864 1879 1, 1880 #endif 1865 1881 /* cbInstance */ 1866 1882 sizeof(APICState), -
trunk/src/VBox/Main/ConsoleImpl2.cpp
r12432 r12487 431 431 { 432 432 ComPtr<IHostFloppyDrive> hostFloppyDrive; 433 hrc = floppyDrive->GetHostDrive(hostFloppyDrive.asOutParam()); H();433 hrc = floppyDrive->GetHostDrive(hostFloppyDrive.asOutParam()); H(); 434 434 if (hostFloppyDrive) 435 435 { … … 500 500 * Advanced Programmable Interrupt Controller. 501 501 */ 502 #ifdef VBOX_WITH_SMP_GUESTS 503 rc = CFGMR3InsertNode(pDevices, "apic", &pDev); RC_CHECK(); 504 /* We need LAPIC per-CPU, as it allows cross-calls */ 505 for (ULONG ulInstance = 0; ulInstance < cCpus; ulInstance++) 506 { 507 char szInstance[4]; Assert(ulInstance <= 999); 508 RTStrPrintf(szInstance, sizeof(szInstance), "%lu", ulInstance); 509 rc = CFGMR3InsertNode(pDev, szInstance, &pInst); 510 RC_CHECK(); 511 rc = CFGMR3InsertInteger(pInst, "Trusted", 1); /* boolean */ RC_CHECK(); 512 rc = CFGMR3InsertNode(pInst, "Config", &pCfg); RC_CHECK(); 513 rc = CFGMR3InsertInteger(pCfg, "IOAPIC", fIOAPIC); RC_CHECK(); 514 } 515 #else 502 516 rc = CFGMR3InsertNode(pDevices, "apic", &pDev); RC_CHECK(); 503 517 rc = CFGMR3InsertNode(pDev, "0", &pInst); RC_CHECK(); … … 505 519 rc = CFGMR3InsertNode(pInst, "Config", &pCfg); RC_CHECK(); 506 520 rc = CFGMR3InsertInteger(pCfg, "IOAPIC", fIOAPIC); RC_CHECK(); 521 #endif 507 522 508 523 if (fIOAPIC)
Note:
See TracChangeset
for help on using the changeset viewer.