summaryrefslogtreecommitdiff
path: root/fs/elf.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/elf.c')
-rw-r--r--fs/elf.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/elf.c b/fs/elf.c
index a01f7c6..d91da60 100644
--- a/fs/elf.c
+++ b/fs/elf.c
@@ -99,13 +99,12 @@ uint32_t load_elf(char *name, uint32_t *alloc)
uint32_t pos=0;
klog("loading %s",name);
- ext2_read_inode(ext2_ramimage,inode_nr,vaddr,&pos,4096*64); // max ignored??
+ ext2_read_inode(ext2_ramimage,inode_nr,vaddr,&pos,4096*VMEM_USER_PROG_PAGES); // max ignored??
klog("ELF File loaded to final destination.");
Elf32_Ehdr *elf;
elf=vaddr;
-
if(elf->e_ident[0]!=0x7f||elf->e_ident[1]!='E'||elf->e_ident[2]!='L'||elf->e_ident[3]!='F')
kpanic("ELF mismatch!?");
@@ -138,6 +137,13 @@ uint32_t load_elf(char *name, uint32_t *alloc)
for(int phidx=0;phidx<elf->e_phnum;phidx++)
{
Elf32_Phdr *phdr=vaddr+elf->e_phoff+phidx*elf->e_phentsize;
+ klog("-- PROGRAMM HEADER %d --",phidx+1);
+ klog("p-type: %d",phdr->p_type);
+ klog("p-offset: 0x%08X",phdr->p_offset);
+ klog("p-vaddr: 0x%08X",phdr->p_vaddr);
+ klog("p-filesz: 0x%08X",phdr->p_filesz);
+ klog("p-memsz: 0x%08X",phdr->p_memsz);
+
if(phidx==0)
{
@@ -148,14 +154,6 @@ uint32_t load_elf(char *name, uint32_t *alloc)
{
- /*
- klog("-- PROGRAMM HEADER %d --",phidx+1);
- klog("p-type: %d",phdr->p_type);
- klog("p-offset: 0x%08X",phdr->p_offset);
- klog("p-vaddr: 0x%08X",phdr->p_vaddr);
- klog("p-filesz: 0x%08X",phdr->p_filesz);
- klog("p-memsz: 0x%08X",phdr->p_memsz);
- */
klog("data: 0x%08X-0x%08X",phdr->p_vaddr,phdr->p_vaddr+phdr->p_filesz);
klog("bss: 0x%08X-0x%08X",phdr->p_vaddr+phdr->p_filesz,phdr->p_vaddr+phdr->p_memsz);