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_ */
|