1*7c8c0b82SPatrick Mooney# 2*7c8c0b82SPatrick Mooney# This file and its contents are supplied under the terms of the 3*7c8c0b82SPatrick Mooney# Common Development and Distribution License ("CDDL"), version 1.0. 4*7c8c0b82SPatrick Mooney# You may only use this file in accordance with the terms of version 5*7c8c0b82SPatrick Mooney# 1.0 of the CDDL. 6*7c8c0b82SPatrick Mooney# 7*7c8c0b82SPatrick Mooney# A full copy of the text of the CDDL should have accompanied this 8*7c8c0b82SPatrick Mooney# source. A copy of the CDDL is also available via the Internet at 9*7c8c0b82SPatrick Mooney# http://www.illumos.org/license/CDDL. 10*7c8c0b82SPatrick Mooney# 11*7c8c0b82SPatrick Mooney 12*7c8c0b82SPatrick Mooney# 13*7c8c0b82SPatrick Mooney# Copyright 2019 Joyent, Inc. 14*7c8c0b82SPatrick Mooney# Copyright 2022 Oxide Computer Company 15*7c8c0b82SPatrick Mooney# 16*7c8c0b82SPatrick Mooney 17*7c8c0b82SPatrick MooneyCONF_SRCDIR = $(UTSBASE)/intel/io/vmm 18*7c8c0b82SPatrick MooneyMAPFILE = $(UTSBASE)/intel/io/vmm/vmm.mapfile 19*7c8c0b82SPatrick Mooney 20*7c8c0b82SPatrick MooneyPRE_INC_PATH = \ 21*7c8c0b82SPatrick Mooney -I$(COMPAT)/bhyve \ 22*7c8c0b82SPatrick Mooney -I$(COMPAT)/bhyve/amd64 \ 23*7c8c0b82SPatrick Mooney -I$(CONTRIB)/bhyve \ 24*7c8c0b82SPatrick Mooney -I$(CONTRIB)/bhyve/amd64 25*7c8c0b82SPatrick Mooney 26*7c8c0b82SPatrick MooneyINC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(UTSBASE)/intel/io/vmm/io 27*7c8c0b82SPatrick MooneyAS_INC_PATH += -I$(UTSBASE)/intel/io/vmm -I$(OBJS_DIR) 28*7c8c0b82SPatrick Mooney 29*7c8c0b82SPatrick Mooney# enable collection of VMM statistics 30*7c8c0b82SPatrick MooneyCFLAGS += -DVMM_KEEP_STATS 31*7c8c0b82SPatrick Mooney 32*7c8c0b82SPatrick MooneyLDFLAGS += -N misc/acpica -N misc/pcie -N fs/dev 33*7c8c0b82SPatrick MooneyLDFLAGS += -M $(MAPFILE) 34*7c8c0b82SPatrick Mooney 35*7c8c0b82SPatrick Mooney# 3rd party code 36*7c8c0b82SPatrick MooneySMOFF += all_func_returns 37*7c8c0b82SPatrick Mooney 38*7c8c0b82SPatrick Mooney# needs work 39*7c8c0b82SPatrick Mooney$(OBJS_DIR)/vmm_sol_dev.o := SMOFF += signed_integer_overflow_check 40*7c8c0b82SPatrick Mooney 41*7c8c0b82SPatrick MooneyOFFSETS_VMX = $(CONF_SRCDIR)/intel/offsets.in 42*7c8c0b82SPatrick MooneyOFFSETS_SVM = $(CONF_SRCDIR)/amd/offsets.in 43*7c8c0b82SPatrick MooneyASSYM_VMX = $(OBJS_DIR)/vmx_assym.h 44*7c8c0b82SPatrick MooneyASSYM_SVM = $(OBJS_DIR)/svm_assym.h 45*7c8c0b82SPatrick Mooney 46*7c8c0b82SPatrick MooneyCLEANFILES += $(ASSYM_VMX) $(ASSYM_SVM) 47*7c8c0b82SPatrick Mooney 48*7c8c0b82SPatrick MooneyVMM_OBJS = \ 49*7c8c0b82SPatrick Mooney vmm.o \ 50*7c8c0b82SPatrick Mooney vmm_sol_dev.o \ 51*7c8c0b82SPatrick Mooney vmm_host.o \ 52*7c8c0b82SPatrick Mooney vmm_instruction_emul.o \ 53*7c8c0b82SPatrick Mooney vmm_ioport.o \ 54*7c8c0b82SPatrick Mooney vmm_lapic.o \ 55*7c8c0b82SPatrick Mooney vmm_stat.o \ 56*7c8c0b82SPatrick Mooney vmm_util.o \ 57*7c8c0b82SPatrick Mooney x86.o \ 58*7c8c0b82SPatrick Mooney iommu.o \ 59*7c8c0b82SPatrick Mooney vatpic.o \ 60*7c8c0b82SPatrick Mooney vatpit.o \ 61*7c8c0b82SPatrick Mooney vhpet.o \ 62*7c8c0b82SPatrick Mooney vioapic.o \ 63*7c8c0b82SPatrick Mooney vlapic.o \ 64*7c8c0b82SPatrick Mooney vrtc.o \ 65*7c8c0b82SPatrick Mooney vpmtmr.o \ 66*7c8c0b82SPatrick Mooney vmcs.o \ 67*7c8c0b82SPatrick Mooney vmx_msr.o \ 68*7c8c0b82SPatrick Mooney vmx.o \ 69*7c8c0b82SPatrick Mooney vmx_support.o \ 70*7c8c0b82SPatrick Mooney vtd.o \ 71*7c8c0b82SPatrick Mooney vtd_sol.o \ 72*7c8c0b82SPatrick Mooney svm.o \ 73*7c8c0b82SPatrick Mooney svm_msr.o \ 74*7c8c0b82SPatrick Mooney vmcb.o \ 75*7c8c0b82SPatrick Mooney svm_support.o \ 76*7c8c0b82SPatrick Mooney amdv.o \ 77*7c8c0b82SPatrick Mooney vmm_gpt.o \ 78*7c8c0b82SPatrick Mooney seg_vmm.o \ 79*7c8c0b82SPatrick Mooney vmm_reservoir.o \ 80*7c8c0b82SPatrick Mooney vmm_sol_glue.o \ 81*7c8c0b82SPatrick Mooney vmm_sol_ept.o \ 82*7c8c0b82SPatrick Mooney vmm_sol_rvi.o \ 83*7c8c0b82SPatrick Mooney vmm_support.o \ 84*7c8c0b82SPatrick Mooney vmm_vm.o \ 85*7c8c0b82SPatrick Mooney vmm_zsd.o 86