48 lines · 1.1 KB · C
RawDownload
/* SPDX-License-Identifier: GPL-2.0-only */#ifndef __ASM_STACKTRACE_FRAME_H#define __ASM_STACKTRACE_FRAME_H /* * - FRAME_META_TYPE_NONE * *   This value is reserved. * * - FRAME_META_TYPE_FINAL * *   The record is the last entry on the stack. *   Unwinding should terminate successfully. * * - FRAME_META_TYPE_PT_REGS * *   The record is embedded within a struct pt_regs, recording the registers at *   an arbitrary point in time. *   Unwinding should consume pt_regs::pc, followed by pt_regs::lr. * * Note: all other values are reserved and should result in unwinding * terminating with an error. */#define FRAME_META_TYPE_NONE		0#define FRAME_META_TYPE_FINAL		1#define FRAME_META_TYPE_PT_REGS		2 #ifndef __ASSEMBLER__/*  * A standard AAPCS64 frame record. */struct frame_record {	u64 fp;	u64 lr;}; /* * A metadata frame record indicating a special unwind. * The record::{fp,lr} fields must be zero to indicate the presence of * metadata. */struct frame_record_meta {	struct frame_record record;	u64 type;};#endif /* __ASSEMBLER__ */ #endif /* __ASM_STACKTRACE_FRAME_H */