#pragma nosharc
#endif
-#ifdef __BSD_ON_CORE_0__
-#include Everything For Free -- It just works!!
+#ifdef __CONFIG_BSD_ON_CORE0__
+#error "Yeah, it's not possible to build ROS with BSD on Core 0, sorry......"
#else
+#include <ros/timer.h>
#include <arch/arch.h>
#include <arch/console.h>
#include <multiboot.h>
#include <manager.h>
#include <testing.h>
#include <kmalloc.h>
+#include <hashtable.h>
+#include <mm.h>
+#include <frontend.h>
#include <arch/init.h>
+#include <arch/bitmask.h>
#include <slab.h>
+#include <kfs.h>
+#include <vfs.h>
// zra: flag for Ivy
int booting = 1;
multiboot_print_memory_map((multiboot_info_t*CT(1))KADDR((physaddr_t)mboot_info));
- vm_init();
-
- cache_init();
- page_init();
- page_check();
- kmem_cache_init();
+ vm_init(); // Sets up pages tables, turns on paging
+ cache_init(); // Determine systems's cache properties
+ page_init(); // Initializes free page list, etc
+ kmem_cache_init(); // Sets up slab allocator
kmalloc_init();
-
+ hashtable_init();
+ cache_color_alloc_init(); // Inits data structs
+ colored_page_alloc_init(); // Allocates colors for agnostic processes
+ vmr_init();
+ file_init();
+ page_check();
+ vfs_init();
idt_init();
- active_msg_init();
+ kernel_msg_init();
sysenter_init();
timer_init();
+ train_timing();
// At this point our boot paths diverge based on arch.
arch_init();
+
+// printk("Starting tests....\n");
+// test_color_alloc();
+// printk("Testing complete....\n");
// zra: let's Ivy know we're done booting
booting = 0;
va_end(ap);
dead:
- /* break into the kernel monitor, if we're core 0 */
- if (core_id()) {
- smp_idle();
- panic("should never see me");
- }
- while (1)
- monitor(NULL);
+ monitor(NULL);
+ smp_idle();
}
/* like panic, but don't */