[DTrace-devel] [PATCH 2/7] Implement the sched provider
Eugene Loh
eugene.loh at oracle.com
Sun May 14 23:45:01 UTC 2023
Sorry, another question:
On 5/9/23 18:29, Kris Van Hees via DTrace-devel wrote:
> +static int probe_info(dtrace_hdl_t *dtp, const dt_probe_t *prp,
> + int *argcp, dt_argdesc_t **argvp)
> +{
> + int i;
> + int pidx = -1;
> + int argc = 0;
> + dt_argdesc_t *argv = NULL;
> +
> + for (i = 0; i < ARRAY_SIZE(probe_args); i++) {
> + probe_arg_t *arg = &probe_args[i];
> +
> + if (strcmp(arg->name, prp->desc->prb) == 0) {
> + if (pidx == -1) {
> + pidx = i;
> +
> + if (arg->argdesc.native == NULL)
> + break;
What is the argdest.native check all about? Is it necessary for
correctness? A vestigial check? An attempt to optimize (short-circuit
the loop)?
> + }
> +
> + argc++;
> + }
> + }
> +
> + if (argc == 0)
> + goto done;
> +
> + argv = dt_zalloc(dtp, argc * sizeof(dt_argdesc_t));
> + if (!argv)
> + return -ENOMEM;
> +
> + for (i = pidx; i < pidx + argc; i++) {
> + probe_arg_t *arg = &probe_args[i];
> +
> + argv[arg->argno] = arg->argdesc;
> + }
> +
> +done:
> + *argcp = argc;
> + *argvp = argv;
> +
> + return 0;
> +}
More information about the DTrace-devel
mailing list