1221828Sgrehan# $FreeBSD$
2221828Sgrehan
3221828SgrehanKMOD=	vmm
4221828Sgrehan
5276403SneelSRCS=	opt_acpi.h opt_ddb.h device_if.h bus_if.h pci_if.h
6276403SneelSRCS+=	vmx_assym.h svm_assym.h
7276429SneelDPSRCS=	vmx_genassym.c svm_genassym.c
8221828Sgrehan
9221914SjhbCFLAGS+= -DVMM_KEEP_STATS -DSMP
10254596SuqsCFLAGS+= -I${.CURDIR}/../../amd64/vmm
11254596SuqsCFLAGS+= -I${.CURDIR}/../../amd64/vmm/io
12221828SgrehanCFLAGS+= -I${.CURDIR}/../../amd64/vmm/intel
13276403SneelCFLAGS+= -I${.CURDIR}/../../amd64/vmm/amd
14221828Sgrehan
15221828Sgrehan# generic vmm support
16221828Sgrehan.PATH: ${.CURDIR}/../../amd64/vmm
17221828SgrehanSRCS+=	vmm.c		\
18221828Sgrehan	vmm_dev.c	\
19242275Sneel	vmm_host.c	\
20240941Sneel	vmm_instruction_emul.c	\
21268891Sjhb	vmm_ioport.c	\
22221828Sgrehan	vmm_ipi.c	\
23221828Sgrehan	vmm_lapic.c	\
24221828Sgrehan	vmm_mem.c	\
25221828Sgrehan	vmm_stat.c	\
26221828Sgrehan	vmm_util.c	\
27221828Sgrehan	x86.c		\
28221828Sgrehan	vmm_support.S
29221828Sgrehan
30221828Sgrehan.PATH: ${.CURDIR}/../../amd64/vmm/io
31221828SgrehanSRCS+=	iommu.c		\
32221828Sgrehan	ppt.c           \
33268891Sjhb	vatpic.c	\
34268891Sjhb	vatpit.c	\
35261088Sjhb	vhpet.c		\
36261088Sjhb	vioapic.c	\
37276429Sneel	vlapic.c	\
38284894Sneel	vpmtmr.c	\
39284894Sneel	vrtc.c
40221828Sgrehan
41221828Sgrehan# intel-specific files
42221828Sgrehan.PATH: ${.CURDIR}/../../amd64/vmm/intel
43221828SgrehanSRCS+=	ept.c		\
44221828Sgrehan	vmcs.c		\
45221828Sgrehan	vmx_msr.c	\
46276386Sneel	vmx_support.S	\
47221828Sgrehan	vmx.c		\
48221828Sgrehan	vtd.c
49221828Sgrehan
50221828Sgrehan# amd-specific files
51221828Sgrehan.PATH: ${.CURDIR}/../../amd64/vmm/amd
52276403SneelSRCS+=	vmcb.c		\
53276403Sneel	svm.c		\
54276403Sneel	svm_support.S	\
55276403Sneel	npt.c		\
56276403Sneel	amdv.c		\
57276403Sneel	svm_msr.c
58276429Sneel
59276403SneelCLEANFILES=	vmx_assym.h vmx_genassym.o svm_assym.h svm_genassym.o
60221828Sgrehan
61276386Sneelvmx_assym.h:    vmx_genassym.o
62221828Sgrehan.if exists(@)
63276386Sneelvmx_assym.h:    @/kern/genassym.sh
64221828Sgrehan.endif
65221828Sgrehan	sh @/kern/genassym.sh vmx_genassym.o > ${.TARGET}
66221828Sgrehan
67276403Sneelsvm_assym.h:    svm_genassym.o
68276403Sneel.if exists(@)
69276403Sneelsvm_assym.h:    @/kern/genassym.sh
70276403Sneel.endif
71276403Sneel	sh @/kern/genassym.sh svm_genassym.o > ${.TARGET}
72276403Sneel
73276386Sneelvmx_support.o:
74221828Sgrehan	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
75221828Sgrehan	    ${.IMPSRC} -o ${.TARGET}
76221828Sgrehan
77276403Sneelsvm_support.o:
78276403Sneel	${CC} -c -x assembler-with-cpp -DLOCORE ${CFLAGS} \
79276403Sneel	    ${.IMPSRC} -o ${.TARGET}
80276403Sneel
81276386Sneelvmx_genassym.o:
82221828Sgrehan	${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC}
83221828Sgrehan
84276403Sneelsvm_genassym.o:
85276403Sneel	${CC} -c ${CFLAGS:N-fno-common} ${.IMPSRC}
86276403Sneel
87221828Sgrehan.include <bsd.kmod.mk>
88