svn commit: r350492 - in head/sys/amd64: include vmm vmm/intel vmm/io
Ed Maste
emaste at FreeBSD.org
Thu Aug 1 02:16:51 UTC 2019
Author: emaste
Date: Thu Aug 1 02:16:48 2019
New Revision: 350492
URL: https://svnweb.freebsd.org/changeset/base/350492
Log:
vmx: use C99 bool, not boolean_t
Bhyve's vmm is a self-contained modern component and thus a good
candidate for use of C99 types.
Reviewed by: jhb, kib, markj, Patrick Mooney
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D21036
Modified:
head/sys/amd64/include/vmm.h
head/sys/amd64/vmm/intel/vmx.c
head/sys/amd64/vmm/intel/vmx_msr.c
head/sys/amd64/vmm/io/ppt.c
head/sys/amd64/vmm/io/ppt.h
head/sys/amd64/vmm/vmm.c
head/sys/amd64/vmm/vmm_lapic.c
head/sys/amd64/vmm/vmm_lapic.h
head/sys/amd64/vmm/vmm_util.c
head/sys/amd64/vmm/vmm_util.h
Modified: head/sys/amd64/include/vmm.h
==============================================================================
--- head/sys/amd64/include/vmm.h Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/include/vmm.h Thu Aug 1 02:16:48 2019 (r350492)
@@ -319,12 +319,12 @@ vcpu_reqidle(struct vm_eventinfo *info)
int vcpu_debugged(struct vm *vm, int vcpuid);
/*
- * Return 1 if device indicated by bus/slot/func is supposed to be a
+ * Return true if device indicated by bus/slot/func is supposed to be a
* pci passthrough device.
*
- * Return 0 otherwise.
+ * Return false otherwise.
*/
-int vmm_is_pptdev(int bus, int slot, int func);
+bool vmm_is_pptdev(int bus, int slot, int func);
void *vm_iommu_domain(struct vm *vm);
Modified: head/sys/amd64/vmm/intel/vmx.c
==============================================================================
--- head/sys/amd64/vmm/intel/vmx.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/intel/vmx.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -1973,20 +1973,20 @@ ept_fault_type(uint64_t ept_qual)
return (fault_type);
}
-static boolean_t
+static bool
ept_emulation_fault(uint64_t ept_qual)
{
int read, write;
/* EPT fault on an instruction fetch doesn't make sense here */
if (ept_qual & EPT_VIOLATION_INST_FETCH)
- return (FALSE);
+ return (false);
/* EPT fault must be a read fault or a write fault */
read = ept_qual & EPT_VIOLATION_DATA_READ ? 1 : 0;
write = ept_qual & EPT_VIOLATION_DATA_WRITE ? 1 : 0;
if ((read | write) == 0)
- return (FALSE);
+ return (false);
/*
* The EPT violation must have been caused by accessing a
@@ -1995,10 +1995,10 @@ ept_emulation_fault(uint64_t ept_qual)
*/
if ((ept_qual & EPT_VIOLATION_GLA_VALID) == 0 ||
(ept_qual & EPT_VIOLATION_XLAT_VALID) == 0) {
- return (FALSE);
+ return (false);
}
- return (TRUE);
+ return (true);
}
static __inline int
Modified: head/sys/amd64/vmm/intel/vmx_msr.c
==============================================================================
--- head/sys/amd64/vmm/intel/vmx_msr.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/intel/vmx_msr.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -45,24 +45,18 @@ __FBSDID("$FreeBSD$");
#include "vmx.h"
#include "vmx_msr.h"
-static boolean_t
+static bool
vmx_ctl_allows_one_setting(uint64_t msr_val, int bitpos)
{
- if (msr_val & (1UL << (bitpos + 32)))
- return (TRUE);
- else
- return (FALSE);
+ return ((msr_val & (1UL << (bitpos + 32))) != 0);
}
-static boolean_t
+static bool
vmx_ctl_allows_zero_setting(uint64_t msr_val, int bitpos)
{
- if ((msr_val & (1UL << bitpos)) == 0)
- return (TRUE);
- else
- return (FALSE);
+ return ((msr_val & (1UL << bitpos)) == 0);
}
uint32_t
@@ -89,16 +83,13 @@ vmx_set_ctlreg(int ctl_reg, int true_ctl_reg, uint32_t
{
int i;
uint64_t val, trueval;
- boolean_t true_ctls_avail, one_allowed, zero_allowed;
+ bool true_ctls_avail, one_allowed, zero_allowed;
/* We cannot ask the same bit to be set to both '1' and '0' */
if ((ones_mask ^ zeros_mask) != (ones_mask | zeros_mask))
return (EINVAL);
- if (rdmsr(MSR_VMX_BASIC) & (1UL << 55))
- true_ctls_avail = TRUE;
- else
- true_ctls_avail = FALSE;
+ true_ctls_avail = (rdmsr(MSR_VMX_BASIC) & (1UL << 55)) != 0;
val = rdmsr(ctl_reg);
if (true_ctls_avail)
Modified: head/sys/amd64/vmm/io/ppt.c
==============================================================================
--- head/sys/amd64/vmm/io/ppt.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/io/ppt.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -339,7 +339,7 @@ ppt_assigned_devices(struct vm *vm)
return (num);
}
-boolean_t
+bool
ppt_is_mmio(struct vm *vm, vm_paddr_t gpa)
{
int i;
@@ -355,11 +355,11 @@ ppt_is_mmio(struct vm *vm, vm_paddr_t gpa)
if (seg->len == 0)
continue;
if (gpa >= seg->gpa && gpa < seg->gpa + seg->len)
- return (TRUE);
+ return (true);
}
}
- return (FALSE);
+ return (false);
}
static void
Modified: head/sys/amd64/vmm/io/ppt.h
==============================================================================
--- head/sys/amd64/vmm/io/ppt.h Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/io/ppt.h Thu Aug 1 02:16:48 2019 (r350492)
@@ -39,7 +39,7 @@ int ppt_setup_msi(struct vm *vm, int vcpu, int bus, in
int ppt_setup_msix(struct vm *vm, int vcpu, int bus, int slot, int func,
int idx, uint64_t addr, uint64_t msg, uint32_t vector_control);
int ppt_assigned_devices(struct vm *vm);
-boolean_t ppt_is_mmio(struct vm *vm, vm_paddr_t gpa);
+bool ppt_is_mmio(struct vm *vm, vm_paddr_t gpa);
/*
* Returns the number of devices sequestered by the ppt driver for assignment
Modified: head/sys/amd64/vmm/vmm.c
==============================================================================
--- head/sys/amd64/vmm/vmm.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/vmm.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -847,7 +847,7 @@ vmm_sysmem_maxaddr(struct vm *vm)
}
static void
-vm_iommu_modify(struct vm *vm, boolean_t map)
+vm_iommu_modify(struct vm *vm, bool map)
{
int i, sz;
vm_paddr_t gpa, hpa;
@@ -910,8 +910,8 @@ vm_iommu_modify(struct vm *vm, boolean_t map)
iommu_invalidate_tlb(vm->iommu);
}
-#define vm_iommu_unmap(vm) vm_iommu_modify((vm), FALSE)
-#define vm_iommu_map(vm) vm_iommu_modify((vm), TRUE)
+#define vm_iommu_unmap(vm) vm_iommu_modify((vm), false)
+#define vm_iommu_map(vm) vm_iommu_modify((vm), true)
int
vm_unassign_pptdev(struct vm *vm, int bus, int slot, int func)
@@ -1043,20 +1043,20 @@ vm_set_register(struct vm *vm, int vcpuid, int reg, ui
return (0);
}
-static boolean_t
+static bool
is_descriptor_table(int reg)
{
switch (reg) {
case VM_REG_GUEST_IDTR:
case VM_REG_GUEST_GDTR:
- return (TRUE);
+ return (true);
default:
- return (FALSE);
+ return (false);
}
}
-static boolean_t
+static bool
is_segment_register(int reg)
{
@@ -1069,9 +1069,9 @@ is_segment_register(int reg)
case VM_REG_GUEST_GS:
case VM_REG_GUEST_TR:
case VM_REG_GUEST_LDTR:
- return (TRUE);
+ return (true);
default:
- return (FALSE);
+ return (false);
}
}
@@ -2233,12 +2233,12 @@ vm_hpet(struct vm *vm)
return (vm->vhpet);
}
-boolean_t
+bool
vmm_is_pptdev(int bus, int slot, int func)
{
- int found, i, n;
- int b, s, f;
+ int b, f, i, n, s;
char *val, *cp, *cp2;
+ bool found;
/*
* XXX
@@ -2252,7 +2252,7 @@ vmm_is_pptdev(int bus, int slot, int func)
const char *names[] = { "pptdevs", "pptdevs2", "pptdevs3", NULL };
/* set pptdevs="1/2/3 4/5/6 7/8/9 10/11/12" */
- found = 0;
+ found = false;
for (i = 0; names[i] != NULL && !found; i++) {
cp = val = kern_getenv(names[i]);
while (cp != NULL && *cp != '\0') {
@@ -2261,7 +2261,7 @@ vmm_is_pptdev(int bus, int slot, int func)
n = sscanf(cp, "%d/%d/%d", &b, &s, &f);
if (n == 3 && bus == b && slot == s && func == f) {
- found = 1;
+ found = true;
break;
}
Modified: head/sys/amd64/vmm/vmm_lapic.c
==============================================================================
--- head/sys/amd64/vmm/vmm_lapic.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/vmm_lapic.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -137,13 +137,10 @@ lapic_intr_msi(struct vm *vm, uint64_t addr, uint64_t
return (0);
}
-static boolean_t
+static bool
x2apic_msr(u_int msr)
{
- if (msr >= 0x800 && msr <= 0xBFF)
- return (TRUE);
- else
- return (FALSE);
+ return (msr >= 0x800 && msr <= 0xBFF);
}
static u_int
@@ -153,14 +150,11 @@ x2apic_msr_to_regoff(u_int msr)
return ((msr - 0x800) << 4);
}
-boolean_t
+bool
lapic_msr(u_int msr)
{
- if (x2apic_msr(msr) || (msr == MSR_APICBASE))
- return (TRUE);
- else
- return (FALSE);
+ return (x2apic_msr(msr) || msr == MSR_APICBASE);
}
int
Modified: head/sys/amd64/vmm/vmm_lapic.h
==============================================================================
--- head/sys/amd64/vmm/vmm_lapic.h Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/vmm_lapic.h Thu Aug 1 02:16:48 2019 (r350492)
@@ -33,7 +33,7 @@
struct vm;
-boolean_t lapic_msr(u_int num);
+bool lapic_msr(u_int num);
int lapic_rdmsr(struct vm *vm, int cpu, u_int msr, uint64_t *rval,
bool *retu);
int lapic_wrmsr(struct vm *vm, int cpu, u_int msr, uint64_t wval,
Modified: head/sys/amd64/vmm/vmm_util.c
==============================================================================
--- head/sys/amd64/vmm/vmm_util.c Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/vmm_util.c Thu Aug 1 02:16:48 2019 (r350492)
@@ -38,26 +38,20 @@ __FBSDID("$FreeBSD$");
#include "vmm_util.h"
-boolean_t
+bool
vmm_is_intel(void)
{
- if (strcmp(cpu_vendor, "GenuineIntel") == 0)
- return (TRUE);
- else
- return (FALSE);
+ return (strcmp(cpu_vendor, "GenuineIntel") == 0);
}
-boolean_t
+bool
vmm_is_amd(void)
{
- if (strcmp(cpu_vendor, "AuthenticAMD") == 0)
- return (TRUE);
- else
- return (FALSE);
+ return (strcmp(cpu_vendor, "AuthenticAMD") == 0);
}
-boolean_t
+bool
vmm_supports_1G_pages(void)
{
unsigned int regs[4];
@@ -70,9 +64,9 @@ vmm_supports_1G_pages(void)
if (cpu_exthigh >= 0x80000001) {
do_cpuid(0x80000001, regs);
if (regs[3] & (1 << 26))
- return (TRUE);
+ return (true);
}
- return (FALSE);
+ return (false);
}
#include <sys/proc.h>
Modified: head/sys/amd64/vmm/vmm_util.h
==============================================================================
--- head/sys/amd64/vmm/vmm_util.h Wed Jul 31 23:36:23 2019 (r350491)
+++ head/sys/amd64/vmm/vmm_util.h Thu Aug 1 02:16:48 2019 (r350492)
@@ -33,9 +33,9 @@
struct trapframe;
-boolean_t vmm_is_intel(void);
-boolean_t vmm_is_amd(void);
-boolean_t vmm_supports_1G_pages(void);
+bool vmm_is_intel(void);
+bool vmm_is_amd(void);
+bool vmm_supports_1G_pages(void);
void dump_trapframe(struct trapframe *tf);
More information about the svn-src-all
mailing list