From 981d028c09d10ed867f2f955f58d60b753c64f29 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Fri, 8 Aug 2014 01:39:29 -0400 Subject: Do some kernel cleanup * Seal away private thread and kernel definitions and declarations into the internal headers in order to better hide internal structure. * Add a thread-common.c file that keeps shared functions together. List functions aren't messed with since that's about to be changed to different ones. * It is necessary to modify some ARM/PP stuff since GCC was complaining about constant pool distance and I would rather not force dump it. Just bl the cache calls in the startup and exit code and let it use veneers if it must. * Clean up redundant #includes in relevant areas and reorganize them. * Expunge useless and dangerous stuff like remove_thread(). Change-Id: I6e22932fad61a9fac30fd1363c071074ee7ab382 --- firmware/kernel/kernel-internal.h | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'firmware/kernel/kernel-internal.h') diff --git a/firmware/kernel/kernel-internal.h b/firmware/kernel/kernel-internal.h index 51c589ac8f..8f7e3e28cb 100644 --- a/firmware/kernel/kernel-internal.h +++ b/firmware/kernel/kernel-internal.h @@ -22,8 +22,8 @@ #ifndef KERNEL_INTERNAL_H #define KERNEL_INTERNAL_H -#include "config.h" -#include "debug.h" +#include "thread-internal.h" +#include "kernel.h" /* Make this nonzero to enable more elaborate checks on objects */ #if defined(DEBUG) || defined(SIMULATOR) @@ -45,5 +45,23 @@ #define KERNEL_ASSERT(exp, msg...) ({}) #endif +static inline void kernel_init(void) +{ + /* Init the threading API */ + extern void init_threads(void); + init_threads(); + + /* Other processors will not reach this point in a multicore build. + * In a single-core build with multiple cores they fall-through and + * sleep in cop_main without returning. */ + if (CURRENT_CORE == CPU) + { + init_queues(); + init_tick(); +#ifdef KDEV_INIT + kernel_device_init(); +#endif + } +} #endif /* KERNEL_INTERNAL_H */ -- cgit v1.2.3