void kvm__init_ram(struct kvm *kvm) { u64 phys_start, phys_size; void *host_mem; if (kvm->ram_size <= KVM_MMIO_START) { /* one region for all memory */ phys_start = 0; phys_size = kvm->ram_size; host_mem = kvm->ram_start; kvm__register_mem(kvm, phys_start, phys_size, host_mem); } else { /* one region for memory that fits below MMIO range */ phys_start = 0; phys_size = KVM_MMIO_START; host_mem = kvm->ram_start; kvm__register_mem(kvm, phys_start, phys_size, host_mem); /* one region for rest of memory */ phys_start = KVM_MMIO_START + KVM_MMIO_SIZE; phys_size = kvm->ram_size - KVM_MMIO_START; host_mem = kvm->ram_start + KVM_MMIO_START; kvm__register_mem(kvm, phys_start, phys_size, host_mem); } }
void kvm__init_ram(struct kvm *kvm) { int err; u64 phys_start, phys_size; void *host_mem; phys_start = ARM_MEMORY_AREA; phys_size = kvm->ram_size; host_mem = kvm->ram_start; err = kvm__register_mem(kvm, phys_start, phys_size, host_mem); if (err) die("Failed to register %lld bytes of memory at physical " "address 0x%llx [err %d]", phys_size, phys_start, err); kvm->arch.memory_guest_start = phys_start; }