Magenheimer, Dan (HP Labs Fort Collins)
2005-Oct-13 20:23 UTC
[Xen-devel] Please check ia64 patch for core files to be affected
As part of a general cleanup/bug-fix patch, I''ve got the following changes to core files included in the next round of ia64 changes. Since these are VT-related and may affect x86 VT, I wanted to post them for general xen-devel review first. Jun, Keir, others -- If you have any problems/concerns with these please let me know and I will remove them from the ia64 tree before asking for the next pull from the ia64 tree. Thanks, Dan ===========Signed-off-by Kevin Tian <kevin.tian@intel.com> Signed-off-by Anthony Xu <anthony.xu@intel.com> diff -r 54b112b314fe -r a88955bbbc90 xen/Rules.mk --- a/xen/Rules.mk Wed Oct 12 23:12:59 2005 +++ b/xen/Rules.mk Thu Oct 13 08:59:03 2005 @@ -47,6 +47,7 @@ include $(BASEDIR)/arch/$(TARGET_ARCH)/Rules.mk +CFLAGS += -D__HYPERVISOR__ ifneq ($(debug),y) CFLAGS += -DNDEBUG ifeq ($(verbose),y) diff -r 54b112b314fe -r a88955bbbc90 xen/include/public/io/ioreq.h --- a/xen/include/public/io/ioreq.h Wed Oct 12 23:12:59 2005 +++ b/xen/include/public/io/ioreq.h Thu Oct 13 08:59:03 2005 @@ -35,6 +35,13 @@ #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 + + /* * VMExit dispatcher should cooperate with instruction decoder to * prepare this structure and notify service OS and DM by sending @@ -55,10 +62,6 @@ u8 type; /* I/O type */ } ioreq_t; -#define MAX_VECTOR 256 -#define BITS_PER_BYTE 8 -#define INTR_LEN (MAX_VECTOR/(BITS_PER_BYTE * sizeof(u64))) - typedef struct { u64 pic_intr[INTR_LEN]; u64 pic_mask[INTR_LEN]; @@ -67,10 +70,11 @@ typedef struct { ioreq_t vp_ioreq; - unsigned long vp_intr[INTR_LEN]; + vl_apic_info apic_intr; } vcpu_iodata_t; typedef struct { + int vcpu_number; global_iodata_t sp_global; vcpu_iodata_t vcpu_iodata[1]; } shared_iopage_t; diff -r 54b112b314fe -r a88955bbbc90 xen/include/public/io/vmx_vlapic.h --- a/xen/include/public/io/vmx_vlapic.h Wed Oct 12 23:12:59 2005 +++ b/xen/include/public/io/vmx_vlapic.h Thu Oct 13 08:59:03 2005 @@ -1,57 +1,29 @@ #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 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(u64))) -#define VLAPIC_INT_COUNT_32 (VLOCAL_APIC_MAX_INTS/(BITS_PER_BYTE * sizeof(u32))) - -struct vapic_bus_message{ - u8 deliv_mode:4; /* deliver mode, including fixed, LPRI, etc */ - u8 level:1; /* level or edge */ - u8 trig_mod:1; /* assert or disassert */ - u8 reserved:2; - u8 vector; -}; +#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))) typedef struct { - /* interrupt for PIC and ext type IOAPIC interrupt */ - u64 vl_ext_intr[VLAPIC_INT_COUNT]; - u64 vl_ext_intr_mask[VLAPIC_INT_COUNT]; - u64 vl_apic_intr[VLAPIC_INT_COUNT]; - u64 vl_apic_tmr[VLAPIC_INT_COUNT]; - u64 vl_eoi[VLAPIC_INT_COUNT]; u32 vl_lapic_id; - u32 direct_intr; u32 vl_apr; u32 vl_logical_dest; u32 vl_dest_format; u32 vl_arb_id; - u32 vl_state; - u32 apic_msg_count; - struct vapic_bus_message vl_apic_msg[24]; -} vlapic_info; + u64 irr[INTR_LEN]; + u64 tmr[INTR_LEN]; +}vl_apic_info; #endif /* _VMX_VLAPIC_H_ */ _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Magenheimer, Dan (HP Labs Fort Collins)
2005-Oct-13 21:59 UTC
[Xen-devel] RE: Please check ia64 patch for core files to be affected
Here''s another couple changes to core files needed for ia64. Here, dsize is a size_t so gcc doesn''t allow it to be printf''d by a %i on ia64 where size_t is 64-bits (and int is 32 bits). Unless there are objections (or a better fix suggested), these will also be included in the next ia64 pull. Dan ========== # User tristan.gingold@bull.net # Node ID 276744d6f43efc3a2f885d5ade6b9a56733df81c # Parent 74d56b7ff46cb07fbf7dbb72cad4e14e9d22324f Modify to be able to compile on ia64. Width arguments of printf ("%*") should be an int. diff -r 74d56b7ff46c -r 276744d6f43e tools/xenstore/xs_tdb_dump.c --- a/tools/xenstore/xs_tdb_dump.c Tue Oct 11 22:57:44 2005 +++ b/tools/xenstore/xs_tdb_dump.c Wed Oct 12 12:51:31 2005 @@ -53,17 +53,17 @@ hdr = (void *)data.dptr; if (data.dsize < sizeof(*hdr)) fprintf(stderr, "%.*s: BAD truncated\n", - key.dsize, key.dptr); + (int)key.dsize, key.dptr); else if (data.dsize != total_size(hdr)) fprintf(stderr, "%.*s: BAD length %i for %i/%i/%i (%i)\n", - key.dsize, key.dptr, data.dsize, + (int)key.dsize, key.dptr, (int)data.dsize, hdr->num_perms, hdr->datalen, hdr->childlen, total_size(hdr)); else { unsigned int i; char *p; - printf("%.*s: ", key.dsize, key.dptr); + printf("%.*s: ", (int)key.dsize, key.dptr); for (i = 0; i < hdr->num_perms; i++) printf("%s%c%i", i == 0 ? "" : ",", diff -r 74d56b7ff46c -r 276744d6f43e tools/xenstore/xsls.c --- a/tools/xenstore/xsls.c Tue Oct 11 22:57:44 2005 +++ b/tools/xenstore/xsls.c Wed Oct 12 12:51:31 2005 @@ -25,7 +25,7 @@ if (val == NULL) printf(":\n"); else if ((unsigned)len > (151 - strlen(e[i]))) - printf(" = \"%.*s...\"\n", 148 - strlen(e[i]), val); + printf(" = \"%.*s...\"\n", 148 - (int)strlen(e[i]), val); else printf(" = \"%s\"\n", val); free(val); _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
David Hopwood
2005-Oct-14 03:06 UTC
Re: [Xen-devel] Please check ia64 patch for core files to be affected
Magenheimer, Dan (HP Labs Fort Collins) wrote:> #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 0x5Is that right? 0x2, not 0x3? -- David Hopwood <david.nospam.hopwood@blueyonder.co.uk> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2005-Oct-14 08:36 UTC
Re: [Xen-devel] Please check ia64 patch for core files to be affected
On 13 Oct 2005, at 21:23, Magenheimer, Dan (HP Labs Fort Collins) wrote:> Jun, Keir, others -- If you have any problems/concerns > with these please let me know and I will remove them > from the ia64 tree before asking for the next pull > from the ia64 tree.No need for -D__HYPERVISOR__. There are plenty of examples of including public header files for other public header files in xen/include/public, without resorting to that hack. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Keir Fraser
2005-Oct-14 08:36 UTC
Re: [Xen-devel] RE: Please check ia64 patch for core files to be affected
On 13 Oct 2005, at 22:59, Magenheimer, Dan (HP Labs Fort Collins) wrote:> Here''s another couple changes to core files needed > for ia64. Here, dsize is a size_t so gcc doesn''t > allow it to be printf''d by a %i on ia64 where size_t > is 64-bits (and int is 32 bits). Unless there > are objections (or a better fix suggested), these > will also be included in the next ia64 pull.No problem. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel