xref: /freebsd/sys/modules/vmm/Makefile (revision c3dd45c47be9b3ea47edc84c6bc6187ab74d966b)
1366f6083SPeter Grehan# $FreeBSD$
2366f6083SPeter Grehan
3483d953aSJohn Baldwin.include <kmod.opts.mk>
4483d953aSJohn Baldwin
5366f6083SPeter GrehanKMOD=	vmm
6366f6083SPeter Grehan
7483d953aSJohn BaldwinSRCS=	opt_acpi.h opt_bhyve_snapshot.h opt_ddb.h
8483d953aSJohn BaldwinSRCS+=	device_if.h bus_if.h pci_if.h pcib_if.h acpi_if.h vnode_if.h
9488adf43SBryan DreweryDPSRCS+=	vmx_assym.h svm_assym.h
10ccca101fSBryan DreweryDPSRCS+=	vmx_genassym.c svm_genassym.c offset.inc
11366f6083SPeter Grehan
12b09e7a4fSMark JohnstonCFLAGS+= -DVMM_KEEP_STATS
13193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm
14193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/io
15193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/intel
16193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/amd
17366f6083SPeter Grehan
18366f6083SPeter Grehan# generic vmm support
19193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm
20366f6083SPeter GrehanSRCS+=	vmm.c		\
21366f6083SPeter Grehan	vmm_dev.c	\
22b01c2033SNeel Natu	vmm_host.c	\
23a2da7af6SNeel Natu	vmm_instruction_emul.c	\
24762fd208STycho Nightingale	vmm_ioport.c	\
25366f6083SPeter Grehan	vmm_lapic.c	\
26366f6083SPeter Grehan	vmm_mem.c	\
27366f6083SPeter Grehan	vmm_stat.c	\
28366f6083SPeter Grehan	vmm_util.c	\
2918a2b08eSNeel Natu	x86.c
30366f6083SPeter Grehan
31193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/io
32366f6083SPeter GrehanSRCS+=	iommu.c		\
33366f6083SPeter Grehan	ppt.c           \
34762fd208STycho Nightingale	vatpic.c	\
35e883c9bbSTycho Nightingale	vatpit.c	\
3608e3ff32SNeel Natu	vhpet.c		\
37565bbb86SNeel Natu	vioapic.c	\
38160ef77aSNeel Natu	vlapic.c	\
390dafa5cdSNeel Natu	vpmtmr.c	\
400dafa5cdSNeel Natu	vrtc.c
41366f6083SPeter Grehan
42366f6083SPeter Grehan# intel-specific files
43193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/intel
44366f6083SPeter GrehanSRCS+=	ept.c		\
45366f6083SPeter Grehan	vmcs.c		\
46366f6083SPeter Grehan	vmx_msr.c	\
47b82e2e94SWarner Losh	vmx_support.S	\
48366f6083SPeter Grehan	vmx.c		\
49366f6083SPeter Grehan	vtd.c
50366f6083SPeter Grehan
51366f6083SPeter Grehan# amd-specific files
52193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/amd
53df5e6de3SPeter GrehanSRCS+=	vmcb.c		\
5474ada297SKa Ho Ng	amdiommu.c	\
5574ada297SKa Ho Ng	ivhd_if.c	\
5674ada297SKa Ho Ng	ivhd_if.h	\
57df5e6de3SPeter Grehan	svm.c		\
58e1a172e1SNeel Natu	svm_support.S	\
59df5e6de3SPeter Grehan	npt.c		\
6007ff474aSAnish Gupta	ivrs_drv.c	\
6107ff474aSAnish Gupta	amdvi_hw.c	\
628f02c5e4SNeel Natu	svm_msr.c
63366f6083SPeter Grehan
64*c3dd45c4SJohn BaldwinSRCS.BHYVE_SNAPSHOT=	vmm_snapshot.c
65483d953aSJohn Baldwin
66e1a172e1SNeel NatuCLEANFILES=	vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o
67366f6083SPeter Grehan
68488adf43SBryan DreweryOBJS_DEPEND_GUESS.vmx_support.o+= vmx_assym.h
69488adf43SBryan DreweryOBJS_DEPEND_GUESS.svm_support.o+= svm_assym.h
70488adf43SBryan Drewery
71b82e2e94SWarner Loshvmx_assym.h:    vmx_genassym.o
72528013d5SWarner Losh	sh ${SYSDIR}/kern/genassym.sh vmx_genassym.o > ${.TARGET}
73366f6083SPeter Grehan
74e1a172e1SNeel Natusvm_assym.h:    svm_genassym.o
75528013d5SWarner Losh	sh ${SYSDIR}/kern/genassym.sh svm_genassym.o > ${.TARGET}
76df5e6de3SPeter Grehan
77b82e2e94SWarner Loshvmx_support.o:
78366f6083SPeter Grehan	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
79366f6083SPeter Grehan	    ${.IMPSRC} -o ${.TARGET}
80366f6083SPeter Grehan
81e1a172e1SNeel Natusvm_support.o:
82df5e6de3SPeter Grehan	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
83df5e6de3SPeter Grehan	    ${.IMPSRC} -o ${.TARGET}
84df5e6de3SPeter Grehan
85ccca101fSBryan Dreweryvmx_genassym.o: offset.inc
864db3ef4cSAlex Richardson	${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
87366f6083SPeter Grehan
88ccca101fSBryan Drewerysvm_genassym.o: offset.inc
894db3ef4cSAlex Richardson	${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
90e1a172e1SNeel Natu
91366f6083SPeter Grehan.include <bsd.kmod.mk>
92