#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#

#
# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident	"%Z%%M%	%I%	%E% SMI"
#
#	This Makefile defines all file modules for the directory uts/sun4v
#	and it's children. These are the source files which are sun4u
#	"implementation architecture" dependent.
#

#
#	object lists
#
CORE_OBJS +=	bootops.o
CORE_OBJS +=	prom_alloc.o
CORE_OBJS +=	cmp.o
CORE_OBJS +=	cpc_hwreg.o
CORE_OBJS +=	cpc_subr.o
CORE_OBJS +=	error.o
CORE_OBJS +=	fillsysinfo.o
CORE_OBJS +=	forthdebug.o
CORE_OBJS +=	hardclk.o
CORE_OBJS +=	hat_sfmmu.o
CORE_OBJS +=	hat_kdi.o
CORE_OBJS +=	hsvc.o
CORE_OBJS +=	lpad.o
CORE_OBJS +=	mach_cpu_states.o
CORE_OBJS +=	mach_ddi_impl.o
CORE_OBJS +=	mach_descrip.o
CORE_OBJS +=	mach_kpm.o
CORE_OBJS +=	mach_mp_startup.o
CORE_OBJS +=	mach_mp_states.o
CORE_OBJS +=	mach_proc_init.o
CORE_OBJS +=	mach_sfmmu.o
CORE_OBJS +=	mach_startup.o
CORE_OBJS +=	mach_subr_asm.o
CORE_OBJS +=	mach_trap.o
CORE_OBJS +=	mach_vm_dep.o
CORE_OBJS +=	mach_xc.o
CORE_OBJS +=	mem_cage.o
CORE_OBJS +=	mem_config.o
CORE_OBJS +=	memlist_new.o
CORE_OBJS +=	mpo.o
CORE_OBJS +=	ppage.o
CORE_OBJS +=	promif_asr.o
CORE_OBJS +=	promif_cpu.o
CORE_OBJS +=	promif_emul.o
CORE_OBJS +=	promif_mon.o
CORE_OBJS +=	promif_io.o
CORE_OBJS +=	promif_interp.o
CORE_OBJS +=	promif_key.o
CORE_OBJS +=	promif_power_off.o
CORE_OBJS +=	promif_prop.o
CORE_OBJS +=	promif_node.o
CORE_OBJS +=	promif_reboot.o
CORE_OBJS +=	promif_stree.o
CORE_OBJS +=	promif_test.o
CORE_OBJS +=	promif_version.o
CORE_OBJS +=	sfmmu_kdi.o
CORE_OBJS +=	swtch.o
CORE_OBJS +=	wdt.o
CORE_OBJS +=	xhat_sfmmu.o

CORE_OBJS +=	mdesc_diff.o
CORE_OBJS +=	mdesc_findname.o
CORE_OBJS +=	mdesc_findnodeprop.o
CORE_OBJS +=	mdesc_fini.o
CORE_OBJS +=	mdesc_getbinsize.o
CORE_OBJS +=	mdesc_getgen.o
CORE_OBJS +=	mdesc_getpropdata.o
CORE_OBJS +=	mdesc_getpropstr.o
CORE_OBJS +=	mdesc_getpropval.o
CORE_OBJS +=	mdesc_init_intern.o
CORE_OBJS +=	mdesc_nodecount.o
CORE_OBJS +=	mdesc_rootnode.o
CORE_OBJS +=	mdesc_scandag.o

#
#	Some objects must be linked at the front of the image (or
#	near other objects at the front of the image).
#
SPECIAL_OBJS +=	trap_table.o
SPECIAL_OBJS +=	locore.o
SPECIAL_OBJS +=	mach_locore.o
SPECIAL_OBJS +=	sfmmu_asm.o
SPECIAL_OBJS +=	mach_sfmmu_asm.o
SPECIAL_OBJS +=	interrupt.o
SPECIAL_OBJS +=	mach_interrupt.o
SPECIAL_OBJS +=	wbuf.o
SPECIAL_OBJS += hcall.o
SPECIAL_OBJS += intrq.o

#
#			driver modules
#
ROOTNEX_OBJS	+= mach_rootnex.o
PX_OBJS		+= px_lib4v.o px_err.o px_tools_4v.o px_hcall.o
FPC_OBJS	+= fpc-impl-4v.o fpc-asm-4v.o
N2PIUPC_OBJS	+= n2piupc.o n2piupc_tables.o n2piupc_kstats.o \
			n2piupc_biterr.o n2piupc_asm.o
TRAPSTAT_OBJS	+= trapstat.o
NIUMX_OBJS	+= niumx.o
N2RNG_OBJS	+= n2rng.o n2rng_debug.o n2rng_hcall.o n2rng_kcf.o \
		   n2rng_entp_algs.o n2rng_entp_setup.o n2rng_kstat.o \
		   n2rng_provider.o

#
# 			CPU/Memory Error Injector (memtest) sun4v driver
#
MEMTEST_OBJS	+= memtest.o memtest_asm.o \
			memtest_v.o memtest_v_asm.o \
			memtest_ni.o memtest_ni_asm.o \
			memtest_n2.o memtest_n2_asm.o \
			memtest_vf.o

#
#			sun4v virtual devices
#
QCN_OBJS	= qcn.o
VNEX_OBJS	= vnex.o
CNEX_OBJS	= cnex.o
GLVC_OBJS	= glvc.o glvc_hcall.o
MDESC_OBJS	= mdesc.o
LDC_OBJS	= ldc.o vio_util.o vdsk_common.o
NTWDT_OBJS	= ntwdt.o
VLDC_OBJS	= vldc.o
VCC_OBJS	= vcc.o
VNET_OBJS	= vnet.o vnet_gen.o
VSW_OBJS	= vsw.o
VDC_OBJS	= vdc.o
VDS_OBJS	= vds.o
DS_PRI_OBJS	= ds_pri.o
DS_SNMP_OBJS	= ds_snmp.o

#
#			Misc modules
#
BOOTDEV_OBJS	+= bootdev.o
DR_CPU_OBJS	+= dr_cpu.o
DRCTL_OBJS	= drctl.o drctl_impl.o dr_util.o
DS_OBJS		= ds.o
FAULT_ISO_OBJS	= fault_iso.o
OBPSYM_OBJS	+= obpsym.o obpsym_1275.o
PLATSVC_OBJS	= platsvc.o mdeg.o

#
#			Brand modules
#
SN1_BRAND_OBJS		= sn1_brand.o sn1_brand_asm.o

#
#			Performance Counter BackEnd (PCBE) Modules
#
NI_PCBE_OBJS	= niagara_pcbe.o
N2_PCBE_OBJS	= niagara2_pcbe.o

#
#			cpu modules
# XXXQ Make generic4vcpu
#
CPU_OBJ		+= $(OBJS_DIR)/mach_cpu_module.o
GENERIC_OBJS = generic.o generic_copy.o common_asm.o atomic.o
NIAGARACPU_OBJS = niagara.o niagara_copy.o common_asm.o niagara_perfctr.o
NIAGARACPU_OBJS += niagara_asm.o atomic.o
NIAGARA2CPU_OBJS = niagara2.o niagara_copy.o common_asm.o niagara_perfctr.o
NIAGARA2CPU_OBJS += niagara2_asm.o niagara2_atomic.o

#
#			platform module
#
PLATMOD_OBJS	= platmod.o

#	Section 3:	Misc.
#
ALL_DEFS	+= -Dsun4u -Dsun4v
INC_PATH	+= -I$(UTSBASE)/sun4v
#
# Since assym.h is a derived file, the dependency must be explicit for
# all files including this file. (This is only actually required in the
# instance when the .make.state file does not exist.) It may seem that
# the lint targets should also have a similar dependency, but they don't
# since only C headers are included when #defined(lint) is true.
#
ASSYM_DEPS	+= mach_locore.o
ASSYM_DEPS	+= module_sfmmu_asm.o
ASSYM_DEPS	+= generic_asm.o generic_copy.o
ASSYM_DEPS	+= niagara_copy.o niagara_asm.o niagara2_asm.o
ASSYM_DEPS	+= mach_subr_asm.o swtch.o
ASSYM_DEPS	+= mach_interrupt.o mach_xc.o
ASSYM_DEPS	+= trap_table.o wbuf.o
ASSYM_DEPS	+= mach_sfmmu_asm.o sfmmu_asm.o

#
#			kernel cryptographic framework
#

ARCFOUR_OBJS	+= arcfour.o arcfour_crypt.o