# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1185833231 21600
# Node ID 522a1932111f225bf4ab05d9260fc1f49160b0de
# Parent 32825349924d2e39d081cf192eee82fb5c46c878
[IA64] Declarations for PKR
Added new declarations for protection keys and define
XEN_IA64_NPKRS representing number of PKRs for PV domains.
Signed-off-by: Dietmar Hahn <dietmar.hahn@xxxxxxxxxxxxxxxxxxx>
---
xen/arch/ia64/xen/fw_emul.c | 2 +-
xen/include/asm-ia64/xenkregs.h | 24 ++++++++++++++++++++----
xen/include/asm-ia64/xenprocessor.h | 13 +++++++++++++
3 files changed, 34 insertions(+), 5 deletions(-)
diff -r 32825349924d -r 522a1932111f xen/arch/ia64/xen/fw_emul.c
--- a/xen/arch/ia64/xen/fw_emul.c Mon Jul 30 16:01:05 2007 -0600
+++ b/xen/arch/ia64/xen/fw_emul.c Mon Jul 30 16:07:11 2007 -0600
@@ -669,7 +669,7 @@ xen_pal_emulator(unsigned long index, u6
{ .vw = 1,
.phys_add_size = 44,
.key_size = 16,
- .max_pkr = 15,
+ .max_pkr = XEN_IA64_NPKRS,
.hash_tag_id = 0x30,
.max_dtr_entry = NDTRS - 1,
.max_itr_entry = NITRS - 1,
diff -r 32825349924d -r 522a1932111f xen/include/asm-ia64/xenkregs.h
--- a/xen/include/asm-ia64/xenkregs.h Mon Jul 30 16:01:05 2007 -0600
+++ b/xen/include/asm-ia64/xenkregs.h Mon Jul 30 16:07:11 2007 -0600
@@ -38,13 +38,29 @@
/* Some cr.itir declarations. */
#define IA64_ITIR_PS 2
#define IA64_ITIR_PS_LEN 6
-#define IA64_ITIR_PS_MASK (((__IA64_UL(1) << IA64_ITIR_PS_LEN) - 1) \
- << IA64_ITIR_PS)
+#define IA64_ITIR_PS_MASK (((__IA64_UL(1) << IA64_ITIR_PS_LEN) -
1) \
+ << IA64_ITIR_PS)
#define IA64_ITIR_KEY 8
#define IA64_ITIR_KEY_LEN 24
#define IA64_ITIR_KEY_MASK (((__IA64_UL(1) << IA64_ITIR_KEY_LEN) -
1) \
<< IA64_ITIR_KEY)
-#define IA64_ITIR_PS_KEY(_ps, _key) (((_ps) << IA64_ITIR_PS) | \
- (((_key) << IA64_ITIR_KEY)))
+#define IA64_ITIR_PS_KEY(_ps, _key) (((_ps) << IA64_ITIR_PS) | \
+ (((_key) << IA64_ITIR_KEY)))
+
+/* Define Protection Key Register (PKR) */
+#define IA64_PKR_V 0
+#define IA64_PKR_WD 1
+#define IA64_PKR_RD 2
+#define IA64_PKR_XD 3
+#define IA64_PKR_MBZ0 4
+#define IA64_PKR_KEY 8
+#define IA64_PKR_KEY_LEN 24
+#define IA64_PKR_MBZ1 32
+
+#define IA64_PKR_VALID (1 << IA64_PKR_V)
+#define IA64_PKR_KEY_MASK (((__IA64_UL(1) << IA64_PKR_KEY_LEN) -
1) \
+ << IA64_PKR_KEY)
+
+#define XEN_IA64_NPKRS 15 /* Number of pkr's in PV */
#endif /* _ASM_IA64_XENKREGS_H */
diff -r 32825349924d -r 522a1932111f xen/include/asm-ia64/xenprocessor.h
--- a/xen/include/asm-ia64/xenprocessor.h Mon Jul 30 16:01:05 2007 -0600
+++ b/xen/include/asm-ia64/xenprocessor.h Mon Jul 30 16:07:11 2007 -0600
@@ -237,6 +237,19 @@ typedef union {
u64 itir;
} ia64_itir_t;
+typedef union {
+ u64 val;
+ struct {
+ u64 v : 1;
+ u64 wd : 1;
+ u64 rd : 1;
+ u64 xd : 1;
+ u64 reserved1 : 4;
+ u64 key : 24;
+ u64 reserved2 : 32;
+ };
+} ia64_pkr_t;
+
#define dump_execution_state() printk("FIXME: implement ia64
dump_execution_state()\n");
#endif // _ASM_IA64_XENPROCESSOR_H
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|