Page MenuHomeFreeBSD

D40501.diff
No OneTemporary

D40501.diff

diff --git a/usr.sbin/bhyve/Makefile b/usr.sbin/bhyve/Makefile
--- a/usr.sbin/bhyve/Makefile
+++ b/usr.sbin/bhyve/Makefile
@@ -2,9 +2,6 @@
#
.include <src.opts.mk>
-CFLAGS+=-I${.CURDIR}/../../contrib/lib9p
-CFLAGS+=-I${SRCTOP}/sys
-.PATH: ${SRCTOP}/sys/libkern ${SRCTOP}/sys/cam/ctl
PROG= bhyve
PACKAGE= bhyve
@@ -13,6 +10,10 @@
BHYVE_SYSDIR?=${SRCTOP}
+.PATH: ${.CURDIR}/${MACHINE_CPUARCH} \
+ ${SRCTOP}/sys/libkern \
+ ${SRCTOP}/sys/cam/ctl
+
SRCS= \
acpi.c \
acpi_device.c \
@@ -29,7 +30,6 @@
ctl_scsi_all.c \
ctl_util.c \
e820.c \
- fwctl.c \
gdb.c \
hda_codec.c \
inout.c \
@@ -73,7 +73,6 @@
smbiostbl.c \
sockstream.c \
spinup_ap.c \
- task_switch.c \
tpm_device.c \
tpm_emul_passthru.c \
tpm_intf_crb.c \
@@ -90,10 +89,13 @@
SRCS+= snapshot.c
.endif
+.include "${MACHINE_CPUARCH}/Makefile.inc"
+
CFLAGS.kernemu_dev.c+= -I${SRCTOP}/sys/amd64
-.PATH: ${BHYVE_SYSDIR}/sys/amd64/vmm
-SRCS+= vmm_instruction_emul.c
+CFLAGS+=-I${.CURDIR} \
+ -I${.CURDIR}/../../contrib/lib9p \
+ -I${SRCTOP}/sys
LIBADD= vmmapi md nv pthread z util sbuf cam 9p
diff --git a/usr.sbin/bhyve/amd64/Makefile.inc b/usr.sbin/bhyve/amd64/Makefile.inc
new file mode 100644
--- /dev/null
+++ b/usr.sbin/bhyve/amd64/Makefile.inc
@@ -0,0 +1,6 @@
+SRCS+= \
+ fwctl.c \
+ task_switch.c
+
+.PATH: ${BHYVE_SYSDIR}/sys/amd64/vmm
+SRCS+= vmm_instruction_emul.c
diff --git a/usr.sbin/bhyve/fwctl.h b/usr.sbin/bhyve/amd64/fwctl.h
rename from usr.sbin/bhyve/fwctl.h
rename to usr.sbin/bhyve/amd64/fwctl.h
diff --git a/usr.sbin/bhyve/fwctl.c b/usr.sbin/bhyve/amd64/fwctl.c
rename from usr.sbin/bhyve/fwctl.c
rename to usr.sbin/bhyve/amd64/fwctl.c
diff --git a/usr.sbin/bhyve/task_switch.c b/usr.sbin/bhyve/amd64/task_switch.c
rename from usr.sbin/bhyve/task_switch.c
rename to usr.sbin/bhyve/amd64/task_switch.c
--- a/usr.sbin/bhyve/task_switch.c
+++ b/usr.sbin/bhyve/amd64/task_switch.c
@@ -700,6 +700,8 @@
return (VMEXIT_CONTINUE); \
} while (0)
+int vmexit_task_switch(struct vmctx *, struct vcpu *, struct vm_run *);
+
int
vmexit_task_switch(struct vmctx *ctx, struct vcpu *vcpu, struct vm_run *vmrun)
{
diff --git a/usr.sbin/bhyve/bhyverun.h b/usr.sbin/bhyve/bhyverun.h
--- a/usr.sbin/bhyve/bhyverun.h
+++ b/usr.sbin/bhyve/bhyverun.h
@@ -46,6 +46,4 @@
int fbsdrun_virtio_msix(void);
-int vmexit_task_switch(struct vmctx *, struct vcpu *, struct vm_run *);
-
#endif
diff --git a/usr.sbin/bhyve/bhyverun.c b/usr.sbin/bhyve/bhyverun.c
--- a/usr.sbin/bhyve/bhyverun.c
+++ b/usr.sbin/bhyve/bhyverun.c
@@ -88,7 +88,9 @@
#include "inout.h"
#include "debug.h"
#include "e820.h"
-#include "fwctl.h"
+#ifdef __amd64__
+#include "amd64/fwctl.h"
+#endif
#include "gdb.h"
#include "ioapic.h"
#include "kernemu_dev.h"
@@ -921,6 +923,8 @@
return (error);
}
+int vmexit_task_switch(struct vmctx *, struct vcpu *, struct vm_run *);
+
static const vmexit_handler_t handler[VM_EXITCODE_MAX] = {
[VM_EXITCODE_INOUT] = vmexit_inout,
[VM_EXITCODE_INOUT_STR] = vmexit_inout,
@@ -1576,9 +1580,11 @@
}
free(e820_fwcfg_item);
+#ifdef __amd64__
if (lpc_bootrom() && strcmp(lpc_fwcfg(), "bhyve") == 0) {
fwctl_init();
}
+#endif
/*
* Change the proc title to include the VM name.
diff --git a/usr.sbin/bhyve/snapshot.c b/usr.sbin/bhyve/snapshot.c
--- a/usr.sbin/bhyve/snapshot.c
+++ b/usr.sbin/bhyve/snapshot.c
@@ -79,7 +79,6 @@
#include "debug.h"
#include "inout.h"
#include "ipc.h"
-#include "fwctl.h"
#include "ioapic.h"
#include "mem.h"
#include "mevent.h"

File Metadata

Mime Type
text/plain
Expires
Fri, Jan 24, 10:25 PM (20 h, 43 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16107107
Default Alt Text
D40501.diff (3 KB)

Event Timeline