4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #ifndef _SYS_PC_MMU_H
27 #define _SYS_PC_MMU_H
28
29 #pragma ident "%Z%%M% %I% %E% SMI"
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /*
36 * Platform-dependent MMU routines and types for real x86 hardware.
37 *
38 * WARNING: this header file is used by both dboot and i86pc, so don't go using
39 * normal kernel headers.
40 */
41
42 #define IN_HYPERVISOR_VA(va) (__lintzero)
43
44 void reload_cr3(void);
45
46 #define pa_to_ma(pa) (pa)
47 #define ma_to_pa(ma) (ma)
48 #define pfn_to_mfn(pfn) (pfn)
49 #define mfn_to_pfn(mfn) (mfn)
50
51 #ifndef _BOOT
52
53 void mmu_tlbflush_entry(caddr_t);
54 void setcr3(ulong_t);
55
56 #if defined(__GNUC__)
57 #include <asm/mmu.h>
58 #endif
59
60 #endif /* !_BOOT */
61
62 #ifdef __cplusplus
63 }
64 #endif
65
66 #endif /* _SYS_PC_MMU_H */
|
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 *
25 * Copyright 2018 Joyent, Inc.
26 */
27
28 #ifndef _SYS_PC_MMU_H
29 #define _SYS_PC_MMU_H
30
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34
35 /*
36 * Platform-dependent MMU routines and types for real x86 hardware.
37 *
38 * WARNING: this header file is used by both dboot and i86pc, so don't go using
39 * normal kernel headers.
40 */
41
42 #define IN_HYPERVISOR_VA(va) (__lintzero)
43
44 void reload_cr3(void);
45
46 #define pa_to_ma(pa) (pa)
47 #define ma_to_pa(ma) (ma)
48 #define pfn_to_mfn(pfn) (pfn)
49 #define mfn_to_pfn(mfn) (mfn)
50
51 #ifndef _BOOT
52
53 extern uint64_t kpti_safe_cr3;
54
55 #define INVPCID_ADDR (0)
56 #define INVPCID_ID (1)
57 #define INVPCID_ALL_GLOBAL (2)
58 #define INVPCID_ALL_NONGLOBAL (3)
59
60 extern void invpcid_insn(uint64_t, uint64_t, uintptr_t);
61 extern void tr_mmu_flush_user_range(uint64_t, size_t, size_t, uint64_t);
62
63 #if defined(__GNUC__)
64 #include <asm/mmu.h>
65 #endif
66
67 #endif /* !_BOOT */
68
69 #ifdef __cplusplus
70 }
71 #endif
72
73 #endif /* _SYS_PC_MMU_H */
|