tlb.h (205258) | tlb.h (223719) |
---|---|
1/*- 2 * Copyright (c) 2001 Jake Burkholder. 3 * Copyright (c) 2008, 2010 Marius Strobl <marius@FreeBSD.org> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/*- 2 * Copyright (c) 2001 Jake Burkholder. 3 * Copyright (c) 2008, 2010 Marius Strobl <marius@FreeBSD.org> 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/sparc64/include/tlb.h 205258 2010-03-17 20:23:14Z marius $ | 27 * $FreeBSD: head/sys/sparc64/include/tlb.h 223719 2011-07-02 11:14:54Z marius $ |
28 */ 29 30#ifndef _MACHINE_TLB_H_ 31#define _MACHINE_TLB_H_ 32 33#define TLB_DIRECT_ADDRESS_BITS (43) 34#define TLB_DIRECT_PAGE_BITS (PAGE_SHIFT_4M) 35 36#define TLB_DIRECT_ADDRESS_MASK ((1UL << TLB_DIRECT_ADDRESS_BITS) - 1) 37#define TLB_DIRECT_PAGE_MASK ((1UL << TLB_DIRECT_PAGE_BITS) - 1) 38 39#define TLB_PHYS_TO_DIRECT(pa) \ 40 ((pa) | VM_MIN_DIRECT_ADDRESS) 41#define TLB_DIRECT_TO_PHYS(va) \ 42 ((va) & TLB_DIRECT_ADDRESS_MASK) 43#define TLB_DIRECT_TO_TTE_MASK \ 44 (TD_V | TD_4M | (TLB_DIRECT_ADDRESS_MASK - TLB_DIRECT_PAGE_MASK)) 45 46#define TLB_DAR_SLOT_SHIFT (3) | 28 */ 29 30#ifndef _MACHINE_TLB_H_ 31#define _MACHINE_TLB_H_ 32 33#define TLB_DIRECT_ADDRESS_BITS (43) 34#define TLB_DIRECT_PAGE_BITS (PAGE_SHIFT_4M) 35 36#define TLB_DIRECT_ADDRESS_MASK ((1UL << TLB_DIRECT_ADDRESS_BITS) - 1) 37#define TLB_DIRECT_PAGE_MASK ((1UL << TLB_DIRECT_PAGE_BITS) - 1) 38 39#define TLB_PHYS_TO_DIRECT(pa) \ 40 ((pa) | VM_MIN_DIRECT_ADDRESS) 41#define TLB_DIRECT_TO_PHYS(va) \ 42 ((va) & TLB_DIRECT_ADDRESS_MASK) 43#define TLB_DIRECT_TO_TTE_MASK \ 44 (TD_V | TD_4M | (TLB_DIRECT_ADDRESS_MASK - TLB_DIRECT_PAGE_MASK)) 45 46#define TLB_DAR_SLOT_SHIFT (3) |
47#define TLB_DAR_SLOT(slot) ((slot) << TLB_DAR_SLOT_SHIFT) | 47#define TLB_DAR_TLB_SHIFT (16) 48#define TLB_DAR_SLOT(tlb, slot) \ 49 ((tlb) << TLB_DAR_TLB_SHIFT | (slot) << TLB_DAR_SLOT_SHIFT) 50#define TLB_DAR_T16 (0) /* US-III{,i,+}, IV{,+} */ 51#define TLB_DAR_T32 (0) /* US-I, II{,e,i} */ 52#define TLB_DAR_DT512_0 (2) /* US-III{,i,+}, IV{,+} */ 53#define TLB_DAR_DT512_1 (3) /* US-III{,i,+}, IV{,+} */ 54#define TLB_DAR_IT128 (2) /* US-III{,i,+}, IV */ 55#define TLB_DAR_IT512 (2) /* US-IV+ */ 56#define TLB_DAR_FTLB (0) /* SPARC64 V, VI, VII, VIIIfx */ 57#define TLB_DAR_STLB (2) /* SPARC64 V, VI, VII, VIIIfx */ |
48 49#define TAR_VPN_SHIFT (13) 50#define TAR_CTX_MASK ((1 << TAR_VPN_SHIFT) - 1) 51 52#define TLB_TAR_VA(va) ((va) & ~TAR_CTX_MASK) 53#define TLB_TAR_CTX(ctx) ((ctx) & TAR_CTX_MASK) 54 55#define TLB_CXR_CTX_BITS (13) --- 95 unchanged lines hidden (view full) --- 151void tlb_range_demap(struct pmap *pm, vm_offset_t start, vm_offset_t end); 152 153tlb_flush_nonlocked_t cheetah_tlb_flush_nonlocked; 154tlb_flush_user_t cheetah_tlb_flush_user; 155 156tlb_flush_nonlocked_t spitfire_tlb_flush_nonlocked; 157tlb_flush_user_t spitfire_tlb_flush_user; 158 | 58 59#define TAR_VPN_SHIFT (13) 60#define TAR_CTX_MASK ((1 << TAR_VPN_SHIFT) - 1) 61 62#define TLB_TAR_VA(va) ((va) & ~TAR_CTX_MASK) 63#define TLB_TAR_CTX(ctx) ((ctx) & TAR_CTX_MASK) 64 65#define TLB_CXR_CTX_BITS (13) --- 95 unchanged lines hidden (view full) --- 161void tlb_range_demap(struct pmap *pm, vm_offset_t start, vm_offset_t end); 162 163tlb_flush_nonlocked_t cheetah_tlb_flush_nonlocked; 164tlb_flush_user_t cheetah_tlb_flush_user; 165 166tlb_flush_nonlocked_t spitfire_tlb_flush_nonlocked; 167tlb_flush_user_t spitfire_tlb_flush_user; 168 |
169tlb_flush_nonlocked_t zeus_tlb_flush_nonlocked; 170tlb_flush_user_t zeus_tlb_flush_user; 171 |
|
159extern tlb_flush_nonlocked_t *tlb_flush_nonlocked; 160extern tlb_flush_user_t *tlb_flush_user; 161 162#endif /* !_MACHINE_TLB_H_ */ | 172extern tlb_flush_nonlocked_t *tlb_flush_nonlocked; 173extern tlb_flush_user_t *tlb_flush_user; 174 175#endif /* !_MACHINE_TLB_H_ */ |