summaryrefslogtreecommitdiffstats
path: root/sys/ia64/include
diff options
context:
space:
mode:
authordfr <dfr@FreeBSD.org>2002-03-14 12:29:55 +0000
committerdfr <dfr@FreeBSD.org>2002-03-14 12:29:55 +0000
commit614f8fef36bd682c71dd360236d875f914f52904 (patch)
treedea1c9228b994f5feee26b6f2875d4bcfaf4f2cf /sys/ia64/include
parent92c24ff925c748759ab5313202a4da1b78ef2d4b (diff)
downloadFreeBSD-src-614f8fef36bd682c71dd360236d875f914f52904.zip
FreeBSD-src-614f8fef36bd682c71dd360236d875f914f52904.tar.gz
Add ia64_sync_i(), ia64_get_tpr() and ia64_set_tpr().
Diffstat (limited to 'sys/ia64/include')
-rw-r--r--sys/ia64/include/ia64_cpu.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/sys/ia64/include/ia64_cpu.h b/sys/ia64/include/ia64_cpu.h
index 5230ac1..62cc7be8 100644
--- a/sys/ia64/include/ia64_cpu.h
+++ b/sys/ia64/include/ia64_cpu.h
@@ -167,6 +167,15 @@ ia64_fc(u_int64_t va)
}
/*
+ * Sync instruction stream.
+ */
+static __inline void
+ia64_sync_i(void)
+{
+ __asm __volatile("sync.i");
+}
+
+/*
* Calculate address in VHPT for va.
*/
static __inline u_int64_t
@@ -467,6 +476,26 @@ ia64_get_lid(void)
}
/*
+ * Read the value of cr.tpr.
+ */
+static __inline u_int64_t
+ia64_get_tpr(void)
+{
+ u_int64_t result;
+ __asm __volatile("mov %0=cr.tpr" : "=r" (result));
+ return result;
+}
+
+/*
+ * Write the value of cr.itv.
+ */
+static __inline void
+ia64_set_tpr(u_int64_t v)
+{
+ __asm __volatile("mov cr.tpr=%0" :: "r" (v));
+}
+
+/*
* Write a region register.
*/
static __inline void
OpenPOWER on IntegriCloud