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_NIOS2_THREAD_H_ 20 : #define ZEPHYR_INCLUDE_ARCH_NIOS2_THREAD_H_ 21 : 22 : #ifndef _ASMLANGUAGE 23 : #include <zephyr/types.h> 24 : 25 : struct _callee_saved { 26 : /* General purpose callee-saved registers */ 27 : uint32_t r16; 28 : uint32_t r17; 29 : uint32_t r18; 30 : uint32_t r19; 31 : uint32_t r20; 32 : uint32_t r21; 33 : uint32_t r22; 34 : uint32_t r23; 35 : 36 : /* Normally used for the frame pointer but also a general purpose 37 : * register if frame pointers omitted 38 : */ 39 : uint32_t r28; 40 : 41 : /* Return address */ 42 : uint32_t ra; 43 : 44 : /* Stack pointer */ 45 : uint32_t sp; 46 : 47 : /* IRQ status before irq_lock() and call to z_swap() */ 48 : uint32_t key; 49 : 50 : /* Return value of z_swap() */ 51 : uint32_t retval; 52 : }; 53 : 54 : typedef struct _callee_saved _callee_saved_t; 55 : 56 : struct _thread_arch { 57 : /* nothing for now */ 58 : }; 59 : 60 : typedef struct _thread_arch _thread_arch_t; 61 : 62 : #endif /* _ASMLANGUAGE */ 63 : 64 : #endif /* ZEPHYR_INCLUDE_ARCH_NIOS2_THREAD_H_ */