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