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
mailing list