diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/elf.c | 2 | ||||
| -rw-r--r-- | fs/fs.c | 37 | ||||
| -rw-r--r-- | fs/fs.h | 1 |
3 files changed, 5 insertions, 35 deletions
@@ -87,7 +87,7 @@ void elf_multiboot_read(multiboot_information *info) // returns elf entry point uint32_t load_elf(char *name, uint32_t *alloc) { - uint32_t ext2_ramimage=fs_get_root_ext2_ramimage(); + uint32_t ext2_ramimage=VMEM_EXT2_RAMIMAGE; int inode_nr=ext2_filename_to_inode(ext2_ramimage,name); if(inode_nr<1)return 0; @@ -4,46 +4,17 @@ #include "fs.h" #include "ext2.h" - -static uint32_t root_ext2_ramimage=0; - -// // returns number of entries in the directory specified by name. // fills 0-max into *dirs - int fs_readdir(const char *name,fs_dirent *dirs,int max) { - int inode_nr=ext2_filename_to_inode(root_ext2_ramimage,name); + int inode_nr=ext2_filename_to_inode(VMEM_EXT2_RAMIMAGE,name); if(inode_nr<1)return -1; - return ext2_read_dir(root_ext2_ramimage, inode_nr,dirs,max); // TODO: hardcoded, fix this -} - -void fs_mount(multiboot_information *info) -{ - // TODO: deinit modules memory: what??? why? then it will be gone right!? - if(info->flags&&1<<3) - { - multiboot_mod *mod=info->mods_addr; - for(int i=0;i<info->mods_count;i++) - { - klog("mounting mod from 0x%08X-0x%08X : %s", - mod->mod_start,mod->mod_end, mod->string); - - //pmmngr_deinit_region(mod->mod_start,((uint32_t)mod->mod_end-(uint32_t)mod->mod_start)+1); - root_ext2_ramimage=mod->mod_start; - - mod++; - } - } + return ext2_read_dir(VMEM_EXT2_RAMIMAGE, inode_nr,dirs,max); // TODO: hardcoded, fix this } void fs_content(char *path, uint32_t dest, uint32_t max_bytes) { - int inode= ext2_filename_to_inode(root_ext2_ramimage, path); - ext2_inode_content(root_ext2_ramimage,inode,dest,max_bytes); -} - -uint32_t fs_get_root_ext2_ramimage() -{ - return root_ext2_ramimage; + int inode= ext2_filename_to_inode(VMEM_EXT2_RAMIMAGE, path); + ext2_inode_content(VMEM_EXT2_RAMIMAGE,inode,dest,max_bytes); } @@ -22,6 +22,5 @@ typedef struct fs_dirent_struct int fs_readdir(const char *name,fs_dirent *dirs,int max); void fs_content(char *path, uint32_t dest, uint32_t max_bytes); void fs_mount(multiboot_information *info); // mounts ext2 ramimage from module as root -uint32_t fs_get_root_ext2_ramimage(); #endif |
