From fa81545f1c15630573dc1d312fa75f261f82b9f1 Mon Sep 17 00:00:00 2001 From: Frans Kaashoek Date: Wed, 17 Aug 2011 20:23:36 -0400 Subject: [PATCH] Make elf proghdr fields match what objdump prints --- bootmain.c | 4 ++-- elf.h | 6 +++--- exec.c | 4 ++-- 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);