Lines Matching refs:vm
18 static void encrypt_region(struct kvm_vm *vm, struct userspace_mem_region *region)
22 const sparsebit_idx_t lowest_page_in_region = gpa_base >> vm->page_shift;
28 sev_register_encrypted_memory(vm, region);
31 const uint64_t size = (j - i + 1) * vm->page_size;
32 const uint64_t offset = (i - lowest_page_in_region) * vm->page_size;
34 sev_launch_update_data(vm, gpa_base + offset, size);
38 void sev_vm_launch(struct kvm_vm *vm, uint32_t policy)
47 vm_sev_ioctl(vm, KVM_SEV_LAUNCH_START, &launch_start);
48 vm_sev_ioctl(vm, KVM_SEV_GUEST_STATUS, &status);
53 hash_for_each(vm->regions.slot_hash, ctr, region, slot_node)
54 encrypt_region(vm, region);
57 vm_sev_ioctl(vm, KVM_SEV_LAUNCH_UPDATE_VMSA, NULL);
59 vm->arch.is_pt_protected = true;
62 void sev_vm_launch_measure(struct kvm_vm *vm, uint8_t *measurement)
69 vm_sev_ioctl(vm, KVM_SEV_LAUNCH_MEASURE, &launch_measure);
71 vm_sev_ioctl(vm, KVM_SEV_GUEST_STATUS, &guest_status);
75 void sev_vm_launch_finish(struct kvm_vm *vm)
79 vm_sev_ioctl(vm, KVM_SEV_GUEST_STATUS, &status);
84 vm_sev_ioctl(vm, KVM_SEV_LAUNCH_FINISH, NULL);
86 vm_sev_ioctl(vm, KVM_SEV_GUEST_STATUS, &status);
99 struct kvm_vm *vm;
103 vm = __vm_create_with_vcpus(shape, 1, 0, guest_code, cpus);
106 sev_vm_launch(vm, policy);
109 sev_vm_launch_measure(vm, measurement);
111 sev_vm_launch_finish(vm);
113 return vm;