Zephyr Project API  3.3.0
A Scalable Open Source RTOS
thread.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019 Carlo Caione <ccaione@baylibre.com>
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
19#ifndef ZEPHYR_INCLUDE_ARCH_ARM64_THREAD_H_
20#define ZEPHYR_INCLUDE_ARCH_ARM64_THREAD_H_
21
22#ifndef _ASMLANGUAGE
23#include <zephyr/types.h>
24
25struct _callee_saved {
26 uint64_t x19;
27 uint64_t x20;
28 uint64_t x21;
29 uint64_t x22;
30 uint64_t x23;
31 uint64_t x24;
32 uint64_t x25;
33 uint64_t x26;
34 uint64_t x27;
35 uint64_t x28;
36 uint64_t x29;
37 uint64_t sp_el0;
38 uint64_t sp_elx;
39 uint64_t lr;
40};
41
42typedef struct _callee_saved _callee_saved_t;
43
44struct z_arm64_fp_context {
45 __int128 q0, q1, q2, q3, q4, q5, q6, q7;
46 __int128 q8, q9, q10, q11, q12, q13, q14, q15;
47 __int128 q16, q17, q18, q19, q20, q21, q22, q23;
48 __int128 q24, q25, q26, q27, q28, q29, q30, q31;
49 uint32_t fpsr, fpcr;
50};
51
52struct _thread_arch {
53#if defined(CONFIG_USERSPACE) && defined(CONFIG_ARM_MMU)
54 struct arm_mmu_ptables *ptables;
55#endif
56#ifdef CONFIG_FPU_SHARING
57 struct z_arm64_fp_context saved_fp_context;
58#endif
59 uint8_t exception_depth;
60};
61
62typedef struct _thread_arch _thread_arch_t;
63
64#endif /* _ASMLANGUAGE */
65
66#endif /* ZEPHYR_INCLUDE_ARCH_ARM64_THREAD_H_ */
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__UINT64_TYPE__ uint64_t
Definition: stdint.h:91
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
Definition: arm_mmu.h:188