svn commit: r221942 - in projects/bhyve: lib lib/libvmmapi share/mk
usr.sbin usr.sbin/bhyve usr.sbin/vmmctl
John Baldwin
jhb at FreeBSD.org
Sun May 15 04:03:14 UTC 2011
Author: jhb
Date: Sun May 15 04:03:11 2011
New Revision: 221942
URL: http://svn.freebsd.org/changeset/base/221942
Log:
First cut to port bhyve, vmmctl, and libvmmapi to HEAD.
Added:
projects/bhyve/lib/libvmmapi/
- copied from r221828, projects/bhyve_ref/lib/libvmmapi/
projects/bhyve/usr.sbin/bhyve/
- copied from r221828, projects/bhyve_ref/usr.sbin/bhyve/
projects/bhyve/usr.sbin/vmmctl/
- copied from r221828, projects/bhyve_ref/usr.sbin/vmmctl/
Modified:
projects/bhyve/lib/Makefile
projects/bhyve/lib/libvmmapi/Makefile
projects/bhyve/lib/libvmmapi/mptable.c
projects/bhyve/lib/libvmmapi/vmmapi.c
projects/bhyve/share/mk/bsd.libnames.mk
projects/bhyve/usr.sbin/Makefile.amd64
projects/bhyve/usr.sbin/bhyve/Makefile
projects/bhyve/usr.sbin/bhyve/dbgport.c
projects/bhyve/usr.sbin/bhyve/fbsdrun.c
projects/bhyve/usr.sbin/bhyve/inout.h
projects/bhyve/usr.sbin/bhyve/pci_emul.c
projects/bhyve/usr.sbin/bhyve/xmsr.c
projects/bhyve/usr.sbin/vmmctl/Makefile
projects/bhyve/usr.sbin/vmmctl/vmmctl.c
Modified: projects/bhyve/lib/Makefile
==============================================================================
--- projects/bhyve/lib/Makefile Sun May 15 02:21:39 2011 (r221941)
+++ projects/bhyve/lib/Makefile Sun May 15 04:03:11 2011 (r221942)
@@ -110,6 +110,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libusbhid} \
${_libusb} \
${_libvgl} \
+ ${_libvmmapi} \
libwrap \
liby \
libz \
@@ -197,6 +198,7 @@ _libsmb= libsmb
.if ${MK_NCP} != "no"
_libncp= libncp
.endif
+_libvmmapi= libvmmapi
.endif
.if ${MACHINE_CPUARCH} == "powerpc"
Modified: projects/bhyve/lib/libvmmapi/Makefile
==============================================================================
--- projects/bhyve_ref/lib/libvmmapi/Makefile Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/lib/libvmmapi/Makefile Sun May 15 04:03:11 2011 (r221942)
@@ -4,6 +4,8 @@ LIB= vmmapi
SRCS= vmmapi.c vmmapi_freebsd.c mptable.c
INCS= vmmapi.h
+WARNS?= 2
+
CFLAGS+= -I${.CURDIR}
.include <bsd.lib.mk>
Modified: projects/bhyve/lib/libvmmapi/mptable.c
==============================================================================
--- projects/bhyve_ref/lib/libvmmapi/mptable.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/lib/libvmmapi/mptable.c Sun May 15 04:03:11 2011 (r221942)
@@ -118,6 +118,7 @@ mp_build_bus_entries(struct mpe_bus *mpe
}
+#ifdef notyet
static void
mp_build_ioapic_entries(struct mpe_ioapic *mpei)
{
@@ -280,6 +281,7 @@ mptable_dump(struct mp_floating_pointer
}
}
+#endif
int
vm_build_mptable(struct vmctx *ctx, vm_paddr_t gpa, int len, int ncpu,
Modified: projects/bhyve/lib/libvmmapi/vmmapi.c
==============================================================================
--- projects/bhyve_ref/lib/libvmmapi/vmmapi.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/lib/libvmmapi/vmmapi.c Sun May 15 04:03:11 2011 (r221942)
@@ -478,8 +478,6 @@ vm_get_stats(struct vmctx *ctx, int vcpu
const char *
vm_get_stat_desc(struct vmctx *ctx, int index)
{
- int error;
-
static struct vm_stat_desc statdesc;
statdesc.index = index;
Modified: projects/bhyve/share/mk/bsd.libnames.mk
==============================================================================
--- projects/bhyve/share/mk/bsd.libnames.mk Sun May 15 02:21:39 2011 (r221941)
+++ projects/bhyve/share/mk/bsd.libnames.mk Sun May 15 04:03:11 2011 (r221942)
@@ -160,6 +160,7 @@ LIBULOG?= ${DESTDIR}${LIBDIR}/libulog.a
LIBUTIL?= ${DESTDIR}${LIBDIR}/libutil.a
LIBUUTIL?= ${DESTDIR}${LIBDIR}/libuutil.a
LIBVGL?= ${DESTDIR}${LIBDIR}/libvgl.a
+LIBVMMAPI?= ${DESTDIR}${LIBDIR}/libvmmapi.a
LIBWRAP?= ${DESTDIR}${LIBDIR}/libwrap.a
LIBXPG4?= ${DESTDIR}${LIBDIR}/libxpg4.a
LIBY?= ${DESTDIR}${LIBDIR}/liby.a
Modified: projects/bhyve/usr.sbin/Makefile.amd64
==============================================================================
--- projects/bhyve/usr.sbin/Makefile.amd64 Sun May 15 02:21:39 2011 (r221941)
+++ projects/bhyve/usr.sbin/Makefile.amd64 Sun May 15 04:03:11 2011 (r221942)
@@ -10,6 +10,7 @@ SUBDIR+= acpi
SUBDIR+= apm
.endif
SUBDIR+= asf
+SUBDIR+= bhyve
SUBDIR+= boot0cfg
.if ${MK_TOOLCHAIN} != "no"
SUBDIR+= btxld
@@ -30,4 +31,5 @@ SUBDIR+= spkrtest
.if ${MK_SYSINSTALL} != "no"
SUBDIR+= sade
.endif
+SUBDIR+= vmmctl
SUBDIR+= zzz
Modified: projects/bhyve/usr.sbin/bhyve/Makefile
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/Makefile Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/Makefile Sun May 15 04:03:11 2011 (r221942)
@@ -13,6 +13,8 @@ NO_MAN=
DPADD= ${LIBVMMAPI} ${LIBMD} ${LIBPTHREAD}
LDADD= -lvmmapi -lmd -lpthread
+WARNS?= 2
+
CFLAGS+= -I${.CURDIR}/../../sys
.include <bsd.prog.mk>
Modified: projects/bhyve/usr.sbin/bhyve/dbgport.c
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/dbgport.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/dbgport.c Sun May 15 04:03:11 2011 (r221942)
@@ -41,6 +41,7 @@ __FBSDID("$FreeBSD$");
#include <errno.h>
#include "inout.h"
+#include "dbgport.h"
#define BVM_DBG_PORT 0x224
Modified: projects/bhyve/usr.sbin/bhyve/fbsdrun.c
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/fbsdrun.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/fbsdrun.c Sun May 15 04:03:11 2011 (r221942)
@@ -185,7 +185,7 @@ fbsdrun_muxed(void)
return (guest_vcpu_mux);
}
-void *
+static void *
fbsdrun_start_thread(void *param)
{
int vcpu;
@@ -240,20 +240,20 @@ fbsdrun_get_next_cpu(int curcpu)
return ((curcpu + 1) % foundcpus);
}
-int
+static int
vmexit_catch_reset(void)
{
stats.io_reset++;
return (VMEXIT_RESET);
}
-int
+static int
vmexit_catch_inout(void)
{
return (VMEXIT_ABORT);
}
-int
+static int
vmexit_handle_notify(struct vmctx *ctx, struct vm_exit *vme, int *pvcpu,
uint32_t eax)
{
Modified: projects/bhyve/usr.sbin/bhyve/inout.h
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/inout.h Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/inout.h Sun May 15 04:03:11 2011 (r221942)
@@ -52,7 +52,8 @@ struct inout_port {
#name, \
(port), \
(flags), \
- (handler) \
+ (handler), \
+ 0 \
}; \
DATA_SET(inout_port_set, __CONCAT(__inout_port, __LINE__))
Modified: projects/bhyve/usr.sbin/bhyve/pci_emul.c
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/pci_emul.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/pci_emul.c Sun May 15 04:03:11 2011 (r221942)
@@ -887,7 +887,7 @@ struct pci_emul_dsoftc {
#define PCI_EMUL_MSGS 4
-int
+static int
pci_emul_dinit(struct vmctx *ctx, struct pci_devinst *pi, char *opts)
{
int error;
@@ -911,7 +911,7 @@ pci_emul_dinit(struct vmctx *ctx, struct
return (0);
}
-void
+static void
pci_emul_diow(struct pci_devinst *pi, int baridx, int offset, int size,
uint32_t value)
{
@@ -943,7 +943,7 @@ pci_emul_diow(struct pci_devinst *pi, in
}
}
-uint32_t
+static uint32_t
pci_emul_dior(struct pci_devinst *pi, int baridx, int offset, int size)
{
struct pci_emul_dsoftc *sc = pi->pi_arg;
Modified: projects/bhyve/usr.sbin/bhyve/xmsr.c
==============================================================================
--- projects/bhyve_ref/usr.sbin/bhyve/xmsr.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/bhyve/xmsr.c Sun May 15 04:03:11 2011 (r221942)
@@ -30,7 +30,7 @@
__FBSDID("$FreeBSD$");
#include <sys/param.h>
-#include <machine/apicreg.h>
+#include <x86/apicreg.h>
#include <assert.h>
#include <stdio.h>
Modified: projects/bhyve/usr.sbin/vmmctl/Makefile
==============================================================================
--- projects/bhyve_ref/usr.sbin/vmmctl/Makefile Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/vmmctl/Makefile Sun May 15 04:03:11 2011 (r221942)
@@ -10,6 +10,8 @@ NO_MAN=
DPADD= ${LIBVMMAPI}
LDADD= -lvmmapi
+WARNS?= 3
+
CFLAGS+= -I${.CURDIR}/../../sys/amd64/vmm
.include <bsd.prog.mk>
Modified: projects/bhyve/usr.sbin/vmmctl/vmmctl.c
==============================================================================
--- projects/bhyve_ref/usr.sbin/vmmctl/vmmctl.c Fri May 13 04:54:01 2011 (r221828)
+++ projects/bhyve/usr.sbin/vmmctl/vmmctl.c Sun May 15 04:03:11 2011 (r221942)
@@ -382,7 +382,7 @@ main(int argc, char *argv[])
vm_paddr_t hpa;
size_t len;
struct vm_exit vmexit;
- uint64_t ctl, eptp, bm, tsc_off, addr, u64;
+ uint64_t ctl, eptp, bm, addr, u64;
struct vmctx *ctx;
uint64_t cr0, cr3, cr4, dr7, rsp, rip, rflags, efer, pat;
@@ -1128,21 +1128,21 @@ main(int argc, char *argv[])
if (!error && get_pinbased_ctls) {
error = vm_get_vmcs_field(ctx, vcpu, VMCS_PIN_BASED_CTLS, &ctl);
if (error == 0)
- printf("pinbased_ctls[%d]\t0x%08x\n", vcpu, ctl);
+ printf("pinbased_ctls[%d]\t0x%08lx\n", vcpu, ctl);
}
if (!error && get_procbased_ctls) {
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_PRI_PROC_BASED_CTLS, &ctl);
if (error == 0)
- printf("procbased_ctls[%d]\t0x%08x\n", vcpu, ctl);
+ printf("procbased_ctls[%d]\t0x%08lx\n", vcpu, ctl);
}
if (!error && get_procbased_ctls2) {
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_SEC_PROC_BASED_CTLS, &ctl);
if (error == 0)
- printf("procbased_ctls2[%d]\t0x%08x\n", vcpu, ctl);
+ printf("procbased_ctls2[%d]\t0x%08lx\n", vcpu, ctl);
}
if (!error && get_vmcs_gla) {
@@ -1162,7 +1162,7 @@ main(int argc, char *argv[])
if (!error && get_vmcs_entry_interruption_info) {
error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_INTR_INFO,&u64);
if (error == 0) {
- printf("entry_interruption_info[%d]\t0x%08x\n",
+ printf("entry_interruption_info[%d]\t0x%08lx\n",
vcpu, u64);
}
}
@@ -1177,30 +1177,30 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXCEPTION_BITMAP,
&bm);
if (error == 0)
- printf("exception_bitmap[%d]\t0x%08x\n", vcpu, bm);
+ printf("exception_bitmap[%d]\t0x%08lx\n", vcpu, bm);
}
if (!error && get_io_bitmap) {
error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_A, &bm);
if (error == 0)
- printf("io_bitmap_a[%d]\t0x%08x\n", vcpu, bm);
+ printf("io_bitmap_a[%d]\t0x%08lx\n", vcpu, bm);
error = vm_get_vmcs_field(ctx, vcpu, VMCS_IO_BITMAP_B, &bm);
if (error == 0)
- printf("io_bitmap_b[%d]\t0x%08x\n", vcpu, bm);
+ printf("io_bitmap_b[%d]\t0x%08lx\n", vcpu, bm);
}
if (!error && get_tsc_offset) {
uint64_t tscoff;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_TSC_OFFSET, &tscoff);
if (error == 0)
- printf("tsc_offset[%d]\t0x%016lx\n", tscoff);
+ printf("tsc_offset[%d]\t0x%016lx\n", vcpu, tscoff);
}
if (!error && get_cr0_mask) {
uint64_t cr0mask;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_MASK, &cr0mask);
if (error == 0)
- printf("cr0_mask[%d]\t\t0x%016lx\n", cr0mask);
+ printf("cr0_mask[%d]\t\t0x%016lx\n", vcpu, cr0mask);
}
if (!error && get_cr0_shadow) {
@@ -1208,14 +1208,14 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR0_SHADOW,
&cr0shadow);
if (error == 0)
- printf("cr0_shadow[%d]\t\t0x%016lx\n", cr0shadow);
+ printf("cr0_shadow[%d]\t\t0x%016lx\n", vcpu, cr0shadow);
}
if (!error && get_cr4_mask) {
uint64_t cr4mask;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_MASK, &cr4mask);
if (error == 0)
- printf("cr4_mask[%d]\t\t0x%016lx\n", cr4mask);
+ printf("cr4_mask[%d]\t\t0x%016lx\n", vcpu, cr4mask);
}
if (!error && get_cr4_shadow) {
@@ -1223,7 +1223,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR4_SHADOW,
&cr4shadow);
if (error == 0)
- printf("cr4_shadow[%d]\t\t0x%016lx\n", cr4shadow);
+ printf("cr4_shadow[%d]\t\t0x%016lx\n", vcpu, cr4shadow);
}
if (!error && get_cr3_targets) {
@@ -1231,7 +1231,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_CR3_TARGET_COUNT,
&target_count);
if (error == 0) {
- printf("cr3_target_count[%d]\t0x%08x\n",
+ printf("cr3_target_count[%d]\t0x%08lx\n",
vcpu, target_count);
}
@@ -1281,7 +1281,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_TPR_THRESHOLD,
&threshold);
if (error == 0)
- printf("tpr_threshold[%d]\t0x%08x\n", vcpu, threshold);
+ printf("tpr_threshold[%d]\t0x%08lx\n", vcpu, threshold);
}
if (!error && get_msr_bitmap_address) {
@@ -1300,21 +1300,21 @@ main(int argc, char *argv[])
uint64_t vpid;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_VPID, &vpid);
if (error == 0)
- printf("vpid[%d]\t\t0x%04x\n", vcpu, vpid);
+ printf("vpid[%d]\t\t0x%04lx\n", vcpu, vpid);
}
if (!error && get_ple_window) {
uint64_t window;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_WINDOW, &window);
if (error == 0)
- printf("ple_window[%d]\t\t0x%08x\n", vcpu, window);
+ printf("ple_window[%d]\t\t0x%08lx\n", vcpu, window);
}
if (!error && get_ple_gap) {
uint64_t gap;
error = vm_get_vmcs_field(ctx, vcpu, VMCS_PLE_GAP, &gap);
if (error == 0)
- printf("ple_gap[%d]\t\t0x%08x\n", vcpu, gap);
+ printf("ple_gap[%d]\t\t0x%08lx\n", vcpu, gap);
}
if (!error && get_inst_err) {
@@ -1322,7 +1322,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu, VMCS_INSTRUCTION_ERROR,
&insterr);
if (error == 0) {
- printf("instruction_error[%d]\t0x%08x\n",
+ printf("instruction_error[%d]\t0x%08lx\n",
vcpu, insterr);
}
}
@@ -1330,13 +1330,13 @@ main(int argc, char *argv[])
if (!error && get_exit_ctls) {
error = vm_get_vmcs_field(ctx, vcpu, VMCS_EXIT_CTLS, &ctl);
if (error == 0)
- printf("exit_ctls[%d]\t\t0x%08x\n", vcpu, ctl);
+ printf("exit_ctls[%d]\t\t0x%08lx\n", vcpu, ctl);
}
if (!error && get_entry_ctls) {
error = vm_get_vmcs_field(ctx, vcpu, VMCS_ENTRY_CTLS, &ctl);
if (error == 0)
- printf("entry_ctls[%d]\t\t0x%08x\n", vcpu, ctl);
+ printf("entry_ctls[%d]\t\t0x%08lx\n", vcpu, ctl);
}
if (!error && get_host_pat) {
@@ -1385,7 +1385,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_GUEST_IA32_SYSENTER_CS, &cs);
if (error == 0)
- printf("guest_sysenter_cs[%d]\t0x%08x\n", vcpu, cs);
+ printf("guest_sysenter_cs[%d]\t0x%08lx\n", vcpu, cs);
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_GUEST_IA32_SYSENTER_ESP, &rsp);
@@ -1421,7 +1421,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_EXIT_INTERRUPTION_INFO, &u64);
if (error == 0) {
- printf("vmcs_exit_interruption_info[%d]\t0x%08x\n",
+ printf("vmcs_exit_interruption_info[%d]\t0x%08lx\n",
vcpu, u64);
}
}
@@ -1430,7 +1430,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_EXIT_INTERRUPTION_ERROR, &u64);
if (error == 0) {
- printf("vmcs_exit_interruption_error[%d]\t0x%08x\n",
+ printf("vmcs_exit_interruption_error[%d]\t0x%08lx\n",
vcpu, u64);
}
}
@@ -1439,7 +1439,7 @@ main(int argc, char *argv[])
error = vm_get_vmcs_field(ctx, vcpu,
VMCS_GUEST_INTERRUPTIBILITY, &u64);
if (error == 0) {
- printf("vmcs_guest_interruptibility[%d]\t0x%08x\n",
+ printf("vmcs_guest_interruptibility[%d]\t0x%08lx\n",
vcpu, u64);
}
}
More information about the svn-src-projects
mailing list