summaryrefslogtreecommitdiff
path: root/fs/fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/fs.c')
-rw-r--r--fs/fs.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/fs/fs.c b/fs/fs.c
index fd43c52..19027d6 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -1,7 +1,9 @@
// abstraction layer for filesystems
+#define FOOLOS_MODULE_NAME "mount"
#include "fs.h"
#include "ext2.h"
+#include "lib/logger/log.h"
static uint32_t root_ext2_ramimage=0;
@@ -18,9 +20,25 @@ int fs_readdir(const char *name,fs_dirent *dirs,int max)
return ext2_read_dir(root_ext2_ramimage, inode_nr,dirs,max); // TODO: hardcoded, fix this
}
-void fs_mount(uint32_t ext2_ramimage)
+void fs_mount(multiboot_information *info)
{
- root_ext2_ramimage=ext2_ramimage;
+ // deinit modules memory
+ if(info->flags&&1<<3)
+ {
+ multiboot_mod *mod=info->mods_addr;
+ for(int i=0;i<info->mods_count;i++)
+ {
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"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++;
+ }
+ }
}
uint32_t fs_get_root_ext2_ramimage()