From fb64710410088ff90e82b6e44dee5b8051fc7adf Mon Sep 17 00:00:00 2001 From: Allan Stephens Date: Mon, 11 May 2015 16:19:10 -0400 Subject: [PATCH] Limit exposure of non-public microkernel APIs needed by sysgen Hides the existence of these routines from the microkernel's main public API include file, but allows both sysgen and the microkernel itself to continue accessing them. Change-Id: Iaf1beff81d045e9df29eb07517793e4b4410f51e Signed-off-by: Allan Stephens --- include/microkernel.h | 4 ---- include/microkernel/chan.h | 2 -- include/microkernel/entries.h | 10 ++++++++++ include/microkernel/mmap.h | 2 -- include/microkernel/pool.h | 2 -- include/microkernel/ticks.h | 2 -- kernel/microkernel/include/minik.h | 1 + scripts/sysgen.py | 1 + 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/include/microkernel.h b/include/microkernel.h index 8841fded55b..b6dbf896de6 100644 --- a/include/microkernel.h +++ b/include/microkernel.h @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -69,9 +68,6 @@ extern int task_offload_to_fiber(int (*)(), void *); typedef void (*taskstartfunction)(void); typedef void (*taskabortfunction)(void); -/* Miscellaneous */ -extern void kernel_init(void); - extern PFN_CHANNEL_RWT pKS_Channel_PutWT; extern PFN_CHANNEL_RWT pKS_Channel_GetWT; diff --git a/include/microkernel/chan.h b/include/microkernel/chan.h index b71d9407ed0..382ec2e6a7b 100644 --- a/include/microkernel/chan.h +++ b/include/microkernel/chan.h @@ -101,8 +101,6 @@ extern PFN_CHANNEL_RWT pKS_Channel_GetWT; /* maps to KS__ChannelGetWT /* base API functions */ -extern void _pipe_init(void); - extern int _task_pipe_put(kpipe_t id, void *pBuffer, int iNbrBytesToWrite, diff --git a/include/microkernel/entries.h b/include/microkernel/entries.h index b3d76186ace..ba41dbb4cd9 100644 --- a/include/microkernel/entries.h +++ b/include/microkernel/entries.h @@ -39,6 +39,16 @@ extern "C" { #endif +/* Non-public microkernel APIs referenced by kernel_main.c */ + +extern void _pipe_init(void); +extern void _mem_map_init(void); +extern void _mem_pools_init(void); +extern void kernel_init(void); +extern int kernel_idle(void); + +/* Format of routines invoked by microkernel server */ + typedef void (*kernelfunc)(struct k_args *); /* Jumptable entrypoints */ diff --git a/include/microkernel/mmap.h b/include/microkernel/mmap.h index 89ad5a7f2a1..d4557c19276 100644 --- a/include/microkernel/mmap.h +++ b/include/microkernel/mmap.h @@ -37,8 +37,6 @@ extern "C" { #endif -extern void _mem_map_init(void); - extern int task_mem_map_used_get(kmemory_map_t map); extern int _task_mem_map_alloc(kmemory_map_t mmap, void **mptr, int32_t time); extern void _task_mem_map_free(kmemory_map_t mmap, void **mptr); diff --git a/include/microkernel/pool.h b/include/microkernel/pool.h index 409456a4898..eb2d870e8aa 100644 --- a/include/microkernel/pool.h +++ b/include/microkernel/pool.h @@ -37,8 +37,6 @@ extern "C" { #endif -extern void _mem_pools_init(void); - extern int _task_mem_pool_alloc(struct k_block *B, kmemory_pool_t pid, int size, int32_t time); extern void task_mem_pool_free(struct k_block *bl); diff --git a/include/microkernel/ticks.h b/include/microkernel/ticks.h index 5d554e0feb9..6d5e7a4a208 100644 --- a/include/microkernel/ticks.h +++ b/include/microkernel/ticks.h @@ -72,8 +72,6 @@ extern void task_sleep(int32_t ticks); extern int task_workload_get(void); extern void workload_time_slice_set(int32_t t); -extern int kernel_idle(void); - #define isr_cycle_get_32() task_cycle_get_32() #define isr_tick_get_32() task_tick_get_32() #define isr_tick_get() task_tick_get() diff --git a/kernel/microkernel/include/minik.h b/kernel/microkernel/include/minik.h index abd9e432b1d..fd6905603b4 100644 --- a/kernel/microkernel/include/minik.h +++ b/kernel/microkernel/include/minik.h @@ -34,6 +34,7 @@ #define MINIK_H #include +#include #include #define KERNEL_ENTRY(A) _k_task_call(A) diff --git a/scripts/sysgen.py b/scripts/sysgen.py index 291f8a6b6e6..4469226872c 100755 --- a/scripts/sysgen.py +++ b/scripts/sysgen.py @@ -303,6 +303,7 @@ def kernel_main_c_header(): do_not_edit_warning + "\n" + "#include \n" + + "#include \n" + "#include \n" + "#include \n" + "#include \n")