Changeset View
Changeset View
Standalone View
Standalone View
sys/amd64/vmm/vmm_dev.c
Show First 20 Lines • Show All 684 Lines • ▼ Show 20 Lines | if (size < sizeof(cpuset_t) || size > CPU_MAXSIZE / NBBY) { | ||||
error = ERANGE; | error = ERANGE; | ||||
break; | break; | ||||
} | } | ||||
cpuset = malloc(size, M_TEMP, M_WAITOK | M_ZERO); | cpuset = malloc(size, M_TEMP, M_WAITOK | M_ZERO); | ||||
if (vm_cpuset->which == VM_ACTIVE_CPUS) | if (vm_cpuset->which == VM_ACTIVE_CPUS) | ||||
*cpuset = vm_active_cpus(sc->vm); | *cpuset = vm_active_cpus(sc->vm); | ||||
else if (vm_cpuset->which == VM_SUSPENDED_CPUS) | else if (vm_cpuset->which == VM_SUSPENDED_CPUS) | ||||
*cpuset = vm_suspended_cpus(sc->vm); | *cpuset = vm_suspended_cpus(sc->vm); | ||||
else if (vm_cpuset->which == VM_DEBUG_CPUS) | |||||
*cpuset = vm_debug_cpus(sc->vm); | |||||
else | else | ||||
error = EINVAL; | error = EINVAL; | ||||
if (error == 0) | if (error == 0) | ||||
error = copyout(cpuset, vm_cpuset->cpus, size); | error = copyout(cpuset, vm_cpuset->cpus, size); | ||||
free(cpuset, M_TEMP); | free(cpuset, M_TEMP); | ||||
break; | |||||
case VM_SUSPEND_CPU: | |||||
vac = (struct vm_activate_cpu *)data; | |||||
error = vm_suspend_cpu(sc->vm, vac->vcpuid); | |||||
break; | |||||
case VM_RESUME_CPU: | |||||
vac = (struct vm_activate_cpu *)data; | |||||
error = vm_resume_cpu(sc->vm, vac->vcpuid); | |||||
break; | break; | ||||
case VM_SET_INTINFO: | case VM_SET_INTINFO: | ||||
vmii = (struct vm_intinfo *)data; | vmii = (struct vm_intinfo *)data; | ||||
error = vm_exit_intinfo(sc->vm, vmii->vcpuid, vmii->info1); | error = vm_exit_intinfo(sc->vm, vmii->vcpuid, vmii->info1); | ||||
break; | break; | ||||
case VM_GET_INTINFO: | case VM_GET_INTINFO: | ||||
vmii = (struct vm_intinfo *)data; | vmii = (struct vm_intinfo *)data; | ||||
error = vm_get_intinfo(sc->vm, vmii->vcpuid, &vmii->info1, | error = vm_get_intinfo(sc->vm, vmii->vcpuid, &vmii->info1, | ||||
▲ Show 20 Lines • Show All 365 Lines • Show Last 20 Lines |