aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Scull <ascull@google.com>2021-04-21 10:02:48 +0000
committerCommit Bot <commit-bot@chromium.org>2021-04-21 23:19:49 +0000
commit0131dd35797923d5dbaed5fd6a14004b82e85611 (patch)
treef33612ccff0b1458e597e3bc633401b08058b13f
parent6d6efb20c0fdbf74b433668aaabbc32fe950c4b5 (diff)
downloadcrosvm-0131dd35797923d5dbaed5fd6a14004b82e85611.tar.gz
aarch64: refactor register initialization
Use single purpose, immutable variables with meaningful names. BUG=b:163789172 TEST=cargo test Change-Id: Icc90918f6154bef8ab93358ba0651fb0ed7b041a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2843604 Reviewed-by: Andrew Walbran <qwandor@google.com> Reviewed-by: Dylan Reid <dgreid@chromium.org> Auto-Submit: Andrew Scull <ascull@google.com> Commit-Queue: Dylan Reid <dgreid@chromium.org> Tested-by: kokoro <noreply+kokoro@google.com>
-rw-r--r--aarch64/src/lib.rs28
1 files changed, 12 insertions, 16 deletions
diff --git a/aarch64/src/lib.rs b/aarch64/src/lib.rs
index 389fa4d63..4a3a35ecf 100644
--- a/aarch64/src/lib.rs
+++ b/aarch64/src/lib.rs
@@ -497,31 +497,27 @@ impl AArch64 {
}
vcpu.init(&features).map_err(Error::VcpuInit)?;
- // set up registers
- let mut data: u64;
- let mut reg_id: u64;
-
// All interrupts masked
- data = PSR_D_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT | PSR_MODE_EL1H;
- reg_id = arm64_core_reg!(pstate);
- vcpu.set_one_reg(reg_id, data).map_err(Error::SetReg)?;
+ let pstate = PSR_D_BIT | PSR_A_BIT | PSR_I_BIT | PSR_F_BIT | PSR_MODE_EL1H;
+ vcpu.set_one_reg(arm64_core_reg!(pstate), pstate)
+ .map_err(Error::SetReg)?;
// Other cpus are powered off initially
if vcpu_id == 0 {
- if has_bios {
- data = AARCH64_PHYS_MEM_START + AARCH64_BIOS_OFFSET;
+ let entry_addr = if has_bios {
+ AARCH64_PHYS_MEM_START + AARCH64_BIOS_OFFSET
} else {
- data = AARCH64_PHYS_MEM_START + AARCH64_KERNEL_OFFSET;
- }
- reg_id = arm64_core_reg!(pc);
- vcpu.set_one_reg(reg_id, data).map_err(Error::SetReg)?;
+ AARCH64_PHYS_MEM_START + AARCH64_KERNEL_OFFSET
+ };
+ vcpu.set_one_reg(arm64_core_reg!(pc), entry_addr)
+ .map_err(Error::SetReg)?;
/* X0 -- fdt address */
let mem_size = guest_mem.memory_size();
- data = (AARCH64_PHYS_MEM_START + fdt_offset(mem_size, has_bios)) as u64;
+ let fdt_addr = (AARCH64_PHYS_MEM_START + fdt_offset(mem_size, has_bios)) as u64;
// hack -- can't get this to do offsetof(regs[0]) but luckily it's at offset 0
- reg_id = arm64_core_reg!(regs);
- vcpu.set_one_reg(reg_id, data).map_err(Error::SetReg)?;
+ vcpu.set_one_reg(arm64_core_reg!(regs), fdt_addr)
+ .map_err(Error::SetReg)?;
}
Ok(())