diff --git a/headers/private/kernel/commpage.h b/headers/private/kernel/commpage.h index 2840058235..b30f82a4cb 100644 --- a/headers/private/kernel/commpage.h +++ b/headers/private/kernel/commpage.h @@ -16,12 +16,14 @@ extern "C" { #endif status_t commpage_init(void); +status_t commpage_init_post_cpus(void); void* allocate_commpage_entry(int entry, size_t size); void* fill_commpage_entry(int entry, const void* copyFrom, size_t size); image_id get_commpage_image(); +// implemented in the architecture specific part status_t arch_commpage_init(void); - // implemented in the architecture specific part +status_t arch_commpage_init_post_cpus(void); #ifdef __cplusplus } // extern "C" diff --git a/src/system/kernel/arch/m68k/arch_commpage.cpp b/src/system/kernel/arch/m68k/arch_commpage.cpp index 8398d67ff9..ba9d3ed5e0 100644 --- a/src/system/kernel/arch/m68k/arch_commpage.cpp +++ b/src/system/kernel/arch/m68k/arch_commpage.cpp @@ -3,7 +3,6 @@ * Distributed under the terms of the MIT License. */ - #include #include @@ -15,7 +14,6 @@ #include - status_t arch_commpage_init(void) { @@ -27,3 +25,9 @@ arch_commpage_init(void) return B_OK; } + +status_t +arch_commpage_init_post_cpus(void) +{ + return B_OK; +} diff --git a/src/system/kernel/arch/ppc/arch_commpage.cpp b/src/system/kernel/arch/ppc/arch_commpage.cpp index 049e16dc74..c3ed804dfa 100644 --- a/src/system/kernel/arch/ppc/arch_commpage.cpp +++ b/src/system/kernel/arch/ppc/arch_commpage.cpp @@ -3,7 +3,6 @@ * Distributed under the terms of the MIT License. */ - #include #include @@ -14,8 +13,6 @@ #include - - status_t arch_commpage_init(void) { @@ -24,3 +21,9 @@ arch_commpage_init(void) return B_OK; } + +status_t +arch_commpage_init_post_cpus(void) +{ + return B_OK; +} diff --git a/src/system/kernel/arch/x86/arch_commpage.cpp b/src/system/kernel/arch/x86/arch_commpage.cpp index 908542076b..8b08e81388 100644 --- a/src/system/kernel/arch/x86/arch_commpage.cpp +++ b/src/system/kernel/arch/x86/arch_commpage.cpp @@ -1,4 +1,5 @@ /* + * Copyright 2008-2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Copyright 2007, Travis Geiselbrecht. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -103,10 +104,16 @@ initialize_commpage_syscall(void) status_t arch_commpage_init(void) +{ + return B_OK; +} + + +status_t +arch_commpage_init_post_cpus(void) { // select the optimum syscall mechanism and patch the commpage initialize_commpage_syscall(); return B_OK; } - diff --git a/src/system/kernel/commpage.cpp b/src/system/kernel/commpage.cpp index 4ed533dd6b..ec62e277c0 100644 --- a/src/system/kernel/commpage.cpp +++ b/src/system/kernel/commpage.cpp @@ -89,3 +89,9 @@ commpage_init(void) return B_OK; } + +status_t +commpage_init_post_cpus(void) +{ + return arch_commpage_init_post_cpus(); +} diff --git a/src/system/kernel/main.cpp b/src/system/kernel/main.cpp index 447d87e774..47be6177bf 100644 --- a/src/system/kernel/main.cpp +++ b/src/system/kernel/main.cpp @@ -249,6 +249,8 @@ main2(void *unused) boot_splash_init(sKernelArgs.boot_splash); + commpage_init_post_cpus(); + TRACE("Init modules\n"); boot_splash_set_stage(BOOT_SPLASH_STAGE_1_INIT_MODULES); module_init_post_threads();