Line data Source code
1 1 : /* 2 : * Copyright (c) 2017 Intel Corporation 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** 8 : * @file 9 : * @brief Per-arch thread definition 10 : * 11 : * This file contains definitions for 12 : * 13 : * struct _thread_arch 14 : * struct _callee_saved 15 : * 16 : * necessary to instantiate instances of struct k_thread. 17 : */ 18 : 19 : #ifndef ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ 20 : #define ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ 21 : 22 : /* 23 : * Reason a thread has relinquished control. 24 : */ 25 : #define _CAUSE_NONE 0 26 : #define _CAUSE_COOP 1 27 : #define _CAUSE_RIRQ 2 28 : #define _CAUSE_FIRQ 3 29 : 30 : #ifndef _ASMLANGUAGE 31 : #include <zephyr/types.h> 32 : 33 : #ifdef __cplusplus 34 : extern "C" { 35 : #endif 36 : 37 : struct _callee_saved { 38 : uintptr_t sp; /* r28 */ 39 : }; 40 : typedef struct _callee_saved _callee_saved_t; 41 : 42 : struct _thread_arch { 43 : 44 : /* one of the _CAUSE_xxxx definitions above */ 45 : int32_t relinquish_cause; 46 : 47 : #ifdef CONFIG_ARC_STACK_CHECKING 48 : /* High address of stack region, stack grows downward from this 49 : * location. Usesd for hardware stack checking 50 : */ 51 : uintptr_t k_stack_base; 52 : uintptr_t k_stack_top; 53 : #ifdef CONFIG_USERSPACE 54 : uintptr_t u_stack_base; 55 : uintptr_t u_stack_top; 56 : #endif 57 : #endif 58 : 59 : #ifdef CONFIG_USERSPACE 60 : uintptr_t priv_stack_start; 61 : #endif 62 : }; 63 : 64 : typedef struct _thread_arch _thread_arch_t; 65 : 66 : #ifdef __cplusplus 67 : } 68 : #endif 69 : 70 : #endif /* _ASMLANGUAGE */ 71 : 72 : 73 : #endif /* ZEPHYR_INCLUDE_ARCH_ARC_THREAD_H_ */