summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrans Kaashoek <[email protected]>2011-08-17 20:23:36 -0400
committerFrans Kaashoek <[email protected]>2011-08-17 20:23:36 -0400
commitfa81545f1c15630573dc1d312fa75f261f82b9f1 (patch)
tree0c70c6825e7b165329e84e790d127bfccbc80c8a
parent5f069dcf2f9d833a6c4f58ed87269d61c6abb687 (diff)
downloadxv6-labs-fa81545f1c15630573dc1d312fa75f261f82b9f1.tar.gz
xv6-labs-fa81545f1c15630573dc1d312fa75f261f82b9f1.tar.bz2
xv6-labs-fa81545f1c15630573dc1d312fa75f261f82b9f1.zip
Make elf proghdr fields match what objdump prints
-rw-r--r--bootmain.c4
-rw-r--r--elf.h6
-rw-r--r--exec.c4
3 files changed, 7 insertions, 7 deletions
diff --git a/bootmain.c b/bootmain.c
index fa2725d..c2d6050 100644
--- a/bootmain.c
+++ b/bootmain.c
@@ -35,8 +35,8 @@ bootmain(void)
ph = (struct proghdr*)((uchar*)elf + elf->phoff);
eph = ph + elf->phnum;
for(; ph < eph; ph++){
- pa = (uchar*)ph->pa;
- readseg(pa, ph->filesz, ph->offset);
+ pa = (uchar*)ph->paddr;
+ readseg(pa, ph->filesz, ph->off);
if(ph->memsz > ph->filesz)
stosb(pa + ph->filesz, 0, ph->memsz - ph->filesz);
}
diff --git a/elf.h b/elf.h
index 17f8321..d16c967 100644
--- a/elf.h
+++ b/elf.h
@@ -24,9 +24,9 @@ struct elfhdr {
// Program section header
struct proghdr {
uint type;
- uint offset;
- uint va;
- uint pa;
+ uint off;
+ uint vaddr;
+ uint paddr;
uint filesz;
uint memsz;
uint flags;
diff --git a/exec.c b/exec.c
index 2ec1c51..dfff3e6 100644
--- a/exec.c
+++ b/exec.c
@@ -41,9 +41,9 @@ exec(char *path, char **argv)
continue;
if(ph.memsz < ph.filesz)
goto bad;
- if((sz = allocuvm(pgdir, sz, ph.va + ph.memsz)) == 0)
+ if((sz = allocuvm(pgdir, sz, ph.vaddr + ph.memsz)) == 0)
goto bad;
- if(loaduvm(pgdir, (char*)ph.va, ip, ph.offset, ph.filesz) < 0)
+ if(loaduvm(pgdir, (char*)ph.vaddr, ip, ph.off, ph.filesz) < 0)
goto bad;
}
iunlockput(ip);