diff --git a/init/main.c b/init/main.c index f54b9c7e11717218e596dad1091174c130b49e1e..1051c5ff674ea53040caac2433164c0b4ac2954f 100644 --- a/init/main.c +++ b/init/main.c @@ -16,7 +16,7 @@ #include <kernel/sbrk.h> #include <kernel/sysctl.h> - +#include <asm/processor.h> #define MSG "MAIN: " @@ -28,11 +28,16 @@ void module_load_xen_kernels(void); static void kernel_init(void) { - setup_arch(); + /* Initcalls are executed by the libgloss boot code at this time, + * so we define our them below. + * No need to do anything here at the moment. + */ +} + +arch_initcall(setup_arch); #ifdef CONFIG_SYSCTL - sysctl_init(); +subsys_initcall(sysctl_init); #endif -} #include <data_proc_net.h> @@ -47,11 +52,11 @@ int xen_op_output(unsigned long op_code, struct proc_task *t) n = pt_get_nmemb(t); - printk("XEN OUT: op code %d, %d items\n", op_code, n); if (!n) goto exit; + printk("XEN OUT: op code %d, %d items t: %p\n", op_code, n, t); p = (unsigned int *) pt_get_data(t); if (!p) @@ -60,7 +65,7 @@ int xen_op_output(unsigned long op_code, struct proc_task *t) for (i = 0; i < n; i++) { - printk("\t%d\n", p[i]); + printk("XEN_OUT: \t%d\n", p[i]); } exit: @@ -88,12 +93,15 @@ void xen_new_input_task(size_t n) data[i] = i; - t = pt_create(data, n, 3, 0, seq++); + t = pt_create(data, n, 4, 0, seq++); + printk("\nT: %p\n", t); BUG_ON(!t); BUG_ON(pt_add_step(t, 0xdeadbeef, NULL)); - BUG_ON(pt_add_step(t, 0xdeadbee0, NULL)); + BUG_ON(pt_add_step(t, 0xb19b00b5, NULL)); +// BUG_ON(pt_add_step(t, 0xdeadbeef, NULL)); +// BUG_ON(pt_add_step(t, 0xb19b00b5, NULL)); xentium_input_task(t); } @@ -166,14 +174,16 @@ int main(void) xen_new_input_task(3); - xen_new_input_task(3); - xen_new_input_task(3); - - xentium_schedule_next(); - xentium_schedule_next(); - xentium_schedule_next(); - xentium_schedule_next(); - xentium_schedule_next(); + xen_new_input_task(10); +#if 0 + xen_new_input_task(20); + xen_new_input_task(30); +#endif + while (1) { + xentium_schedule_next(); + xentium_output_tasks(); + cpu_relax(); + } #endif