summaryrefslogtreecommitdiffstats
path: root/cddl
diff options
context:
space:
mode:
authorjb <jb@FreeBSD.org>2008-04-26 04:20:11 +0000
committerjb <jb@FreeBSD.org>2008-04-26 04:20:11 +0000
commit2879d0ed4fa0f226ae68dea662ff5926788ec911 (patch)
tree3e5df335609408f6a66effc4995ac04ea00ba4a3 /cddl
parent37e61e49bf4269676ebfdd8c7164620c8f19659d (diff)
downloadFreeBSD-src-2879d0ed4fa0f226ae68dea662ff5926788ec911.zip
FreeBSD-src-2879d0ed4fa0f226ae68dea662ff5926788ec911.tar.gz
Handle the different level of indirection between ioctl on SYSV vs BSD.
Diffstat (limited to 'cddl')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c
index 8497dab..1785668 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_program.c
@@ -32,7 +32,9 @@
#include <errno.h>
#include <assert.h>
#include <ctype.h>
+#if defined(sun)
#include <alloca.h>
+#endif
#include <dt_impl.h>
#include <dt_program.h>
@@ -151,6 +153,7 @@ int
dtrace_program_exec(dtrace_hdl_t *dtp, dtrace_prog_t *pgp,
dtrace_proginfo_t *pip)
{
+ dtrace_enable_io_t args;
void *dof;
int n, err;
@@ -159,7 +162,9 @@ dtrace_program_exec(dtrace_hdl_t *dtp, dtrace_prog_t *pgp,
if ((dof = dtrace_dof_create(dtp, pgp, DTRACE_D_STRIP)) == NULL)
return (-1);
- n = dt_ioctl(dtp, DTRACEIOC_ENABLE, dof);
+ args.dof = dof;
+ args.n_matched = 0;
+ n = dt_ioctl(dtp, DTRACEIOC_ENABLE, &args);
dtrace_dof_destroy(dtp, dof);
if (n == -1) {
@@ -181,7 +186,7 @@ dtrace_program_exec(dtrace_hdl_t *dtp, dtrace_prog_t *pgp,
}
if (pip != NULL)
- pip->dpi_matches += n;
+ pip->dpi_matches += args.n_matched;
return (0);
}
OpenPOWER on IntegriCloud