diff --git a/core/include/arch/thread_arch.h b/core/include/arch/thread_arch.h index 38cba2c79c..7551447833 100644 --- a/core/include/arch/thread_arch.h +++ b/core/include/arch/thread_arch.h @@ -25,6 +25,7 @@ extern "C" { #endif +#include "kernel_internal.h" /** * @name Define the mapping between the architecture independent interfaces * and the kernel internal interfaces @@ -52,7 +53,7 @@ * * @return pointer to the new top of the stack */ -char *thread_arch_stack_init(void *(*function)(void *arg), void *arg, void *stack_start, int stack_size); +char *thread_arch_stack_init(thread_task_func_t task_func, void *arg, void *stack_start, int stack_size); /** * @brief Print the current stack to stdout diff --git a/core/include/thread.h b/core/include/thread.h index e255bfd8dd..1c26faf2c5 100644 --- a/core/include/thread.h +++ b/core/include/thread.h @@ -79,7 +79,7 @@ kernel_pid_t thread_create(char *stack, int stacksize, char priority, int flags, - void *(*function)(void *arg), + thread_task_func_t task_func, void *arg, const char *name); diff --git a/core/thread.c b/core/thread.c index 91f9c88226..e27ae97c27 100644 --- a/core/thread.c +++ b/core/thread.c @@ -105,7 +105,7 @@ uintptr_t thread_measure_stack_free(char *stack) } #endif -kernel_pid_t thread_create(char *stack, int stacksize, char priority, int flags, void *(*function)(void *arg), void *arg, const char *name) +kernel_pid_t thread_create(char *stack, int stacksize, char priority, int flags, thread_task_func_t function, void *arg, const char *name) { if (priority >= SCHED_PRIO_LEVELS) { return -EINVAL; diff --git a/cpu/atmega_common/thread_arch.c b/cpu/atmega_common/thread_arch.c index e19dc5927c..4afa21c907 100644 --- a/cpu/atmega_common/thread_arch.c +++ b/cpu/atmega_common/thread_arch.c @@ -67,8 +67,8 @@ static void __enter_thread_mode(void); * it inside of the programm counter of the MCU. * if task_func returns sched_task_exit gets popped into the PC */ -char *thread_arch_stack_init(void *(*task_func)(void *), void *arg, void *stack_start, - int stack_size) +char *thread_arch_stack_init(thread_task_func_t task_func, void *arg, + void *stack_start, int stack_size) { uint16_t tmp_adress; uint8_t *stk; diff --git a/cpu/cortex-m0_common/thread_arch.c b/cpu/cortex-m0_common/thread_arch.c index 8508e376bd..32535ecf59 100644 --- a/cpu/cortex-m0_common/thread_arch.c +++ b/cpu/cortex-m0_common/thread_arch.c @@ -60,7 +60,7 @@ static void context_restore(void); * lowest address highest address * */ -char *thread_arch_stack_init(void *(*task_func)(void *), +char *thread_arch_stack_init(thread_task_func_t task_func, void *arg, void *stack_start, int stack_size) diff --git a/cpu/cortex-m3_common/thread_arch.c b/cpu/cortex-m3_common/thread_arch.c index c1be4b82b7..b779e9a3fb 100644 --- a/cpu/cortex-m3_common/thread_arch.c +++ b/cpu/cortex-m3_common/thread_arch.c @@ -54,7 +54,7 @@ static void context_restore(void) NORETURN; * -------------------------------------- * */ -char *thread_arch_stack_init(void *(*task_func)(void *), void *arg, void *stack_start, int stack_size) +char *thread_arch_stack_init(thread_task_func_t task_func, void *arg, void *stack_start, int stack_size) { uint32_t *stk; stk = (uint32_t *)((uintptr_t)stack_start + stack_size); diff --git a/cpu/cortex-m4_common/thread_arch.c b/cpu/cortex-m4_common/thread_arch.c index 5ad517c0a5..2ad0989181 100644 --- a/cpu/cortex-m4_common/thread_arch.c +++ b/cpu/cortex-m4_common/thread_arch.c @@ -57,7 +57,7 @@ * -------------------------------------- * */ -char *thread_arch_stack_init(void *(*task_func)(void *), +char *thread_arch_stack_init(thread_task_func_t task_func, void *arg, void *stack_start, int stack_size)