xref: /freebsd-14.2/sys/modules/vmm/Makefile (revision 031beb4e)
1366f6083SPeter Grehan
2483d953aSJohn Baldwin.include <kmod.opts.mk>
3483d953aSJohn Baldwin
4366f6083SPeter GrehanKMOD=	vmm
5366f6083SPeter Grehan
6483d953aSJohn BaldwinSRCS=	opt_acpi.h opt_bhyve_snapshot.h opt_ddb.h
7483d953aSJohn BaldwinSRCS+=	device_if.h bus_if.h pci_if.h pcib_if.h acpi_if.h vnode_if.h
8488adf43SBryan DreweryDPSRCS+=	vmx_assym.h svm_assym.h
9ccca101fSBryan DreweryDPSRCS+=	vmx_genassym.c svm_genassym.c offset.inc
10366f6083SPeter Grehan
11b09e7a4fSMark JohnstonCFLAGS+= -DVMM_KEEP_STATS
12193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm
13193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/io
14193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/intel
15193d9e76SEnji CooperCFLAGS+= -I${SRCTOP}/sys/amd64/vmm/amd
16366f6083SPeter Grehan
17366f6083SPeter Grehan# generic vmm support
18193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm
19366f6083SPeter GrehanSRCS+=	vmm.c		\
20366f6083SPeter Grehan	vmm_dev.c	\
21b01c2033SNeel Natu	vmm_host.c	\
22a2da7af6SNeel Natu	vmm_instruction_emul.c	\
23762fd208STycho Nightingale	vmm_ioport.c	\
24366f6083SPeter Grehan	vmm_lapic.c	\
25366f6083SPeter Grehan	vmm_mem.c	\
26366f6083SPeter Grehan	vmm_stat.c	\
27366f6083SPeter Grehan	vmm_util.c	\
2818a2b08eSNeel Natu	x86.c
29366f6083SPeter Grehan
30193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/io
31366f6083SPeter GrehanSRCS+=	iommu.c		\
32366f6083SPeter Grehan	ppt.c           \
33762fd208STycho Nightingale	vatpic.c	\
34e883c9bbSTycho Nightingale	vatpit.c	\
3508e3ff32SNeel Natu	vhpet.c		\
36565bbb86SNeel Natu	vioapic.c	\
37160ef77aSNeel Natu	vlapic.c	\
380dafa5cdSNeel Natu	vpmtmr.c	\
390dafa5cdSNeel Natu	vrtc.c
40366f6083SPeter Grehan
41366f6083SPeter Grehan# intel-specific files
42193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/intel
43366f6083SPeter GrehanSRCS+=	ept.c		\
44366f6083SPeter Grehan	vmcs.c		\
45366f6083SPeter Grehan	vmx_msr.c	\
46b82e2e94SWarner Losh	vmx_support.S	\
47366f6083SPeter Grehan	vmx.c		\
48366f6083SPeter Grehan	vtd.c
49366f6083SPeter Grehan
50366f6083SPeter Grehan# amd-specific files
51193d9e76SEnji Cooper.PATH: ${SRCTOP}/sys/amd64/vmm/amd
52df5e6de3SPeter GrehanSRCS+=	vmcb.c		\
5374ada297SKa Ho Ng	amdiommu.c	\
5474ada297SKa Ho Ng	ivhd_if.c	\
5574ada297SKa Ho Ng	ivhd_if.h	\
56df5e6de3SPeter Grehan	svm.c		\
57e1a172e1SNeel Natu	svm_support.S	\
58df5e6de3SPeter Grehan	npt.c		\
5907ff474aSAnish Gupta	ivrs_drv.c	\
6007ff474aSAnish Gupta	amdvi_hw.c	\
618f02c5e4SNeel Natu	svm_msr.c
62366f6083SPeter Grehan
63*c3dd45c4SJohn BaldwinSRCS.BHYVE_SNAPSHOT=	vmm_snapshot.c
64483d953aSJohn Baldwin
65e1a172e1SNeel NatuCLEANFILES=	vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o
66366f6083SPeter Grehan
67488adf43SBryan DreweryOBJS_DEPEND_GUESS.vmx_support.o+= vmx_assym.h
68488adf43SBryan DreweryOBJS_DEPEND_GUESS.svm_support.o+= svm_assym.h
69488adf43SBryan Drewery
70b82e2e94SWarner Loshvmx_assym.h:    vmx_genassym.o
71528013d5SWarner Losh	sh ${SYSDIR}/kern/genassym.sh vmx_genassym.o > ${.TARGET}
72366f6083SPeter Grehan
73e1a172e1SNeel Natusvm_assym.h:    svm_genassym.o
74528013d5SWarner Losh	sh ${SYSDIR}/kern/genassym.sh svm_genassym.o > ${.TARGET}
75df5e6de3SPeter Grehan
76b82e2e94SWarner Loshvmx_support.o:
77366f6083SPeter Grehan	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
78366f6083SPeter Grehan	    ${.IMPSRC} -o ${.TARGET}
79366f6083SPeter Grehan
80e1a172e1SNeel Natusvm_support.o:
81df5e6de3SPeter Grehan	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
82df5e6de3SPeter Grehan	    ${.IMPSRC} -o ${.TARGET}
83df5e6de3SPeter Grehan
84ccca101fSBryan Dreweryvmx_genassym.o: offset.inc
854db3ef4cSAlex Richardson	${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
86366f6083SPeter Grehan
87ccca101fSBryan Drewerysvm_genassym.o: offset.inc
884db3ef4cSAlex Richardson	${CC} -c ${CFLAGS:N-flto:N-fno-common} -fcommon ${.IMPSRC}
89e1a172e1SNeel Natu
90366f6083SPeter Grehan.include <bsd.kmod.mk>
91