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_EXC_H_ 15 #define ZEPHYR_INCLUDE_ARCH_ARM64_EXC_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 __esf { 28 uint64_t x0; 29 uint64_t x1; 30 uint64_t x2; 31 uint64_t x3; 32 uint64_t x4; 33 uint64_t x5; 34 uint64_t x6; 35 uint64_t x7; 36 uint64_t x8; 37 uint64_t x9; 38 uint64_t x10; 39 uint64_t x11; 40 uint64_t x12; 41 uint64_t x13; 42 uint64_t x14; 43 uint64_t x15; 44 uint64_t x16; 45 uint64_t x17; 46 uint64_t x18; 47 uint64_t x30; 48 uint64_t spsr; 49 uint64_t elr; 50 } __aligned(16); 51 52 typedef struct __esf z_arch_esf_t; 53 54 #ifdef __cplusplus 55 } 56 #endif 57 58 #endif /* _ASMLANGUAGE */ 59 60 #endif /* ZEPHYR_INCLUDE_ARCH_ARM64_EXC_H_ */ 61