[DTrace-devel] [PATCH 6/9] Move some ustack code closer to stack code to prepare for consolidation
eugene.loh at oracle.com
eugene.loh at oracle.com
Thu Oct 5 21:14:04 UTC 2023
From: Eugene Loh <eugene.loh at oracle.com>
Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
---
libdtrace/dt_cg.c | 72 +++++++++++++++++++++++------------------------
1 file changed, 36 insertions(+), 36 deletions(-)
diff --git a/libdtrace/dt_cg.c b/libdtrace/dt_cg.c
index 389e4dba..6cae8814 100644
--- a/libdtrace/dt_cg.c
+++ b/libdtrace/dt_cg.c
@@ -2189,6 +2189,42 @@ dt_cg_stack_nframes(dtrace_hdl_t *dtp, dt_node_t *dnp)
return nframes;
}
+static uint64_t
+dt_cg_ustack_arg(dtrace_hdl_t *dtp, dt_node_t *dnp)
+{
+ int nframes = dtp->dt_options[DTRACEOPT_USTACKFRAMES];
+ int strsize = 0;
+ dt_node_t *arg0 = dnp->dn_args;
+ dt_node_t *arg1 = arg0 != NULL ? arg0->dn_list : NULL;
+
+ if (nframes == DTRACEOPT_UNSET)
+ nframes = _dtrace_ustackframes;
+
+ if (arg0 != NULL) {
+ if (!dt_node_is_posconst(arg0))
+ dnerror(arg0, D_USTACK_FRAMES, "ustack( ) argument #1 "
+ "must be a non-zero positive integer "
+ "constant\n");
+
+ nframes = arg0->dn_value;
+ }
+
+ if (nframes > dtp->dt_options[DTRACEOPT_MAXFRAMES])
+ nframes = dtp->dt_options[DTRACEOPT_MAXFRAMES];
+
+ if (arg1 != NULL) {
+ if (arg1->dn_kind != DT_NODE_INT ||
+ ((arg1->dn_flags & DT_NF_SIGNED) &&
+ (int64_t)arg1->dn_value < 0))
+ dnerror(arg1, D_USTACK_STRSIZE, "ustack( ) argument #2 "
+ "must be a positive integer constant\n");
+
+ strsize = arg1->dn_value;
+ }
+
+ return DTRACE_USTACK_ARG(nframes, strsize);
+}
+
static void
dt_cg_act_stack(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
{
@@ -2378,42 +2414,6 @@ dt_cg_act_trunc(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
dt_cg_store_val(pcb, trunc, DTRACEACT_LIBACT, NULL, DT_ACT_TRUNC);
}
-static uint64_t
-dt_cg_ustack_arg(dtrace_hdl_t *dtp, dt_node_t *dnp)
-{
- int nframes = dtp->dt_options[DTRACEOPT_USTACKFRAMES];
- int strsize = 0;
- dt_node_t *arg0 = dnp->dn_args;
- dt_node_t *arg1 = arg0 != NULL ? arg0->dn_list : NULL;
-
- if (nframes == DTRACEOPT_UNSET)
- nframes = _dtrace_ustackframes;
-
- if (arg0 != NULL) {
- if (!dt_node_is_posconst(arg0))
- dnerror(arg0, D_USTACK_FRAMES, "ustack( ) argument #1 "
- "must be a non-zero positive integer "
- "constant\n");
-
- nframes = arg0->dn_value;
- }
-
- if (nframes > dtp->dt_options[DTRACEOPT_MAXFRAMES])
- nframes = dtp->dt_options[DTRACEOPT_MAXFRAMES];
-
- if (arg1 != NULL) {
- if (arg1->dn_kind != DT_NODE_INT ||
- ((arg1->dn_flags & DT_NF_SIGNED) &&
- (int64_t)arg1->dn_value < 0))
- dnerror(arg1, D_USTACK_STRSIZE, "ustack( ) argument #2 "
- "must be a positive integer constant\n");
-
- strsize = arg1->dn_value;
- }
-
- return DTRACE_USTACK_ARG(nframes, strsize);
-}
-
static void
dt_cg_act_ustack(dt_pcb_t *pcb, dt_node_t *dnp, dtrace_actkind_t kind)
{
--
2.18.4
More information about the DTrace-devel
mailing list