git: 08e67568b079 - main - Mechanically convert lge(4) to IfAPI

From: Justin Hibbits <jhibbits_at_FreeBSD.org>
Date: Mon, 06 Feb 2023 17:54:12 UTC
The branch main has been updated by jhibbits:

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

commit 08e67568b0794e35c1c91a7b530a8d18bceb72f0
Author:     Justin Hibbits <jhibbits@FreeBSD.org>
AuthorDate: 2022-08-19 19:11:28 +0000
Commit:     Justin Hibbits <jhibbits@FreeBSD.org>
CommitDate: 2023-02-06 17:32:10 +0000

    Mechanically convert lge(4) to IfAPI
    
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37838
---
 sys/dev/lge/if_lge.c    | 134 ++++++++++++++++++++++++------------------------
 sys/dev/lge/if_lgereg.h |   2 +-
 2 files changed, 68 insertions(+), 68 deletions(-)

diff --git a/sys/dev/lge/if_lge.c b/sys/dev/lge/if_lge.c
index e3567e642d6f..e977e4e6897c 100644
--- a/sys/dev/lge/if_lge.c
+++ b/sys/dev/lge/if_lge.c
@@ -134,17 +134,17 @@ static void lge_rxeoc(struct lge_softc *);
 static void lge_txeof(struct lge_softc *);
 static void lge_intr(void *);
 static void lge_tick(void *);
-static void lge_start(struct ifnet *);
-static void lge_start_locked(struct ifnet *);
-static int lge_ioctl(struct ifnet *, u_long, caddr_t);
+static void lge_start(if_t);
+static void lge_start_locked(if_t);
+static int lge_ioctl(if_t, u_long, caddr_t);
 static void lge_init(void *);
 static void lge_init_locked(struct lge_softc *);
 static void lge_stop(struct lge_softc *);
 static void lge_watchdog(struct lge_softc *);
 static int lge_shutdown(device_t);
-static int lge_ifmedia_upd(struct ifnet *);
-static void lge_ifmedia_upd_locked(struct ifnet *);
-static void lge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int lge_ifmedia_upd(if_t);
+static void lge_ifmedia_upd_locked(if_t);
+static void lge_ifmedia_sts(if_t, struct ifmediareq *);
 
 static void lge_eeprom_getword(struct lge_softc *, int, u_int16_t *);
 static void lge_read_eeprom(struct lge_softc *, caddr_t, int, int, int);
@@ -382,7 +382,7 @@ static void
 lge_setmulti(sc)
 	struct lge_softc	*sc;
 {
-	struct ifnet		*ifp;
+	if_t			ifp;
 	uint32_t hashes[2] = { 0, 0 };
 
 	ifp = sc->lge_ifp;
@@ -391,7 +391,7 @@ lge_setmulti(sc)
 	/* Make sure multicast hash table is enabled. */
 	CSR_WRITE_4(sc, LGE_MODE1, LGE_MODE1_SETRST_CTL1|LGE_MODE1_RX_MCAST);
 
-	if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+	if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
 		CSR_WRITE_4(sc, LGE_MAR0, 0xFFFFFFFF);
 		CSR_WRITE_4(sc, LGE_MAR1, 0xFFFFFFFF);
 		return;
@@ -466,7 +466,7 @@ lge_attach(dev)
 {
 	u_char			eaddr[ETHER_ADDR_LEN];
 	struct lge_softc	*sc;
-	struct ifnet		*ifp = NULL;
+	if_t			ifp = NULL;
 	int			error = 0, rid;
 
 	sc = device_get_softc(dev);
@@ -536,15 +536,15 @@ lge_attach(dev)
 		error = ENOSPC;
 		goto fail;
 	}
-	ifp->if_softc = sc;
+	if_setsoftc(ifp, sc);
 	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
-	ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
-	ifp->if_ioctl = lge_ioctl;
-	ifp->if_start = lge_start;
-	ifp->if_init = lge_init;
-	ifp->if_snd.ifq_maxlen = LGE_TX_LIST_CNT - 1;
-	ifp->if_capabilities = IFCAP_RXCSUM;
-	ifp->if_capenable = ifp->if_capabilities;
+	if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+	if_setioctlfn(ifp, lge_ioctl);
+	if_setstartfn(ifp, lge_start);
+	if_setinitfn(ifp, lge_init);
+	if_setsendqlen(ifp, LGE_TX_LIST_CNT - 1);
+	if_setcapabilities(ifp, IFCAP_RXCSUM);
+	if_setcapenable(ifp, if_getcapabilities(ifp));
 
 	if (CSR_READ_4(sc, LGE_GMIIMODE) & LGE_GMIIMODE_PCSENH)
 		sc->lge_pcs = 1;
@@ -596,7 +596,7 @@ lge_detach(dev)
 	device_t		dev;
 {
 	struct lge_softc	*sc;
-	struct ifnet		*ifp;
+	if_t			ifp;
 
 	sc = device_get_softc(dev);
 	ifp = sc->lge_ifp;
@@ -885,7 +885,7 @@ lge_rxeof(sc, cnt)
 	int			cnt;
 {
         struct mbuf		*m;
-        struct ifnet		*ifp;
+        if_t ifp;
 	struct lge_rx_desc	*cur_rx;
 	int			c, i, total_len = 0;
 	u_int32_t		rxsts, rxctl;
@@ -954,7 +954,7 @@ lge_rxeof(sc, cnt)
 		}
 
 		LGE_UNLOCK(sc);
-		(*ifp->if_input)(ifp, m);
+		if_input(ifp, m);
 		LGE_LOCK(sc);
 	}
 
@@ -967,10 +967,10 @@ static void
 lge_rxeoc(sc)
 	struct lge_softc	*sc;
 {
-	struct ifnet		*ifp;
+	if_t			ifp;
 
 	ifp = sc->lge_ifp;
-	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+	if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
 	lge_init_locked(sc);
 	return;
 }
@@ -985,7 +985,7 @@ lge_txeof(sc)
 	struct lge_softc	*sc;
 {
 	struct lge_tx_desc	*cur_tx = NULL;
-	struct ifnet		*ifp;
+	if_t			ifp;
 	u_int32_t		idx, txdone;
 
 	ifp = sc->lge_ifp;
@@ -1018,7 +1018,7 @@ lge_txeof(sc)
 	sc->lge_cdata.lge_tx_cons = idx;
 
 	if (cur_tx != NULL)
-		ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+		if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 
 	return;
 }
@@ -1029,7 +1029,7 @@ lge_tick(xsc)
 {
 	struct lge_softc	*sc;
 	struct mii_data		*mii;
-	struct ifnet		*ifp;
+	if_t			ifp;
 
 	sc = xsc;
 	ifp = sc->lge_ifp;
@@ -1050,7 +1050,7 @@ lge_tick(xsc)
 		  	    (IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_SX||
 			    IFM_SUBTYPE(mii->mii_media_active) == IFM_1000_T))
 				device_printf(sc->lge_dev, "gigabit link up\n");
-			if (ifp->if_snd.ifq_head != NULL)
+			if (!if_sendq_empty(ifp))
 				lge_start_locked(ifp);
 		}
 	}
@@ -1067,7 +1067,7 @@ lge_intr(arg)
 	void			*arg;
 {
 	struct lge_softc	*sc;
-	struct ifnet		*ifp;
+	if_t			ifp;
 	u_int32_t		status;
 
 	sc = arg;
@@ -1075,7 +1075,7 @@ lge_intr(arg)
 	LGE_LOCK(sc);
 
 	/* Suppress unwanted interrupts */
-	if (!(ifp->if_flags & IFF_UP)) {
+	if (!(if_getflags(ifp) & IFF_UP)) {
 		lge_stop(sc);
 		LGE_UNLOCK(sc);
 		return;
@@ -1111,7 +1111,7 @@ lge_intr(arg)
 	/* Re-enable interrupts. */
 	CSR_WRITE_4(sc, LGE_IMR, LGE_IMR_SETRST_CTL0|LGE_IMR_INTR_ENB);
 
-	if (ifp->if_snd.ifq_head != NULL)
+	if (!if_sendq_empty(ifp))
 		lge_start_locked(ifp);
 
 	LGE_UNLOCK(sc);
@@ -1175,11 +1175,11 @@ lge_encap(sc, m_head, txidx)
 
 static void
 lge_start(ifp)
-	struct ifnet		*ifp;
+	if_t			ifp;
 {
 	struct lge_softc	*sc;
 
-	sc = ifp->if_softc;
+	sc = if_getsoftc(ifp);
 	LGE_LOCK(sc);
 	lge_start_locked(ifp);
 	LGE_UNLOCK(sc);
@@ -1187,33 +1187,33 @@ lge_start(ifp)
 
 static void
 lge_start_locked(ifp)
-	struct ifnet		*ifp;
+	if_t			ifp;
 {
 	struct lge_softc	*sc;
 	struct mbuf		*m_head = NULL;
 	u_int32_t		idx;
 
-	sc = ifp->if_softc;
+	sc = if_getsoftc(ifp);
 
 	if (!sc->lge_link)
 		return;
 
 	idx = sc->lge_cdata.lge_tx_prod;
 
-	if (ifp->if_drv_flags & IFF_DRV_OACTIVE)
+	if (if_getdrvflags(ifp) & IFF_DRV_OACTIVE)
 		return;
 
 	while(sc->lge_ldata->lge_tx_list[idx].lge_mbuf == NULL) {
 		if (CSR_READ_1(sc, LGE_TXCMDFREE_8BIT) == 0)
 			break;
 
-		IF_DEQUEUE(&ifp->if_snd, m_head);
+		m_head = if_dequeue(ifp);
 		if (m_head == NULL)
 			break;
 
 		if (lge_encap(sc, m_head, &idx)) {
-			IF_PREPEND(&ifp->if_snd, m_head);
-			ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+			if_sendq_prepend(ifp, m_head);
+			if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
 			break;
 		}
 
@@ -1249,10 +1249,10 @@ static void
 lge_init_locked(sc)
 	struct lge_softc	*sc;
 {
-	struct ifnet		*ifp = sc->lge_ifp;
+	if_t			ifp = sc->lge_ifp;
 
 	LGE_LOCK_ASSERT(sc);
-	if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+	if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
 		return;
 
 	/*
@@ -1262,8 +1262,8 @@ lge_init_locked(sc)
 	lge_reset(sc);
 
 	/* Set MAC address */
-	CSR_WRITE_4(sc, LGE_PAR0, *(u_int32_t *)(&IF_LLADDR(sc->lge_ifp)[0]));
-	CSR_WRITE_4(sc, LGE_PAR1, *(u_int32_t *)(&IF_LLADDR(sc->lge_ifp)[4]));
+	CSR_WRITE_4(sc, LGE_PAR0, *(u_int32_t *)(&if_getlladdr(sc->lge_ifp)[0]));
+	CSR_WRITE_4(sc, LGE_PAR1, *(u_int32_t *)(&if_getlladdr(sc->lge_ifp)[4]));
 
 	/* Init circular RX list. */
 	if (lge_list_rx_init(sc) == ENOBUFS) {
@@ -1285,7 +1285,7 @@ lge_init_locked(sc)
 	    LGE_MODE1_SETRST_CTL1|LGE_MODE1_SETRST_CTL2);
 
 	 /* If we want promiscuous mode, set the allframes bit. */
-	if (ifp->if_flags & IFF_PROMISC) {
+	if (if_getflags(ifp) & IFF_PROMISC) {
 		CSR_WRITE_4(sc, LGE_MODE1,
 		    LGE_MODE1_SETRST_CTL1|LGE_MODE1_RX_PROMISC);
 	} else {
@@ -1295,7 +1295,7 @@ lge_init_locked(sc)
 	/*
 	 * Set the capture broadcast bit to capture broadcast frames.
 	 */
-	if (ifp->if_flags & IFF_BROADCAST) {
+	if (if_getflags(ifp) & IFF_BROADCAST) {
 		CSR_WRITE_4(sc, LGE_MODE1,
 		    LGE_MODE1_SETRST_CTL1|LGE_MODE1_RX_BCAST);
 	} else {
@@ -1363,8 +1363,8 @@ lge_init_locked(sc)
 
 	lge_ifmedia_upd_locked(ifp);
 
-	ifp->if_drv_flags |= IFF_DRV_RUNNING;
-	ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+	if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
+	if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
 
 	callout_reset(&sc->lge_stat_callout, hz, lge_tick, sc);
 
@@ -1376,11 +1376,11 @@ lge_init_locked(sc)
  */
 static int
 lge_ifmedia_upd(ifp)
-	struct ifnet		*ifp;
+	if_t			ifp;
 {
 	struct lge_softc	*sc;
 
-	sc = ifp->if_softc;
+	sc = if_getsoftc(ifp);
 	LGE_LOCK(sc);
 	lge_ifmedia_upd_locked(ifp);
 	LGE_UNLOCK(sc);
@@ -1390,13 +1390,13 @@ lge_ifmedia_upd(ifp)
 
 static void
 lge_ifmedia_upd_locked(ifp)
-	struct ifnet		*ifp;
+	if_t			ifp;
 {
 	struct lge_softc	*sc;
 	struct mii_data		*mii;
 	struct mii_softc	*miisc;
 
-	sc = ifp->if_softc;
+	sc = if_getsoftc(ifp);
 
 	LGE_LOCK_ASSERT(sc);
 	mii = device_get_softc(sc->lge_miibus);
@@ -1411,13 +1411,13 @@ lge_ifmedia_upd_locked(ifp)
  */
 static void
 lge_ifmedia_sts(ifp, ifmr)
-	struct ifnet		*ifp;
+	if_t			ifp;
 	struct ifmediareq	*ifmr;
 {
 	struct lge_softc	*sc;
 	struct mii_data		*mii;
 
-	sc = ifp->if_softc;
+	sc = if_getsoftc(ifp);
 
 	LGE_LOCK(sc);
 	mii = device_get_softc(sc->lge_miibus);
@@ -1431,11 +1431,11 @@ lge_ifmedia_sts(ifp, ifmr)
 
 static int
 lge_ioctl(ifp, command, data)
-	struct ifnet		*ifp;
+	if_t			ifp;
 	u_long			command;
 	caddr_t			data;
 {
-	struct lge_softc	*sc = ifp->if_softc;
+	struct lge_softc	*sc = if_getsoftc(ifp);
 	struct ifreq		*ifr = (struct ifreq *) data;
 	struct mii_data		*mii;
 	int			error = 0;
@@ -1446,32 +1446,32 @@ lge_ioctl(ifp, command, data)
 		if (ifr->ifr_mtu > LGE_JUMBO_MTU)
 			error = EINVAL;
 		else
-			ifp->if_mtu = ifr->ifr_mtu;
+			if_setmtu(ifp, ifr->ifr_mtu);
 		LGE_UNLOCK(sc);
 		break;
 	case SIOCSIFFLAGS:
 		LGE_LOCK(sc);
-		if (ifp->if_flags & IFF_UP) {
-			if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
-			    ifp->if_flags & IFF_PROMISC &&
+		if (if_getflags(ifp) & IFF_UP) {
+			if (if_getdrvflags(ifp) & IFF_DRV_RUNNING &&
+			    if_getflags(ifp) & IFF_PROMISC &&
 			    !(sc->lge_if_flags & IFF_PROMISC)) {
 				CSR_WRITE_4(sc, LGE_MODE1,
 				    LGE_MODE1_SETRST_CTL1|
 				    LGE_MODE1_RX_PROMISC);
-			} else if (ifp->if_drv_flags & IFF_DRV_RUNNING &&
-			    !(ifp->if_flags & IFF_PROMISC) &&
+			} else if (if_getdrvflags(ifp) & IFF_DRV_RUNNING &&
+			    !(if_getflags(ifp) & IFF_PROMISC) &&
 			    sc->lge_if_flags & IFF_PROMISC) {
 				CSR_WRITE_4(sc, LGE_MODE1,
 				    LGE_MODE1_RX_PROMISC);
 			} else {
-				ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+				if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
 				lge_init_locked(sc);
 			}
 		} else {
-			if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+			if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
 				lge_stop(sc);
 		}
-		sc->lge_if_flags = ifp->if_flags;
+		sc->lge_if_flags = if_getflags(ifp);
 		LGE_UNLOCK(sc);
 		error = 0;
 		break;
@@ -1499,7 +1499,7 @@ static void
 lge_watchdog(sc)
 	struct lge_softc	*sc;
 {
-	struct ifnet		*ifp;
+	if_t			ifp;
 
 	LGE_LOCK_ASSERT(sc);
 	ifp = sc->lge_ifp;
@@ -1509,10 +1509,10 @@ lge_watchdog(sc)
 
 	lge_stop(sc);
 	lge_reset(sc);
-	ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+	if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
 	lge_init_locked(sc);
 
-	if (ifp->if_snd.ifq_head != NULL)
+	if (!if_sendq_empty(ifp))
 		lge_start_locked(ifp);
 }
 
@@ -1525,7 +1525,7 @@ lge_stop(sc)
 	struct lge_softc	*sc;
 {
 	int			i;
-	struct ifnet		*ifp;
+	if_t			ifp;
 
 	LGE_LOCK_ASSERT(sc);
 	ifp = sc->lge_ifp;
@@ -1562,7 +1562,7 @@ lge_stop(sc)
 	bzero((char *)&sc->lge_ldata->lge_tx_list,
 		sizeof(sc->lge_ldata->lge_tx_list));
 
-	ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+	if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
 
 	return;
 }
diff --git a/sys/dev/lge/if_lgereg.h b/sys/dev/lge/if_lgereg.h
index e5e8893fb733..b7e0b5a57adf 100644
--- a/sys/dev/lge/if_lgereg.h
+++ b/sys/dev/lge/if_lgereg.h
@@ -507,7 +507,7 @@ struct lge_ring_data {
 };
 
 struct lge_softc {
-	struct ifnet		*lge_ifp;
+	if_t			lge_ifp;
 	device_t		lge_dev;
 	bus_space_handle_t	lge_bhandle;
 	bus_space_tag_t		lge_btag;