svn commit: r214579 - in stable/8/sys: conf net

Bjoern A. Zeeb bz at FreeBSD.org
Sun Oct 31 00:51:23 UTC 2010


Author: bz
Date: Sun Oct 31 00:51:22 2010
New Revision: 214579
URL: http://svn.freebsd.org/changeset/base/214579

Log:
  MFC r214333:
  
    Factor out DDB commands from r204145, r204279 into if_debug.c for further
    enhancements (1).  Switch to a standard 2-clause BSD license for this (2).
  
    Unfortunately we have to un-static the ifindex_table for this but do not
    publicly export it.
  
    Suggested by: rwatson (1) a while back.
    Approved by:  thompsa (2) for the change from r204279.

Added:
  stable/8/sys/net/if_debug.c
     - copied unchanged from r214333, head/sys/net/if_debug.c
Modified:
  stable/8/sys/conf/files
  stable/8/sys/net/if.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/amd64/include/xen/   (props changed)
  stable/8/sys/cddl/contrib/opensolaris/   (props changed)
  stable/8/sys/contrib/dev/acpica/   (props changed)
  stable/8/sys/contrib/pf/   (props changed)
  stable/8/sys/dev/xen/xenpci/   (props changed)

Modified: stable/8/sys/conf/files
==============================================================================
--- stable/8/sys/conf/files	Sun Oct 31 00:37:00 2010	(r214578)
+++ stable/8/sys/conf/files	Sun Oct 31 00:51:22 2010	(r214579)
@@ -2326,6 +2326,7 @@ net/if_atmsubr.c		optional atm
 net/if_bridge.c			optional bridge inet | if_bridge inet
 net/if_clone.c			standard
 net/if_dead.c			standard
+net/if_debug.c			optional ddb
 net/if_disc.c			optional disc
 net/if_edsc.c			optional edsc
 net/if_ef.c			optional ef

Modified: stable/8/sys/net/if.c
==============================================================================
--- stable/8/sys/net/if.c	Sun Oct 31 00:37:00 2010	(r214578)
+++ stable/8/sys/net/if.c	Sun Oct 31 00:51:22 2010	(r214579)
@@ -33,7 +33,6 @@
 #include "opt_compat.h"
 #include "opt_inet6.h"
 #include "opt_inet.h"
-#include "opt_ddb.h"
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -62,10 +61,6 @@
 #include <machine/stdarg.h>
 #include <vm/uma.h>
 
-#ifdef DDB
-#include <ddb/ddb.h>
-#endif
-
 #include <net/if.h>
 #include <net/if_arp.h>
 #include <net/if_clone.h>
@@ -186,7 +181,7 @@ VNET_DEFINE(struct ifgrouphead, ifg_head
 static VNET_DEFINE(int, if_indexlim) = 8;
 
 /* Table of ifnet by index. */
-static VNET_DEFINE(struct ifindex_entry *, ifindex_table);
+VNET_DEFINE(struct ifindex_entry *, ifindex_table);
 
 #define	V_if_indexlim		VNET(if_indexlim)
 #define	V_ifindex_table		VNET(ifindex_table)
@@ -3416,78 +3411,3 @@ if_deregister_com_alloc(u_char type)
 	if_com_alloc[type] = NULL;
 	if_com_free[type] = NULL;
 }
-
-#ifdef DDB
-static void
-if_show_ifnet(struct ifnet *ifp)
-{
-
-	if (ifp == NULL)
-		return;
-	db_printf("%s:\n", ifp->if_xname);
-#define	IF_DB_PRINTF(f, e)	db_printf("   %s = " f "\n", #e, ifp->e);
-	IF_DB_PRINTF("%s", if_dname);
-	IF_DB_PRINTF("%d", if_dunit);
-	IF_DB_PRINTF("%s", if_description);
-	IF_DB_PRINTF("%u", if_index);
-	IF_DB_PRINTF("%u", if_refcount);
-	IF_DB_PRINTF("%p", if_softc);
-	IF_DB_PRINTF("%p", if_l2com);
-	IF_DB_PRINTF("%p", if_vnet);
-	IF_DB_PRINTF("%p", if_home_vnet);
-	IF_DB_PRINTF("%p", if_addr);
-	IF_DB_PRINTF("%p", if_llsoftc);
-	IF_DB_PRINTF("%p", if_label);
-	IF_DB_PRINTF("%u", if_pcount);
-	IF_DB_PRINTF("0x%08x", if_flags);
-	IF_DB_PRINTF("0x%08x", if_drv_flags);
-	IF_DB_PRINTF("0x%08x", if_capabilities);
-	IF_DB_PRINTF("0x%08x", if_capenable);
-	IF_DB_PRINTF("%p", if_snd.ifq_head);
-	IF_DB_PRINTF("%p", if_snd.ifq_tail);
-	IF_DB_PRINTF("%d", if_snd.ifq_len);
-	IF_DB_PRINTF("%d", if_snd.ifq_maxlen);
-	IF_DB_PRINTF("%d", if_snd.ifq_drops);
-	IF_DB_PRINTF("%p", if_snd.ifq_drv_head);
-	IF_DB_PRINTF("%p", if_snd.ifq_drv_tail);
-	IF_DB_PRINTF("%d", if_snd.ifq_drv_len);
-	IF_DB_PRINTF("%d", if_snd.ifq_drv_maxlen);
-	IF_DB_PRINTF("%d", if_snd.altq_type);
-	IF_DB_PRINTF("%x", if_snd.altq_flags);
-#undef IF_DB_PRINTF
-}
-
-DB_SHOW_COMMAND(ifnet, db_show_ifnet)
-{
-
-	if (!have_addr) {
-		db_printf("usage: show ifnet <struct ifnet *>\n");
-		return;
-	}
-
-	if_show_ifnet((struct ifnet *)addr);
-}
-
-DB_SHOW_ALL_COMMAND(ifnets, db_show_all_ifnets)
-{
-	VNET_ITERATOR_DECL(vnet_iter);
-	struct ifnet *ifp;
-	u_short idx;
-
-	VNET_FOREACH(vnet_iter) {
-		CURVNET_SET_QUIET(vnet_iter);
-#ifdef VIMAGE
-		db_printf("vnet=%p\n", curvnet);
-#endif
-		for (idx = 1; idx <= V_if_index; idx++) {
-			ifp = V_ifindex_table[idx].ife_ifnet;
-			if (ifp == NULL)
-				continue;
-			db_printf( "%20s ifp=%p\n", ifp->if_xname, ifp);
-			if (db_pager_quit)
-				break;
-		}
-		CURVNET_RESTORE();
-	}
-}
-#endif

Copied: stable/8/sys/net/if_debug.c (from r214333, head/sys/net/if_debug.c)
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ stable/8/sys/net/if_debug.c	Sun Oct 31 00:51:22 2010	(r214579, copy of r214333, head/sys/net/if_debug.c)
@@ -0,0 +1,125 @@
+/*-
+ * Copyright (c) 2010 Bjoern A. Zeeb <bz at FreeBSD.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
+#include "opt_ddb.h"
+
+#include <sys/param.h>
+#include <sys/socket.h>
+#include <sys/types.h>
+
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/if_var.h>
+#include <net/vnet.h>
+
+#ifdef DDB
+struct ifindex_entry {
+	struct  ifnet *ife_ifnet;
+};
+VNET_DECLARE(struct ifindex_entry *, ifindex_table);
+#define	V_ifindex_table		VNET(ifindex_table)
+
+static void
+if_show_ifnet(struct ifnet *ifp)
+{
+
+	if (ifp == NULL)
+		return;
+	db_printf("%s:\n", ifp->if_xname);
+#define	IF_DB_PRINTF(f, e)	db_printf("   %s = " f "\n", #e, ifp->e);
+	IF_DB_PRINTF("%s", if_dname);
+	IF_DB_PRINTF("%d", if_dunit);
+	IF_DB_PRINTF("%s", if_description);
+	IF_DB_PRINTF("%u", if_index);
+	IF_DB_PRINTF("%u", if_refcount);
+	IF_DB_PRINTF("%d", if_index_reserved);
+	IF_DB_PRINTF("%p", if_softc);
+	IF_DB_PRINTF("%p", if_l2com);
+	IF_DB_PRINTF("%p", if_vnet);
+	IF_DB_PRINTF("%p", if_home_vnet);
+	IF_DB_PRINTF("%p", if_addr);
+	IF_DB_PRINTF("%p", if_llsoftc);
+	IF_DB_PRINTF("%p", if_label);
+	IF_DB_PRINTF("%u", if_pcount);
+	IF_DB_PRINTF("0x%08x", if_flags);
+	IF_DB_PRINTF("0x%08x", if_drv_flags);
+	IF_DB_PRINTF("0x%08x", if_capabilities);
+	IF_DB_PRINTF("0x%08x", if_capenable);
+	IF_DB_PRINTF("%p", if_snd.ifq_head);
+	IF_DB_PRINTF("%p", if_snd.ifq_tail);
+	IF_DB_PRINTF("%d", if_snd.ifq_len);
+	IF_DB_PRINTF("%d", if_snd.ifq_maxlen);
+	IF_DB_PRINTF("%d", if_snd.ifq_drops);
+	IF_DB_PRINTF("%p", if_snd.ifq_drv_head);
+	IF_DB_PRINTF("%p", if_snd.ifq_drv_tail);
+	IF_DB_PRINTF("%d", if_snd.ifq_drv_len);
+	IF_DB_PRINTF("%d", if_snd.ifq_drv_maxlen);
+	IF_DB_PRINTF("%d", if_snd.altq_type);
+	IF_DB_PRINTF("%x", if_snd.altq_flags);
+#undef IF_DB_PRINTF
+}
+
+DB_SHOW_COMMAND(ifnet, db_show_ifnet)
+{
+
+	if (!have_addr) {
+		db_printf("usage: show ifnet <struct ifnet *>\n");
+		return;
+	}
+
+	if_show_ifnet((struct ifnet *)addr);
+}
+
+DB_SHOW_ALL_COMMAND(ifnets, db_show_all_ifnets)
+{
+	VNET_ITERATOR_DECL(vnet_iter);
+	struct ifnet *ifp;
+	u_short idx;
+
+	VNET_FOREACH(vnet_iter) {
+		CURVNET_SET_QUIET(vnet_iter);
+#ifdef VIMAGE
+		db_printf("vnet=%p\n", curvnet);
+#endif
+		for (idx = 1; idx <= V_if_index; idx++) {
+			ifp = V_ifindex_table[idx].ife_ifnet;
+			if (ifp == NULL)
+				continue;
+			db_printf( "%20s ifp=%p\n", ifp->if_xname, ifp);
+			if (db_pager_quit)
+				break;
+		}
+		CURVNET_RESTORE();
+	}
+}
+#endif


More information about the svn-src-stable-8 mailing list