diff options
| author | Louis Burda <quent.burda@gmail.com> | 2023-01-23 20:38:36 +0100 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2023-01-23 20:42:02 +0100 |
| commit | a554be1738d019e4b5d5b0b0ee9aac6b6ac302a6 (patch) | |
| tree | 014d2c1ddbe018c53e0cb1a6da30faae26f304b9 /test/kvm.c | |
| parent | 769e05dd63ed0379e7325da6e82c0c46c151ef4e (diff) | |
| download | cachepc-a554be1738d019e4b5d5b0b0ee9aac6b6ac302a6.tar.gz cachepc-a554be1738d019e4b5d5b0b0ee9aac6b6ac302a6.zip | |
Use 16-bit realmode assembly for guests (!)
Diffstat (limited to 'test/kvm.c')
| -rw-r--r-- | test/kvm.c | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -220,10 +220,14 @@ kvm_init_memory(struct kvm *kvm, size_t ramsize, kvm->mem = mmap(NULL, kvm->memsize, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); if (!kvm->mem) err(1, "mmap kvm->mem"); - memset(kvm->mem, 0, kvm->memsize); + /* nop slide oob to detect errors quickly */ + memset(kvm->mem, 0x90, kvm->memsize); assert(code_stop - code_start <= kvm->memsize); memcpy(kvm->mem, code_start, code_stop - code_start); + printf("KVM Memory:\n"); + hexdump(code_start, code_stop - code_start); + memset(®ion, 0, sizeof(region)); region.slot = 0; region.memory_size = kvm->memsize; @@ -272,7 +276,6 @@ kvm_init_regs(struct kvm *kvm) regs.rip = 0; regs.rsp = kvm->memsize - 8; regs.rbp = kvm->memsize - 8; - regs.rflags = 0x2; ret = ioctl(kvm->vcpufd, KVM_SET_REGS, ®s); if (ret == -1) err(1, "KVM_SET_REGS"); } |
