Changeset View
Changeset View
Standalone View
Standalone View
head/sys/amd64/vmm/vmm_dev.c
Show First 20 Lines • Show All 369 Lines • ▼ Show 20 Lines | vmmdev_ioctl(struct cdev *cdev, u_long cmd, caddr_t data, int fflag, | ||||
case VM_SET_REGISTER_SET: | case VM_SET_REGISTER_SET: | ||||
case VM_INJECT_EXCEPTION: | case VM_INJECT_EXCEPTION: | ||||
case VM_GET_CAPABILITY: | case VM_GET_CAPABILITY: | ||||
case VM_SET_CAPABILITY: | case VM_SET_CAPABILITY: | ||||
case VM_PPTDEV_MSI: | case VM_PPTDEV_MSI: | ||||
case VM_PPTDEV_MSIX: | case VM_PPTDEV_MSIX: | ||||
case VM_SET_X2APIC_STATE: | case VM_SET_X2APIC_STATE: | ||||
case VM_GLA2GPA: | case VM_GLA2GPA: | ||||
case VM_GLA2GPA_NOFAULT: | |||||
case VM_ACTIVATE_CPU: | case VM_ACTIVATE_CPU: | ||||
case VM_SET_INTINFO: | case VM_SET_INTINFO: | ||||
case VM_GET_INTINFO: | case VM_GET_INTINFO: | ||||
case VM_RESTART_INSTRUCTION: | case VM_RESTART_INSTRUCTION: | ||||
/* | /* | ||||
* XXX fragile, handle with care | * XXX fragile, handle with care | ||||
* Assumes that the first field of the ioctl data is the vcpu. | * Assumes that the first field of the ioctl data is the vcpu. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 274 Lines • ▼ Show 20 Lines | case VM_GLA2GPA: { | ||||
CTASSERT(PROT_EXEC == VM_PROT_EXECUTE); | CTASSERT(PROT_EXEC == VM_PROT_EXECUTE); | ||||
gg = (struct vm_gla2gpa *)data; | gg = (struct vm_gla2gpa *)data; | ||||
error = vm_gla2gpa(sc->vm, gg->vcpuid, &gg->paging, gg->gla, | error = vm_gla2gpa(sc->vm, gg->vcpuid, &gg->paging, gg->gla, | ||||
gg->prot, &gg->gpa, &gg->fault); | gg->prot, &gg->gpa, &gg->fault); | ||||
KASSERT(error == 0 || error == EFAULT, | KASSERT(error == 0 || error == EFAULT, | ||||
("%s: vm_gla2gpa unknown error %d", __func__, error)); | ("%s: vm_gla2gpa unknown error %d", __func__, error)); | ||||
break; | break; | ||||
} | } | ||||
case VM_GLA2GPA_NOFAULT: | |||||
gg = (struct vm_gla2gpa *)data; | |||||
error = vm_gla2gpa_nofault(sc->vm, gg->vcpuid, &gg->paging, | |||||
gg->gla, gg->prot, &gg->gpa, &gg->fault); | |||||
KASSERT(error == 0 || error == EFAULT, | |||||
("%s: vm_gla2gpa unknown error %d", __func__, error)); | |||||
break; | |||||
case VM_ACTIVATE_CPU: | case VM_ACTIVATE_CPU: | ||||
vac = (struct vm_activate_cpu *)data; | vac = (struct vm_activate_cpu *)data; | ||||
error = vm_activate_cpu(sc->vm, vac->vcpuid); | error = vm_activate_cpu(sc->vm, vac->vcpuid); | ||||
break; | break; | ||||
case VM_GET_CPUS: | case VM_GET_CPUS: | ||||
error = 0; | error = 0; | ||||
vm_cpuset = (struct vm_cpuset *)data; | vm_cpuset = (struct vm_cpuset *)data; | ||||
size = vm_cpuset->cpusetsize; | size = vm_cpuset->cpusetsize; | ||||
▲ Show 20 Lines • Show All 387 Lines • Show Last 20 Lines |