Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Feb 2023 19:18:08 GMT
From:      Justin Hibbits <jhibbits@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   git: cc970676d264 - main - Mechanically convert if_sume(4) to IfAPI
Message-ID:  <202302071918.317JI8qx049734@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by jhibbits:

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

commit cc970676d264f93b2a01a26ebaca32d7ad416bb3
Author:     Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2022-03-01 19:54:34 +0000
Commit:     Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2023-02-07 19:15:49 +0000

    Mechanically convert if_sume(4) to IfAPI
    
    Reviewed by:    zlei
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37808
---
 sys/dev/sume/adapter.h |  2 +-
 sys/dev/sume/if_sume.c | 84 +++++++++++++++++++++++++-------------------------
 2 files changed, 43 insertions(+), 43 deletions(-)

diff --git a/sys/dev/sume/adapter.h b/sys/dev/sume/adapter.h
index 4f34ee05d8e1..8fb995ea0dd9 100644
--- a/sys/dev/sume/adapter.h
+++ b/sys/dev/sume/adapter.h
@@ -180,7 +180,7 @@ struct sume_adapter {
 	struct riffa_chnl_dir	**recv;
 	struct riffa_chnl_dir	**send;
 	device_t		dev;
-	struct ifnet		*ifp[SUME_NPORTS];
+	if_t			ifp[SUME_NPORTS];
 	struct resource		*bar0_addr;
 	bus_space_tag_t		bt;
 	bus_space_handle_t	bh;
diff --git a/sys/dev/sume/if_sume.c b/sys/dev/sume/if_sume.c
index 3050fbd18198..9baf366bde1a 100644
--- a/sys/dev/sume/if_sume.c
+++ b/sys/dev/sume/if_sume.c
@@ -214,7 +214,7 @@ sume_rx_build_mbuf(struct sume_adapter *adapter, uint32_t len)
 {
 	struct nf_priv *nf_priv;
 	struct mbuf *m;
-	struct ifnet *ifp = NULL;
+	if_t ifp = NULL;
 	int np;
 	uint16_t dport, plen, magic;
 	device_t dev = adapter->dev;
@@ -253,12 +253,12 @@ sume_rx_build_mbuf(struct sume_adapter *adapter, uint32_t len)
 		return (NULL);
 	}
 	ifp = adapter->ifp[np];
-	nf_priv = ifp->if_softc;
+	nf_priv = if_getsoftc(ifp);
 	nf_priv->stats.rx_packets++;
 	nf_priv->stats.rx_bytes += plen;
 
 	/* If the interface is down, well, we are done. */
-	if (!(ifp->if_flags & IFF_UP)) {
+	if (!(if_getflags(ifp) & IFF_UP)) {
 		nf_priv->stats.ifc_down_packets++;
 		nf_priv->stats.ifc_down_bytes += plen;
 		return (NULL);
@@ -324,7 +324,7 @@ sume_intr_handler(void *arg)
 	int ch, loops;
 	device_t dev = adapter->dev;
 	struct mbuf *m = NULL;
-	struct ifnet *ifp = NULL;
+	if_t ifp = NULL;
 	struct riffa_chnl_dir *send, *recv;
 
 	SUME_LOCK(adapter);
@@ -540,7 +540,7 @@ sume_intr_handler(void *arg)
 
 	if (m != NULL) {
 		ifp = m->m_pkthdr.rcvif;
-		(*ifp->if_input)(ifp, m);
+		if_input(ifp, m);
 	}
 }
 
@@ -876,10 +876,10 @@ get_modreg_value(struct nf_priv *nf_priv, struct sume_ifreq *sifr)
 }
 
 static int
-sume_if_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data)
+sume_if_ioctl(if_t ifp, unsigned long cmd, caddr_t data)
 {
 	struct ifreq *ifr = (struct ifreq *) data;
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct sume_ifreq sifr;
 	int error = 0;
 
@@ -917,7 +917,7 @@ sume_if_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data)
 
 	case SIOCSIFFLAGS:
 		/* Silence tcpdump 'promisc mode not supported' warning. */
-		if (ifp->if_flags & IFF_PROMISC)
+		if (if_getflags(ifp) & IFF_PROMISC)
 			break;
 
 	default:
@@ -929,26 +929,26 @@ sume_if_ioctl(struct ifnet *ifp, unsigned long cmd, caddr_t data)
 }
 
 static int
-sume_media_change(struct ifnet *ifp)
+sume_media_change(if_t ifp)
 {
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct ifmedia *ifm = &nf_priv->media;
 
 	if (IFM_TYPE(ifm->ifm_media) != IFM_ETHER)
 		return (EINVAL);
 
 	if (IFM_SUBTYPE(ifm->ifm_media) == IFM_10G_SR)
-		ifp->if_baudrate = ifmedia_baudrate(IFM_ETHER | IFM_10G_SR);
+		if_setbaudrate(ifp, ifmedia_baudrate(IFM_ETHER | IFM_10G_SR));
 	else
-		ifp->if_baudrate = ifmedia_baudrate(ifm->ifm_media);
+		if_setbaudrate(ifp, ifmedia_baudrate(ifm->ifm_media));
 
 	return (0);
 }
 
 static void
-sume_update_link_status(struct ifnet *ifp)
+sume_update_link_status(if_t ifp)
 {
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct sume_adapter *adapter = nf_priv->adapter;
 	struct sume_ifreq sifr;
 	int link_status;
@@ -977,13 +977,13 @@ sume_update_link_status(struct ifnet *ifp)
 }
 
 static void
-sume_media_status(struct ifnet *ifp, struct ifmediareq *ifmr)
+sume_media_status(if_t ifp, struct ifmediareq *ifmr)
 {
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct ifmedia *ifm = &nf_priv->media;
 
 	if (ifm->ifm_cur->ifm_media == (IFM_ETHER | IFM_10G_SR) &&
-	    (ifp->if_flags & IFF_UP))
+	    (if_getflags(ifp) & IFF_UP))
 		ifmr->ifm_active = IFM_ETHER | IFM_10G_SR;
 	else
 		ifmr->ifm_active = ifm->ifm_cur->ifm_media;
@@ -1006,10 +1006,10 @@ sume_media_status(struct ifnet *ifp, struct ifmediareq *ifmr)
  * transaction.
  */
 static int
-sume_if_start_locked(struct ifnet *ifp)
+sume_if_start_locked(if_t ifp)
 {
 	struct mbuf *m;
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct sume_adapter *adapter = nf_priv->adapter;
 	struct riffa_chnl_dir *send = adapter->send[SUME_RIFFA_CHANNEL_DATA];
 	uint8_t *outbuf;
@@ -1020,7 +1020,7 @@ sume_if_start_locked(struct ifnet *ifp)
 	KASSERT(send->state == SUME_RIFFA_CHAN_STATE_IDLE,
 	    ("SUME not in IDLE state"));
 
-	IFQ_DEQUEUE(&ifp->if_snd, m);
+	m = if_dequeue(ifp);
 	if (m == NULL)
 		return (EINVAL);
 
@@ -1106,12 +1106,12 @@ sume_if_start_locked(struct ifnet *ifp)
 }
 
 static void
-sume_if_start(struct ifnet *ifp)
+sume_if_start(if_t ifp)
 {
-	struct nf_priv *nf_priv = ifp->if_softc;
+	struct nf_priv *nf_priv = if_getsoftc(ifp);
 	struct sume_adapter *adapter = nf_priv->adapter;
 
-	if (!adapter->running || !(ifp->if_flags & IFF_UP))
+	if (!adapter->running || !(if_getflags(ifp) & IFF_UP))
 		return;
 
 	SUME_LOCK(adapter);
@@ -1136,9 +1136,9 @@ check_tx_queues(struct sume_adapter *adapter)
 
 	/* Check all interfaces */
 	for (i = last_ifc + 1; i < last_ifc + SUME_NPORTS + 1; i++) {
-		struct ifnet *ifp = adapter->ifp[i % SUME_NPORTS];
+		if_t ifp = adapter->ifp[i % SUME_NPORTS];
 
-		if (!(ifp->if_flags & IFF_UP))
+		if (!(if_getflags(ifp) & IFF_UP))
 			continue;
 
 		if (!sume_if_start_locked(ifp))
@@ -1149,7 +1149,7 @@ check_tx_queues(struct sume_adapter *adapter)
 static int
 sume_ifp_alloc(struct sume_adapter *adapter, uint32_t port)
 {
-	struct ifnet *ifp;
+	if_t ifp;
 	struct nf_priv *nf_priv = malloc(sizeof(struct nf_priv), M_SUME,
 	    M_ZERO | M_WAITOK);
 
@@ -1160,7 +1160,7 @@ sume_ifp_alloc(struct sume_adapter *adapter, uint32_t port)
 	}
 
 	adapter->ifp[port] = ifp;
-	ifp->if_softc = nf_priv;
+	if_setsoftc(ifp, nf_priv);
 
 	nf_priv->adapter = adapter;
 	nf_priv->unit = alloc_unr(unr);
@@ -1168,11 +1168,11 @@ sume_ifp_alloc(struct sume_adapter *adapter, uint32_t port)
 	nf_priv->link_up = 0;
 
 	if_initname(ifp, SUME_ETH_DEVICE_NAME, nf_priv->unit);
-	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+	if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
 
-	ifp->if_init = sume_if_init;
-	ifp->if_start = sume_if_start;
-	ifp->if_ioctl = sume_if_ioctl;
+	if_setinitfn(ifp, sume_if_init);
+	if_setstartfn(ifp, sume_if_start);
+	if_setioctlfn(ifp, sume_if_ioctl);
 
 	uint8_t hw_addr[ETHER_ADDR_LEN] = DEFAULT_ETHER_ADDRESS;
 	hw_addr[ETHER_ADDR_LEN-1] = nf_priv->unit;
@@ -1183,7 +1183,7 @@ sume_ifp_alloc(struct sume_adapter *adapter, uint32_t port)
 	ifmedia_add(&nf_priv->media, IFM_ETHER | IFM_10G_SR, 0, NULL);
 	ifmedia_set(&nf_priv->media, IFM_ETHER | IFM_10G_SR);
 
-	ifp->if_drv_flags |= IFF_DRV_RUNNING;
+	if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
 
 	return (0);
 }
@@ -1317,11 +1317,11 @@ sume_sysctl_init(struct sume_adapter *adapter)
 	    CTLFLAG_RD, &adapter->bytes_err, 0, "rx error bytes");
 
 	for (i = SUME_NPORTS - 1; i >= 0; i--) {
-		struct ifnet *ifp = adapter->ifp[i];
+		if_t ifp = adapter->ifp[i];
 		if (ifp == NULL)
 			continue;
 
-		struct nf_priv *nf_priv = ifp->if_softc;
+		struct nf_priv *nf_priv = if_getsoftc(ifp);
 
 		snprintf(namebuf, MAX_IFC_NAME_LEN, "%s%d",
 		    SUME_ETH_DEVICE_NAME, nf_priv->unit);
@@ -1409,10 +1409,10 @@ sume_get_stats(void *context, int pending)
 	int i;
 
 	for (i = 0; i < SUME_NPORTS; i++) {
-		struct ifnet *ifp = adapter->ifp[i];
+		if_t ifp = adapter->ifp[i];
 
-		if (ifp->if_flags & IFF_UP) {
-			struct nf_priv *nf_priv = ifp->if_softc;
+		if (if_getflags(ifp) & IFF_UP) {
+			struct nf_priv *nf_priv = if_getsoftc(ifp);
 			struct sume_ifreq sifr;
 
 			sume_update_link_status(ifp);
@@ -1543,19 +1543,19 @@ sume_detach(device_t dev)
 	}
 
 	for (i = 0; i < SUME_NPORTS; i++) {
-		struct ifnet *ifp = adapter->ifp[i];
+		if_t ifp = adapter->ifp[i];
 		if (ifp == NULL)
 			continue;
 
-		ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
-		nf_priv = ifp->if_softc;
+		if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
+		nf_priv = if_getsoftc(ifp);
 
-		if (ifp->if_flags & IFF_UP)
+		if (if_getflags(ifp) & IFF_UP)
 			if_down(ifp);
 		ifmedia_removeall(&nf_priv->media);
 		free_unr(unr, nf_priv->unit);
 
-		ifp->if_flags &= ~IFF_UP;
+		if_setflagbits(ifp, 0, IFF_UP);
 		ether_ifdetach(ifp);
 		if_free(ifp);
 



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