diff options
Diffstat (limited to 'src/kernel/kernel.C')
-rw-r--r-- | src/kernel/kernel.C | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/kernel/kernel.C b/src/kernel/kernel.C index d44095719..2ce5f3e43 100644 --- a/src/kernel/kernel.C +++ b/src/kernel/kernel.C @@ -1,11 +1,13 @@ #include <stdint.h> #include <kernel/console.H> +#include <kernel/pagemgr.H> #include <util/singleton.H> class Kernel { public: void cppBootstrap(); + void memBootstrap(); protected: Kernel() {}; @@ -13,10 +15,11 @@ class Kernel int main() { - printk("Booting Chenoo kernel...\n"); + printk("Booting %s kernel...\n\n", "Chenoo"); Kernel& kernel = Singleton<Kernel>::instance(); kernel.cppBootstrap(); + kernel.memBootstrap(); while(1); return 0; @@ -25,13 +28,18 @@ int main() void Kernel::cppBootstrap() { // Call default constructors for any static objects. - extern void (*ctor_start)(); - extern void (*ctor_end)(); - void(**ctors)() = &ctor_start; - while(ctors != &ctor_end) + extern void (*ctor_start_address)(); + extern void (*ctor_end_address)(); + void(**ctors)() = &ctor_start_address; + while(ctors != &ctor_end_address) { (*ctors)(); ctors++; } } +void Kernel::memBootstrap() +{ + PageManager::freePage(PageManager::allocatePage()); +} + |