summary refs log tree commit diff
path: root/src/linux.rs
diff options
context:
space:
mode:
authorSonny Rao <sonnyrao@chromium.org>2018-01-31 17:49:07 -0800
committerchrome-bot <chrome-bot@chromium.org>2018-02-01 18:08:55 -0800
commit29cd40a1d61c0d558768e0d32f07f7b7ad84ca63 (patch)
treeb384a0e5d29db74de61ee5c9c17355af332bf30a /src/linux.rs
parentad2391528f93e696807060f4fa6fb43faebced92 (diff)
downloadcrosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar.gz
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar.bz2
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar.lz
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar.xz
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.tar.zst
crosvm-29cd40a1d61c0d558768e0d32f07f7b7ad84ca63.zip
crosvm: change GuestAddress to always be a u64
We want to be able to run 64-bit ARM kernels using a 32-bit version of
crosvm, to make it more consistent use a u64 to represent
GuestAddress.

BUG=chromium:797868
TEST=./build_test passes on all architectures
TEST=crosvm runs on caroline

Change-Id: I43bf993592caf46891e3e5e05258ab70b6bf3045
Signed-off-by: Sonny Rao <sonnyrao@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/896398
Reviewed-by: Dylan Reid <dgreid@chromium.org>
Diffstat (limited to 'src/linux.rs')
-rw-r--r--src/linux.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/linux.rs b/src/linux.rs
index b22c043..abf39f9 100644
--- a/src/linux.rs
+++ b/src/linux.rs
@@ -175,9 +175,9 @@ impl Drop for UnlinkUnixDatagram {
     }
 }
 
-const KERNEL_START_OFFSET: usize = 0x200000;
-const CMDLINE_OFFSET: usize = 0x20000;
-const CMDLINE_MAX_SIZE: usize = KERNEL_START_OFFSET - CMDLINE_OFFSET;
+const KERNEL_START_OFFSET: u64 = 0x200000;
+const CMDLINE_OFFSET: u64 = 0x20000;
+const CMDLINE_MAX_SIZE: u64 = KERNEL_START_OFFSET - CMDLINE_OFFSET;
 const BASE_DEV_MEMORY_PFN: u64 = 1u64 << 26;
 
 fn create_base_minijail(root: &Path, seccomp_policy: &Path) -> Result<Minijail> {
@@ -211,9 +211,9 @@ fn create_base_minijail(root: &Path, seccomp_policy: &Path) -> Result<Minijail>
 fn setup_memory(memory: Option<usize>) -> Result<GuestMemory> {
     let mem_size = memory.unwrap_or(256) << 20;
     #[cfg(not(any(target_arch = "x86", target_arch = "x86_64")))]
-    let arch_mem_regions = vec![(GuestAddress(0), mem_size)];
+    let arch_mem_regions = vec![(GuestAddress(0), mem_size as u64)];
     #[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
-    let arch_mem_regions = x86_64::arch_memory_regions(mem_size);
+    let arch_mem_regions = x86_64::arch_memory_regions(mem_size as u64);
     GuestMemory::new(&arch_mem_regions).map_err(Error::CreateGuestMemory)
 }
 
@@ -725,7 +725,7 @@ pub fn run_config(cfg: Config) -> Result<()> {
     let kvm = Kvm::new().map_err(Error::CreateKvm)?;
     let mut vm = setup_vm(&kvm, mem.clone())?;
 
-    let mut cmdline = kernel_cmdline::Cmdline::new(CMDLINE_MAX_SIZE);
+    let mut cmdline = kernel_cmdline::Cmdline::new(CMDLINE_MAX_SIZE as usize);
     cmdline
         .insert_str("console=ttyS0 noacpi reboot=k panic=1 pci=off")
         .unwrap();