diff options
author | dfr <dfr@FreeBSD.org> | 2002-03-14 12:29:55 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2002-03-14 12:29:55 +0000 |
commit | 614f8fef36bd682c71dd360236d875f914f52904 (patch) | |
tree | dea1c9228b994f5feee26b6f2875d4bcfaf4f2cf /sys/ia64/include | |
parent | 92c24ff925c748759ab5313202a4da1b78ef2d4b (diff) | |
download | FreeBSD-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.h | 29 |
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 |