git: ce40632a316c - main - ifnet: append if_debug.c to if.c

From: Gleb Smirnoff <glebius_at_FreeBSD.org>
Date: Tue, 23 Nov 2021 03:52:13 UTC
The branch main has been updated by glebius:

URL: https://cgit.FreeBSD.org/src/commit/?id=ce40632a316c597437fcac323eeac13dda76448f

commit ce40632a316c597437fcac323eeac13dda76448f
Author:     Gleb Smirnoff <glebius@FreeBSD.org>
AuthorDate: 2021-11-23 03:49:57 +0000
Commit:     Gleb Smirnoff <glebius@FreeBSD.org>
CommitDate: 2021-11-23 03:49:57 +0000

    ifnet: append if_debug.c to if.c
    
    With this change if_index can become static.  There is nothing
    that if_debug.c would want to isolate from if.c.  Potentially
    if.c wants to share everything with if_debug.c.
    
    Move Bjoern's copyright to if.c.
    
    Reviewed by:    bz
---
 sys/conf/files     |   1 -
 sys/net/if.c       |  94 +++++++++++++++++++++++++++++++++++-
 sys/net/if_debug.c | 138 -----------------------------------------------------
 3 files changed, 93 insertions(+), 140 deletions(-)

diff --git a/sys/conf/files b/sys/conf/files
index 8854d827bcc3..fdf133068ad3 100644
--- a/sys/conf/files
+++ b/sys/conf/files
@@ -4144,7 +4144,6 @@ net/if.c			standard
 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_enc.c			optional enc inet | enc inet6
diff --git a/sys/net/if.c b/sys/net/if.c
index 1cd44908ca0f..0d6aa10d64dc 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1,6 +1,7 @@
 /*-
  * SPDX-License-Identifier: BSD-3-Clause
  *
+ * Copyright (c) 2010 Bjoern A. Zeeb <bz@FreeBSD.org>
  * Copyright (c) 1980, 1986, 1993
  *	The Regents of the University of California.  All rights reserved.
  *
@@ -66,6 +67,10 @@
 #include <sys/jail.h>
 #include <sys/priv.h>
 
+#ifdef DDB
+#include <ddb/ddb.h>
+#endif
+
 #include <machine/stdarg.h>
 #include <vm/uma.h>
 
@@ -308,7 +313,7 @@ VNET_DEFINE(struct ifgrouphead, ifg_head);
 VNET_DEFINE_STATIC(int, if_indexlim) = 8;
 
 /* Table of ifnet by index. */
-VNET_DEFINE(struct ifnet **, ifindex_table);
+VNET_DEFINE_STATIC(struct ifnet **, ifindex_table);
 
 #define	V_if_indexlim		VNET(if_indexlim)
 #define	V_ifindex_table		VNET(ifindex_table)
@@ -4591,3 +4596,90 @@ if_setgetcounterfn(if_t ifp, if_get_counter_t fn)
 
 	ifp->if_get_counter = fn;
 }
+
+#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("%d", if_index_reserved);
+	IF_DB_PRINTF("%p", if_softc);
+	IF_DB_PRINTF("%p", if_l2com);
+	IF_DB_PRINTF("%p", if_llsoftc);
+	IF_DB_PRINTF("%d", if_amcount);
+	IF_DB_PRINTF("%p", if_addr);
+	IF_DB_PRINTF("%p", if_broadcastaddr);
+	IF_DB_PRINTF("%p", if_afdata);
+	IF_DB_PRINTF("%d", if_afdata_initialized);
+	IF_DB_PRINTF("%u", if_fib);
+	IF_DB_PRINTF("%p", if_vnet);
+	IF_DB_PRINTF("%p", if_home_vnet);
+	IF_DB_PRINTF("%p", if_vlantrunk);
+	IF_DB_PRINTF("%p", if_bpf);
+	IF_DB_PRINTF("%u", if_pcount);
+	IF_DB_PRINTF("%p", if_bridge);
+	IF_DB_PRINTF("%p", if_lagg);
+	IF_DB_PRINTF("%p", if_pf_kif);
+	IF_DB_PRINTF("%p", if_carp);
+	IF_DB_PRINTF("%p", if_label);
+	IF_DB_PRINTF("%p", if_netmap);
+	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("%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	/* DDB */
diff --git a/sys/net/if_debug.c b/sys/net/if_debug.c
deleted file mode 100644
index 4a8e49e3dea6..000000000000
--- a/sys/net/if_debug.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*-
- * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
- *
- * Copyright (c) 2010 Bjoern A. Zeeb <bz@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_llsoftc);
-	IF_DB_PRINTF("%d", if_amcount);
-	IF_DB_PRINTF("%p", if_addr);
-	IF_DB_PRINTF("%p", if_broadcastaddr);
-	IF_DB_PRINTF("%p", if_afdata);
-	IF_DB_PRINTF("%d", if_afdata_initialized);
-	IF_DB_PRINTF("%u", if_fib);
-	IF_DB_PRINTF("%p", if_vnet);
-	IF_DB_PRINTF("%p", if_home_vnet);
-	IF_DB_PRINTF("%p", if_vlantrunk);
-	IF_DB_PRINTF("%p", if_bpf);
-	IF_DB_PRINTF("%u", if_pcount);
-	IF_DB_PRINTF("%p", if_bridge);
-	IF_DB_PRINTF("%p", if_lagg);
-	IF_DB_PRINTF("%p", if_pf_kif);
-	IF_DB_PRINTF("%p", if_carp);
-	IF_DB_PRINTF("%p", if_label);
-	IF_DB_PRINTF("%p", if_netmap);
-	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("%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