From 3300dcf8b75e5dee41e25a2e56253c9c92259b2c Mon Sep 17 00:00:00 2001 From: Baptiste Wicht Date: Sat, 1 Mar 2014 20:38:12 +0100 Subject: [PATCH] Improve directory structure --- kernel/Makefile | 41 ++++++++++++++++-------- kernel/include/disks.hpp | 4 +-- kernel/include/{ => fs}/fat32.hpp | 4 +-- kernel/include/{ => fs}/fat32_specs.hpp | 0 kernel/include/{ => vfs}/file.hpp | 0 kernel/include/{ => vfs}/file_system.hpp | 0 kernel/include/{ => vfs}/vfs.hpp | 0 kernel/src/disks.cpp | 2 +- kernel/src/{ => fs}/fat32.cpp | 3 +- kernel/src/kernel.cpp | 2 +- kernel/src/system_calls.cpp | 2 +- kernel/src/{ => vfs}/vfs.cpp | 11 +++---- 12 files changed, 42 insertions(+), 27 deletions(-) rename kernel/include/{ => fs}/fat32.hpp (97%) rename kernel/include/{ => fs}/fat32_specs.hpp (100%) rename kernel/include/{ => vfs}/file.hpp (100%) rename kernel/include/{ => vfs}/file_system.hpp (100%) rename kernel/include/{ => vfs}/vfs.hpp (100%) rename kernel/src/{ => fs}/fat32.cpp (99%) rename kernel/src/{ => vfs}/vfs.cpp (99%) diff --git a/kernel/Makefile b/kernel/Makefile index bc672d5e..40c7c966 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -7,20 +7,27 @@ THOR_FLAGS=-DCONFIG_HISTORY=y KERNEL_LINK_FLAGS=$(COMMON_LINK_FLAGS) -T linker.ld KERNEL_CPP_FILES=$(wildcard src/*.cpp) -KERNEL_CPP_STL_FILES=$(wildcard src/stl/*.cpp) KERNEL_CPP_DRIVERS_FILES=$(wildcard src/drivers/*.cpp) +KERNEL_CPP_FS_FILES=$(wildcard src/fs/*.cpp) +KERNEL_CPP_VFS_FILES=$(wildcard src/vfs/*.cpp) KERNEL_D_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.d) -KERNEL_D_STL_FILES=$(KERNEL_CPP_STL_FILES:%.cpp=%.cpp.d) KERNEL_D_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.d) +KERNEL_D_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.d) +KERNEL_D_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.d) + +KERNEL_O_FILES=$(KERNEL_CPP_FILES:%.cpp=%.cpp.o) +KERNEL_O_DRIVERS_FILES=$(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.o) +KERNEL_O_FS_FILES=$(KERNEL_CPP_FS_FILES:%.cpp=%.cpp.o) +KERNEL_O_VFS_FILES=$(KERNEL_CPP_VFS_FILES:%.cpp=%.cpp.o) #TODO Generate also the o files coming from s files automatically, ignoring crti and crtn -KERNEL_O_FILES=boot_16_64.o boot_32_64.o $(KERNEL_CPP_FILES:%.cpp=%.cpp.o) $(KERNEL_CPP_STL_FILES:%.cpp=%.cpp.o) $(KERNEL_CPP_DRIVERS_FILES:%.cpp=%.cpp.o) src/isrs.s.o src/irqs.s.o src/arch.s.o src/syscalls.s.o src/task_switch.s.o +O_FILES=boot_16_64.o boot_32_64.o $(KERNEL_O_FILES) $(KERNEL_O_FS_FILES) $(KERNEL_O_VFS_FILES) $(KERNEL_O_DRIVERS_FILES) src/isrs.s.o src/irqs.s.o src/arch.s.o src/syscalls.s.o src/task_switch.s.o CRTBEGIN_OBJ:=$(shell $(CC) $(CFLAGS) -print-file-name=crtbegin.o) CRTEND_OBJ:=$(shell $(CC) $(CFLAGS) -print-file-name=crtend.o) -LINK_O_FILES=src/crti.s.o $(CRTBEGIN_OBJ) $(KERNEL_O_FILES) $(CRTEND_OBJ) src/crtn.s.o +LINK_O_FILES=src/crti.s.o $(CRTBEGIN_OBJ) $(O_FILES) $(CRTEND_OBJ) src/crtn.s.o boot_16.o: src/boot/boot_16.cpp $(CC) $(CPP_FLAGS_16) $(THOR_FLAGS) $(WARNING_FLAGS) -c src/boot/boot_16.cpp -o boot_16.o @@ -40,24 +47,31 @@ src/%.s.o: src/%.s src/%.cpp.d: $(KERNEL_CPP_FILES) @ $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/$*.cpp.o src/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@ -src/stl/%.cpp.d: $(KERNEL_CPP_STL_FILES) - @ $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/stl/$*.cpp.o src/stl/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@ - src/drivers/%.cpp.d: $(KERNEL_CPP_DRIVERS_FILES) @ $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/drivers/$*.cpp.o src/drivers/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@ -src/%.cpp.o: - $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@ +src/fs/%.cpp.d: $(KERNEL_CPP_FS_FILES) + @ $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/fs/$*.cpp.o src/fs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@ -src/stl/%.cpp.o: +src/vfs/%.cpp.d: $(KERNEL_CPP_VFS_FILES) + @ $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -MM -MT src/vfs/$*.cpp.o src/vfs/$*.cpp | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@' > $@ + +src/%.cpp.o: $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@ src/drivers/%.cpp.o: $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@ +src/vfs/%.cpp.o: + $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@ + +src/fs/%.cpp.o: + $(CC) $(CPP_FLAGS_64) $(THOR_FLAGS) $(WARNING_FLAGS) -c $< -o $@ + -include $(KERNEL_D_FILES) --include $(KERNEL_D_STL_FILES) -include $(KERNEL_D_DRIVERS_FILES) +-include $(KERNEL_D_VFS_FILES) +-include $(KERNEL_D_FS_FILES) kernel.bin: $(LINK_O_FILES) $(CC) $(KERNEL_LINK_FLAGS) $(CPP_FLAGS_64) -o kernel.bin.o $(LINK_O_FILES) @@ -65,9 +79,10 @@ kernel.bin: $(LINK_O_FILES) clean: rm -f $(KERNEL_D_FILES) - rm -f $(KERNEL_D_STL_FILES) rm -f $(KERNEL_D_DRIVERS_FILES) - rm -f $(KERNEL_O_FILES) + rm -f $(KERNEL_D_FS_FILES) + rm -f $(KERNEL_D_VFS_FILES) + rm -f $(O_FILES) rm -f crti.o rm -f crts.o rm -f *.bin diff --git a/kernel/include/disks.hpp b/kernel/include/disks.hpp index 5971050e..c2dfb9a1 100644 --- a/kernel/include/disks.hpp +++ b/kernel/include/disks.hpp @@ -14,8 +14,8 @@ #include #include -#include "vfs.hpp" -#include "file.hpp" +#include "vfs/vfs.hpp" +#include "vfs/file.hpp" namespace disks { diff --git a/kernel/include/fat32.hpp b/kernel/include/fs/fat32.hpp similarity index 97% rename from kernel/include/fat32.hpp rename to kernel/include/fs/fat32.hpp index ace1b5a3..579b5bf5 100644 --- a/kernel/include/fat32.hpp +++ b/kernel/include/fs/fat32.hpp @@ -13,8 +13,8 @@ #include #include "disks.hpp" -#include "file_system.hpp" -#include "fat32_specs.hpp" +#include "vfs/file_system.hpp" +#include "fs/fat32_specs.hpp" namespace fat32 { diff --git a/kernel/include/fat32_specs.hpp b/kernel/include/fs/fat32_specs.hpp similarity index 100% rename from kernel/include/fat32_specs.hpp rename to kernel/include/fs/fat32_specs.hpp diff --git a/kernel/include/file.hpp b/kernel/include/vfs/file.hpp similarity index 100% rename from kernel/include/file.hpp rename to kernel/include/vfs/file.hpp diff --git a/kernel/include/file_system.hpp b/kernel/include/vfs/file_system.hpp similarity index 100% rename from kernel/include/file_system.hpp rename to kernel/include/vfs/file_system.hpp diff --git a/kernel/include/vfs.hpp b/kernel/include/vfs/vfs.hpp similarity index 100% rename from kernel/include/vfs.hpp rename to kernel/include/vfs/vfs.hpp diff --git a/kernel/src/disks.cpp b/kernel/src/disks.cpp index 99f50613..f23b9fbe 100644 --- a/kernel/src/disks.cpp +++ b/kernel/src/disks.cpp @@ -13,7 +13,7 @@ #include "ata.hpp" #include "thor.hpp" #include "console.hpp" -#include "fat32.hpp" +#include "fs/fat32.hpp" namespace { diff --git a/kernel/src/fat32.cpp b/kernel/src/fs/fat32.cpp similarity index 99% rename from kernel/src/fat32.cpp rename to kernel/src/fs/fat32.cpp index ff405120..9e9a77c7 100644 --- a/kernel/src/fat32.cpp +++ b/kernel/src/fs/fat32.cpp @@ -10,7 +10,8 @@ #include #include -#include "fat32.hpp" +#include "fs/fat32.hpp" + #include "console.hpp" #include "rtc.hpp" diff --git a/kernel/src/kernel.cpp b/kernel/src/kernel.cpp index e29333be..3ab14b5e 100644 --- a/kernel/src/kernel.cpp +++ b/kernel/src/kernel.cpp @@ -23,7 +23,7 @@ #include "gdt.hpp" #include "terminal.hpp" #include "scheduler.hpp" -#include "vfs.hpp" +#include "vfs/vfs.hpp" extern "C" { diff --git a/kernel/src/system_calls.cpp b/kernel/src/system_calls.cpp index f5e5ce8e..bea83703 100644 --- a/kernel/src/system_calls.cpp +++ b/kernel/src/system_calls.cpp @@ -11,8 +11,8 @@ #include "keyboard.hpp" #include "terminal.hpp" #include "acpi.hpp" -#include "vfs.hpp" #include "rtc.hpp" +#include "vfs/vfs.hpp" namespace { diff --git a/kernel/src/vfs.cpp b/kernel/src/vfs/vfs.cpp similarity index 99% rename from kernel/src/vfs.cpp rename to kernel/src/vfs/vfs.cpp index e24a4c3e..d3dd13c4 100644 --- a/kernel/src/vfs.cpp +++ b/kernel/src/vfs/vfs.cpp @@ -12,15 +12,14 @@ #include #include -#include "vfs.hpp" +#include "vfs/vfs.hpp" +#include "vfs/file_system.hpp" + +#include "fs/fat32.hpp" + #include "scheduler.hpp" -#include "file_system.hpp" #include "flags.hpp" -#include "fat32.hpp" - -#include "disks.hpp" - #include "console.hpp" namespace {