]> Git Repo - linux.git/blob - arch/arm64/include/asm/stacktrace/frame.h
Linux 6.14-rc3
[linux.git] / arch / arm64 / include / asm / stacktrace / frame.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef __ASM_STACKTRACE_FRAME_H
3 #define __ASM_STACKTRACE_FRAME_H
4
5 /*
6  * - FRAME_META_TYPE_NONE
7  *
8  *   This value is reserved.
9  *
10  * - FRAME_META_TYPE_FINAL
11  *
12  *   The record is the last entry on the stack.
13  *   Unwinding should terminate successfully.
14  *
15  * - FRAME_META_TYPE_PT_REGS
16  *
17  *   The record is embedded within a struct pt_regs, recording the registers at
18  *   an arbitrary point in time.
19  *   Unwinding should consume pt_regs::pc, followed by pt_regs::lr.
20  *
21  * Note: all other values are reserved and should result in unwinding
22  * terminating with an error.
23  */
24 #define FRAME_META_TYPE_NONE            0
25 #define FRAME_META_TYPE_FINAL           1
26 #define FRAME_META_TYPE_PT_REGS         2
27
28 #ifndef __ASSEMBLY__
29 /* 
30  * A standard AAPCS64 frame record.
31  */
32 struct frame_record {
33         u64 fp;
34         u64 lr;
35 };
36
37 /*
38  * A metadata frame record indicating a special unwind.
39  * The record::{fp,lr} fields must be zero to indicate the presence of
40  * metadata.
41  */
42 struct frame_record_meta {
43         struct frame_record record;
44         u64 type;
45 };
46 #endif /* __ASSEMBLY */
47
48 #endif /* __ASM_STACKTRACE_FRAME_H */
This page took 0.032362 seconds and 4 git commands to generate.