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

[Xen-changelog] [xen-unstable] [IA64] rename struct viosapic_rte in order to share VTD code.



# HG changeset patch
# User Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
# Date 1224124385 -32400
# Node ID 5450b008afcec7a5184a0124aab3be639933aec8
# Parent  91ec8f01d6b916af846acda6e949b80523aea3cd
[IA64] rename struct viosapic_rte in order to share VTD code.

VTD code uses vioapic_redir_entry structure,
This patch lets viosapci.h use the same structure name and some fields.
That IA64 can use the same VTD code with ia32

Signed-off-by: Anthony xu <anthony.xu@xxxxxxxxx>
---
 xen/arch/ia64/vmx/viosapic.c            |   18 +++++++++---------
 xen/include/asm-ia64/viosapic.h         |    2 +-
 xen/include/public/arch-ia64/hvm/save.h |   10 +++++++---
 3 files changed, 17 insertions(+), 13 deletions(-)

diff -r 91ec8f01d6b9 -r 5450b008afce xen/arch/ia64/vmx/viosapic.c
--- a/xen/arch/ia64/vmx/viosapic.c      Thu Oct 16 11:33:05 2008 +0900
+++ b/xen/arch/ia64/vmx/viosapic.c      Thu Oct 16 11:33:05 2008 +0900
@@ -46,9 +46,9 @@
 
 static void viosapic_deliver(struct viosapic *viosapic, int irq)
 {
-    uint16_t dest = viosapic->redirtbl[irq].dest_id;
-    uint8_t delivery_mode = viosapic->redirtbl[irq].delivery_mode;
-    uint8_t vector = viosapic->redirtbl[irq].vector;
+    uint16_t dest = viosapic->redirtbl[irq].fields.dest_id;
+    uint8_t delivery_mode = viosapic->redirtbl[irq].fields.delivery_mode;
+    uint8_t vector = viosapic->redirtbl[irq].fields.vector;
 
     ASSERT(spin_is_locked(&viosapic->lock));
 
@@ -78,7 +78,7 @@ static int get_redir_num(struct viosapic
 
     ASSERT(spin_is_locked(&viosapic->lock));
     for ( i = 0; i < VIOSAPIC_NUM_PINS; i++ )
-        if ( viosapic->redirtbl[i].vector == vector )
+        if ( viosapic->redirtbl[i].fields.vector == vector )
             return i;
 
     return -1;
@@ -91,7 +91,7 @@ static void service_iosapic(struct viosa
 
     while ( (irq = iosapic_get_highest_irq(viosapic)) != -1 )
     {
-        if ( viosapic->redirtbl[irq].trig_mode == SAPIC_LEVEL )
+        if ( viosapic->redirtbl[irq].fields.trig_mode == SAPIC_LEVEL )
             viosapic->isr |= (1UL << irq);
 
         viosapic_deliver(viosapic, irq);
@@ -116,7 +116,7 @@ static void viosapic_update_EOI(struct v
     if ( !test_and_clear_bit(redir_num, &viosapic->isr) )
     {
         spin_unlock(&viosapic->lock);
-        if ( viosapic->redirtbl[redir_num].trig_mode == SAPIC_LEVEL )
+        if ( viosapic->redirtbl[redir_num].fields.trig_mode == SAPIC_LEVEL )
             gdprintk(XENLOG_WARNING, "redir %d not set for %d EOI\n",
                      redir_num, vector);
         return;
@@ -278,7 +278,7 @@ static void viosapic_reset(struct viosap
 
     for ( i = 0; i < VIOSAPIC_NUM_PINS; i++ )
     {
-        viosapic->redirtbl[i].mask = 0x1;
+        viosapic->redirtbl[i].fields.mask = 0x1;
     }
     spin_lock_init(&viosapic->lock);
 }
@@ -292,11 +292,11 @@ void viosapic_set_irq(struct domain *d, 
     if ( (irq < 0) || (irq >= VIOSAPIC_NUM_PINS) )
         goto out;
 
-    if ( viosapic->redirtbl[irq].mask )
+    if ( viosapic->redirtbl[irq].fields.mask )
         goto out;
 
     bit = 1UL << irq;
-    if ( viosapic->redirtbl[irq].trig_mode == SAPIC_LEVEL )
+    if ( viosapic->redirtbl[irq].fields.trig_mode == SAPIC_LEVEL )
     {
         if ( level )
             viosapic->irr |= bit;
diff -r 91ec8f01d6b9 -r 5450b008afce xen/include/asm-ia64/viosapic.h
--- a/xen/include/asm-ia64/viosapic.h   Thu Oct 16 11:33:05 2008 +0900
+++ b/xen/include/asm-ia64/viosapic.h   Thu Oct 16 11:33:05 2008 +0900
@@ -59,7 +59,7 @@ struct viosapic {
     spinlock_t lock;
     struct vcpu * lowest_vcpu;
     uint64_t base_address;
-    union viosapic_rte redirtbl[VIOSAPIC_NUM_PINS];
+    union vioapic_redir_entry redirtbl[VIOSAPIC_NUM_PINS];
 };
 
 void viosapic_init(struct domain *d);
diff -r 91ec8f01d6b9 -r 5450b008afce xen/include/public/arch-ia64/hvm/save.h
--- a/xen/include/public/arch-ia64/hvm/save.h   Thu Oct 16 11:33:05 2008 +0900
+++ b/xen/include/public/arch-ia64/hvm/save.h   Thu Oct 16 11:33:05 2008 +0900
@@ -106,7 +106,11 @@ DECLARE_HVM_SAVE_TYPE(VTIME, 5, struct h
  */
 #define VIOSAPIC_NUM_PINS     48
 
-union viosapic_rte
+/* To share VT-d code which uses vioapic_redir_entry.
+ * Although on ia64 this is for vsapic, but we have to vioapic_redir_entry
+ * instead of viosapic_redir_entry.
+ */
+union vioapic_redir_entry
 {
     uint64_t bits;
     struct {
@@ -124,7 +128,7 @@ union viosapic_rte
 
         uint8_t reserved[3];
         uint16_t dest_id;
-    }; 
+    } fields;
 };
 
 struct hvm_hw_ia64_viosapic {
@@ -134,7 +138,7 @@ struct hvm_hw_ia64_viosapic {
     uint32_t    pad;
     uint64_t    lowest_vcpu_id;
     uint64_t    base_address;
-    union viosapic_rte  redirtbl[VIOSAPIC_NUM_PINS];
+    union vioapic_redir_entry  redirtbl[VIOSAPIC_NUM_PINS];
 };
 DECLARE_HVM_SAVE_TYPE(VIOSAPIC, 6, struct hvm_hw_ia64_viosapic);
   

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