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

[Xen-changelog] Syntactic changes to prepare for possible vcpu_info changes



# HG changeset patch
# User djm@xxxxxxxxxxxxxxx
# Node ID db8a7f39df9336df80917c4cd1b8aa8072d66ddd
# Parent  738ba414ce80fab79667b98f2917d992fb7b0ead
Syntactic changes to prepare for possible vcpu_info changes

diff -r 738ba414ce80 -r db8a7f39df93 xen/arch/ia64/hypercall.c
--- a/xen/arch/ia64/hypercall.c Wed Jul 27 19:07:07 2005
+++ b/xen/arch/ia64/hypercall.c Wed Jul 27 19:57:05 2005
@@ -41,13 +41,13 @@
                // to a yet-to-be-found bug where pending_interruption
                // is zero when it shouldn't be. Since PAL is called
                // in the idle loop, this should resolve it
-               v->vcpu_info->arch.pending_interruption = 1;
+               VCPU(v,pending_interruption) = 1;
 #endif
                if (regs->r28 == PAL_HALT_LIGHT) {
 #define SPURIOUS_VECTOR 15
                        pi = vcpu_check_pending_interrupts(v);
                        if (pi != SPURIOUS_VECTOR) {
-                               if (!v->vcpu_info->arch.pending_interruption)
+                               if (!VCPU(v,pending_interruption))
                                        idle_when_pending++;
                                vcpu_pend_unspecified_interrupt(v);
 //printf("idle w/int#%d pending!\n",pi);
diff -r 738ba414ce80 -r db8a7f39df93 xen/arch/ia64/process.c
--- a/xen/arch/ia64/process.c   Wed Jul 27 19:07:07 2005
+++ b/xen/arch/ia64/process.c   Wed Jul 27 19:57:05 2005
@@ -50,7 +50,7 @@
                        IA64_PSR_ID | IA64_PSR_DA | IA64_PSR_DD | \
                        IA64_PSR_SS | IA64_PSR_RI | IA64_PSR_ED | IA64_PSR_IA)
 
-#define PSCB(x,y)      x->vcpu_info->arch.y
+#define PSCB(x,y)      VCPU(x,y)
 #define PSCBX(x,y)     x->arch.y
 
 extern unsigned long vcpu_verbose;
diff -r 738ba414ce80 -r db8a7f39df93 xen/arch/ia64/regionreg.c
--- a/xen/arch/ia64/regionreg.c Wed Jul 27 19:07:07 2005
+++ b/xen/arch/ia64/regionreg.c Wed Jul 27 19:57:05 2005
@@ -14,6 +14,7 @@
 #include <asm/page.h>
 #include <asm/regionreg.h>
 #include <asm/vhpt.h>
+#include <asm/vcpu.h>
 
 
 #define        IA64_MIN_IMPL_RID_BITS  (IA64_MIN_IMPL_RID_MSB+1)
@@ -332,14 +333,14 @@
        rrv.ps = PAGE_SHIFT;
        rrv.ve = 1;
 if (!v->vcpu_info) { printf("Stopping in init_all_rr\n"); dummy(); }
-       v->vcpu_info->arch.rrs[0] = -1;
-       v->vcpu_info->arch.rrs[1] = rrv.rrval;
-       v->vcpu_info->arch.rrs[2] = rrv.rrval;
-       v->vcpu_info->arch.rrs[3] = rrv.rrval;
-       v->vcpu_info->arch.rrs[4] = rrv.rrval;
-       v->vcpu_info->arch.rrs[5] = rrv.rrval;
+       VCPU(v,rrs[0]) = -1;
+       VCPU(v,rrs[1]) = rrv.rrval;
+       VCPU(v,rrs[2]) = rrv.rrval;
+       VCPU(v,rrs[3]) = rrv.rrval;
+       VCPU(v,rrs[4]) = rrv.rrval;
+       VCPU(v,rrs[5]) = rrv.rrval;
        rrv.ve = 0; 
-       v->vcpu_info->arch.rrs[6] = rrv.rrval;
+       VCPU(v,rrs[6]) = rrv.rrval;
 //     v->shared_info->arch.rrs[7] = rrv.rrval;
 }
 
@@ -378,7 +379,7 @@
        // TODO: These probably should be validated
        unsigned long bad = 0;
 
-       if (v->vcpu_info->arch.metaphysical_mode) {
+       if (VCPU(v,metaphysical_mode)) {
                ia64_rr rrv;
 
                rrv.rrval = 0;
@@ -390,16 +391,16 @@
                ia64_srlz_d();
        }
        else {
-               rr0 =  v->vcpu_info->arch.rrs[0];
+               rr0 =  VCPU(v,rrs[0]);
                if (!set_one_rr(0x0000000000000000L, rr0)) bad |= 1;
        }
-       rr1 =  v->vcpu_info->arch.rrs[1];
-       rr2 =  v->vcpu_info->arch.rrs[2];
-       rr3 =  v->vcpu_info->arch.rrs[3];
-       rr4 =  v->vcpu_info->arch.rrs[4];
-       rr5 =  v->vcpu_info->arch.rrs[5];
-       rr6 =  v->vcpu_info->arch.rrs[6];
-       rr7 =  v->vcpu_info->arch.rrs[7];
+       rr1 =  VCPU(v,rrs[1]);
+       rr2 =  VCPU(v,rrs[2]);
+       rr3 =  VCPU(v,rrs[3]);
+       rr4 =  VCPU(v,rrs[4]);
+       rr5 =  VCPU(v,rrs[5]);
+       rr6 =  VCPU(v,rrs[6]);
+       rr7 =  VCPU(v,rrs[7]);
        if (!set_one_rr(0x2000000000000000L, rr1)) bad |= 2;
        if (!set_one_rr(0x4000000000000000L, rr2)) bad |= 4;
        if (!set_one_rr(0x6000000000000000L, rr3)) bad |= 8;
@@ -410,4 +411,5 @@
        if (bad) {
                panic_domain(0,"load_region_regs: can't set! bad=%lx\n",bad);
        }
-}
+       return 0;
+}
diff -r 738ba414ce80 -r db8a7f39df93 xen/arch/ia64/vcpu.c
--- a/xen/arch/ia64/vcpu.c      Wed Jul 27 19:07:07 2005
+++ b/xen/arch/ia64/vcpu.c      Wed Jul 27 19:57:05 2005
@@ -28,7 +28,7 @@
 
 // this def for vcpu_regs won't work if kernel stack is present
 #define        vcpu_regs(vcpu) ((struct pt_regs *) vcpu->arch.regs)
-#define        PSCB(x,y)       x->vcpu_info->arch.y
+#define        PSCB(x,y)       VCPU(x,y)
 #define        PSCBX(x,y)      x->arch.y
 
 #define        TRUE    1
diff -r 738ba414ce80 -r db8a7f39df93 xen/arch/ia64/xentime.c
--- a/xen/arch/ia64/xentime.c   Wed Jul 27 19:07:07 2005
+++ b/xen/arch/ia64/xentime.c   Wed Jul 27 19:57:05 2005
@@ -27,6 +27,7 @@
 #include <asm/sections.h>
 #include <asm/system.h>
 #ifdef XEN
+#include <asm/vcpu.h>
 #include <linux/jiffies.h>     // not included by xen/sched.h
 #endif
 #include <xen/softirq.h>
@@ -143,8 +144,8 @@
        if (!(++count & ((HEARTBEAT_FREQ*1024)-1))) {
                printf("Heartbeat... iip=%p,psr.i=%d,pend=%d\n",
                        regs->cr_iip,
-                       current->vcpu_info->arch.interrupt_delivery_enabled,
-                       current->vcpu_info->arch.pending_interruption);
+                       VCPU(current,interrupt_delivery_enabled),
+                       VCPU(current,pending_interruption));
                count = 0;
        }
 #endif
@@ -159,7 +160,7 @@
                // We have to ensure that domain0 is launched before we
                // call vcpu_timer_expired on it
                //domain0_ready = 1; // moved to xensetup.c
-               current->vcpu_info->arch.pending_interruption = 1;
+               VCPU(current,pending_interruption) = 1;
        }
        if (domain0_ready && vcpu_timer_expired(dom0->vcpu[0])) {
                vcpu_pend_timer(dom0->vcpu[0]);
diff -r 738ba414ce80 -r db8a7f39df93 xen/include/asm-ia64/event.h
--- a/xen/include/asm-ia64/event.h      Wed Jul 27 19:07:07 2005
+++ b/xen/include/asm-ia64/event.h      Wed Jul 27 19:57:05 2005
@@ -9,9 +9,11 @@
 #ifndef __ASM_EVENT_H__
 #define __ASM_EVENT_H__
 
+#include <asm/vcpu.h>
+
 static inline void evtchn_notify(struct vcpu *v)
 {
-       vcpu_pend_interrupt(v, v->vcpu_info->arch.evtchn_vector);
+       vcpu_pend_interrupt(v, VCPU(v,evtchn_vector));
 }
 
 #endif
diff -r 738ba414ce80 -r db8a7f39df93 xen/include/asm-ia64/vcpu.h
--- a/xen/include/asm-ia64/vcpu.h       Wed Jul 27 19:07:07 2005
+++ b/xen/include/asm-ia64/vcpu.h       Wed Jul 27 19:57:05 2005
@@ -13,13 +13,9 @@
 struct vcpu;
 typedef        struct vcpu VCPU;
 
-// NOTE: The actual VCPU structure (struct virtualcpu) is defined in
-// thread.h.  Moving it to here caused a lot of files to change, so
-// for now, we'll leave well enough alone.
 typedef struct pt_regs REGS;
-//#define PSCB(vcpu)           (((struct spk_thread_t *)vcpu)->pscb)
-//#define vcpu_regs(vcpu)              &((struct spk_thread_t 
*)vcpu)->thread_regs
-//#define vcpu_thread(vcpu)    ((struct spk_thread_t *)vcpu)
+
+#define VCPU(_v,_x)    _v->vcpu_info->arch._x
 
 #define PRIVOP_ADDR_COUNT
 #ifdef PRIVOP_ADDR_COUNT

_______________________________________________
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®.