[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] Cleanup: remove cpu_user_regs from arch-ia64.h



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1183391693 21600
# Node ID c7e16caf4e630d8c84d2f630e5ef481756a589a2
# Parent  2a5b463f2e8dcb5b132062547f2ea76780d80aae
[IA64] Cleanup: remove cpu_user_regs from arch-ia64.h

Add a constant for isr.ni

Signed-off-by: Tristan Gingold <tgingold@xxxxxxx>
---
 xen/arch/ia64/vmx/vmx_minstate.h            |    4 -
 xen/arch/ia64/xen/domain.c                  |   26 +++++----
 xen/include/asm-ia64/linux-xen/asm/ptrace.h |   40 +++++++++-----
 xen/include/asm-ia64/vcpu.h                 |    3 -
 xen/include/asm-ia64/xenkregs.h             |    3 +
 xen/include/public/arch-ia64.h              |   77 ----------------------------
 xen/include/public/foreign/reference.size   |    2 
 7 files changed, 47 insertions(+), 108 deletions(-)

diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/arch/ia64/vmx/vmx_minstate.h
--- a/xen/arch/ia64/vmx/vmx_minstate.h  Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/arch/ia64/vmx/vmx_minstate.h  Mon Jul 02 09:54:53 2007 -0600
@@ -124,9 +124,9 @@
     ;;                                          \
     tbit.z p6,p0=r29,IA64_PSR_VM_BIT;       \
     ;;      \
-    tbit.nz.or p6,p0 = r18,39; \
+    tbit.nz.or p6,p0 = r18,IA64_ISR_NI_BIT; \
     ;;        \
-(p6) br.sptk.few vmx_panic;        \
+(p6) br.spnt.few vmx_panic;        \
     tbit.z p0,p15=r29,IA64_PSR_I_BIT;   \
     mov r1=r16;                     \
 /*    mov r21=r16;     */              \
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/arch/ia64/xen/domain.c
--- a/xen/arch/ia64/xen/domain.c        Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/arch/ia64/xen/domain.c        Mon Jul 02 09:54:53 2007 -0600
@@ -612,6 +612,8 @@ int arch_vcpu_reset(struct vcpu *v)
        return 0;
 }
 
+#define COPY_FPREG(dst, src) memcpy(dst, src, sizeof(struct ia64_fpreg))
+
 void arch_get_info_guest(struct vcpu *v, vcpu_guest_context_u c)
 {
        int i;
@@ -678,12 +680,12 @@ void arch_get_info_guest(struct vcpu *v,
 
        c.nat->regs.ar.ccv = uregs->ar_ccv;
 
-       c.nat->regs.f[6] = uregs->f6;
-       c.nat->regs.f[7] = uregs->f7;
-       c.nat->regs.f[8] = uregs->f8;
-       c.nat->regs.f[9] = uregs->f9;
-       c.nat->regs.f[10] = uregs->f10;
-       c.nat->regs.f[11] = uregs->f11;
+       COPY_FPREG(&c.nat->regs.f[6], &uregs->f6);
+       COPY_FPREG(&c.nat->regs.f[7], &uregs->f7);
+       COPY_FPREG(&c.nat->regs.f[8], &uregs->f8);
+       COPY_FPREG(&c.nat->regs.f[9], &uregs->f9);
+       COPY_FPREG(&c.nat->regs.f[10], &uregs->f10);
+       COPY_FPREG(&c.nat->regs.f[11], &uregs->f11);
 
        c.nat->regs.r[4] = uregs->r4;
        c.nat->regs.r[5] = uregs->r5;
@@ -820,12 +822,12 @@ int arch_set_info_guest(struct vcpu *v, 
        
        uregs->ar_ccv = c.nat->regs.ar.ccv;
        
-       uregs->f6 = c.nat->regs.f[6];
-       uregs->f7 = c.nat->regs.f[7];
-       uregs->f8 = c.nat->regs.f[8];
-       uregs->f9 = c.nat->regs.f[9];
-       uregs->f10 = c.nat->regs.f[10];
-       uregs->f11 = c.nat->regs.f[11];
+       COPY_FPREG(&uregs->f6, &c.nat->regs.f[6]);
+       COPY_FPREG(&uregs->f7, &c.nat->regs.f[7]);
+       COPY_FPREG(&uregs->f8, &c.nat->regs.f[8]);
+       COPY_FPREG(&uregs->f9, &c.nat->regs.f[9]);
+       COPY_FPREG(&uregs->f10, &c.nat->regs.f[10]);
+       COPY_FPREG(&uregs->f11, &c.nat->regs.f[11]);
        
        uregs->r4 = c.nat->regs.r[4];
        uregs->r5 = c.nat->regs.r[5];
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/include/asm-ia64/linux-xen/asm/ptrace.h
--- a/xen/include/asm-ia64/linux-xen/asm/ptrace.h       Mon Jul 02 09:38:51 
2007 -0600
+++ b/xen/include/asm-ia64/linux-xen/asm/ptrace.h       Mon Jul 02 09:54:53 
2007 -0600
@@ -98,22 +98,10 @@
 #ifdef XEN
 #include <xen/types.h>
 #include <public/xen.h>
+
 #define pt_regs cpu_user_regs
-
-/*  User regs at placed at the end of the vcpu area.
-    Convert a vcpu pointer to a regs pointer.
-    Note: this is the same as ia64_task_regs, but it uses a Xen-friendly name.
-*/
-struct vcpu;
-static inline struct cpu_user_regs *
-vcpu_regs (struct vcpu *v)
-{
-  return (struct cpu_user_regs *) ((unsigned long) v + IA64_STK_OFFSET) - 1;
-}
-
-struct pt_regs *guest_cpu_user_regs(void);
-
-#else
+#endif
+
 struct pt_regs {
        /* The following registers are saved by SAVE_MIN: */
        unsigned long b6;               /* scratch */
@@ -188,7 +176,29 @@ struct pt_regs {
        struct ia64_fpreg f9;           /* scratch */
        struct ia64_fpreg f10;          /* scratch */
        struct ia64_fpreg f11;          /* scratch */
+#ifdef XEN
+       unsigned long r4;               /* preserved */
+       unsigned long r5;               /* preserved */
+       unsigned long r6;               /* preserved */
+       unsigned long r7;               /* preserved */
+       unsigned long eml_unat;         /* used for emulating instruction */
+       unsigned long pad0;             /* alignment pad */
+#endif
 };
+
+#ifdef XEN
+/*
+ * User regs are placed at the end of the vcpu area.
+ * Convert a vcpu pointer to a regs pointer.
+ * Note: this is the same as ia64_task_regs, but it uses a Xen-friendly name.
+ */
+struct vcpu;
+static inline struct cpu_user_regs *vcpu_regs(struct vcpu *v)
+{
+       return (struct cpu_user_regs *)((unsigned long)v + IA64_STK_OFFSET) - 1;
+}
+
+struct cpu_user_regs *guest_cpu_user_regs(void);
 #endif
 
 /*
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/include/asm-ia64/vcpu.h
--- a/xen/include/asm-ia64/vcpu.h       Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/include/asm-ia64/vcpu.h       Mon Jul 02 09:54:53 2007 -0600
@@ -13,7 +13,8 @@
 #include <linux/acpi.h>
 struct vcpu;
 typedef struct vcpu VCPU;
-typedef cpu_user_regs_t REGS;
+typedef struct cpu_user_regs REGS;
+
 extern u64 cycle_to_ns(u64 cycle);
 
 /* Note: PSCB stands for Privilegied State Communication Block.  */
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/include/asm-ia64/xenkregs.h
--- a/xen/include/asm-ia64/xenkregs.h   Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/include/asm-ia64/xenkregs.h   Mon Jul 02 09:54:53 2007 -0600
@@ -21,6 +21,9 @@
 #define IA64_IFS_V_BIT         63
 #define IA64_IFS_V     (__IA64_UL(1) << IA64_IFS_V_BIT)
 
+/* Interruption Status Register.  */
+#define IA64_ISR_NI_BIT        39      /* Nested interrupt.  */
+
 /* Page Table Address */
 #define IA64_PTA_VE_BIT 0
 #define IA64_PTA_SIZE_BIT 2
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/include/public/arch-ia64.h
--- a/xen/include/public/arch-ia64.h    Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/include/public/arch-ia64.h    Mon Jul 02 09:54:53 2007 -0600
@@ -129,83 +129,6 @@ struct pt_fpreg {
         long double __dummy;    /* force 16-byte alignment */
     } u;
 };
-
-struct cpu_user_regs {
-    /* The following registers are saved by SAVE_MIN: */
-    unsigned long b6;  /* scratch */
-    unsigned long b7;  /* scratch */
-
-    unsigned long ar_csd; /* used by cmp8xchg16 (scratch) */
-    unsigned long ar_ssd; /* reserved for future use (scratch) */
-
-    unsigned long r8;  /* scratch (return value register 0) */
-    unsigned long r9;  /* scratch (return value register 1) */
-    unsigned long r10; /* scratch (return value register 2) */
-    unsigned long r11; /* scratch (return value register 3) */
-
-    unsigned long cr_ipsr; /* interrupted task's psr */
-    unsigned long cr_iip;  /* interrupted task's instruction pointer */
-    unsigned long cr_ifs;  /* interrupted task's function state */
-
-    unsigned long ar_unat; /* interrupted task's NaT register (preserved) */
-    unsigned long ar_pfs;  /* prev function state  */
-    unsigned long ar_rsc;  /* RSE configuration */
-    /* The following two are valid only if cr_ipsr.cpl > 0: */
-    unsigned long ar_rnat;  /* RSE NaT */
-    unsigned long ar_bspstore; /* RSE bspstore */
-
-    unsigned long pr;  /* 64 predicate registers (1 bit each) */
-    unsigned long b0;  /* return pointer (bp) */
-    unsigned long loadrs;  /* size of dirty partition << 16 */
-
-    unsigned long r1;  /* the gp pointer */
-    unsigned long r12; /* interrupted task's memory stack pointer */
-    unsigned long r13; /* thread pointer */
-
-    unsigned long ar_fpsr;  /* floating point status (preserved) */
-    unsigned long r15;  /* scratch */
-
- /* The remaining registers are NOT saved for system calls.  */
-
-    unsigned long r14;  /* scratch */
-    unsigned long r2;  /* scratch */
-    unsigned long r3;  /* scratch */
-    unsigned long r16;  /* scratch */
-    unsigned long r17;  /* scratch */
-    unsigned long r18;  /* scratch */
-    unsigned long r19;  /* scratch */
-    unsigned long r20;  /* scratch */
-    unsigned long r21;  /* scratch */
-    unsigned long r22;  /* scratch */
-    unsigned long r23;  /* scratch */
-    unsigned long r24;  /* scratch */
-    unsigned long r25;  /* scratch */
-    unsigned long r26;  /* scratch */
-    unsigned long r27;  /* scratch */
-    unsigned long r28;  /* scratch */
-    unsigned long r29;  /* scratch */
-    unsigned long r30;  /* scratch */
-    unsigned long r31;  /* scratch */
-    unsigned long ar_ccv;  /* compare/exchange value (scratch) */
-
-    /*
-     * Floating point registers that the kernel considers scratch:
-     */
-    struct pt_fpreg f6;  /* scratch */
-    struct pt_fpreg f7;  /* scratch */
-    struct pt_fpreg f8;  /* scratch */
-    struct pt_fpreg f9;  /* scratch */
-    struct pt_fpreg f10;  /* scratch */
-    struct pt_fpreg f11;  /* scratch */
-    unsigned long r4;  /* preserved */
-    unsigned long r5;  /* preserved */
-    unsigned long r6;  /* preserved */
-    unsigned long r7;  /* preserved */
-    unsigned long eml_unat;    /* used for emulating instruction */
-    unsigned long pad0;     /* alignment pad */
-
-};
-typedef struct cpu_user_regs cpu_user_regs_t;
 
 union vac {
     unsigned long value;
diff -r 2a5b463f2e8d -r c7e16caf4e63 xen/include/public/foreign/reference.size
--- a/xen/include/public/foreign/reference.size Mon Jul 02 09:38:51 2007 -0600
+++ b/xen/include/public/foreign/reference.size Mon Jul 02 09:54:53 2007 -0600
@@ -4,7 +4,7 @@ start_info                |    1104    1
 start_info                |    1104    1152    1152
 trap_info                 |       8      16       -
 pt_fpreg                  |       -       -      16
-cpu_user_regs             |      68     200     496
+cpu_user_regs             |      68     200       -
 xen_ia64_boot_param       |       -       -      96
 ia64_tr_entry             |       -       -      32
 vcpu_tr_regs              |       -       -     512

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.