summaryrefslogtreecommitdiffstats
path: root/src/kernel/kernel.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/kernel.C')
-rw-r--r--src/kernel/kernel.C18
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());
+}
+
OpenPOWER on IntegriCloud