The branch main has been updated by jhibbits:

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

commit bc14c73b7b9c8dc43675a24f7da2040e469db328
Author:     Justin Hibbits <jhibb...@freebsd.org>
AuthorDate: 2022-08-19 16:05:38 +0000
Commit:     Justin Hibbits <jhibb...@freebsd.org>
CommitDate: 2023-02-06 17:32:13 +0000

    Mechanically convert al_eth(4) to IfAPI
    
    Sponsored by:   Juniper Networks, Inc.
    Differential Revision: https://reviews.freebsd.org/D37834
---
 sys/dev/al_eth/al_eth.c | 138 ++++++++++++++++++++++++------------------------
 1 file changed, 69 insertions(+), 69 deletions(-)

diff --git a/sys/dev/al_eth/al_eth.c b/sys/dev/al_eth/al_eth.c
index 355f1e193b68..43d3b8fed605 100644
--- a/sys/dev/al_eth/al_eth.c
+++ b/sys/dev/al_eth/al_eth.c
@@ -197,11 +197,11 @@ static void al_eth_down(struct al_eth_adapter *);
 static void al_eth_interrupts_unmask(struct al_eth_adapter *);
 static void al_eth_interrupts_mask(struct al_eth_adapter *);
 static int al_eth_check_mtu(struct al_eth_adapter *, int);
-static uint64_t al_get_counter(struct ifnet *, ift_counter);
+static uint64_t al_get_counter(if_t, ift_counter);
 static void al_eth_req_rx_buff_size(struct al_eth_adapter *, int);
 static int al_eth_board_params_init(struct al_eth_adapter *);
-static int al_media_update(struct ifnet *);
-static void al_media_status(struct ifnet *, struct ifmediareq *);
+static int al_media_update(if_t);
+static void al_media_status(if_t, struct ifmediareq *);
 static int al_eth_function_reset(struct al_eth_adapter *);
 static int al_eth_hw_init_adapter(struct al_eth_adapter *);
 static void al_eth_serdes_init(struct al_eth_adapter *);
@@ -212,9 +212,9 @@ static void al_tick_stats(void *);
 
 /* ifnet entry points */
 static void al_init(void *);
-static int al_mq_start(struct ifnet *, struct mbuf *);
-static void al_qflush(struct ifnet *);
-static int al_ioctl(struct ifnet * ifp, u_long, caddr_t);
+static int al_mq_start(if_t, struct mbuf *);
+static void al_qflush(if_t);
+static int al_ioctl(if_t ifp, u_long, caddr_t);
 
 /* bus entry points */
 static int al_probe(device_t);
@@ -274,7 +274,7 @@ al_attach(device_t dev)
        struct sysctl_oid_list *child;
        struct sysctl_ctx_list *ctx;
        struct sysctl_oid *tree;
-       struct ifnet *ifp;
+       if_t ifp;
        uint32_t dev_id;
        uint32_t rev_id;
        int bar_udma;
@@ -341,27 +341,27 @@ al_attach(device_t dev)
 
        adapter->netdev->if_link_state = LINK_STATE_DOWN;
 
-       ifp->if_softc = adapter;
+       if_setsoftc(ifp, adapter);
        if_initname(ifp, device_get_name(dev), device_get_unit(dev));
-       ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
-       ifp->if_flags = ifp->if_drv_flags;
-       ifp->if_flags |= IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST | 
IFF_ALLMULTI;
-       ifp->if_transmit = al_mq_start;
-       ifp->if_qflush = al_qflush;
-       ifp->if_ioctl = al_ioctl;
-       ifp->if_init = al_init;
-       ifp->if_get_counter = al_get_counter;
-       ifp->if_mtu = AL_DEFAULT_MTU;
+       if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
+       if_setflags(ifp, if_getdrvflags(ifp));
+       if_setflagbits(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST | 
IFF_ALLMULTI, 0);
+       if_settransmitfn(ifp, al_mq_start);
+       if_setqflushfn(ifp, al_qflush);
+       if_setioctlfn(ifp, al_ioctl);
+       if_setinitfn(ifp, al_init);
+       if_setgetcounterfn(ifp, al_get_counter);
+       if_setmtu(ifp, AL_DEFAULT_MTU);
 
-       adapter->if_flags = ifp->if_flags;
+       adapter->if_flags = if_getflags(ifp);
 
-       ifp->if_capabilities = ifp->if_capenable = 0;
+       if_setcapabilities(ifp, if_getcapenable(ifp) );
 
-       ifp->if_capabilities |= IFCAP_HWCSUM |
+       if_setcapabilitiesbit(ifp, IFCAP_HWCSUM |
            IFCAP_HWCSUM_IPV6 | IFCAP_TSO |
-           IFCAP_LRO | IFCAP_JUMBO_MTU;
+           IFCAP_LRO | IFCAP_JUMBO_MTU, 0);
 
-       ifp->if_capenable = ifp->if_capabilities;
+       if_setcapenable(ifp, if_getcapabilities(ifp));
 
        adapter->id_number = g_adapters_count;
 
@@ -424,7 +424,7 @@ al_attach(device_t dev)
        callout_init_mtx(&adapter->wd_callout, &adapter->wd_mtx, 0);
 
        ether_ifattach(ifp, adapter->mac_addr);
-       ifp->if_mtu = AL_DEFAULT_MTU;
+       if_setmtu(ifp, AL_DEFAULT_MTU);
 
        if (adapter->mac_mode == AL_ETH_MAC_MODE_RGMII) {
                al_eth_hw_init(adapter);
@@ -1028,9 +1028,9 @@ al_init_locked(void *arg)
        al_eth_down(adapter);
        rc = al_eth_up(adapter);
 
-       ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+       if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
        if (rc == 0)
-               ifp->if_drv_flags |= IFF_DRV_RUNNING;
+               if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
 }
 
 static void
@@ -1726,9 +1726,9 @@ al_eth_start_xmit(void *arg, int pending)
 }
 
 static int
-al_mq_start(struct ifnet *ifp, struct mbuf *m)
+al_mq_start(if_t ifp, struct mbuf *m)
 {
-       struct al_eth_adapter *adapter = ifp->if_softc;
+       struct al_eth_adapter *adapter = if_getsoftc(ifp);
        struct al_eth_ring *tx_ring;
        int i;
        int ret;
@@ -1739,7 +1739,7 @@ al_mq_start(struct ifnet *ifp, struct mbuf *m)
        else
                i = curcpu % adapter->num_tx_queues;
 
-       if ((ifp->if_drv_flags & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
+       if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING|IFF_DRV_OACTIVE)) !=
            IFF_DRV_RUNNING) {
                return (EFAULT);
        }
@@ -1762,7 +1762,7 @@ al_mq_start(struct ifnet *ifp, struct mbuf *m)
 }
 
 static void
-al_qflush(struct ifnet * ifp)
+al_qflush(if_t ifp)
 {
 
        /* unused */
@@ -2829,7 +2829,7 @@ al_eth_update_stats(struct al_eth_adapter *adapter)
 }
 
 static uint64_t
-al_get_counter(struct ifnet *ifp, ift_counter cnt)
+al_get_counter(if_t ifp, ift_counter cnt)
 {
        struct al_eth_adapter *adapter;
        struct al_eth_mac_stats *mac_stats;
@@ -2906,7 +2906,7 @@ al_program_addr(void *arg, struct sockaddr_dl *sdl, u_int 
cnt)
 static void
 al_eth_set_rx_mode(struct al_eth_adapter *adapter)
 {
-       struct ifnet *ifp = adapter->netdev;
+       if_t ifp = adapter->netdev;
        int mc, uc;
        uint8_t i;
 
@@ -2914,10 +2914,10 @@ al_eth_set_rx_mode(struct al_eth_adapter *adapter)
        mc = if_foreach_llmaddr(ifp, al_count_maddr, NULL);
        uc = if_lladdr_count(ifp);
 
-       if ((ifp->if_flags & IFF_PROMISC) != 0) {
+       if ((if_getflags(ifp) & IFF_PROMISC) != 0) {
                al_eth_mac_table_promiscuous_set(adapter, true);
        } else {
-               if ((ifp->if_flags & IFF_ALLMULTI) != 0) {
+               if ((if_getflags(ifp) & IFF_ALLMULTI) != 0) {
                        /* This interface is in all-multicasts mode (used by 
multicast routers). */
                        al_eth_mac_table_all_multicast_add(adapter,
                            AL_ETH_MAC_TABLE_ALL_MULTICAST_IDX, 1);
@@ -3128,20 +3128,20 @@ al_eth_up_complete(struct al_eth_adapter *adapter)
 }
 
 static int
-al_media_update(struct ifnet *ifp)
+al_media_update(if_t ifp)
 {
-       struct al_eth_adapter *adapter = ifp->if_softc;
+       struct al_eth_adapter *adapter = if_getsoftc(ifp);
 
-       if ((ifp->if_flags & IFF_UP) != 0)
+       if ((if_getflags(ifp) & IFF_UP) != 0)
                mii_mediachg(adapter->mii);
 
        return (0);
 }
 
 static void
-al_media_status(struct ifnet *ifp, struct ifmediareq *ifmr)
+al_media_status(if_t ifp, struct ifmediareq *ifmr)
 {
-       struct al_eth_adapter *sc = ifp->if_softc;
+       struct al_eth_adapter *sc = if_getsoftc(ifp);
        struct mii_data *mii;
 
        if (sc->mii == NULL) {
@@ -3182,7 +3182,7 @@ al_tick_stats(void *arg)
 static int
 al_eth_up(struct al_eth_adapter *adapter)
 {
-       struct ifnet *ifp = adapter->netdev;
+       if_t ifp = adapter->netdev;
        int rc;
 
        if (adapter->up)
@@ -3193,13 +3193,13 @@ al_eth_up(struct al_eth_adapter *adapter)
                adapter->flags &= ~AL_ETH_FLAG_RESET_REQUESTED;
        }
 
-       ifp->if_hwassist = 0;
-       if ((ifp->if_capenable & IFCAP_TSO) != 0)
-               ifp->if_hwassist |= CSUM_TSO;
-       if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
-               ifp->if_hwassist |= (CSUM_TCP | CSUM_UDP);
-       if ((ifp->if_capenable & IFCAP_TXCSUM_IPV6) != 0)
-               ifp->if_hwassist |= (CSUM_TCP_IPV6 | CSUM_UDP_IPV6);
+       if_sethwassist(ifp, 0);
+       if ((if_getcapenable(ifp) & IFCAP_TSO) != 0)
+               if_sethwassistbits(ifp, CSUM_TSO, 0);
+       if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
+               if_sethwassistbits(ifp, (CSUM_TCP | CSUM_UDP), 0);
+       if ((if_getcapenable(ifp) & IFCAP_TXCSUM_IPV6) != 0)
+               if_sethwassistbits(ifp, (CSUM_TCP_IPV6 | CSUM_UDP_IPV6), 0);
 
        al_eth_serdes_init(adapter);
 
@@ -3298,9 +3298,9 @@ al_eth_down(struct al_eth_adapter *adapter)
 }
 
 static int
-al_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+al_ioctl(if_t ifp, u_long command, caddr_t data)
 {
-       struct al_eth_adapter   *adapter = ifp->if_softc;
+       struct al_eth_adapter   *adapter = if_getsoftc(ifp);
        struct ifreq            *ifr = (struct ifreq *)data;
        int                     error = 0;
 
@@ -3314,15 +3314,15 @@ al_ioctl(struct ifnet *ifp, u_long command, caddr_t 
data)
                        break;
                }
 
-               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                adapter->netdev->if_mtu = ifr->ifr_mtu;
                al_init(adapter);
                break;
        }
        case SIOCSIFFLAGS:
-               if ((ifp->if_flags & IFF_UP) != 0) {
-                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
-                               if (((ifp->if_flags ^ adapter->if_flags) &
+               if ((if_getflags(ifp) & IFF_UP) != 0) {
+                       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
+                               if (((if_getflags(ifp) ^ adapter->if_flags) &
                                    (IFF_PROMISC | IFF_ALLMULTI)) != 0) {
                                        device_printf_dbg(adapter->dev,
                                            "ioctl promisc/allmulti\n");
@@ -3331,26 +3331,26 @@ al_ioctl(struct ifnet *ifp, u_long command, caddr_t 
data)
                        } else {
                                error = al_eth_up(adapter);
                                if (error == 0)
-                                       ifp->if_drv_flags |= IFF_DRV_RUNNING;
+                                       if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 
0);
                        }
                } else {
-                       if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
+                       if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
                                al_eth_down(adapter);
-                               ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+                               if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
                        }
                }
 
-               adapter->if_flags = ifp->if_flags;
+               adapter->if_flags = if_getflags(ifp);
                break;
 
        case SIOCADDMULTI:
        case SIOCDELMULTI:
-               if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0) {
+               if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0) {
                        device_printf_dbg(adapter->dev,
                            "ioctl add/del multi before\n");
                        al_eth_set_rx_mode(adapter);
 #ifdef DEVICE_POLLING
-                       if ((ifp->if_capenable & IFCAP_POLLING) == 0)
+                       if ((if_getcapenable(ifp) & IFCAP_POLLING) == 0)
 #endif
                }
                break;
@@ -3368,50 +3368,50 @@ al_ioctl(struct ifnet *ifp, u_long command, caddr_t 
data)
                int mask, reinit;
 
                reinit = 0;
-               mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+               mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
 #ifdef DEVICE_POLLING
                if ((mask & IFCAP_POLLING) != 0) {
                        if ((ifr->ifr_reqcap & IFCAP_POLLING) != 0) {
                                if (error != 0)
                                        return (error);
-                               ifp->if_capenable |= IFCAP_POLLING;
+                               if_setcapenablebit(ifp, IFCAP_POLLING, 0);
                        } else {
                                error = ether_poll_deregister(ifp);
                                /* Enable interrupt even in error case */
-                               ifp->if_capenable &= ~IFCAP_POLLING;
+                               if_setcapenablebit(ifp, 0, IFCAP_POLLING);
                        }
                }
 #endif
                if ((mask & IFCAP_HWCSUM) != 0) {
                        /* apply to both rx and tx */
-                       ifp->if_capenable ^= IFCAP_HWCSUM;
+                       if_togglecapenable(ifp, IFCAP_HWCSUM);
                        reinit = 1;
                }
                if ((mask & IFCAP_HWCSUM_IPV6) != 0) {
-                       ifp->if_capenable ^= IFCAP_HWCSUM_IPV6;
+                       if_togglecapenable(ifp, IFCAP_HWCSUM_IPV6);
                        reinit = 1;
                }
                if ((mask & IFCAP_TSO) != 0) {
-                       ifp->if_capenable ^= IFCAP_TSO;
+                       if_togglecapenable(ifp, IFCAP_TSO);
                        reinit = 1;
                }
                if ((mask & IFCAP_LRO) != 0) {
-                       ifp->if_capenable ^= IFCAP_LRO;
+                       if_togglecapenable(ifp, IFCAP_LRO);
                }
                if ((mask & IFCAP_VLAN_HWTAGGING) != 0) {
-                       ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWTAGGING);
                        reinit = 1;
                }
                if ((mask & IFCAP_VLAN_HWFILTER) != 0) {
-                       ifp->if_capenable ^= IFCAP_VLAN_HWFILTER;
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWFILTER);
                        reinit = 1;
                }
                if ((mask & IFCAP_VLAN_HWTSO) != 0) {
-                       ifp->if_capenable ^= IFCAP_VLAN_HWTSO;
+                       if_togglecapenable(ifp, IFCAP_VLAN_HWTSO);
                        reinit = 1;
                }
                if ((reinit != 0) &&
-                   ((ifp->if_drv_flags & IFF_DRV_RUNNING)) != 0)
+                   ((if_getdrvflags(ifp) & IFF_DRV_RUNNING)) != 0)
                {
                        al_init(adapter);
                }

Reply via email to