summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/elf.c2
-rw-r--r--fs/fs.c37
-rw-r--r--fs/fs.h1
3 files changed, 5 insertions, 35 deletions
diff --git a/fs/elf.c b/fs/elf.c
index b4bc9d1..2603e2f 100644
--- a/fs/elf.c
+++ b/fs/elf.c
@@ -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;
diff --git a/fs/fs.c b/fs/fs.c
index 4d67d35..357a441 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -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);
}
diff --git a/fs/fs.h b/fs/fs.h
index 79583cf..7d51e86 100644
--- a/fs/fs.h
+++ b/fs/fs.h
@@ -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