From c0f9747c67ddcbe0d69aab241da3d70bf5847b90 Mon Sep 17 00:00:00 2001 From: Simon Pickartz Date: Thu, 18 Aug 2011 01:29:55 -0700 Subject: [PATCH] kernel task mail_ping no STDCALL any more --- arch/x86/scc/icc.c | 10 ++-------- kernel/init.c | 4 ++++ kernel/main.c | 3 +++ kernel/tests.c | 10 ++++++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/arch/x86/scc/icc.c b/arch/x86/scc/icc.c index bd0e3f9b..69473ecc 100644 --- a/arch/x86/scc/icc.c +++ b/arch/x86/scc/icc.c @@ -220,12 +220,7 @@ int icc_send_irq(int ue) int icc_halt(void) { - uint32_t flags; - - // iRCCE is not thread save => disable interrupts - flags = irq_nested_disable(); icc_mail_check(0); - irq_nested_enable(flags); NOP1; //HALT; @@ -235,7 +230,7 @@ int icc_halt(void) #define ROUNDS 1000 #define CORE_A 0 // sender -#define CORE_B 10 // receiver +#define CORE_B 11 // receiver int icc_send_gic_irq(int core_num) { @@ -360,7 +355,6 @@ int icc_mail_ping_irq( void ) { /* return if not core A */ if( my_ue != CORE_A ) return 0; - uint32_t flags; uint64_t timer = 0; int rem_rank = CORE_B; @@ -503,7 +497,7 @@ void icc_mail_check(int irq) icc_mail_check_tag(header); iRCCE_mail_release( &header ); } - + /* enable interrupts */ irq_nested_enable(flags); diff --git a/kernel/init.c b/kernel/init.c index a29807ac..5bf0fbac 100644 --- a/kernel/init.c +++ b/kernel/init.c @@ -217,9 +217,13 @@ static void list_root(void) { int initd(void* arg) { + kprintf("i1"); network_init(); + kprintf("i2"); list_root(); + kprintf("i3"); test_init(); + kprintf("i4"); return 0; } diff --git a/kernel/main.c b/kernel/main.c index 3e270d83..9df81676 100644 --- a/kernel/main.c +++ b/kernel/main.c @@ -83,13 +83,16 @@ int main(void) kprintf("Kernel starts at %p and ends at %p\n", &kernel_start, &kernel_end); system_calibration(); + kprintf("main3"); kprintf("Processor frequency: %u MHz\n", get_cpu_frequency()); kprintf("Total memory: %u MBytes\n", atomic_int32_read(&total_pages)/((1024*1024)/PAGE_SIZE)); kprintf("Current allocated memory: %u KBytes\n", atomic_int32_read(&total_allocated_pages)*(PAGE_SIZE/1024)); kprintf("Current available memory: %u MBytes\n", atomic_int32_read(&total_available_pages)/((1024*1024)/PAGE_SIZE)); sleep(5); + create_kernel_task(NULL, initd, NULL); + per_core(current_task)->time_slices = 0; // reset the number of time slices reschedule(); diff --git a/kernel/tests.c b/kernel/tests.c index 0ac4275d..8e593602 100644 --- a/kernel/tests.c +++ b/kernel/tests.c @@ -100,16 +100,17 @@ static int foo(void* arg) } #ifdef CONFIG_ROCKCREEK -int STDCALL mail_ping(void* arg) { +static int mail_ping(void* arg) { // icc_mail_ping(); icc_mail_ping_irq(); // icc_irq_ping(); - icc_halt(); - +// icc_halt(); + kprintf( "goodbye from mail_ping_task" ); return 0; } -int STDCALL mail_noise(void*arg) { + +static int STDCALL mail_noise(void*arg) { icc_mail_noise(); // generate noise in the mesh return 0; } @@ -289,5 +290,6 @@ int test_init(void) //sleep(5); //create_user_task(NULL, "/bin/client", client_argv); + kprintf( "####" ); return 0; }