__ia64__ really really should not be defined in the x86 arch subtree,
so remove it from xen/include/public/arch-x86/hvm/save.h
This in turn allows the removal of VIOAPIC_IS_IOSAPIC, as x86 does not
use streamlined {IO,L}APICs, allowing for the removal of more code
from the x86 tree.
Changes since v2:
* Leave the EOI register write protected by VIOAPIC_VERSION_ID >=
0x20. Currently, only version 0x11 is emulated, but leave this
correct code in place in case a decision is make to emulate the
newer version.
Changes since v1:
* Refresh patch following the decision not to try emulating a
version 0x20 IOAPIC
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Committed-by: Keir Fraser <keir@xen.org>
| (VIOAPIC_VERSION_ID & 0xff));
break;
-#if !VIOAPIC_IS_IOSAPIC
case VIOAPIC_REG_APIC_ID:
case VIOAPIC_REG_ARB_ID:
result = ((vioapic->id & 0xf) << 24);
break;
-#endif
default:
{
/* Writes are ignored. */
break;
-#if !VIOAPIC_IS_IOSAPIC
case VIOAPIC_REG_APIC_ID:
vioapic->id = (val >> 24) & 0xf;
break;
case VIOAPIC_REG_ARB_ID:
break;
-#endif
default:
{
vioapic_write_indirect(vioapic, length, val);
break;
-#if VIOAPIC_IS_IOSAPIC
+#if VIOAPIC_VERSION_ID >= 0x20
case VIOAPIC_REG_EOI:
vioapic_update_EOI(v->domain, val);
break;
#include <xen/smp.h>
#include <public/hvm/save.h>
-#if !VIOAPIC_IS_IOSAPIC
#define VIOAPIC_VERSION_ID 0x11 /* IOAPIC version */
-#else
-#define VIOAPIC_VERSION_ID 0x21 /* IOSAPIC version */
-#endif
#define VIOAPIC_EDGE_TRIG 0
#define VIOAPIC_LEVEL_TRIG 1
* IO-APIC
*/
-#ifdef __ia64__
-#define VIOAPIC_IS_IOSAPIC 1
-#define VIOAPIC_NUM_PINS 24
-#else
#define VIOAPIC_NUM_PINS 48 /* 16 ISA IRQs, 32 non-legacy PCI IRQS. */
-#endif
struct hvm_hw_vioapic {
uint64_t base_address;
uint8_t trig_mode:1;
uint8_t mask:1;
uint8_t reserve:7;
-#if !VIOAPIC_IS_IOSAPIC
uint8_t reserved[4];
uint8_t dest_id;
-#else
- uint8_t reserved[3];
- uint16_t dest_id;
-#endif
} fields;
} redirtbl[VIOAPIC_NUM_PINS];
};