diff options
author | Alexis211 <alexis211@gmail.com> | 2009-11-27 20:43:25 +0100 |
---|---|---|
committer | Alexis211 <alexis211@gmail.com> | 2009-11-27 20:43:25 +0100 |
commit | 56ace5efd6ccc02004ddafb1e564a3f9d5d538d2 (patch) | |
tree | c8219690b234d5ac1b761236e4c43b9706057462 /Source/Kernel/Core | |
parent | a40fe1166ab1db972a8ca0380d603c4d90eede62 (diff) | |
download | Melon-56ace5efd6ccc02004ddafb1e564a3f9d5d538d2.tar.gz Melon-56ace5efd6ccc02004ddafb1e564a3f9d5d538d2.zip |
Added some screenshots, re-organized some stuff.
Diffstat (limited to 'Source/Kernel/Core')
-rw-r--r-- | Source/Kernel/Core/kmain.wtf.cpp | 43 |
1 files changed, 3 insertions, 40 deletions
diff --git a/Source/Kernel/Core/kmain.wtf.cpp b/Source/Kernel/Core/kmain.wtf.cpp index 1d438ed..827a834 100644 --- a/Source/Kernel/Core/kmain.wtf.cpp +++ b/Source/Kernel/Core/kmain.wtf.cpp @@ -115,43 +115,6 @@ void selectVideoMode(SimpleVT& v) { } } -bool mountFS(multiboot_info_t* mbd, String str) { - module_t *mods = (module_t*)mbd->mods_addr; - Vector<String> fs = str.split(":"); - DirectoryNode* root; - if (fs[0] == "/") { - root = NULL; - } else { - FSNode* n = VFS::find(fs[0]); - if (n == NULL) { - *kvt << "Mountpoint does not exist : " << fs[0] << "\n"; - return false; - } - if (n->type() != NT_DIRECTORY) { - *kvt << "Mountpoint is not a directory : " << fs[0] << "\n"; - return false; - } - root = (DirectoryNode*)n; - } - if (fs[1] == "ramfs") { - if (fs[2].toInt() >= mbd->mods_count) { - *kvt << "Invalid module number for filesystem to mount on " << fs[0] << "\n"; - return false; - } - RamFS::mount((u8int*)mods[fs[2].toInt()].mod_start, 1024 * 1024, root); - } else { - if (fs.size() < 5) fs.push("fat"); - BlockDevice* d = Part::dev(fs[1], fs[2].toInt()); - Partition* p = Part::part(d, fs[3].toInt()); - if (fs[4] == "fat") { - FATFS::mount(p, root); - } else { - PANIC("Unknown filesystem type for root file system."); - } - } - return true; -} - void kmain(multiboot_info_t* mbd, u32int magic) { DEBUG("Entering kmain."); @@ -182,7 +145,7 @@ void kmain(multiboot_info_t* mbd, u32int magic) { //Create a VT for logging what kernel does kvt = new ScrollableVT(25, 80, 20, KVT_FGCOLOR, KVT_BGCOLOR); kvt->map(0, 0); - *kvt << "Melon is loading..."; + *kvt << "Melon is loading...\n"; IDT::init(); //Setup interrupts @@ -227,7 +190,7 @@ void kmain(multiboot_info_t* mbd, u32int magic) { //*************************************** MOUNT FILESYSTEMS { // mount root filesystem - if (!mountFS(mbd, String("/:") += root)) PANIC("Cannot mount root filesystem."); + if (!VFS::mount(String("/:") += root, kvt, mbd)) PANIC("Cannot mount root filesystem."); } DirectoryNode* cwd; cwd = VFS::getRootNode(); @@ -235,7 +198,7 @@ void kmain(multiboot_info_t* mbd, u32int magic) { // mount other filesystems for (u32int i = 0; i < mount.size(); i++) { - mountFS(mbd, mount[i]); + VFS::mount(mount[i], kvt, mbd); } //FATFS::mount(Part::partitions[0], (DirectoryNode*)VFS::createDirectory("/Mount")); |