mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-10 10:25:22 +00:00
lib/ was starting to get messy and inconsitent. Files being either dumped in the root or in sub-directories without a clear plan. Move all library components into one single folder and call it 'os'. Signed-off-by: Anas Nashif <anas.nashif@intel.com>
46 lines
1022 B
C
46 lines
1022 B
C
/*
|
|
* Copyright (c) 2018 Intel Corporation
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* @file
|
|
* @brief Thread entry
|
|
*
|
|
* This file provides the common thread entry function
|
|
*/
|
|
|
|
#include <kernel.h>
|
|
|
|
/*
|
|
* Common thread entry point function (used by all threads)
|
|
*
|
|
* This routine invokes the actual thread entry point function and passes
|
|
* it three arguments. It also handles graceful termination of the thread
|
|
* if the entry point function ever returns.
|
|
*
|
|
* This routine does not return, and is marked as such so the compiler won't
|
|
* generate preamble code that is only used by functions that actually return.
|
|
*/
|
|
FUNC_NORETURN void _thread_entry(k_thread_entry_t entry,
|
|
void *p1, void *p2, void *p3)
|
|
{
|
|
entry(p1, p2, p3);
|
|
|
|
#ifdef CONFIG_MULTITHREADING
|
|
k_thread_abort(k_current_get());
|
|
#else
|
|
for (;;) {
|
|
k_cpu_idle();
|
|
}
|
|
#endif
|
|
|
|
/*
|
|
* Compiler can't tell that k_thread_abort() won't return and issues a
|
|
* warning unless we tell it that control never gets this far.
|
|
*/
|
|
|
|
CODE_UNREACHABLE;
|
|
}
|