diff options
| author | Mark Johnston <markj@FreeBSD.org> | 2026-02-17 17:37:42 +0000 |
|---|---|---|
| committer | Mark Johnston <markj@FreeBSD.org> | 2026-03-31 15:57:28 +0000 |
| commit | 00412df3265ecaf52482b46883fe7cf74c8de22f (patch) | |
| tree | d054867ce7950c935ed284ada6b626cc3f71ea77 | |
| parent | 6bdeab19034539668cdd610c7dcbdec01c58c642 (diff) | |
dtrace: Implement ustackdepth for arm64
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D52475
(cherry picked from commit afd64316c869eb00dde4d6b4af61bca0cb2197f1)
| -rw-r--r-- | sys/cddl/dev/dtrace/aarch64/dtrace_isa.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c index ff0e068006bd..037d4734659e 100644 --- a/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c +++ b/sys/cddl/dev/dtrace/aarch64/dtrace_isa.c @@ -228,10 +228,22 @@ zero: int dtrace_getustackdepth(void) { + proc_t *p = curproc; + struct trapframe *tf; + uintptr_t pc, fp; + int n = 0; - printf("IMPLEMENT ME: %s\n", __func__); + if (p == NULL || (tf = curthread->td_frame) == NULL) + return (0); + + if (DTRACE_CPUFLAG_ISSET(CPU_DTRACE_FAULT)) + return (-1); + + pc = tf->tf_elr; + fp = tf->tf_x[29]; + n += dtrace_getustack_common(NULL, 0, pc, fp); - return (0); + return (n); } void |
