Zephyr Project API 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
structs.h
Go to the documentation of this file.
1/*
2 * Copyright (c) BayLibre SAS
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_ARCH_ARM64_STRUCTS_H_
8#define ZEPHYR_INCLUDE_ARCH_ARM64_STRUCTS_H_
9
10/* Per CPU architecture specifics */
11struct _cpu_arch {
12#ifdef CONFIG_FPU_SHARING
13 atomic_ptr_val_t fpu_owner;
14#endif
15#ifdef CONFIG_ARM64_SAFE_EXCEPTION_STACK
16 uint64_t safe_exception_stack;
17 uint64_t current_stack_limit;
18 /* Saved the corrupted stack pointer when stack overflow, else 0 */
19 uint64_t corrupted_sp;
20#endif
21#if !defined(CONFIG_FPU_SHARING) && !defined(CONFIG_ARM64_SAFE_EXCEPTION_STACK) && \
22 defined(__cplusplus)
23 /* This struct will have a size 0 in C which is not allowed in C++ (it'll have a size 1). To
24 * prevent this, we add a 1 byte dummy variable.
25 */
26 uint8_t dummy;
27#endif
28};
29
30#endif /* ZEPHYR_INCLUDE_ARCH_ARM64_STRUCTS_H_ */
atomic_ptr_t atomic_ptr_val_t
Value type for atomic pointer variables.
Definition atomic_types.h:53
__UINT64_TYPE__ uint64_t
Definition stdint.h:91
__UINT8_TYPE__ uint8_t
Definition stdint.h:88