Deleted Added
full compact
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_ */