nvmm_impl
static const struct nvmm_impl *
nvmm_impl = nvmm_ident();
if (nvmm_impl == NULL)
(*nvmm_impl->init)();
(*nvmm_impl->fini)();
nvmm_impl = NULL;
if (__predict_false(nvmm_impl == NULL))
nvmm_impl->name);
if (nvmm_impl->suspend != NULL && nvmm_impl->resume != NULL)
if (vcpu->present && nvmm_impl->vcpu_suspend)
(*nvmm_impl->vcpu_suspend)(mach, vcpu);
if (vcpu->present && nvmm_impl->vcpu_resume)
(*nvmm_impl->vcpu_resume)(mach, vcpu);
if (nvmm_impl->vcpu_suspend) {
if (nvmm_impl->machine_suspend)
(*nvmm_impl->machine_suspend)(mach);
if (nvmm_impl->vcpu_resume) {
if (nvmm_impl->machine_resume)
(*nvmm_impl->machine_resume)(mach);
if (nvmm_impl->suspend_interrupt)
(*nvmm_impl->suspend_interrupt)();
if (nvmm_impl->machine_suspend || nvmm_impl->vcpu_suspend) {
if (nvmm_impl->suspend)
(*nvmm_impl->suspend)();
if (nvmm_impl->resume)
(*nvmm_impl->resume)();
if (nvmm_impl->machine_resume || nvmm_impl->vcpu_resume) {
(*nvmm_impl->vcpu_destroy)(mach, vcpu);
(*nvmm_impl->machine_destroy)(mach);
args->cap.state_size = nvmm_impl->state_size;
(*nvmm_impl->capability)(&args->cap);
(*nvmm_impl->machine_create)(mach);
(*nvmm_impl->vcpu_destroy)(mach, vcpu);
(*nvmm_impl->machine_destroy)(mach);
if (__predict_false(op >= nvmm_impl->mach_conf_max)) {
allocsz = nvmm_impl->mach_conf_sizes[op];
error = (*nvmm_impl->machine_configure)(mach, op, data);
error = (*nvmm_impl->vcpu_create)(mach, vcpu);
(*nvmm_impl->vcpu_destroy)(mach, vcpu);
if (__predict_false(op >= nvmm_impl->vcpu_conf_max))
allocsz = nvmm_impl->vcpu_conf_sizes[op];
error = (*nvmm_impl->vcpu_configure)(vcpu, op, data);
(*nvmm_impl->vcpu_setstate)(vcpu);
(*nvmm_impl->vcpu_getstate)(vcpu);
error = (*nvmm_impl->vcpu_inject)(vcpu);
ret = (*nvmm_impl->vcpu_run)(mach, vcpu, exit);
static const struct nvmm_impl *nvmm_impl_list[] = {
static const struct nvmm_impl *nvmm_impl __read_mostly = NULL;
extern const struct nvmm_impl nvmm_x86_svm;
extern const struct nvmm_impl nvmm_x86_vmx;
const struct nvmm_impl nvmm_x86_svm = {
const struct nvmm_impl nvmm_x86_vmx = {