Line data Source code
1 1 : /* 2 : * Copyright (c) 2019 Carlo Caione <ccaione@baylibre.com> 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : /** 8 : * @file 9 : * @brief Cortex-A public exception handling 10 : * 11 : * ARM-specific kernel exception handling interface. Included by arm64/arch.h. 12 : */ 13 : 14 : #ifndef ZEPHYR_INCLUDE_ARCH_ARM64_EXCEPTION_H_ 15 : #define ZEPHYR_INCLUDE_ARCH_ARM64_EXCEPTION_H_ 16 : 17 : /* for assembler, only works with constants */ 18 : 19 : #ifdef _ASMLANGUAGE 20 : #else 21 : #include <zephyr/types.h> 22 : 23 : #ifdef __cplusplus 24 : extern "C" { 25 : #endif 26 : 27 : struct arch_esf { 28 0 : uint64_t x0; 29 0 : uint64_t x1; 30 0 : uint64_t x2; 31 0 : uint64_t x3; 32 0 : uint64_t x4; 33 0 : uint64_t x5; 34 0 : uint64_t x6; 35 0 : uint64_t x7; 36 0 : uint64_t x8; 37 0 : uint64_t x9; 38 0 : uint64_t x10; 39 0 : uint64_t x11; 40 0 : uint64_t x12; 41 0 : uint64_t x13; 42 0 : uint64_t x14; 43 0 : uint64_t x15; 44 0 : uint64_t x16; 45 0 : uint64_t x17; 46 0 : uint64_t x18; 47 0 : uint64_t lr; 48 0 : uint64_t spsr; 49 0 : uint64_t elr; 50 : #ifdef CONFIG_FRAME_POINTER 51 : uint64_t fp; 52 : #endif 53 : #ifdef CONFIG_ARM64_SAFE_EXCEPTION_STACK 54 : uint64_t sp; 55 : #endif 56 : } __aligned(16); 57 : 58 : #ifdef __cplusplus 59 : } 60 : #endif 61 : 62 : #endif /* _ASMLANGUAGE */ 63 : 64 : #endif /* ZEPHYR_INCLUDE_ARCH_ARM64_EXCEPTION_H_ */