# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID ff7c5a791ed58fbd9f5fd2db12b5a1b58fd11c4c
# Parent 42cab872427382e7e708c4a151d8da698a519a4f
Backout incautious public/io header changes
diff -r 42cab8724273 -r ff7c5a791ed5 xen/Rules.mk
--- a/xen/Rules.mk Sat Oct 15 03:09:43 2005
+++ b/xen/Rules.mk Fri Oct 21 19:58:39 2005
@@ -47,7 +47,6 @@
include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk
-CFLAGS += -D__HYPERVISOR__
ifneq ($(debug),y)
CFLAGS += -DNDEBUG
ifeq ($(verbose),y)
diff -r 42cab8724273 -r ff7c5a791ed5 xen/arch/ia64/Rules.mk
--- a/xen/arch/ia64/Rules.mk Sat Oct 15 03:09:43 2005
+++ b/xen/arch/ia64/Rules.mk Fri Oct 21 19:58:39 2005
@@ -24,7 +24,7 @@
-I$(BASEDIR)/include/asm-ia64/linux-null \
-I$(BASEDIR)/arch/ia64/linux -I$(BASEDIR)/arch/ia64/linux-xen
CFLAGS += -Wno-pointer-arith -Wredundant-decls
-CFLAGS += -DIA64 -DXEN -DLINUX_2_6 -DV_IOSAPIC_READY
+CFLAGS += -DIA64 -DXEN -DLINUX_2_6
CFLAGS += -ffixed-r13 -mfixed-range=f12-f15,f32-f127
CFLAGS += -w -g
ifeq ($(VALIDATE_VT),y)
diff -r 42cab8724273 -r ff7c5a791ed5 xen/include/public/io/ioreq.h
--- a/xen/include/public/io/ioreq.h Sat Oct 15 03:09:43 2005
+++ b/xen/include/public/io/ioreq.h Fri Oct 21 19:58:39 2005
@@ -29,18 +29,11 @@
#define STATE_IORESP_READY 3
#define STATE_IORESP_HOOK 4
-#define IOREQ_TYPE_PIO 0 /* pio */
-#define IOREQ_TYPE_COPY 1 /* mmio ops */
-#define IOREQ_TYPE_AND 2
-#define IOREQ_TYPE_OR 3
-#define IOREQ_TYPE_XOR 4
-
-#ifdef __HYPERVISOR__
-#include <public/io/vmx_vlapic.h>
-#else
-#include <xen/io/vmx_vlapic.h>
-#endif
-
+#define IOREQ_TYPE_PIO 0 /* pio */
+#define IOREQ_TYPE_COPY 1 /* mmio ops */
+#define IOREQ_TYPE_AND 2
+#define IOREQ_TYPE_OR 3
+#define IOREQ_TYPE_XOR 4
/*
* VMExit dispatcher should cooperate with instruction decoder to
@@ -48,35 +41,48 @@
* virq
*/
typedef struct {
- u64 addr; /* physical address */
- u64 size; /* size in bytes */
- u64 count; /* for rep prefixes */
+ uint64_t addr; /* physical address */
+ uint64_t size; /* size in bytes */
+ uint64_t count; /* for rep prefixes */
union {
- u64 data; /* data */
- void *pdata; /* pointer to data */
+ uint64_t data; /* data */
+ void *pdata; /* pointer to data */
} u;
- u8 state:4;
- u8 pdata_valid:1; /* if 1, use pdata above */
- u8 dir:1; /* 1=read, 0=write */
- u8 df:1;
- u8 type; /* I/O type */
+ uint8_t state:4;
+ uint8_t pdata_valid:1; /* if 1, use pdata above */
+ uint8_t dir:1; /* 1=read, 0=write */
+ uint8_t df:1;
+ uint8_t type; /* I/O type */
} ioreq_t;
+#define MAX_VECTOR 256
+#define BITS_PER_BYTE 8
+#define INTR_LEN (MAX_VECTOR/(BITS_PER_BYTE * sizeof(uint64_t)))
+
typedef struct {
- u64 pic_intr[INTR_LEN];
- u64 pic_mask[INTR_LEN];
- int eport; /* Event channel port */
+ uint64_t pic_intr[INTR_LEN];
+ uint64_t pic_mask[INTR_LEN];
+ int eport; /* Event channel port */
} global_iodata_t;
typedef struct {
- ioreq_t vp_ioreq;
- vl_apic_info apic_intr;
+ ioreq_t vp_ioreq;
+ unsigned long vp_intr[INTR_LEN];
} vcpu_iodata_t;
typedef struct {
- int vcpu_number;
- global_iodata_t sp_global;
- vcpu_iodata_t vcpu_iodata[1];
+ global_iodata_t sp_global;
+ vcpu_iodata_t vcpu_iodata[1];
} shared_iopage_t;
#endif /* _IOREQ_H_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff -r 42cab8724273 -r ff7c5a791ed5 xen/include/public/io/vmx_vlapic.h
--- a/xen/include/public/io/vmx_vlapic.h Sat Oct 15 03:09:43 2005
+++ b/xen/include/public/io/vmx_vlapic.h Fri Oct 21 19:58:39 2005
@@ -1,29 +1,67 @@
#ifndef _VMX_VLAPIC_H
#define _VMX_VLAPIC_H
+/*
+ We extended one bit for PIC type
+ */
#define VLAPIC_DELIV_MODE_FIXED 0x0
#define VLAPIC_DELIV_MODE_LPRI 0x1
#define VLAPIC_DELIV_MODE_SMI 0x2
-#define VLAPIC_DELIV_MODE_PMI 0x2
#define VLAPIC_DELIV_MODE_NMI 0x4
#define VLAPIC_DELIV_MODE_INIT 0x5
#define VLAPIC_DELIV_MODE_STARTUP 0x6
#define VLAPIC_DELIV_MODE_EXT 0x7
#define VLAPIC_DELIV_MODE_MASK 0x8
-#define MAX_VECTOR 256
-#define BITS_PER_BYTE 8
-#define INTR_LEN (MAX_VECTOR/(BITS_PER_BYTE * sizeof(u64)))
-#define INTR_LEN_32 (MAX_VECTOR/(BITS_PER_BYTE * sizeof(u32)))
+#define VLAPIC_MSG_LEVEL 4
+
+#define INTR_EXT 0
+#define INTR_APIC 1
+#define INTR_LAPIC 2
+
+#define VL_STATE_EOI 1
+#define VL_STATE_EXT_LOCK 2
+#define VL_STATE_MSG_LOCK 3
+#define VL_STATE_EOI_LOCK 3
+
+#define VLOCAL_APIC_MAX_INTS 256
+#define VLAPIC_INT_COUNT (VLOCAL_APIC_MAX_INTS/(BITS_PER_BYTE *
sizeof(uint64_t)))
+#define VLAPIC_INT_COUNT_32 (VLOCAL_APIC_MAX_INTS/(BITS_PER_BYTE *
sizeof(uint32_t)))
+
+struct vapic_bus_message{
+ uint8_t deliv_mode:4; /* deliver mode, including fixed, LPRI, etc */
+ uint8_t level:1; /* level or edge */
+ uint8_t trig_mod:1; /* assert or disassert */
+ uint8_t reserved:2;
+ uint8_t vector;
+};
typedef struct {
- u32 vl_lapic_id;
- u32 vl_apr;
- u32 vl_logical_dest;
- u32 vl_dest_format;
- u32 vl_arb_id;
- u64 irr[INTR_LEN];
- u64 tmr[INTR_LEN];
-}vl_apic_info;
+ /* interrupt for PIC and ext type IOAPIC interrupt */
+ uint64_t vl_ext_intr[VLAPIC_INT_COUNT];
+ uint64_t vl_ext_intr_mask[VLAPIC_INT_COUNT];
+ uint64_t vl_apic_intr[VLAPIC_INT_COUNT];
+ uint64_t vl_apic_tmr[VLAPIC_INT_COUNT];
+ uint64_t vl_eoi[VLAPIC_INT_COUNT];
+ uint32_t vl_lapic_id;
+ uint32_t direct_intr;
+ uint32_t vl_apr;
+ uint32_t vl_logical_dest;
+ uint32_t vl_dest_format;
+ uint32_t vl_arb_id;
+ uint32_t vl_state;
+ uint32_t apic_msg_count;
+ struct vapic_bus_message vl_apic_msg[24];
+} vlapic_info;
#endif /* _VMX_VLAPIC_H_ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|