Print this page
8956 Implement KPTI
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com>
Reviewed by: Robert Mustacchi <rm@joyent.com>
Split |
Close |
Expand all |
Collapse all |
--- old/usr/src/uts/i86xpv/Makefile.files
+++ new/usr/src/uts/i86xpv/Makefile.files
1 1 #
2 2 # CDDL HEADER START
3 3 #
4 4 # The contents of this file are subject to the terms of the
5 5 # Common Development and Distribution License (the "License").
6 6 # You may not use this file except in compliance with the License.
7 7 #
8 8 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 9 # or http://www.opensolaris.org/os/licensing.
10 10 # See the License for the specific language governing permissions
11 11 # and limitations under the License.
12 12 #
13 13 # When distributing Covered Code, include this CDDL HEADER in each
14 14 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
↓ open down ↓ |
14 lines elided |
↑ open up ↑ |
15 15 # If applicable, add the following below this CDDL HEADER, with the
16 16 # fields enclosed by brackets "[]" replaced with your own identifying
17 17 # information: Portions Copyright [yyyy] [name of copyright owner]
18 18 #
19 19 # CDDL HEADER END
20 20 #
21 21
22 22 #
23 23 # Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
24 24 #
25 +# Copyright 2018 Joyent, Inc.
26 +#
25 27
26 28 # This Makefile defines file modules in the directory uts/i86xpv
27 29 # and its children. These are the source files which are i86xpv
28 30 # "implementation architecture" dependent.
29 31 #
30 32
31 33 #
32 34 # object lists
33 35 #
34 36 CORE_OBJS += \
35 37 acpi_stubs.o \
36 38 balloon.o \
37 39 biosdisk.o \
38 40 cbe.o \
39 41 cmi.o \
40 42 cmi_hw.o \
41 43 cms.o \
42 44 confunix.o \
43 45 cpuid.o \
44 46 cpuid_subr.o \
45 47 cpupm.o \
46 48 cpupm_mach.o \
47 49 dis_tables.o \
48 50 ddi_impl.o \
49 51 dtrace_subr.o \
50 52 dvma.o \
51 53 fakebop.o \
52 54 fpu_subr.o \
53 55 fastboot.o \
54 56 fb_swtch.o \
55 57 graphics.o \
56 58 hardclk.o \
57 59 hat_i86.o \
↓ open down ↓ |
23 lines elided |
↑ open up ↑ |
58 60 hat_kdi.o \
59 61 hment.o \
60 62 hold_page.o \
61 63 hrtimers.o \
62 64 htable.o \
63 65 i86_mmu.o \
64 66 ibft.o \
65 67 instr_size.o \
66 68 intr.o \
67 69 kboot_mmu.o \
68 - kdi_subr.o \
69 70 kdi_idt.o \
70 71 kdi_idthdl.o \
71 72 kdi_asm.o \
72 73 lgrpplat.o \
73 74 mach_kdi.o \
74 75 mach_sysconfig.o \
75 76 machdep.o \
76 77 mem_config_stubs.o \
77 78 memnode.o \
78 79 microcode.o \
79 80 mlsetup.o \
80 81 mp_call.o \
81 82 mp_implfuncs.o \
82 83 mp_machdep.o \
83 84 mp_startup.o \
84 85 memscrub.o \
85 86 notes.o \
86 87 pci_bios.o \
87 88 pci_cfgacc.o \
88 89 pci_cfgacc_x86.o \
89 90 pci_cfgspace.o \
90 91 pci_mech1.o \
91 92 pci_mech2.o \
92 93 pci_neptune.o \
93 94 pci_orion.o \
94 95 pmem.o \
95 96 ppage.o \
96 97 startup.o \
97 98 ssp.o \
98 99 xpv_timestamp.o \
99 100 todpc_subr.o \
100 101 trap.o \
101 102 vm_machdep.o \
102 103 x_call.o
103 104
104 105 #
105 106 # Add the SMBIOS subsystem object files directly to the list of objects
106 107 # built into unix itself; this is all common code except for smb_dev.c.
107 108 #
108 109 CORE_OBJS += $(SMBIOS_OBJS)
109 110
110 111 #
111 112 # These get compiled twice:
112 113 # - once in the dboot (direct boot) identity mapped code
113 114 # - once for use during early startup in unix
114 115 #
115 116 BOOT_DRIVER_OBJS = \
116 117 boot_console.o \
117 118 boot_keyboard.o \
118 119 boot_keyboard_table.o \
119 120 boot_mmu.o \
120 121 boot_vga.o \
121 122 boot_xconsole.o \
122 123 dboot_multiboot2.o \
123 124 $(FONT_OBJS)
124 125
125 126 CORE_OBJS += $(BOOT_DRIVER_OBJS)
126 127
127 128 #
128 129 # Extra XEN files separated out for now.
129 130 #
130 131 CORE_OBJS += \
131 132 cpr_driver.o \
132 133 evtchn.o \
133 134 gnttab.o \
134 135 hypercall.o \
135 136 hyperevent.o \
136 137 hypersubr.o \
137 138 mp_xen.o \
138 139 panic_asm.o \
139 140 xenguest.o \
140 141 xenbus_client.o \
141 142 xenbus_comms.o \
142 143 xenbus_probe.o \
143 144 xenbus_xs.o \
144 145 xen_machdep.o \
145 146 xen_mmu.o \
146 147 xpv_panic.o \
147 148 xvdi.o
148 149
149 150 #
150 151 # locore.o is special. It must be the first file relocated so that it
151 152 # it is relocated just where its name implies.
152 153 #
↓ open down ↓ |
74 lines elided |
↑ open up ↑ |
153 154 SPECIAL_OBJS_32 += \
154 155 locore.o \
155 156 fast_trap_asm.o \
156 157 interrupt.o \
157 158 syscall_asm.o
158 159
159 160 SPECIAL_OBJS_64 += \
160 161 locore.o \
161 162 fast_trap_asm.o \
162 163 interrupt.o \
163 - syscall_asm_amd64.o
164 + syscall_asm_amd64.o \
165 + kpti_trampolines.o
164 166
165 167 SPECIAL_OBJS += $(SPECIAL_OBJS_$(CLASS))
166 168
167 169 #
168 170 # object files used to boot into full kernel
169 171 #
170 172 DBOOT_OBJS_32 = muldiv.o
171 173
172 174 DBOOT_OBJS_64 =
173 175
174 176 DBOOT_OBJS += \
175 177 dboot_asm.o \
176 178 dboot_printf.o \
177 179 dboot_startkern.o \
178 180 dboot_xen.o \
179 181 hypercall.o \
180 182 hypersubr.o \
181 183 memcpy.o \
182 184 memset.o \
183 185 string.o \
184 186 $(BOOT_DRIVER_OBJS) \
185 187 $(DBOOT_OBJS_$(CLASS))
186 188
187 189 #
188 190 # driver & misc modules
189 191 #
190 192 BALLOON_OBJS += balloon_drv.o
191 193 DOMCAPS_OBJS += domcaps.o
192 194 EVTCHN_OBJS += evtchn_dev.o
193 195 GFX_PRIVATE_OBJS += gfx_private.o gfxp_pci.o gfxp_segmap.o \
194 196 gfxp_devmap.o gfxp_vgatext.o gfxp_vm.o vgasubr.o
195 197 IOAT_OBJS += ioat.o ioat_rs.o ioat_ioctl.o ioat_chan.o
196 198 ISANEXUS_OBJS += isa.o dma_engine.o i8237A.o
197 199 PCI_E_NEXUS_OBJS += npe.o npe_misc.o
198 200 PCI_E_NEXUS_OBJS += pci_common.o pci_kstats.o pci_tools.o
199 201 PCINEXUS_OBJS += pci.o pci_common.o pci_kstats.o pci_tools.o
200 202 PRIVCMD_OBJS += seg_mf.o privcmd.o privcmd_hcall.o
201 203 ROOTNEX_OBJS += rootnex.o
202 204 XPVTOD_OBJS += xpvtod.o
203 205 XPV_AUTOCONFIG_OBJS += xpv_autoconfig.o
204 206 XPV_PSM_OBJS += xpv_psm.o mp_platform_common.o mp_platform_xpv.o \
205 207 apic_regops.o psm_common.o xpv_intr.o
206 208 XPV_UPPC_OBJS += xpv_uppc.o psm_common.o
207 209 XENBUS_OBJS += xenbus_dev.o
208 210 XENCONS_OBJS += xencons.o
209 211 XPVD_OBJS += xpvd.o
210 212 XPVTAP_OBJS += xpvtap.o blk_common.o seg_mf.o
211 213 XNB_OBJS += xnb.o
212 214 XNBE_OBJS += xnbe.o
213 215 XNBO_OBJS += xnbo.o
214 216 XNBU_OBJS += xnbu.o
215 217 XNF_OBJS += xnf.o
216 218 XSVC_OBJS += xsvc.o
217 219 XDF_OBJS += xdf.o
218 220 XDB_OBJS += xdb.o
219 221 XDT_OBJS += xdt.o
220 222
221 223 #
222 224 # Build up defines and paths.
223 225 #
224 226 INC_PATH += -I$(UTSBASE)/i86xpv -I$(UTSBASE)/i86pc -I$(SRC)/common \
225 227 -I$(UTSBASE)/common/xen
226 228
227 229 #
228 230 # Since the assym files are derived, the dependencies must be explicit for
229 231 # all files including this file. (This is only actually required in the
230 232 # instance when the .nse_depinfo file does not exist.) It may seem that
231 233 # the lint targets should also have a similar dependency, but they don't
232 234 # since only C headers are included when #defined(__lint) is true.
233 235 #
234 236
235 237 ASSYM_DEPS += \
236 238 copy.o \
237 239 desctbls_asm.o \
238 240 ddi_i86_asm.o \
239 241 exception.o \
240 242 fast_trap_asm.o \
241 243 float.o \
242 244 hyperevent.o \
243 245 i86_subr.o \
244 246 kdi_asm.o \
↓ open down ↓ |
71 lines elided |
↑ open up ↑ |
245 247 interrupt.o \
246 248 lock_prim.o \
247 249 locore.o \
248 250 panic_asm.o \
249 251 sseblk.o \
250 252 swtch.o \
251 253 syscall_asm.o \
252 254 syscall_asm_amd64.o
253 255
254 256 $(KDI_ASSYM_DEPS:%=$(OBJS_DIR)/%): $(DSF_DIR)/$(OBJS_DIR)/kdi_assym.h
255 -
256 -ASSYM_DEPS += kdi_asm.o
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX