diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/elf.c | 2 | ||||
| -rw-r--r-- | fs/ext2.c | 8 |
2 files changed, 6 insertions, 4 deletions
@@ -77,12 +77,12 @@ uint32_t load_elf(char *name, uint32_t *alloc) //TODO: load ELF binary and move this to own compilation unit //load binary -// uint32_t vaddr=0x08048000; uint32_t vaddr=0x08000000; log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"loading %s",name); ext2_check(ext2_ramimage); ext2_inode_content(ext2_ramimage,inode_nr,vaddr,0x100000); // load 1mb; + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_DEBUG,"ELF File loaded to final destination."); Elf32_Ehdr *elf; @@ -201,7 +201,9 @@ int ext2_inode_content(char *ram,int inode_nr,uint8_t *ramdest,int max) int sum=0; int count=0; - log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Loading %d %d bytes",inode.size_high, inode.size_low); + log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"Loading %d.%d bytes",inode.size_high, inode.size_low); + + if(inode.size_high>0)panic(FOOLOS_MODULE_NAME,"inode with high.size unsupported, i am sorry."); while(pos<inode.size_low) // TODO: use size high! { @@ -266,8 +268,8 @@ int ext2_filename_to_inode_traverse(uint8_t *ram, char *path,int inode_start) log(FOOLOS_MODULE_NAME,FOOLOS_LOG_DEBUG,"looking for %s '%s' in inode: %d",final?"file":"dir",first,inode_start); - fs_dirent dirs[15]; - int count= ext2_read_dir(ram, inode_start,dirs,15); // get dir + fs_dirent dirs[25]; + int count= ext2_read_dir(ram, inode_start,dirs,25); // get dir for(int i=0;i<count;i++) { |
