summaryrefslogtreecommitdiff
path: root/src/execload.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/execload.rs')
-rw-r--r--src/execload.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/execload.rs b/src/execload.rs
index 12fe90d..70c1d65 100644
--- a/src/execload.rs
+++ b/src/execload.rs
@@ -14,9 +14,9 @@ use goblin::{
program_header::PT_LOAD,
},
};
-use trve::consts::Addr;
+use trve::{consts::Addr, mem::RAM_START};
-pub fn load<P: AsRef<Path>>(path: P, ram: &mut [u8], ram_start: Addr) -> Result<Addr> {
+pub fn load<P: AsRef<Path>>(path: P, ram: &mut [u8]) -> Result<Addr> {
let buf = fs::read(path)?;
match Object::parse(&buf)? {
@@ -36,11 +36,11 @@ pub fn load<P: AsRef<Path>>(path: P, ram: &mut [u8], ram_start: Addr) -> Result<
for ph in elf.program_headers {
if ph.p_type == PT_LOAD {
- let start = (ph.p_vaddr - ram_start) as usize;
+ let start = (ph.p_vaddr - RAM_START) as usize;
let end = start + ph.p_memsz as usize;
let file_end = start + ph.p_filesz as usize;
- if end > ram_start as usize + ram.len() {
+ if end > RAM_START as usize + ram.len() {
bail!("Segment at 0x{:x} does not fit in RAM", ph.p_vaddr);
}
@@ -60,7 +60,7 @@ pub fn load<P: AsRef<Path>>(path: P, ram: &mut [u8], ram_start: Addr) -> Result<
bail!("Program too large for RAM");
}
ram[..buf.len()].copy_from_slice(&buf);
- Ok(ram_start)
+ Ok(RAM_START)
}
_ => bail!("Unsupported executable format"),
}