Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Mar 2008 20:17:28 GMT
From:      John Birrell <jb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 138378 for review
Message-ID:  <200803232017.m2NKHSut092669@repoman.freebsd.org>

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

Change 138378 by jb@jb_freebsd1 on 2008/03/23 20:17:10

	Implement the in_addr and in6_addr SIF subrs.

Affected files ...

.. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#43 edit

Differences ...

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

@@ -118,6 +118,7 @@
 #include <sys/malloc.h>
 #include <sys/sysctl.h>
 #include <sys/dtrace_bsd.h>
+#include <netinet/in.h>
 #include "dtrace_cddl.h"
 #include "dtrace_debug.c"
 #endif
@@ -272,6 +273,7 @@
 
 #define cr_suid		cr_svuid
 #define cr_sgid		cr_svgid
+#define	ipaddr_t	in_addr_t
 #define mod_modname	pathname
 #define vuprintf	vprintf
 #define ttoproc(_a)	((_a)->td_proc)
@@ -4403,8 +4405,6 @@
 	case DIF_SUBR_INET_NTOA:
 	case DIF_SUBR_INET_NTOA6:
 	case DIF_SUBR_INET_NTOP: {
-printf("%s(%d): DOODAD\n",__func__,__LINE__);
-#ifdef DOODAD
 		size_t size;
 		int af, argi, i;
 		char *base, *end;
@@ -4502,14 +4502,22 @@
 			tryzero = -1;
 			numzero = 1;
 			for (i = 0; i < sizeof (struct in6_addr); i++) {
+#if defined(sun)
 				if (ip6._S6_un._S6_u8[i] == 0 &&
+#else
+				if (ip6.__u6_addr.__u6_addr8[i] == 0 &&
+#endif
 				    tryzero == -1 && i % 2 == 0) {
 					tryzero = i;
 					continue;
 				}
 
 				if (tryzero != -1 &&
+#if defined(sun)
 				    (ip6._S6_un._S6_u8[i] != 0 ||
+#else
+				    (ip6.__u6_addr.__u6_addr8[i] != 0 ||
+#endif
 				    i == sizeof (struct in6_addr) - 1)) {
 
 					if (i - tryzero <= numzero) {
@@ -4521,7 +4529,11 @@
 					numzero = i - i % 2 - tryzero;
 					tryzero = -1;
 
+#if defined(sun)
 					if (ip6._S6_un._S6_u8[i] == 0 &&
+#else
+					if (ip6.__u6_addr.__u6_addr8[i] == 0 &&
+#endif
 					    i == sizeof (struct in6_addr) - 1)
 						numzero += 2;
 				}
@@ -4538,7 +4550,11 @@
 				    i >= DTRACE_V4MAPPED_OFFSET; i--) {
 					ASSERT(end >= base);
 
+#if defined(sun)
 					val = ip6._S6_un._S6_u8[i];
+#else
+					val = ip6.__u6_addr.__u6_addr8[i];
+#endif
 
 					if (val == 0) {
 						*end-- = '0';
@@ -4579,8 +4595,13 @@
 				if (i < 14 && i != firstzero - 2)
 					*end-- = ':';
 
+#if defined(sun)
 				val = (ip6._S6_un._S6_u8[i] << 8) +
 				    ip6._S6_un._S6_u8[i + 1];
+#else
+				val = (ip6.__u6_addr.__u6_addr8[i] << 8) +
+				    ip6.__u6_addr.__u6_addr8[i + 1];
+#endif
 
 				if (val == 0) {
 					*end-- = '0';
@@ -4603,7 +4624,6 @@
 
 inetout:	regs[rd] = (uintptr_t)end + 1;
 		mstate->dtms_scratch_ptr += size;
-#endif
 		break;
 	}
 



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