WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] [IA64] Cleanup: remove cpu_user_regs from

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Cleanup: remove cpu_user_regs from arch-ia64.h
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 27 Jul 2007 02:51:47 -0700
Delivery-date: Fri, 27 Jul 2007 02:49:51 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# 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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] Cleanup: remove cpu_user_regs from arch-ia64.h, Xen patchbot-unstable <=