.. | .. |
---|
14 | 14 | #include <asm/mmu_context.h> |
---|
15 | 15 | #include <asm/page.h> |
---|
16 | 16 | |
---|
| 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 | + |
---|
17 | 42 | /* |
---|
18 | 43 | * Now for some TLB flushing routines. This is the kind of stuff that |
---|
19 | 44 | * can be very expensive, so try to avoid them whenever possible. |
---|