Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 25 Apr 2006 20:52:32 GMT
From:      John Birrell <jb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 96105 for review
Message-ID:  <200604252052.k3PKqWPe069557@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=96105

Change 96105 by jb@jb_freebsd2 on 2006/04/25 20:51:33

	SysV -> BSD style ioctl for DOFGET.

Affected files ...

.. //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_options.c#3 edit
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#7 edit
.. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#9 edit

Differences ...

==== //depot/projects/dtrace/src/contrib/opensolaris/lib/libdtrace/common/dt_options.c#3 (text) ====

@@ -788,7 +788,12 @@
 	bzero(&hdr, sizeof (dof_hdr_t));
 	hdr.dofh_loadsz = sizeof (dof_hdr_t);
 
+#if defined(sun)
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &hdr) == -1)
+#else
+	dof = &hdr;
+	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &dof) == -1)
+#endif
 		return (dt_set_errno(dtp, errno));
 
 	if (hdr.dofh_loadsz < sizeof (dof_hdr_t))
@@ -801,7 +806,11 @@
 	for (i = 0; i < DTRACEOPT_MAX; i++)
 		dtp->dt_options[i] = DTRACEOPT_UNSET;
 
+#if defined(sun)
 	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, dof) == -1)
+#else
+	if (dt_ioctl(dtp, DTRACEIOC_DOFGET, &dof) == -1)
+#endif
 		return (dt_set_errno(dtp, errno));
 
 	for (i = 0; i < dof->dofh_secnum; i++) {

==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_ioctl.c#7 (text+ko) ====

@@ -287,15 +287,13 @@
 
 		return (0);
 	}
-	case DTRACEIOC_DOFGET:
-printf("DTRACEIOC_DOFGET:\n");
-error = EINVAL;
-#ifdef DOODAD
-	{
-		dof_hdr_t hdr, *dof;
+	case DTRACEIOC_DOFGET: {
+		dof_hdr_t **pdof = (dof_hdr_t **) addr;
+		dof_hdr_t hdr, *dof = *pdof;
+		int rval;
 		uint64_t len;
 
-		if (copyin((void *)arg, &hdr, sizeof (hdr)) != 0)
+		if (copyin((void *)dof, &hdr, sizeof (hdr)) != 0)
 			return (EFAULT);
 
 		mutex_enter(&dtrace_lock);
@@ -303,13 +301,11 @@
 		mutex_exit(&dtrace_lock);
 
 		len = MIN(hdr.dofh_loadsz, dof->dofh_loadsz);
-		rval = copyout(dof, (void *)arg, len);
+		rval = copyout(dof, (void *) *pdof, len);
 		dtrace_dof_destroy(dof);
 
 		return (rval == 0 ? 0 : EFAULT);
 	}
-#endif
-		break;
 	case DTRACEIOC_ENABLE: {
 		dof_hdr_t *dof = NULL;
 		dtrace_enabling_t *enab = NULL;

==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/sys/dtrace.h#9 (text) ====

@@ -1221,7 +1221,8 @@
 #define	DTRACEIOC_STOP		_IO('x',13)		/* stop tracing */
 #define	DTRACEIOC_AGGDESC	_IO('x',15)		/* get agg. desc. */
 #define	DTRACEIOC_FORMAT	_IO('x',16)		/* get format str */
-#define	DTRACEIOC_DOFGET	_IO('x',17)		/* get DOF */
+#define	DTRACEIOC_DOFGET	_IOW('x',17,dof_hdr_t *)
+							/* get DOF */
 #define	DTRACEIOC_REPLICATE	_IO('x',18)		/* replicate enab */
 #endif
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200604252052.k3PKqWPe069557>