mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-02 11:35:46 +00:00
aarch64: Remove unnecessary function definitions
This is a refactoring commit to simplify source code. Removed some functions that only return a layout const. Signed-off-by: Michael Zhao <michael.zhao@arm.com>
This commit is contained in:
parent
656425a328
commit
298a5580a9
@ -18,14 +18,13 @@ use std::str;
|
|||||||
use super::super::DeviceType;
|
use super::super::DeviceType;
|
||||||
use super::super::GuestMemoryMmap;
|
use super::super::GuestMemoryMmap;
|
||||||
use super::super::InitramfsConfig;
|
use super::super::InitramfsConfig;
|
||||||
use super::get_fdt_addr;
|
|
||||||
use super::gic::GicDevice;
|
use super::gic::GicDevice;
|
||||||
use super::layout::{
|
use super::layout::{
|
||||||
IRQ_BASE, MEM_32BIT_DEVICES_SIZE, MEM_32BIT_DEVICES_START, MEM_PCI_IO_SIZE, MEM_PCI_IO_START,
|
IRQ_BASE, MEM_32BIT_DEVICES_SIZE, MEM_32BIT_DEVICES_START, MEM_PCI_IO_SIZE, MEM_PCI_IO_START,
|
||||||
PCI_HIGH_BASE, PCI_MMIO_CONFIG_SIZE_PER_SEGMENT,
|
PCI_HIGH_BASE, PCI_MMIO_CONFIG_SIZE_PER_SEGMENT,
|
||||||
};
|
};
|
||||||
use vm_fdt::{FdtWriter, FdtWriterResult};
|
use vm_fdt::{FdtWriter, FdtWriterResult};
|
||||||
use vm_memory::{Address, Bytes, GuestAddress, GuestMemory, GuestMemoryError, GuestMemoryRegion};
|
use vm_memory::{Address, Bytes, GuestMemory, GuestMemoryError, GuestMemoryRegion};
|
||||||
|
|
||||||
// This is a value for uniquely identifying the FDT node declaring the interrupt controller.
|
// This is a value for uniquely identifying the FDT node declaring the interrupt controller.
|
||||||
const GIC_PHANDLE: u32 = 1;
|
const GIC_PHANDLE: u32 = 1;
|
||||||
@ -141,9 +140,8 @@ pub fn create_fdt<T: DeviceInfoForFdt + Clone + Debug, S: ::std::hash::BuildHash
|
|||||||
|
|
||||||
pub fn write_fdt_to_memory(fdt_final: Vec<u8>, guest_mem: &GuestMemoryMmap) -> Result<()> {
|
pub fn write_fdt_to_memory(fdt_final: Vec<u8>, guest_mem: &GuestMemoryMmap) -> Result<()> {
|
||||||
// Write FDT to memory.
|
// Write FDT to memory.
|
||||||
let fdt_address = GuestAddress(get_fdt_addr());
|
|
||||||
guest_mem
|
guest_mem
|
||||||
.write_slice(fdt_final.as_slice(), fdt_address)
|
.write_slice(fdt_final.as_slice(), super::layout::FDT_START)
|
||||||
.map_err(Error::WriteFdtToMemory)?;
|
.map_err(Error::WriteFdtToMemory)?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -200,21 +200,6 @@ pub fn initramfs_load_addr(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns the memory address where the kernel could be loaded.
|
|
||||||
pub fn get_kernel_start() -> u64 {
|
|
||||||
layout::KERNEL_START.raw_value()
|
|
||||||
}
|
|
||||||
|
|
||||||
///Return guest memory address where the uefi should be loaded.
|
|
||||||
pub fn get_uefi_start() -> u64 {
|
|
||||||
layout::UEFI_START.raw_value()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Auxiliary function to get the address where the device tree blob is loaded.
|
|
||||||
fn get_fdt_addr() -> u64 {
|
|
||||||
layout::FDT_START.raw_value()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_host_cpu_phys_bits() -> u8 {
|
pub fn get_host_cpu_phys_bits() -> u8 {
|
||||||
// A dummy hypervisor created only for querying the host IPA size and will
|
// A dummy hypervisor created only for querying the host IPA size and will
|
||||||
// be freed after the query.
|
// be freed after the query.
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the THIRD-PARTY file.
|
// found in the THIRD-PARTY file.
|
||||||
|
|
||||||
use super::get_fdt_addr;
|
|
||||||
use hypervisor::kvm::kvm_bindings::{
|
use hypervisor::kvm::kvm_bindings::{
|
||||||
kvm_regs, user_pt_regs, KVM_REG_ARM64, KVM_REG_ARM_CORE, KVM_REG_SIZE_U64,
|
kvm_regs, user_pt_regs, KVM_REG_ARM64, KVM_REG_ARM_CORE, KVM_REG_SIZE_U64,
|
||||||
};
|
};
|
||||||
use hypervisor::{arm64_core_reg_id, offset__of};
|
use hypervisor::{arm64_core_reg_id, offset__of};
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::{mem, result};
|
use std::{mem, result};
|
||||||
|
use vm_memory::Address;
|
||||||
|
|
||||||
/// Errors thrown while setting aarch64 registers.
|
/// Errors thrown while setting aarch64 registers.
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
@ -67,7 +67,7 @@ pub fn setup_regs(vcpu: &Arc<dyn hypervisor::Vcpu>, cpu_id: u8, boot_ip: u64) ->
|
|||||||
let regs0 = offset__of!(user_pt_regs, regs) + kreg_off;
|
let regs0 = offset__of!(user_pt_regs, regs) + kreg_off;
|
||||||
vcpu.set_reg(
|
vcpu.set_reg(
|
||||||
arm64_core_reg_id!(KVM_REG_SIZE_U64, regs0),
|
arm64_core_reg_id!(KVM_REG_SIZE_U64, regs0),
|
||||||
get_fdt_addr() as u64,
|
super::layout::FDT_START.raw_value(),
|
||||||
)
|
)
|
||||||
.map_err(Error::SetCoreRegister)?;
|
.map_err(Error::SetCoreRegister)?;
|
||||||
}
|
}
|
||||||
|
@ -85,8 +85,8 @@ pub mod aarch64;
|
|||||||
#[cfg(target_arch = "aarch64")]
|
#[cfg(target_arch = "aarch64")]
|
||||||
pub use aarch64::{
|
pub use aarch64::{
|
||||||
arch_memory_regions, configure_system, configure_vcpu, fdt::DeviceInfoForFdt,
|
arch_memory_regions, configure_system, configure_vcpu, fdt::DeviceInfoForFdt,
|
||||||
get_host_cpu_phys_bits, get_kernel_start, get_uefi_start, initramfs_load_addr, layout,
|
get_host_cpu_phys_bits, initramfs_load_addr, layout, layout::CMDLINE_MAX_SIZE,
|
||||||
layout::CMDLINE_MAX_SIZE, layout::IRQ_BASE, uefi, EntryPoint,
|
layout::IRQ_BASE, uefi, EntryPoint,
|
||||||
};
|
};
|
||||||
|
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
|
@ -992,7 +992,7 @@ impl Vm {
|
|||||||
let mut kernel = self.kernel.as_ref().unwrap();
|
let mut kernel = self.kernel.as_ref().unwrap();
|
||||||
let entry_addr = match linux_loader::loader::pe::PE::load(
|
let entry_addr = match linux_loader::loader::pe::PE::load(
|
||||||
mem.deref(),
|
mem.deref(),
|
||||||
Some(GuestAddress(arch::get_kernel_start())),
|
Some(arch::layout::KERNEL_START),
|
||||||
&mut kernel,
|
&mut kernel,
|
||||||
None,
|
None,
|
||||||
) {
|
) {
|
||||||
@ -1001,15 +1001,11 @@ impl Vm {
|
|||||||
// If failed, retry to load it as UEFI binary.
|
// If failed, retry to load it as UEFI binary.
|
||||||
// As the UEFI binary is formatless, it must be the last option to try.
|
// As the UEFI binary is formatless, it must be the last option to try.
|
||||||
Err(linux_loader::loader::Error::Pe(InvalidImageMagicNumber)) => {
|
Err(linux_loader::loader::Error::Pe(InvalidImageMagicNumber)) => {
|
||||||
arch::aarch64::uefi::load_uefi(
|
arch::aarch64::uefi::load_uefi(mem.deref(), arch::layout::UEFI_START, &mut kernel)
|
||||||
mem.deref(),
|
.map_err(Error::UefiLoad)?;
|
||||||
GuestAddress(arch::get_uefi_start()),
|
|
||||||
&mut kernel,
|
|
||||||
)
|
|
||||||
.map_err(Error::UefiLoad)?;
|
|
||||||
// The entry point offset in UEFI image is always 0.
|
// The entry point offset in UEFI image is always 0.
|
||||||
return Ok(EntryPoint {
|
return Ok(EntryPoint {
|
||||||
entry_addr: GuestAddress(arch::get_uefi_start()),
|
entry_addr: arch::layout::UEFI_START,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
|
Loading…
Reference in New Issue
Block a user