aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2016-11-14 06:55:10 +0100
committerDmitry Vyukov <dvyukov@google.com>2016-11-14 06:55:10 +0100
commit112238483a2df647d2f482e26d972b70bbd7c34e (patch)
tree30d6fb2f88ffd709c2834096b4bd8c1c147f039b /sys
parentb4dffbd5bed3193aed9fc5f89dc163c22c9514d2 (diff)
sys: initialize kvm guest memory
Need much more complex support, but this is a starting point.
Diffstat (limited to 'sys')
-rw-r--r--sys/kvm.txt20
1 files changed, 17 insertions, 3 deletions
diff --git a/sys/kvm.txt b/sys/kvm.txt
index 81bfda2d6..2f5650925 100644
--- a/sys/kvm.txt
+++ b/sys/kvm.txt
@@ -126,7 +126,7 @@ kvm_guest_debug_flags = KVM_GUESTDBG_ENABLE, KVM_GUESTDBG_SINGLESTEP, KVM_GUESTD
kvm_chip_id = KVM_IRQCHIP_PIC_MASTER, KVM_IRQCHIP_PIC_SLAVE, KVM_IRQCHIP_IOAPIC
kvm_mem_slots = 0, 1, 2, 3, 4, 5, 509, 510, 511, 10000, 65536, 65537, 65538, 65539, 65540, 66047, 66048, 66049
-kvm_guest_addrs = 0x1000, 0x8000, 0xf000, 0x100000, 0x10000
+kvm_guest_addrs = 0, 1, 2, 4, 0x1000, 0x8000, 0xf000, 0x100000, 0x10000
kvm_guest_addr_size = 0x1000, 0x2000, 0x4000, 0x8000, 0x10000, 0x100000
kvm_x86_tss_addr = 0xffffffffffffd000
kvm_x86_selector_type = 0, 1
@@ -334,8 +334,10 @@ kvm_userspace_memory_region {
slot flags[kvm_mem_slots, int32]
flags flags[kvm_mem_region_flags, int32]
paddr flags[kvm_guest_addrs, int64]
- size len[addr, int64]
- addr vma
+#TODO: this should be len of addr, but it also must be multiple of page size
+# there is currently to way to make kvm_guest_memory_region multiple of page size
+ size const[4096, int64]
+ addr ptr[in, kvm_guest_memory_region]
}
kvm_vcpu_events {
@@ -605,3 +607,15 @@ kvm_coalesced_mmio_zone {
size flags[kvm_guest_addr_size, int32]
pad const[0, int32]
}
+
+# This struct contains things that make sense to copy into guest.
+#TODO: add page tables.
+kvm_guest_memory_region [
+ blob array[int8]
+ gdt array[kvm_gdt_entry]
+] [varlen]
+
+#TODO: detail this struct
+kvm_gdt_entry {
+ val int64
+}