diff options
author | Michael Sevakis <jethead71@rockbox.org> | 2014-08-08 01:39:29 -0400 |
---|---|---|
committer | Michael Sevakis <jethead71@rockbox.org> | 2014-08-08 01:59:59 -0400 |
commit | 981d028c09d10ed867f2f955f58d60b753c64f29 (patch) | |
tree | 0dab835a14c5cb3e740be4e46be93c42aec76bc5 /firmware/kernel/kernel-internal.h | |
parent | 53d9f2e6a7564e487bdac87f6e28c662e8407458 (diff) | |
download | rockbox-981d028c09d10ed867f2f955f58d60b753c64f29.tar.gz rockbox-981d028c09d10ed867f2f955f58d60b753c64f29.zip |
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
Diffstat (limited to 'firmware/kernel/kernel-internal.h')
-rw-r--r-- | firmware/kernel/kernel-internal.h | 22 |
1 files changed, 20 insertions, 2 deletions
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 @@ | |||
22 | #ifndef KERNEL_INTERNAL_H | 22 | #ifndef KERNEL_INTERNAL_H |
23 | #define KERNEL_INTERNAL_H | 23 | #define KERNEL_INTERNAL_H |
24 | 24 | ||
25 | #include "config.h" | 25 | #include "thread-internal.h" |
26 | #include "debug.h" | 26 | #include "kernel.h" |
27 | 27 | ||
28 | /* Make this nonzero to enable more elaborate checks on objects */ | 28 | /* Make this nonzero to enable more elaborate checks on objects */ |
29 | #if defined(DEBUG) || defined(SIMULATOR) | 29 | #if defined(DEBUG) || defined(SIMULATOR) |
@@ -45,5 +45,23 @@ | |||
45 | #define KERNEL_ASSERT(exp, msg...) ({}) | 45 | #define KERNEL_ASSERT(exp, msg...) ({}) |
46 | #endif | 46 | #endif |
47 | 47 | ||
48 | static inline void kernel_init(void) | ||
49 | { | ||
50 | /* Init the threading API */ | ||
51 | extern void init_threads(void); | ||
52 | init_threads(); | ||
53 | |||
54 | /* Other processors will not reach this point in a multicore build. | ||
55 | * In a single-core build with multiple cores they fall-through and | ||
56 | * sleep in cop_main without returning. */ | ||
57 | if (CURRENT_CORE == CPU) | ||
58 | { | ||
59 | init_queues(); | ||
60 | init_tick(); | ||
61 | #ifdef KDEV_INIT | ||
62 | kernel_device_init(); | ||
63 | #endif | ||
64 | } | ||
65 | } | ||
48 | 66 | ||
49 | #endif /* KERNEL_INTERNAL_H */ | 67 | #endif /* KERNEL_INTERNAL_H */ |