Implementing a new unwinder is a bit more involved than writing
a couple of helpers, so let's not lure the reader into a false
sense of comfort. Instead, let's point out what they should
call into, and what sort of parameter they need to provide.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Kalesh Singh <kaleshsingh@google.com>
Tested-by: Kalesh Singh <kaleshsingh@google.com>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20220727142906.1856759-7-maz@kernel.org
* To implement a new arm64 stack unwinder:
* 1) Include this header
*
* To implement a new arm64 stack unwinder:
* 1) Include this header
*
- * 2) Provide implementations for the following functions:
- * on_overflow_stack(): Returns true if SP is on the overflow
- * stack.
- * on_accessible_stack(): Returns true is SP is on any accessible
- * stack.
- * unwind_next(): Performs validation checks on the frame
- * pointer, and transitions unwind_state
- * to the next frame.
+ * 2) Call into unwind_next_common() from your top level unwind
+ * function, passing it the validation and translation callbacks
+ * (though the later can be NULL if no translation is required).
- * See: arch/arm64/include/asm/stacktrace.h for reference
- * implementations.
+ * See: arch/arm64/kernel/stacktrace.c for the reference implementation.
*
* Copyright (C) 2012 ARM Ltd.
*/
*
* Copyright (C) 2012 ARM Ltd.
*/