/* * Copyright (c) 2017 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ /** * @file * @brief Per-arch thread definition * * This file contains definitions for * * struct _thread_arch * struct _callee_saved * * necessary to instantiate instances of struct k_thread. */ #ifndef ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ #define ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ /* * Reason a thread has relinquished control. */ #define _CAUSE_NONE 0 #define _CAUSE_COOP 1 #define _CAUSE_RIRQ 2 #define _CAUSE_FIRQ 3 #ifndef _ASMLANGUAGE #include #ifdef __cplusplus extern "C" { #endif struct _callee_saved { uintptr_t sp; /* r28 */ }; typedef struct _callee_saved _callee_saved_t; struct _thread_arch { /* one of the _CAUSE_xxxx definitions above */ int32_t relinquish_cause; #ifdef CONFIG_ARC_STACK_CHECKING /* High address of stack region, stack grows downward from this * location. Usesd for hardware stack checking */ uintptr_t k_stack_base; uintptr_t k_stack_top; #ifdef CONFIG_USERSPACE uintptr_t u_stack_base; uintptr_t u_stack_top; #endif #endif #ifdef CONFIG_USERSPACE uintptr_t priv_stack_start; #endif }; typedef struct _thread_arch _thread_arch_t; #ifdef __cplusplus } #endif #endif /* _ASMLANGUAGE */ #endif /* ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ */