The branch main has been updated by jhibbits:

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

commit 59dc03deec00347141ef8320b5e524276f252f2d
Author:     Justin Hibbits <jhibb...@freebsd.org>
AuthorDate: 2022-08-19 19:13:06 +0000
Commit:     Justin Hibbits <jhibb...@freebsd.org>
CommitDate: 2023-02-06 17:32:09 +0000

    Mechanically convert jme(4) to IfAPI
    
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37839
---
 sys/dev/jme/if_jme.c    | 237 ++++++++++++++++++++++++------------------------
 sys/dev/jme/if_jmevar.h |   2 +-
 2 files changed, 119 insertions(+), 120 deletions(-)

diff --git a/sys/dev/jme/if_jme.c b/sys/dev/jme/if_jme.c
index 45a8444dd6e3..da47ac714449 100644
--- a/sys/dev/jme/if_jme.c
+++ b/sys/dev/jme/if_jme.c
@@ -108,8 +108,8 @@ static struct jme_dev {
 static int jme_miibus_readreg(device_t, int, int);
 static int jme_miibus_writereg(device_t, int, int, int);
 static void jme_miibus_statchg(device_t);
-static void jme_mediastatus(struct ifnet *, struct ifmediareq *);
-static int jme_mediachange(struct ifnet *);
+static void jme_mediastatus(if_t, struct ifmediareq *);
+static int jme_mediachange(if_t);
 static int jme_probe(device_t);
 static int jme_eeprom_read_byte(struct jme_softc *, uint8_t, uint8_t *);
 static int jme_eeprom_macaddr(struct jme_softc *);
@@ -129,10 +129,10 @@ static void jme_setwol(struct jme_softc *);
 static int jme_suspend(device_t);
 static int jme_resume(device_t);
 static int jme_encap(struct jme_softc *, struct mbuf **);
-static void jme_start(struct ifnet *);
-static void jme_start_locked(struct ifnet *);
+static void jme_start(if_t);
+static void jme_start_locked(if_t);
 static void jme_watchdog(struct jme_softc *);
-static int jme_ioctl(struct ifnet *, u_long, caddr_t);
+static int jme_ioctl(if_t, u_long, caddr_t);
 static void jme_mac_config(struct jme_softc *);
 static void jme_link_task(void *, int);
 static int jme_intr(void *);
@@ -286,14 +286,14 @@ jme_miibus_statchg(device_t dev)
  *     Get the current interface media status.
  */
 static void
-jme_mediastatus(struct ifnet *ifp, struct ifmediareq *ifmr)
+jme_mediastatus(if_t ifp, struct ifmediareq *ifmr)
 {
        struct jme_softc *sc;
        struct mii_data *mii;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        JME_LOCK(sc);
-       if ((ifp->if_flags & IFF_UP) == 0) {
+       if ((if_getflags(ifp) & IFF_UP) == 0) {
                JME_UNLOCK(sc);
                return;
        }
@@ -309,14 +309,14 @@ jme_mediastatus(struct ifnet *ifp, struct ifmediareq 
*ifmr)
  *     Set hardware to newly-selected media.
  */
 static int
-jme_mediachange(struct ifnet *ifp)
+jme_mediachange(if_t ifp)
 {
        struct jme_softc *sc;
        struct mii_data *mii;
        struct mii_softc *miisc;
        int error;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        JME_LOCK(sc);
        mii = device_get_softc(sc->jme_miibus);
        LIST_FOREACH(miisc, &mii->mii_phys, mii_list)
@@ -623,7 +623,7 @@ static int
 jme_attach(device_t dev)
 {
        struct jme_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        struct mii_softc *miisc;
        struct mii_data *mii;
        uint32_t reg;
@@ -813,23 +813,22 @@ jme_attach(device_t dev)
                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 = jme_ioctl;
-       ifp->if_start = jme_start;
-       ifp->if_init = jme_init;
-       ifp->if_snd.ifq_drv_maxlen = JME_TX_RING_CNT - 1;
-       IFQ_SET_MAXLEN(&ifp->if_snd, ifp->if_snd.ifq_drv_maxlen);
-       IFQ_SET_READY(&ifp->if_snd);
+       if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+       if_setioctlfn(ifp, jme_ioctl);
+       if_setstartfn(ifp, jme_start);
+       if_setinitfn(ifp, jme_init);
+       if_setsendqlen(ifp, JME_TX_RING_CNT - 1);
+       if_setsendqready(ifp);
        /* JMC250 supports Tx/Rx checksum offload as well as TSO. */
-       ifp->if_capabilities = IFCAP_HWCSUM | IFCAP_TSO4;
-       ifp->if_hwassist = JME_CSUM_FEATURES | CSUM_TSO;
+       if_setcapabilities(ifp, IFCAP_HWCSUM | IFCAP_TSO4);
+       if_sethwassist(ifp, JME_CSUM_FEATURES | CSUM_TSO);
        if (pci_find_cap(dev, PCIY_PMG, &pmc) == 0) {
                sc->jme_flags |= JME_FLAG_PMCAP;
-               ifp->if_capabilities |= IFCAP_WOL_MAGIC;
+               if_setcapabilitiesbit(ifp, IFCAP_WOL_MAGIC, 0);
        }
-       ifp->if_capenable = ifp->if_capabilities;
+       if_setcapenable(ifp, if_getcapabilities(ifp));
 
        /* Wakeup PHY. */
        jme_phy_up(sc);
@@ -872,12 +871,12 @@ jme_attach(device_t dev)
        ether_ifattach(ifp, sc->jme_eaddr);
 
        /* VLAN capability setup */
-       ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING |
-           IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO;
-       ifp->if_capenable = ifp->if_capabilities;
+       if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU | IFCAP_VLAN_HWTAGGING |
+           IFCAP_VLAN_HWCSUM | IFCAP_VLAN_HWTSO, 0);
+       if_setcapenable(ifp, if_getcapabilities(ifp));
 
        /* Tell the upper layer(s) we support long frames. */
-       ifp->if_hdrlen = sizeof(struct ether_vlan_header);
+       if_setifheaderlen(ifp, sizeof(struct ether_vlan_header));
 
        /* Create local taskq. */
        sc->jme_tq = taskqueue_create_fast("jme_taskq", M_WAITOK,
@@ -918,7 +917,7 @@ static int
 jme_detach(device_t dev)
 {
        struct jme_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        int i;
 
        sc = device_get_softc(dev);
@@ -1580,7 +1579,7 @@ jme_setlinkspeed(struct jme_softc *sc)
 static void
 jme_setwol(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t gpr, pmcs;
        uint16_t pmstat;
        int pmc;
@@ -1605,7 +1604,7 @@ jme_setwol(struct jme_softc *sc)
        gpr = CSR_READ_4(sc, JME_GPREG0) & ~GPREG0_PME_ENB;
        pmcs = CSR_READ_4(sc, JME_PMCS);
        pmcs &= ~PMCS_WOL_ENB_MASK;
-       if ((ifp->if_capenable & IFCAP_WOL_MAGIC) != 0) {
+       if ((if_getcapenable(ifp) & IFCAP_WOL_MAGIC) != 0) {
                pmcs |= PMCS_MAGIC_FRAME | PMCS_MAGIC_FRAME_ENB;
                /* Enable PME message. */
                gpr |= GPREG0_PME_ENB;
@@ -1624,10 +1623,10 @@ jme_setwol(struct jme_softc *sc)
        /* Request PME. */
        pmstat = pci_read_config(sc->jme_dev, pmc + PCIR_POWER_STATUS, 2);
        pmstat &= ~(PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE);
-       if ((ifp->if_capenable & IFCAP_WOL) != 0)
+       if ((if_getcapenable(ifp) & IFCAP_WOL) != 0)
                pmstat |= PCIM_PSTAT_PME | PCIM_PSTAT_PMEENABLE;
        pci_write_config(sc->jme_dev, pmc + PCIR_POWER_STATUS, pmstat, 2);
-       if ((ifp->if_capenable & IFCAP_WOL) == 0) {
+       if ((if_getcapenable(ifp) & IFCAP_WOL) == 0) {
                /* No WOL, PHY power down. */
                jme_phy_down(sc);
        }
@@ -1652,7 +1651,7 @@ static int
 jme_resume(device_t dev)
 {
        struct jme_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint16_t pmstat;
        int pmc;
 
@@ -1670,8 +1669,8 @@ jme_resume(device_t dev)
        /* Wakeup PHY. */
        jme_phy_up(sc);
        ifp = sc->jme_ifp;
-       if ((ifp->if_flags & IFF_UP) != 0) {
-               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+       if ((if_getflags(ifp) & IFF_UP) != 0) {
+               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                jme_init_locked(sc);
        }
 
@@ -1866,36 +1865,36 @@ jme_encap(struct jme_softc *sc, struct mbuf **m_head)
 }
 
 static void
-jme_start(struct ifnet *ifp)
+jme_start(if_t ifp)
 {
         struct jme_softc *sc;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        JME_LOCK(sc);
        jme_start_locked(ifp);
        JME_UNLOCK(sc);
 }
 
 static void
-jme_start_locked(struct ifnet *ifp)
+jme_start_locked(if_t ifp)
 {
         struct jme_softc *sc;
         struct mbuf *m_head;
        int enq;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
 
        JME_LOCK_ASSERT(sc);
 
        if (sc->jme_cdata.jme_tx_cnt >= JME_TX_DESC_HIWAT)
                jme_txeof(sc);
 
-       if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
+       if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) !=
            IFF_DRV_RUNNING || (sc->jme_flags & JME_FLAG_LINK) == 0)
                return;
 
-       for (enq = 0; !IFQ_DRV_IS_EMPTY(&ifp->if_snd); ) {
-               IFQ_DRV_DEQUEUE(&ifp->if_snd, m_head);
+       for (enq = 0; !if_sendq_empty(ifp); ) {
+               m_head = if_dequeue(ifp);
                if (m_head == NULL)
                        break;
                /*
@@ -1906,8 +1905,8 @@ jme_start_locked(struct ifnet *ifp)
                if (jme_encap(sc, &m_head)) {
                        if (m_head == NULL)
                                break;
-                       IFQ_DRV_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;
                }
 
@@ -1936,7 +1935,7 @@ jme_start_locked(struct ifnet *ifp)
 static void
 jme_watchdog(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
 
        JME_LOCK_ASSERT(sc);
 
@@ -1947,7 +1946,7 @@ jme_watchdog(struct jme_softc *sc)
        if ((sc->jme_flags & JME_FLAG_LINK) == 0) {
                if_printf(sc->jme_ifp, "watchdog timeout (missed link)\n");
                if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                jme_init_locked(sc);
                return;
        }
@@ -1955,21 +1954,21 @@ jme_watchdog(struct jme_softc *sc)
        if (sc->jme_cdata.jme_tx_cnt == 0) {
                if_printf(sc->jme_ifp,
                    "watchdog timeout (missed Tx interrupts) -- recovering\n");
-               if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+               if (!if_sendq_empty(ifp))
                        jme_start_locked(ifp);
                return;
        }
 
        if_printf(sc->jme_ifp, "watchdog timeout\n");
        if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
-       ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+       if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
        jme_init_locked(sc);
-       if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+       if (!if_sendq_empty(ifp))
                jme_start_locked(ifp);
 }
 
 static int
-jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+jme_ioctl(if_t ifp, u_long cmd, caddr_t data)
 {
        struct jme_softc *sc;
        struct ifreq *ifr;
@@ -1977,7 +1976,7 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
        uint32_t reg;
        int error, mask;
 
-       sc = ifp->if_softc;
+       sc = if_getsoftc(ifp);
        ifr = (struct ifreq *)data;
        error = 0;
        switch (cmd) {
@@ -1989,7 +1988,7 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                        break;
                }
 
-               if (ifp->if_mtu != ifr->ifr_mtu) {
+               if (if_getmtu(ifp) != ifr->ifr_mtu) {
                        /*
                         * No special configuration is required when interface
                         * MTU is changed but availability of TSO/Tx checksum
@@ -1998,15 +1997,15 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                         */
                        JME_LOCK(sc);
                        if (ifr->ifr_mtu >= JME_TX_FIFO_SIZE) {
-                               ifp->if_capenable &=
-                                   ~(IFCAP_TXCSUM | IFCAP_TSO4);
-                               ifp->if_hwassist &=
-                                   ~(JME_CSUM_FEATURES | CSUM_TSO);
+                               if_setcapenablebit(ifp, 0,
+                                   IFCAP_TXCSUM | IFCAP_TSO4);
+                               if_sethwassistbits(ifp, 0,
+                                   JME_CSUM_FEATURES | CSUM_TSO);
                                VLAN_CAPABILITIES(ifp);
                        }
-                       ifp->if_mtu = ifr->ifr_mtu;
-                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
-                               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+                       if_setmtu(ifp, ifr->ifr_mtu);
+                       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
+                               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                                jme_init_locked(sc);
                        }
                        JME_UNLOCK(sc);
@@ -2014,9 +2013,9 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                break;
        case SIOCSIFFLAGS:
                JME_LOCK(sc);
-               if ((ifp->if_flags & IFF_UP) != 0) {
-                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
-                               if (((ifp->if_flags ^ sc->jme_if_flags)
+               if ((if_getflags(ifp) & IFF_UP) != 0) {
+                       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
+                               if (((if_getflags(ifp) ^ sc->jme_if_flags)
                                    & (IFF_PROMISC | IFF_ALLMULTI)) != 0)
                                        jme_set_filter(sc);
                        } else {
@@ -2024,16 +2023,16 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                                        jme_init_locked(sc);
                        }
                } else {
-                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+                       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
                                jme_stop(sc);
                }
-               sc->jme_if_flags = ifp->if_flags;
+               sc->jme_if_flags = if_getflags(ifp);
                JME_UNLOCK(sc);
                break;
        case SIOCADDMULTI:
        case SIOCDELMULTI:
                JME_LOCK(sc);
-               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+               if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
                        jme_set_filter(sc);
                JME_UNLOCK(sc);
                break;
@@ -2044,48 +2043,48 @@ jme_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
                break;
        case SIOCSIFCAP:
                JME_LOCK(sc);
-               mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+               mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
                if ((mask & IFCAP_TXCSUM) != 0 &&
-                   ifp->if_mtu < JME_TX_FIFO_SIZE) {
-                       if ((IFCAP_TXCSUM & ifp->if_capabilities) != 0) {
-                               ifp->if_capenable ^= IFCAP_TXCSUM;
-                               if ((IFCAP_TXCSUM & ifp->if_capenable) != 0)
-                                       ifp->if_hwassist |= JME_CSUM_FEATURES;
+                   if_getmtu(ifp) < JME_TX_FIFO_SIZE) {
+                       if ((IFCAP_TXCSUM & if_getcapabilities(ifp)) != 0) {
+                               if_togglecapenable(ifp, IFCAP_TXCSUM);
+                               if ((IFCAP_TXCSUM & if_getcapenable(ifp)) != 0)
+                                       if_sethwassistbits(ifp, 
JME_CSUM_FEATURES, 0);
                                else
-                                       ifp->if_hwassist &= ~JME_CSUM_FEATURES;
+                                       if_sethwassistbits(ifp, 0, 
JME_CSUM_FEATURES);
                        }
                }
                if ((mask & IFCAP_RXCSUM) != 0 &&
-                   (IFCAP_RXCSUM & ifp->if_capabilities) != 0) {
-                       ifp->if_capenable ^= IFCAP_RXCSUM;
+                   (IFCAP_RXCSUM & if_getcapabilities(ifp)) != 0) {
+                       if_togglecapenable(ifp, IFCAP_RXCSUM);
                        reg = CSR_READ_4(sc, JME_RXMAC);
                        reg &= ~RXMAC_CSUM_ENB;
-                       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+                       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
                                reg |= RXMAC_CSUM_ENB;
                        CSR_WRITE_4(sc, JME_RXMAC, reg);
                }
                if ((mask & IFCAP_TSO4) != 0 &&
-                   ifp->if_mtu < JME_TX_FIFO_SIZE) {
-                       if ((IFCAP_TSO4 & ifp->if_capabilities) != 0) {
-                               ifp->if_capenable ^= IFCAP_TSO4;
-                               if ((IFCAP_TSO4 & ifp->if_capenable) != 0)
-                                       ifp->if_hwassist |= CSUM_TSO;
+                   if_getmtu(ifp) < JME_TX_FIFO_SIZE) {
+                       if ((IFCAP_TSO4 & if_getcapabilities(ifp)) != 0) {
+                               if_togglecapenable(ifp, IFCAP_TSO4);
+                               if ((IFCAP_TSO4 & if_getcapenable(ifp)) != 0)
+                                       if_sethwassistbits(ifp, CSUM_TSO, 0);
                                else
-                                       ifp->if_hwassist &= ~CSUM_TSO;
+                                       if_sethwassistbits(ifp, 0, CSUM_TSO);
                        }
                }
                if ((mask & IFCAP_WOL_MAGIC) != 0 &&
-                   (IFCAP_WOL_MAGIC & ifp->if_capabilities) != 0)
-                       ifp->if_capenable ^= IFCAP_WOL_MAGIC;
+                   (IFCAP_WOL_MAGIC & if_getcapabilities(ifp)) != 0)
+                       if_togglecapenable(ifp, IFCAP_WOL_MAGIC);
                if ((mask & IFCAP_VLAN_HWCSUM) != 0 &&
-                   (ifp->if_capabilities & IFCAP_VLAN_HWCSUM) != 0)
-                       ifp->if_capenable ^= IFCAP_VLAN_HWCSUM;
+                   (if_getcapabilities(ifp) & IFCAP_VLAN_HWCSUM) != 0)
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWCSUM);
                if ((mask & IFCAP_VLAN_HWTSO) != 0 &&
-                   (ifp->if_capabilities & IFCAP_VLAN_HWTSO) != 0)
-                       ifp->if_capenable ^= IFCAP_VLAN_HWTSO;
+                   (if_getcapabilities(ifp) & IFCAP_VLAN_HWTSO) != 0)
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWTSO);
                if ((mask & IFCAP_VLAN_HWTAGGING) != 0 &&
-                   (IFCAP_VLAN_HWTAGGING & ifp->if_capabilities) != 0) {
-                       ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
+                   (IFCAP_VLAN_HWTAGGING & if_getcapabilities(ifp)) != 0) {
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWTAGGING);
                        jme_set_vlan(sc);
                }
                JME_UNLOCK(sc);
@@ -2198,7 +2197,7 @@ jme_link_task(void *arg, int pending)
 {
        struct jme_softc *sc;
        struct mii_data *mii;
-       struct ifnet *ifp;
+       if_t ifp;
        struct jme_txdesc *txd;
        bus_addr_t paddr;
        int i;
@@ -2209,7 +2208,7 @@ jme_link_task(void *arg, int pending)
        mii = device_get_softc(sc->jme_miibus);
        ifp = sc->jme_ifp;
        if (mii == NULL || ifp == NULL ||
-           (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+           (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) {
                JME_UNLOCK(sc);
                return;
        }
@@ -2248,7 +2247,7 @@ jme_link_task(void *arg, int pending)
        taskqueue_block(sc->jme_tq);
        /* Disable interrupts and stop driver. */
        CSR_WRITE_4(sc, JME_INTR_MASK_CLR, JME_INTRS);
-       ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+       if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
        callout_stop(&sc->jme_tick_ch);
        sc->jme_watchdog_timer = 0;
 
@@ -2326,8 +2325,8 @@ jme_link_task(void *arg, int pending)
                            CSR_READ_4(sc, JME_GPREG1) & 
~GPREG1_RX_MAC_CLK_DIS);
        }
 
-       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->jme_tick_ch, hz, jme_tick, sc);
        /* Unblock execution of task. */
        taskqueue_unblock(sc->jme_tq);
@@ -2359,7 +2358,7 @@ static void
 jme_int_task(void *arg, int pending)
 {
        struct jme_softc *sc;
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t status;
        int more;
 
@@ -2382,7 +2381,7 @@ jme_int_task(void *arg, int pending)
                status |= INTR_RXQ_COAL | INTR_RXQ_COAL_TO | INTR_RXQ_COMP;
        CSR_WRITE_4(sc, JME_INTR_STATUS, status);
        more = 0;
-       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
+       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
                if ((status & (INTR_RXQ_COAL | INTR_RXQ_COAL_TO)) != 0) {
                        more = jme_rxintr(sc, sc->jme_process_limit);
                        if (more != 0)
@@ -2401,7 +2400,7 @@ jme_int_task(void *arg, int pending)
                        CSR_WRITE_4(sc, JME_RXCSR, sc->jme_rxcsr |
                            RXCSR_RX_ENB | RXCSR_RXQ_START);
                }
-               if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+               if (!if_sendq_empty(ifp))
                        jme_start_locked(ifp);
        }
 
@@ -2420,7 +2419,7 @@ done:
 static void
 jme_txeof(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        struct jme_txdesc *txd;
        uint32_t status;
        int cons, nsegs;
@@ -2481,7 +2480,7 @@ jme_txeof(struct jme_softc *sc)
                KASSERT(sc->jme_cdata.jme_tx_cnt >= 0,
                    ("%s: Active Tx desc counter was garbled\n", __func__));
                txd->tx_ndesc = 0;
-               ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
        }
        sc->jme_cdata.jme_tx_cons = cons;
        /* Unarm watchdog timer when there is no pending descriptors in queue. 
*/
@@ -2507,7 +2506,7 @@ jme_discard_rxbuf(struct jme_softc *sc, int cons)
 static void
 jme_rxeof(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        struct jme_desc *desc;
        struct jme_rxdesc *rxd;
        struct mbuf *mp, *m;
@@ -2601,7 +2600,7 @@ jme_rxeof(struct jme_softc *sc)
                        m->m_data += JME_RX_PAD_BYTES;
 
                        /* Set checksum information. */
-                       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0 &&
+                       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0 &&
                            (flags & JME_RD_IPV4) != 0) {
                                m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED;
                                if ((flags & JME_RD_IPCSUM) != 0)
@@ -2618,7 +2617,7 @@ jme_rxeof(struct jme_softc *sc)
                        }
 
                        /* Check for VLAN tagged packets. */
-                       if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) != 0 &&
+                       if ((if_getcapenable(ifp) & IFCAP_VLAN_HWTAGGING) != 0 
&&
                            (flags & JME_RD_VLAN_TAG) != 0) {
                                m->m_pkthdr.ether_vtag =
                                    flags & JME_RD_VLAN_MASK;
@@ -2628,7 +2627,7 @@ jme_rxeof(struct jme_softc *sc)
                        if_inc_counter(ifp, IFCOUNTER_IPACKETS, 1);
                        /* Pass it on. */
                        JME_UNLOCK(sc);
-                       (*ifp->if_input)(ifp, m);
+                       if_input(ifp, m);
                        JME_LOCK(sc);
 
                        /* Reset mbuf chains. */
@@ -2761,7 +2760,7 @@ jme_init(void *xsc)
 static void
 jme_init_locked(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        struct mii_data *mii;
        bus_addr_t paddr;
        uint32_t reg;
@@ -2772,7 +2771,7 @@ jme_init_locked(struct jme_softc *sc)
        ifp = sc->jme_ifp;
        mii = device_get_softc(sc->jme_miibus);
 
-       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
                return;
        /*
         * Cancel any pending I/O.
@@ -2798,7 +2797,7 @@ jme_init_locked(struct jme_softc *sc)
        jme_init_ssb(sc);
 
        /* Reprogram the station address. */
-       jme_set_macaddr(sc, IF_LLADDR(sc->jme_ifp));
+       jme_set_macaddr(sc, if_getlladdr(sc->jme_ifp));
 
        /*
         * Configure Tx queue.
@@ -2852,7 +2851,7 @@ jme_init_locked(struct jme_softc *sc)
        if (CHIPMODE_REVFM(sc->jme_chip_rev) >= 2)
                sc->jme_rxcsr |= RXCSR_FIFO_THRESH_16QW;
        else {
-               if ((ifp->if_mtu + ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN +
+               if ((if_getmtu(ifp) + ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN +
                    ETHER_CRC_LEN) > JME_RX_FIFO_SIZE)
                        sc->jme_rxcsr |= RXCSR_FIFO_THRESH_16QW;
                else
@@ -2892,7 +2891,7 @@ jme_init_locked(struct jme_softc *sc)
         * it does not need to copy the frame to align the payload.
         */
        reg |= RXMAC_PAD_10BYTES;
-       if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+       if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
                reg |= RXMAC_CSUM_ENB;
        CSR_WRITE_4(sc, JME_RXMAC, reg);
 
@@ -2994,14 +2993,14 @@ jme_init_locked(struct jme_softc *sc)
 
        callout_reset(&sc->jme_tick_ch, hz, jme_tick, sc);
 
-       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);
 }
 
 static void
 jme_stop(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        struct jme_txdesc *txd;
        struct jme_rxdesc *rxd;
        int i;
@@ -3011,7 +3010,7 @@ jme_stop(struct jme_softc *sc)
         * Mark the interface down and cancel the watchdog timer.
         */
        ifp = sc->jme_ifp;
-       ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+       if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
        sc->jme_flags &= ~JME_FLAG_LINK;
        callout_stop(&sc->jme_tick_ch);
        sc->jme_watchdog_timer = 0;
@@ -3221,7 +3220,7 @@ jme_newbuf(struct jme_softc *sc, struct jme_rxdesc *rxd)
 static void
 jme_set_vlan(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t reg;
 
        JME_LOCK_ASSERT(sc);
@@ -3229,7 +3228,7 @@ jme_set_vlan(struct jme_softc *sc)
        ifp = sc->jme_ifp;
        reg = CSR_READ_4(sc, JME_RXMAC);
        reg &= ~RXMAC_VLAN_ENB;
-       if ((ifp->if_capenable & IFCAP_VLAN_HWTAGGING) != 0)
+       if ((if_getcapenable(ifp) & IFCAP_VLAN_HWTAGGING) != 0)
                reg |= RXMAC_VLAN_ENB;
        CSR_WRITE_4(sc, JME_RXMAC, reg);
 }
@@ -3253,7 +3252,7 @@ jme_hash_maddr(void *arg, struct sockaddr_dl *sdl, u_int 
cnt)
 static void
 jme_set_filter(struct jme_softc *sc)
 {
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t mchash[2];
        uint32_t rxcfg;
 
@@ -3266,12 +3265,12 @@ jme_set_filter(struct jme_softc *sc)
            RXMAC_ALLMULTI);
        /* Always accept frames destined to our station address. */
        rxcfg |= RXMAC_UNICAST;
-       if ((ifp->if_flags & IFF_BROADCAST) != 0)
+       if ((if_getflags(ifp) & IFF_BROADCAST) != 0)
                rxcfg |= RXMAC_BROADCAST;
-       if ((ifp->if_flags & (IFF_PROMISC | IFF_ALLMULTI)) != 0) {
-               if ((ifp->if_flags & IFF_PROMISC) != 0)
+       if ((if_getflags(ifp) & (IFF_PROMISC | IFF_ALLMULTI)) != 0) {
+               if ((if_getflags(ifp) & IFF_PROMISC) != 0)
                        rxcfg |= RXMAC_PROMISC;
-               if ((ifp->if_flags & IFF_ALLMULTI) != 0)
+               if ((if_getflags(ifp) & IFF_ALLMULTI) != 0)
                        rxcfg |= RXMAC_ALLMULTI;
                CSR_WRITE_4(sc, JME_MAR0, 0xFFFFFFFF);
                CSR_WRITE_4(sc, JME_MAR1, 0xFFFFFFFF);
diff --git a/sys/dev/jme/if_jmevar.h b/sys/dev/jme/if_jmevar.h
index 2e34364a962e..811649f4670d 100644
--- a/sys/dev/jme/if_jmevar.h
+++ b/sys/dev/jme/if_jmevar.h
@@ -172,7 +172,7 @@ struct jme_hw_stats {
  * Software state per device.
  */
 struct jme_softc {
-       struct ifnet            *jme_ifp;
+       if_t                    jme_ifp;
        device_t                jme_dev;
        device_t                jme_miibus;
        struct resource         *jme_res[1];

Reply via email to