hc
2024-05-10 37f49e37ab4cb5d0bc4c60eb5c6d4dd57db767bb
kernel/arch/ia64/include/asm/tlbflush.h
....@@ -14,6 +14,31 @@
1414 #include <asm/mmu_context.h>
1515 #include <asm/page.h>
1616
17
+struct ia64_tr_entry {
18
+ u64 ifa;
19
+ u64 itir;
20
+ u64 pte;
21
+ u64 rr;
22
+}; /*Record for tr entry!*/
23
+
24
+extern int ia64_itr_entry(u64 target_mask, u64 va, u64 pte, u64 log_size);
25
+extern void ia64_ptr_entry(u64 target_mask, int slot);
26
+extern struct ia64_tr_entry *ia64_idtrs[NR_CPUS];
27
+
28
+/*
29
+ region register macros
30
+*/
31
+#define RR_TO_VE(val) (((val) >> 0) & 0x0000000000000001)
32
+#define RR_VE(val) (((val) & 0x0000000000000001) << 0)
33
+#define RR_VE_MASK 0x0000000000000001L
34
+#define RR_VE_SHIFT 0
35
+#define RR_TO_PS(val) (((val) >> 2) & 0x000000000000003f)
36
+#define RR_PS(val) (((val) & 0x000000000000003f) << 2)
37
+#define RR_PS_MASK 0x00000000000000fcL
38
+#define RR_PS_SHIFT 2
39
+#define RR_RID_MASK 0x00000000ffffff00L
40
+#define RR_TO_RID(val) ((val >> 8) & 0xffffff)
41
+
1742 /*
1843 * Now for some TLB flushing routines. This is the kind of stuff that
1944 * can be very expensive, so try to avoid them whenever possible.