Lines Matching full:vm
14 void virt_pgd_alloc(struct kvm_vm *vm) in virt_pgd_alloc() argument
18 TEST_ASSERT(vm->page_size == 4096, "Unsupported page size: 0x%x", in virt_pgd_alloc()
19 vm->page_size); in virt_pgd_alloc()
21 if (vm->pgd_created) in virt_pgd_alloc()
24 paddr = vm_phy_pages_alloc(vm, PAGES_PER_REGION, in virt_pgd_alloc()
26 memset(addr_gpa2hva(vm, paddr), 0xff, PAGES_PER_REGION * vm->page_size); in virt_pgd_alloc()
28 vm->pgd = paddr; in virt_pgd_alloc()
29 vm->pgd_created = true; in virt_pgd_alloc()
37 static uint64_t virt_alloc_region(struct kvm_vm *vm, int ri) in virt_alloc_region() argument
41 taddr = vm_phy_pages_alloc(vm, ri < 4 ? PAGES_PER_REGION : 1, in virt_alloc_region()
43 memset(addr_gpa2hva(vm, taddr), 0xff, PAGES_PER_REGION * vm->page_size); in virt_alloc_region()
50 void virt_pg_map(struct kvm_vm *vm, uint64_t gva, uint64_t gpa) in virt_pg_map() argument
55 TEST_ASSERT((gva % vm->page_size) == 0, in virt_pg_map()
57 " vaddr: 0x%lx vm->page_size: 0x%x", in virt_pg_map()
58 gva, vm->page_size); in virt_pg_map()
59 TEST_ASSERT(sparsebit_is_set(vm->vpages_valid, in virt_pg_map()
60 (gva >> vm->page_shift)), in virt_pg_map()
63 TEST_ASSERT((gpa % vm->page_size) == 0, in virt_pg_map()
65 " paddr: 0x%lx vm->page_size: 0x%x", in virt_pg_map()
66 gva, vm->page_size); in virt_pg_map()
67 TEST_ASSERT((gpa >> vm->page_shift) <= vm->max_gfn, in virt_pg_map()
69 " paddr: 0x%lx vm->max_gfn: 0x%lx vm->page_size: 0x%x", in virt_pg_map()
70 gva, vm->max_gfn, vm->page_size); in virt_pg_map()
73 entry = addr_gpa2hva(vm, vm->pgd); in virt_pg_map()
77 entry[idx] = virt_alloc_region(vm, ri); in virt_pg_map()
78 entry = addr_gpa2hva(vm, entry[idx] & REGION_ENTRY_ORIGIN); in virt_pg_map()
89 vm_paddr_t addr_gva2gpa(struct kvm_vm *vm, vm_vaddr_t gva) in addr_gva2gpa() argument
94 TEST_ASSERT(vm->page_size == 4096, "Unsupported page size: 0x%x", in addr_gva2gpa()
95 vm->page_size); in addr_gva2gpa()
97 entry = addr_gpa2hva(vm, vm->pgd); in addr_gva2gpa()
101 "No region mapping for vm virtual address 0x%lx", in addr_gva2gpa()
103 entry = addr_gpa2hva(vm, entry[idx] & REGION_ENTRY_ORIGIN); in addr_gva2gpa()
109 "No page mapping for vm virtual address 0x%lx", gva); in addr_gva2gpa()
114 static void virt_dump_ptes(FILE *stream, struct kvm_vm *vm, uint8_t indent, in virt_dump_ptes() argument
120 pte = addr_gpa2hva(vm, ptea); in virt_dump_ptes()
128 static void virt_dump_region(FILE *stream, struct kvm_vm *vm, uint8_t indent, in virt_dump_region() argument
134 entry = addr_gpa2hva(vm, addr); in virt_dump_region()
141 virt_dump_region(stream, vm, indent + 2, in virt_dump_region()
144 virt_dump_ptes(stream, vm, indent + 2, in virt_dump_region()
150 void virt_dump(FILE *stream, struct kvm_vm *vm, uint8_t indent) in virt_dump() argument
152 if (!vm->pgd_created) in virt_dump()
155 virt_dump_region(stream, vm, indent, vm->pgd); in virt_dump()
158 void vm_vcpu_add_default(struct kvm_vm *vm, uint32_t vcpuid, void *guest_code) in vm_vcpu_add_default() argument
166 TEST_ASSERT(vm->page_size == 4096, "Unsupported page size: 0x%x", in vm_vcpu_add_default()
167 vm->page_size); in vm_vcpu_add_default()
169 stack_vaddr = vm_vaddr_alloc(vm, stack_size, in vm_vcpu_add_default()
172 vm_vcpu_add(vm, vcpuid); in vm_vcpu_add_default()
175 vcpu_regs_get(vm, vcpuid, ®s); in vm_vcpu_add_default()
177 vcpu_regs_set(vm, vcpuid, ®s); in vm_vcpu_add_default()
179 vcpu_sregs_get(vm, vcpuid, &sregs); in vm_vcpu_add_default()
181 sregs.crs[1] = vm->pgd | 0xf; /* Primary region table */ in vm_vcpu_add_default()
182 vcpu_sregs_set(vm, vcpuid, &sregs); in vm_vcpu_add_default()
184 run = vcpu_state(vm, vcpuid); in vm_vcpu_add_default()
189 void vcpu_args_set(struct kvm_vm *vm, uint32_t vcpuid, unsigned int num, ...) in vcpu_args_set() argument
200 vcpu_regs_get(vm, vcpuid, ®s); in vcpu_args_set()
205 vcpu_regs_set(vm, vcpuid, ®s); in vcpu_args_set()
209 void vcpu_dump(FILE *stream, struct kvm_vm *vm, uint32_t vcpuid, uint8_t indent) in vcpu_dump() argument
211 struct vcpu *vcpu = vcpu_find(vm, vcpuid); in vcpu_dump()
220 void assert_on_unhandled_exception(struct kvm_vm *vm, uint32_t vcpuid) in assert_on_unhandled_exception() argument