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

[Xen-changelog] [linux-2.6.18-xen] [IA64] Sync headers with Xen



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1193000891 21600
# Node ID 3b7be86c0eb1414a86ec6cfe404f8cc47fc9d62c
# Parent  2791b054f1a991dec2d41f88ecd33a9b6f78e629
[IA64] Sync headers with Xen

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
 include/xen/interface/arch-ia64.h          |    2 
 include/xen/interface/arch-ia64/hvm/save.h |  195 +++++++++++++++++++++++++++++
 include/xen/interface/hvm/save.h           |    2 
 3 files changed, 198 insertions(+), 1 deletion(-)

diff -r 2791b054f1a9 -r 3b7be86c0eb1 include/xen/interface/arch-ia64.h
--- a/include/xen/interface/arch-ia64.h Sun Oct 21 13:40:48 2007 -0600
+++ b/include/xen/interface/arch-ia64.h Sun Oct 21 15:08:11 2007 -0600
@@ -421,7 +421,7 @@ struct vcpu_guest_context_regs {
 };
 
 struct vcpu_guest_context {
-#define VGCF_EXTRA_REGS (1<<1) /* Get/Set extra regs.  */
+#define VGCF_EXTRA_REGS (1UL << 1)     /* Get/Set extra regs.  */
     unsigned long flags;       /* VGCF_* flags */
 
     struct vcpu_guest_context_regs regs;
diff -r 2791b054f1a9 -r 3b7be86c0eb1 include/xen/interface/arch-ia64/hvm/save.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/include/xen/interface/arch-ia64/hvm/save.h        Sun Oct 21 15:08:11 
2007 -0600
@@ -0,0 +1,195 @@
+/******************************************************************************
+ * save_types.h
+ *
+ * Copyright (c) 2007 Isaku Yamahata <yamahata at valinux co jp>
+ *                    VA Linux Systems Japan K.K.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ *
+ */
+
+#ifndef __XEN_PUBLIC_HVM_SAVE_IA64_H__
+#define __XEN_PUBLIC_HVM_SAVE_IA64_H__
+
+#include <public/hvm/save.h>
+#include <public/arch-ia64.h>
+
+/* 
+ * Save/restore header: general info about the save file. 
+ */
+
+/* x86 uses 0x54381286 */
+#define HVM_FILE_MAGIC   0x343641492f6e6558UL   /* "Xen/IA64" */
+#define HVM_FILE_VERSION 0x0000000000000001UL
+
+struct hvm_save_header {
+    uint64_t magic;             /* Must be HVM_FILE_MAGIC */
+    uint64_t version;           /* File format version */
+    uint64_t changeset;         /* Version of Xen that saved this file */
+    uint64_t cpuid[5];          /* CPUID[0x01][%eax] on the saving machine */
+};
+
+DECLARE_HVM_SAVE_TYPE(HEADER, 1, struct hvm_save_header);
+
+/*
+ * CPU
+ */
+struct hvm_hw_ia64_cpu {
+    uint64_t    ipsr;
+};
+DECLARE_HVM_SAVE_TYPE(CPU, 2, struct hvm_hw_ia64_cpu);
+
+/*
+ * CPU
+ */
+struct hvm_hw_ia64_vpd {
+    struct vpd      vpd;
+};
+DECLARE_HVM_SAVE_TYPE(VPD, 3, struct hvm_hw_ia64_vpd);
+
+/*
+ * device dependency
+ * vacpi => viosapic => vlsapic
+ */
+/*
+ * vlsapic
+ */
+struct hvm_hw_ia64_vlsapic {
+    uint64_t insvc[4];
+    uint64_t vhpi; // ??? should this be saved in vpd
+    uint8_t xtp;
+    uint8_t pal_init_pending;
+    uint8_t pad[2];
+};
+DECLARE_HVM_SAVE_TYPE(VLSAPIC, 4, struct hvm_hw_ia64_vlsapic);
+// unconditionaly set v->arch.irq_new_peding = 1 
+// unconditionaly set v->arch.irq_new_condition = 0
+
+/*
+ * vtime
+ */
+// itc, itm, itv are saved by arch vcpu context
+struct hvm_hw_ia64_vtime {
+    uint64_t itc;
+    uint64_t itm;
+
+    uint64_t last_itc;
+    uint64_t pending;
+};
+DECLARE_HVM_SAVE_TYPE(VTIME, 5, struct hvm_hw_ia64_vtime);
+// calculate v->vtm.vtm_offset
+// ??? Or should vtm_offset be set by leave_hypervisor_tail()?
+// start vtm_timer if necessary by vtm_set_itm().
+// ??? Or should vtm_timer be set by leave_hypervisor_tail()?
+//
+// ??? or should be done by schedule_tail()
+//        => schedule_tail() should do.
+
+/*
+ * viosapic
+ */
+#define VIOSAPIC_NUM_PINS     48
+
+union viosapic_rte
+{
+    uint64_t bits;
+    struct {
+        uint8_t vector;
+
+        uint8_t delivery_mode  : 3;
+        uint8_t reserve1       : 1;
+        uint8_t delivery_status: 1;
+        uint8_t polarity       : 1;
+        uint8_t reserve2       : 1;
+        uint8_t trig_mode      : 1;
+
+        uint8_t mask           : 1;
+        uint8_t reserve3       : 7;
+
+        uint8_t reserved[3];
+        uint16_t dest_id;
+    }; 
+};
+
+struct hvm_hw_ia64_viosapic {
+    uint64_t    irr;
+    uint64_t    isr;
+    uint32_t    ioregsel;
+    uint32_t    pad;
+    uint64_t    lowest_vcpu_id;
+    uint64_t    base_address;
+    union viosapic_rte  redirtbl[VIOSAPIC_NUM_PINS];
+};
+DECLARE_HVM_SAVE_TYPE(VIOSAPIC, 6, struct hvm_hw_ia64_viosapic);
+  
+/*
+ * vacpi
+ * PM timer
+ */
+#if 0
+struct hvm_hw_ia64_pmtimer {
+    uint32_t tmr_val;   /* PM_TMR_BLK.TMR_VAL: 32bit free-running counter */
+    uint16_t pm1a_sts;  /* PM1a_EVT_BLK.PM1a_STS: status register */
+    uint16_t pm1a_en;   /* PM1a_EVT_BLK.PM1a_EN: enable register */
+};
+DECLARE_HVM_SAVE_TYPE(PMTIMER, 7, struct hvm_hw_ia64_pmtimer);
+#else
+struct vacpi_regs {
+       union {
+               struct {
+                       uint32_t pm1a_sts:16;
+                       uint32_t pm1a_en:16;
+               };
+               uint32_t evt_blk;
+       };
+       uint32_t tmr_val;
+};
+
+struct hvm_hw_ia64_vacpi {
+    struct vacpi_regs   regs;
+};
+DECLARE_HVM_SAVE_TYPE(VACPI, 7, struct hvm_hw_ia64_vacpi);
+// update last_gtime and setup timer of struct vacpi
+#endif
+
+#if 0
+/*
+ * guest os type
+ * XXX Xen guest os specific optimization
+ *     This isn't hvm specific so this should be addressed genericly
+ *     including paravirtualized domain.
+ */
+struct hvm_hw_ia64_gos {
+    uint64_t   gos_type;
+};
+DECLARE_HVM_SAVE_TYPE(GOS_TYPE, 8, struct hvm_hw_ia64_gos);
+#endif
+
+/* 
+ * Largest type-code in use
+ */
+#define HVM_SAVE_CODE_MAX       7
+
+#endif /* __XEN_PUBLIC_HVM_SAVE_IA64_H__ */
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
diff -r 2791b054f1a9 -r 3b7be86c0eb1 include/xen/interface/hvm/save.h
--- a/include/xen/interface/hvm/save.h  Sun Oct 21 13:40:48 2007 -0600
+++ b/include/xen/interface/hvm/save.h  Sun Oct 21 15:08:11 2007 -0600
@@ -75,6 +75,8 @@ DECLARE_HVM_SAVE_TYPE(END, 0, struct hvm
 
 #if defined(__i386__) || defined(__x86_64__)
 #include "../arch-x86/hvm/save.h"
+#elif defined(__ia64__)
+#include "../arch-ia64/hvm/save.h"
 #else
 #error "unsupported architecture"
 #endif

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