]> xenbits.xensource.com Git - legacy/linux-2.6.18-xen.git/commitdiff
[IA64] Sync public headers
authorAlex Williamson <alex.williamson@hp.com>
Tue, 20 Nov 2007 16:33:53 +0000 (09:33 -0700)
committerAlex Williamson <alex.williamson@hp.com>
Tue, 20 Nov 2007 16:33:53 +0000 (09:33 -0700)
Signed-off-by: Alex Williamson <alex.williamson@hp.com>
include/xen/interface/arch-ia64.h
include/xen/interface/arch-ia64/hvm/save.h

index d197a79bfa8422548d49da4479e265899afd8c16..0895dd0eff39ba822e79b1878c5276a586d439a0 100644 (file)
@@ -674,7 +674,9 @@ DEFINE_XEN_GUEST_HANDLE(xen_ia64_debug_op_t);
  * This is useful in guests using region 7 for identity mapping
  * like the linux kernel does.
  */
-#define XEN_IA64_OPTF_IDENT_MAP_REG7   0x1UL
+#define XEN_IA64_OPTF_IDENT_MAP_REG7_BIT       0
+#define XEN_IA64_OPTF_IDENT_MAP_REG7           \
+       (1UL << XEN_IA64_OPTF_IDENT_MAP_REG7_BIT)
 
 struct xen_ia64_opt_feature {
        unsigned long cmd;              /* Which feature */
index e6d08a19046639903909b21001c5b47872d5a963..a2650b591692184d7c48fc8f7be67038fe0929c3 100644 (file)
@@ -74,13 +74,15 @@ struct hvm_hw_ia64_vlsapic {
     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
+/* set
+ * 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
+/* itc, itm, itv are saved by arch vcpu context */
 struct hvm_hw_ia64_vtime {
     uint64_t itc;
     uint64_t itm;
@@ -89,13 +91,15 @@ struct hvm_hw_ia64_vtime {
     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.
+/*
+ * 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
@@ -138,49 +142,51 @@ 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;
+    union {
+        struct {
+            uint32_t pm1a_sts:16;/* PM1a_EVT_BLK.PM1a_STS: status register */
+            uint32_t pm1a_en:16; /* PM1a_EVT_BLK.PM1a_EN: enable register */
+        };
+        uint32_t evt_blk;
+    };
+    uint32_t tmr_val;   /* PM_TMR_BLK.TMR_VAL: 32bit free-running counter */
 };
 
 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
+/* update last_gtime and setup timer of struct vacpi */
 
-#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.
+ * opt_feature: identity mapping of region 4, 5 and 7.
+ * With the c/s 16396:d2935f9c217f of xen-ia64-devel.hg,
+ * opt_feature hypercall supports only region 4,5,7 identity mappings.
+ * structure hvm_hw_ia64_identity_mappings only supports them.
+ * The new structure, struct hvm_hw_ia64_identity_mappings, is created to
+ * avoid to keep up with change of the xen/ia64 internal structure, struct
+ * opt_feature.
+ *
+ * If it is enhanced in the future, new structure will be created.
  */
-struct hvm_hw_ia64_gos {
-    uint64_t   gos_type;
+struct hvm_hw_ia64_identity_mapping {
+    uint64_t on;        /* on/off */
+    uint64_t pgprot;    /* The page protection bit mask of the pte. */
+    uint64_t key;       /* A protection key. */
+};
+
+struct hvm_hw_ia64_identity_mappings {
+    struct hvm_hw_ia64_identity_mapping im_reg4;/* Region 4 identity mapping */
+    struct hvm_hw_ia64_identity_mapping im_reg5;/* Region 5 identity mapping */
+    struct hvm_hw_ia64_identity_mapping im_reg7;/* Region 7 identity mapping */
 };
-DECLARE_HVM_SAVE_TYPE(GOS_TYPE, 8, struct hvm_hw_ia64_gos);
-#endif
+DECLARE_HVM_SAVE_TYPE(OPT_FEATURE_IDENTITY_MAPPINGS, 8, struct hvm_hw_ia64_identity_mappings);
 
 /* 
  * Largest type-code in use
  */
-#define HVM_SAVE_CODE_MAX       7
+#define HVM_SAVE_CODE_MAX       8
 
 #endif /* __XEN_PUBLIC_HVM_SAVE_IA64_H__ */