diff options
Diffstat (limited to 'sys/sparc64/include/tlb.h')
-rw-r--r-- | sys/sparc64/include/tlb.h | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sys/sparc64/include/tlb.h b/sys/sparc64/include/tlb.h index 6cffc1c..d68a0ad 100644 --- a/sys/sparc64/include/tlb.h +++ b/sys/sparc64/include/tlb.h @@ -29,11 +29,18 @@ #ifndef _MACHINE_TLB_H_ #define _MACHINE_TLB_H_ -#define TLB_DIRECT_MASK (((1UL << (64 - 38)) - 1) << 38) -#define TLB_DIRECT_SHIFT (3) -#define TLB_DIRECT_UNCACHEABLE_SHIFT (11) -#define TLB_DIRECT_COLOR_SHIFT (10) -#define TLB_DIRECT_UNCACHEABLE (1 << TLB_DIRECT_UNCACHEABLE_SHIFT) +#define TLB_DIRECT_ADDRESS_BITS (43) +#define TLB_DIRECT_PAGE_BITS (PAGE_SHIFT_4M) + +#define TLB_DIRECT_ADDRESS_MASK ((1UL << TLB_DIRECT_ADDRESS_BITS) - 1) +#define TLB_DIRECT_PAGE_MASK ((1UL << TLB_DIRECT_PAGE_BITS) - 1) + +#define TLB_PHYS_TO_DIRECT(pa) \ + ((pa) | VM_MIN_DIRECT_ADDRESS) +#define TLB_DIRECT_TO_PHYS(va) \ + ((va) & TLB_DIRECT_ADDRESS_MASK) +#define TLB_DIRECT_TO_TTE_MASK \ + (TD_V | TD_4M | (TLB_DIRECT_ADDRESS_MASK - TLB_DIRECT_PAGE_MASK)) #define TLB_DAR_SLOT_SHIFT (3) #define TLB_DAR_SLOT(slot) ((slot) << TLB_DAR_SLOT_SHIFT) |