# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1195576433 25200
# Node ID 4576e10034d64e56ffae79f36687731f6fc7d960
# Parent ca05cf1a9bdc2c7604b95fd085fa5abe067c969a
[IA64] Sync public headers
Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
include/xen/interface/arch-ia64.h | 4 -
include/xen/interface/arch-ia64/hvm/save.h | 90 +++++++++++++++--------------
2 files changed, 51 insertions(+), 43 deletions(-)
diff -r ca05cf1a9bdc -r 4576e10034d6 include/xen/interface/arch-ia64.h
--- a/include/xen/interface/arch-ia64.h Fri Nov 16 16:55:46 2007 +0000
+++ b/include/xen/interface/arch-ia64.h Tue Nov 20 09:33:53 2007 -0700
@@ -674,7 +674,9 @@ DEFINE_XEN_GUEST_HANDLE(xen_ia64_debug_o
* 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 */
diff -r ca05cf1a9bdc -r 4576e10034d6 include/xen/interface/arch-ia64/hvm/save.h
--- a/include/xen/interface/arch-ia64/hvm/save.h Fri Nov 16 16:55:46
2007 +0000
+++ b/include/xen/interface/arch-ia64/hvm/save.h Tue Nov 20 09:33:53
2007 -0700
@@ -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, struc
* vacpi
* PM timer
*/
-#if 0
-struct hvm_hw_ia64_pmtimer {
+struct vacpi_regs {
+ 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 */
- 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
+/* update last_gtime and setup timer of struct vacpi */
+
+/*
+ * 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_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(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__ */
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|