aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Hibbits <jhibbits@FreeBSD.org>2023-01-25 19:45:53 +0000
committerJustin Hibbits <jhibbits@FreeBSD.org>2023-01-31 20:02:17 +0000
commit31cfaf191b0861d54ce8e212c77b458fd8fc018e (patch)
treeb96388d053dafcf0bcbac9a91055c7702ab90d36
parent0d2684e15e415cef652e0f75e88962a674bffe04 (diff)
downloadsrc-31cfaf191b0861d54ce8e212c77b458fd8fc018e.tar.gz
src-31cfaf191b0861d54ce8e212c77b458fd8fc018e.zip
IfAPI: Add l2com accessor for firewire.
Summary: Firewire is the only device driver that accesses the l2com member, all other accesses are handled within the netstack itself. Sponsored by: Juniper Networks, Inc. Reviewed by: glebius, melifaro Differential Revision: https://reviews.freebsd.org/D38203
-rw-r--r--sys/net/firewire.h2
-rw-r--r--sys/net/if.c6
-rw-r--r--sys/net/if_var.h1
3 files changed, 8 insertions, 1 deletions
diff --git a/sys/net/firewire.h b/sys/net/firewire.h
index dd7d23e49e73..527113aec720 100644
--- a/sys/net/firewire.h
+++ b/sys/net/firewire.h
@@ -131,7 +131,7 @@ struct fw_com {
uint16_t fc_node; /* our nodeid */
struct fw_reass_list fc_frags; /* partial datagrams */
};
-#define IFP2FWC(ifp) ((struct fw_com *)(ifp)->if_l2com)
+#define IFP2FWC(ifp) ((struct fw_com *)if_getl2com(ifp))
extern void firewire_input(struct ifnet *ifp, struct mbuf *m, uint16_t src);
extern void firewire_ifattach(struct ifnet *, struct fw_hwaddr *);
diff --git a/sys/net/if.c b/sys/net/if.c
index ac8b6963172d..2ab12d1ac313 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -4941,6 +4941,12 @@ if_getpcp(if_t ifp)
return (ifp->if_pcp);
}
+void *
+if_getl2com(if_t ifp)
+{
+ return (ifp->if_l2com);
+}
+
#ifdef DDB
static void
if_show_ifnet(struct ifnet *ifp)
diff --git a/sys/net/if_var.h b/sys/net/if_var.h
index be7a5f059a7e..dbf8796865f0 100644
--- a/sys/net/if_var.h
+++ b/sys/net/if_var.h
@@ -644,6 +644,7 @@ struct label *if_getmaclabel(if_t ifp);
void if_setmaclabel(if_t ifp, struct label *label);
struct bpf_if *if_getbpf(if_t ifp);
uint8_t if_getpcp(if_t ifp);
+void *if_getl2com(if_t ifp);
struct ifvlantrunk *if_getvlantrunk(if_t ifp);
void *if_getafdata(if_t ifp, int);