Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F96323741
D37812.id114928.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
101 KB
Referenced Files
None
Subscribers
None
D37812.id114928.diff
View Options
diff --git a/sys/dev/usb/net/if_aue.c b/sys/dev/usb/net/if_aue.c
--- a/sys/dev/usb/net/if_aue.c
+++ b/sys/dev/usb/net/if_aue.c
@@ -225,8 +225,8 @@
static void aue_reset(struct aue_softc *);
static void aue_reset_pegasus_II(struct aue_softc *);
-static int aue_ifmedia_upd(struct ifnet *);
-static void aue_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int aue_ifmedia_upd(if_t );
+static void aue_ifmedia_sts(if_t , struct ifmediareq *);
static const struct usb_config aue_config[AUE_N_TRANSFER] = {
[AUE_BULK_DT_WR] = {
@@ -554,13 +554,13 @@
aue_setmulti(struct usb_ether *ue)
{
struct aue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint32_t i;
uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
AUE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
AUE_SETBIT(sc, AUE_CTL0, AUE_CTL0_ALLMULTI);
return;
}
@@ -740,7 +740,7 @@
aue_intr_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct aue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct aue_intrpkt pkt;
struct usb_page_cache *pc;
int actlen;
@@ -750,7 +750,7 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) &&
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) &&
actlen >= (int)sizeof(pkt)) {
pc = usbd_xfer_get_frame(xfer, 0);
usbd_copy_out(pc, 0, &pkt, sizeof(pkt));
@@ -783,7 +783,7 @@
{
struct aue_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct aue_rxpkt stat;
struct usb_page_cache *pc;
int actlen;
@@ -847,7 +847,7 @@
aue_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct aue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
uint8_t buf[2];
@@ -870,7 +870,7 @@
*/
return;
}
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -959,7 +959,7 @@
aue_init(struct usb_ether *ue)
{
struct aue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
int i;
AUE_LOCK_ASSERT(sc, MA_OWNED);
@@ -971,7 +971,7 @@
/* Set MAC address */
for (i = 0; i != ETHER_ADDR_LEN; i++)
- aue_csr_write_1(sc, AUE_PAR0 + i, IF_LLADDR(ifp)[i]);
+ aue_csr_write_1(sc, AUE_PAR0 + i, if_getlladdr(ifp)[i]);
/* update promiscuous setting */
aue_setpromisc(ue);
@@ -986,7 +986,7 @@
usbd_xfer_set_stall(sc->sc_xfer[AUE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
aue_start(ue);
}
@@ -994,12 +994,12 @@
aue_setpromisc(struct usb_ether *ue)
{
struct aue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
AUE_LOCK_ASSERT(sc, MA_OWNED);
/* if we want promiscuous mode, set the allframes bit: */
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
AUE_SETBIT(sc, AUE_CTL2, AUE_CTL2_RX_PROMISC);
else
AUE_CLRBIT(sc, AUE_CTL2, AUE_CTL2_RX_PROMISC);
@@ -1009,9 +1009,9 @@
* Set media options.
*/
static int
-aue_ifmedia_upd(struct ifnet *ifp)
+aue_ifmedia_upd(if_t ifp)
{
- struct aue_softc *sc = ifp->if_softc;
+ struct aue_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
struct mii_softc *miisc;
int error;
@@ -1029,9 +1029,9 @@
* Report current media status.
*/
static void
-aue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+aue_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct aue_softc *sc = ifp->if_softc;
+ struct aue_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
AUE_LOCK(sc);
@@ -1049,11 +1049,11 @@
aue_stop(struct usb_ether *ue)
{
struct aue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
AUE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
sc->sc_flags &= ~AUE_FLAG_LINK;
/*
diff --git a/sys/dev/usb/net/if_axe.c b/sys/dev/usb/net/if_axe.c
--- a/sys/dev/usb/net/if_axe.c
+++ b/sys/dev/usb/net/if_axe.c
@@ -205,8 +205,8 @@
static uether_fn_t axe_setpromisc;
static int axe_attach_post_sub(struct usb_ether *);
-static int axe_ifmedia_upd(struct ifnet *);
-static void axe_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int axe_ifmedia_upd(if_t );
+static void axe_ifmedia_sts(if_t , struct ifmediareq *);
static int axe_cmd(struct axe_softc *, int, int, int, void *);
static void axe_ax88178_init(struct axe_softc *);
static void axe_ax88772_init(struct axe_softc *);
@@ -214,7 +214,7 @@
static void axe_ax88772a_init(struct axe_softc *);
static void axe_ax88772b_init(struct axe_softc *);
static int axe_get_phyno(struct axe_softc *, int);
-static int axe_ioctl(struct ifnet *, u_long, caddr_t);
+static int axe_ioctl(if_t , u_long, caddr_t);
static int axe_rx_frame(struct usb_ether *, struct usb_page_cache *, int);
static int axe_rxeof(struct usb_ether *, struct usb_page_cache *,
unsigned offset, unsigned, struct axe_csum_hdr *);
@@ -373,7 +373,7 @@
{
struct axe_softc *sc = device_get_softc(dev);
struct mii_data *mii = GET_MII(sc);
- struct ifnet *ifp;
+ if_t ifp;
uint16_t val;
int err, locked;
@@ -383,7 +383,7 @@
ifp = uether_getifp(&sc->sc_ue);
if (mii == NULL || ifp == NULL ||
- (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
goto done;
sc->sc_flags &= ~AXE_FLAG_LINK;
@@ -448,9 +448,9 @@
* Set media options.
*/
static int
-axe_ifmedia_upd(struct ifnet *ifp)
+axe_ifmedia_upd(if_t ifp)
{
- struct axe_softc *sc = ifp->if_softc;
+ struct axe_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
struct mii_softc *miisc;
int error;
@@ -467,9 +467,9 @@
* Report current media status.
*/
static void
-axe_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+axe_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct axe_softc *sc = ifp->if_softc;
+ struct axe_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
AXE_LOCK(sc);
@@ -495,7 +495,7 @@
axe_setmulti(struct usb_ether *ue)
{
struct axe_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint16_t rxmode;
uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -504,7 +504,7 @@
axe_cmd(sc, AXE_CMD_RXCTL_READ, 0, 0, &rxmode);
rxmode = le16toh(rxmode);
- if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
+ if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
rxmode |= AXE_RXCMD_ALLMULTI;
axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, rxmode, NULL);
return;
@@ -865,25 +865,24 @@
axe_attach_post_sub(struct usb_ether *ue)
{
struct axe_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
u_int adv_pause;
int error;
sc = uether_getsc(ue);
ifp = ue->ue_ifp;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = axe_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, axe_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
if (AXE_IS_178_FAMILY(sc))
- ifp->if_capabilities |= IFCAP_VLAN_MTU;
+ if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
if (sc->sc_flags & AXE_FLAG_772B) {
- ifp->if_capabilities |= IFCAP_TXCSUM | IFCAP_RXCSUM;
- ifp->if_hwassist = AXE_CSUM_FEATURES;
+ if_setcapabilitiesbit(ifp, IFCAP_TXCSUM | IFCAP_RXCSUM, 0);
+ if_sethwassist(ifp, AXE_CSUM_FEATURES);
/*
* Checksum offloading of AX88772B also works with VLAN
* tagged frames but there is no way to take advantage
@@ -894,7 +893,7 @@
* not possible to announce IFCAP_VLAN_HWTAGGING.
*/
}
- ifp->if_capenable = ifp->if_capabilities;
+ if_setcapenable(ifp, if_getcapabilities(ifp));
if (sc->sc_flags & (AXE_FLAG_772A | AXE_FLAG_772B | AXE_FLAG_178))
adv_pause = MIIF_DOPAUSE;
else
@@ -1106,7 +1105,7 @@
axe_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned offset,
unsigned len, struct axe_csum_hdr *csum_hdr)
{
- struct ifnet *ifp = ue->ue_ifp;
+ if_t ifp = ue->ue_ifp;
struct mbuf *m;
if (len < ETHER_HDR_LEN || len > MCLBYTES - ETHER_ALIGN) {
@@ -1157,7 +1156,7 @@
{
struct axe_softc *sc = usbd_xfer_softc(xfer);
struct axe_sframe_hdr hdr;
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
int nframes, pos;
@@ -1165,12 +1164,12 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
DPRINTFN(11, "transfer complete\n");
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
if ((sc->sc_flags & AXE_FLAG_LINK) == 0 ||
- (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+ (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
/*
* Don't send anything if there is no link or
* controller is busy.
@@ -1179,8 +1178,8 @@
}
for (nframes = 0; nframes < 16 &&
- !IFQ_DRV_IS_EMPTY(&ifp->if_snd); nframes++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ if_sendq_empty(ifp); nframes++) {
+ m = if_dequeue(ifp);
if (m == NULL)
break;
usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -1196,7 +1195,7 @@
* computed checksum for checksum offloading
* enabled controller.
*/
- if (ifp->if_capabilities & IFCAP_TXCSUM) {
+ if (if_getcapabilities(ifp) & IFCAP_TXCSUM) {
if ((m->m_pkthdr.csum_flags &
AXE_CSUM_FEATURES) != 0)
hdr.len |= htole16(
@@ -1246,7 +1245,7 @@
if (nframes != 0) {
usbd_xfer_set_frames(xfer, nframes);
usbd_transfer_submit(xfer);
- ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
}
return;
/* NOTREACHED */
@@ -1255,7 +1254,7 @@
usbd_errstr(error));
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if (error != USB_ERR_CANCELLED) {
/* try to clear stall first */
@@ -1298,7 +1297,7 @@
axe_csum_cfg(struct usb_ether *ue)
{
struct axe_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
uint16_t csum1, csum2;
sc = uether_getsc(ue);
@@ -1308,13 +1307,13 @@
ifp = uether_getifp(ue);
csum1 = 0;
csum2 = 0;
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
csum1 |= AXE_TXCSUM_IP | AXE_TXCSUM_TCP |
AXE_TXCSUM_UDP;
axe_cmd(sc, AXE_772B_CMD_WRITE_TXCSUM, csum2, csum1, NULL);
csum1 = 0;
csum2 = 0;
- if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
csum1 |= AXE_RXCSUM_IP | AXE_RXCSUM_IPVE |
AXE_RXCSUM_TCP | AXE_RXCSUM_UDP | AXE_RXCSUM_ICMP |
AXE_RXCSUM_IGMP;
@@ -1326,12 +1325,12 @@
axe_init(struct usb_ether *ue)
{
struct axe_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint16_t rxmode;
AXE_LOCK_ASSERT(sc, MA_OWNED);
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
return;
/* Cancel pending I/O */
@@ -1341,11 +1340,11 @@
/* Set MAC address and transmitter IPG values. */
if (AXE_IS_178_FAMILY(sc)) {
- axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp));
+ axe_cmd(sc, AXE_178_CMD_WRITE_NODEID, 0, 0, if_getlladdr(ifp));
axe_cmd(sc, AXE_178_CMD_WRITE_IPG012, sc->sc_ipgs[2],
(sc->sc_ipgs[1] << 8) | (sc->sc_ipgs[0]), NULL);
} else {
- axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, IF_LLADDR(ifp));
+ axe_cmd(sc, AXE_172_CMD_WRITE_NODEID, 0, 0, if_getlladdr(ifp));
axe_cmd(sc, AXE_172_CMD_WRITE_IPG0, 0, sc->sc_ipgs[0], NULL);
axe_cmd(sc, AXE_172_CMD_WRITE_IPG1, 0, sc->sc_ipgs[1], NULL);
axe_cmd(sc, AXE_172_CMD_WRITE_IPG2, 0, sc->sc_ipgs[2], NULL);
@@ -1354,7 +1353,7 @@
if (AXE_IS_178_FAMILY(sc)) {
sc->sc_flags &= ~(AXE_FLAG_STD_FRAME | AXE_FLAG_CSUM_FRAME);
if ((sc->sc_flags & AXE_FLAG_772B) != 0 &&
- (ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+ (if_getcapenable(ifp) & IFCAP_RXCSUM) != 0) {
sc->sc_lenmask = AXE_CSUM_HDR_LEN_MASK;
sc->sc_flags |= AXE_FLAG_CSUM_FRAME;
} else {
@@ -1388,7 +1387,7 @@
* header size.
*/
rxmode |= AXE_772B_RXCMD_HDR_TYPE_1;
- if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
rxmode |= AXE_772B_RXCMD_IPHDR_ALIGN;
} else {
/*
@@ -1402,10 +1401,10 @@
}
/* If we want promiscuous mode, set the allframes bit. */
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
rxmode |= AXE_RXCMD_PROMISC;
- if (ifp->if_flags & IFF_BROADCAST)
+ if (if_getflags(ifp) & IFF_BROADCAST)
rxmode |= AXE_RXCMD_BROADCAST;
axe_cmd(sc, AXE_CMD_RXCTL_WRITE, 0, rxmode, NULL);
@@ -1415,7 +1414,7 @@
usbd_xfer_set_stall(sc->sc_xfer[AXE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* Switch to selected media. */
axe_ifmedia_upd(ifp);
}
@@ -1424,14 +1423,14 @@
axe_setpromisc(struct usb_ether *ue)
{
struct axe_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint16_t rxmode;
axe_cmd(sc, AXE_CMD_RXCTL_READ, 0, 0, &rxmode);
rxmode = le16toh(rxmode);
- if (ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_PROMISC) {
rxmode |= AXE_RXCMD_PROMISC;
} else {
rxmode &= ~AXE_RXCMD_PROMISC;
@@ -1446,11 +1445,11 @@
axe_stop(struct usb_ether *ue)
{
struct axe_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
AXE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
sc->sc_flags &= ~AXE_FLAG_LINK;
/*
@@ -1461,9 +1460,9 @@
}
static int
-axe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+axe_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct usb_ether *ue = ifp->if_softc;
+ struct usb_ether *ue = if_getsoftc(ifp);
struct axe_softc *sc;
struct ifreq *ifr;
int error, mask, reinit;
@@ -1474,23 +1473,23 @@
reinit = 0;
if (cmd == SIOCSIFCAP) {
AXE_LOCK(sc);
- mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
if ((mask & IFCAP_TXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_TXCSUM;
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
- ifp->if_hwassist |= AXE_CSUM_FEATURES;
+ (if_getcapabilities(ifp) & IFCAP_TXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_TXCSUM);
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
+ if_sethwassistbits(ifp, AXE_CSUM_FEATURES, 0);
else
- ifp->if_hwassist &= ~AXE_CSUM_FEATURES;
+ if_sethwassistbits(ifp, 0, AXE_CSUM_FEATURES);
reinit++;
}
if ((mask & IFCAP_RXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM);
reinit++;
}
- if (reinit > 0 && ifp->if_drv_flags & IFF_DRV_RUNNING)
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if (reinit > 0 && if_getdrvflags(ifp) & IFF_DRV_RUNNING)
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
else
reinit = 0;
AXE_UNLOCK(sc);
diff --git a/sys/dev/usb/net/if_axge.c b/sys/dev/usb/net/if_axge.c
--- a/sys/dev/usb/net/if_axge.c
+++ b/sys/dev/usb/net/if_axge.c
@@ -130,9 +130,9 @@
static void axge_reset(struct axge_softc *);
static int axge_attach_post_sub(struct usb_ether *);
-static int axge_ifmedia_upd(struct ifnet *);
-static void axge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
-static int axge_ioctl(struct ifnet *, u_long, caddr_t);
+static int axge_ifmedia_upd(if_t );
+static void axge_ifmedia_sts(if_t , struct ifmediareq *);
+static int axge_ioctl(if_t , u_long, caddr_t);
static void axge_rx_frame(struct usb_ether *, struct usb_page_cache *, int);
static void axge_rxeof(struct usb_ether *, struct usb_page_cache *,
unsigned, unsigned, uint32_t);
@@ -328,7 +328,7 @@
{
struct axge_softc *sc;
struct mii_data *mii;
- struct ifnet *ifp;
+ if_t ifp;
uint8_t link_status, tmp[5];
uint16_t val;
int locked;
@@ -341,7 +341,7 @@
ifp = uether_getifp(&sc->sc_ue);
if (mii == NULL || ifp == NULL ||
- (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
goto done;
sc->sc_flags &= ~AXGE_FLAG_LINK;
@@ -450,21 +450,20 @@
static int
axge_attach_post_sub(struct usb_ether *ue)
{
- struct ifnet *ifp;
+ if_t ifp;
int error;
ifp = ue->ue_ifp;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = axge_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
-
- ifp->if_capabilities |= IFCAP_VLAN_MTU | IFCAP_TXCSUM | IFCAP_RXCSUM;
- ifp->if_hwassist = AXGE_CSUM_FEATURES;
- ifp->if_capenable = ifp->if_capabilities;
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, axge_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
+
+ if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU | IFCAP_TXCSUM | IFCAP_RXCSUM, 0);
+ if_sethwassist(ifp, AXGE_CSUM_FEATURES);
+ if_setcapenable(ifp, if_getcapabilities(ifp));
bus_topo_lock();
error = mii_attach(ue->ue_dev, &ue->ue_miibus, ifp,
@@ -479,14 +478,14 @@
* Set media options.
*/
static int
-axge_ifmedia_upd(struct ifnet *ifp)
+axge_ifmedia_upd(if_t ifp)
{
struct axge_softc *sc;
struct mii_data *mii;
struct mii_softc *miisc;
int error;
- sc = ifp->if_softc;
+ sc = if_getsoftc(ifp);
mii = GET_MII(sc);
AXGE_LOCK_ASSERT(sc, MA_OWNED);
@@ -501,12 +500,12 @@
* Report current media status.
*/
static void
-axge_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+axge_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
struct axge_softc *sc;
struct mii_data *mii;
- sc = ifp->if_softc;
+ sc = if_getsoftc(ifp);
mii = GET_MII(sc);
AXGE_LOCK(sc);
mii_pollstat(mii);
@@ -655,7 +654,7 @@
axge_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct axge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
struct usb_page_cache *pc;
struct mbuf *m;
struct axge_frame_txhdr txhdr;
@@ -666,12 +665,12 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
if ((sc->sc_flags & AXGE_FLAG_LINK) == 0 ||
- (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+ (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
/*
* Don't send anything if there is no link or
* controller is busy.
@@ -680,8 +679,8 @@
}
for (nframes = 0; nframes < AXGE_N_FRAMES &&
- !IFQ_DRV_IS_EMPTY(&ifp->if_snd); nframes++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ if_sendq_empty(ifp); nframes++) {
+ m = if_dequeue(ifp);
if (m == NULL)
break;
usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -689,7 +688,7 @@
pc = usbd_xfer_get_frame(xfer, nframes);
txhdr.mss = 0;
txhdr.len = htole32(AXGE_TXBYTES(m->m_pkthdr.len));
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0 &&
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0 &&
(m->m_pkthdr.csum_flags & AXGE_CSUM_FEATURES) == 0)
txhdr.len |= htole32(AXGE_CSUM_DISABLE);
@@ -723,13 +722,13 @@
if_inc_counter(ifp, IFCOUNTER_OPACKETS, nframes);
usbd_xfer_set_frames(xfer, nframes);
usbd_transfer_submit(xfer);
- ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
}
return;
/* NOTREACHED */
default:
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if (error != USB_ERR_CANCELLED) {
usbd_xfer_set_stall(xfer);
@@ -768,7 +767,7 @@
axge_rxfilter(struct usb_ether *ue)
{
struct axge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
uint16_t rxmode;
uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
@@ -785,10 +784,10 @@
* to worry about alignment.
*/
rxmode = RCR_DROP_CRCERR | RCR_START;
- if (ifp->if_flags & IFF_BROADCAST)
+ if (if_getflags(ifp) & IFF_BROADCAST)
rxmode |= RCR_ACPT_BCAST;
- if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
+ if (if_getflags(ifp) & IFF_PROMISC)
rxmode |= RCR_PROMISC;
rxmode |= RCR_ACPT_ALL_MCAST;
axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_RCR, rxmode);
@@ -819,13 +818,13 @@
axge_init(struct usb_ether *ue)
{
struct axge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
sc = uether_getsc(ue);
ifp = uether_getifp(ue);
AXGE_LOCK_ASSERT(sc, MA_OWNED);
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
return;
/*
@@ -837,7 +836,7 @@
/* Set MAC address. */
axge_write_mem(sc, AXGE_ACCESS_MAC, ETHER_ADDR_LEN, AXGE_NIDR,
- IF_LLADDR(ifp), ETHER_ADDR_LEN);
+ if_getlladdr(ifp), ETHER_ADDR_LEN);
axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLLR, 0x34);
axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_PWLHR, 0x52);
@@ -864,7 +863,7 @@
usbd_xfer_set_stall(sc->sc_xfer[AXGE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* Switch to selected media. */
axge_ifmedia_upd(ifp);
}
@@ -873,7 +872,7 @@
axge_stop(struct usb_ether *ue)
{
struct axge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
uint16_t val;
sc = uether_getsc(ue);
@@ -886,7 +885,7 @@
axge_write_cmd_2(sc, AXGE_ACCESS_MAC, 2, AXGE_MSR, val);
if (ifp != NULL)
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
sc->sc_flags &= ~AXGE_FLAG_LINK;
/*
@@ -897,37 +896,37 @@
}
static int
-axge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+axge_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
struct usb_ether *ue;
struct axge_softc *sc;
struct ifreq *ifr;
int error, mask, reinit;
- ue = ifp->if_softc;
+ ue = if_getsoftc(ifp);
sc = uether_getsc(ue);
ifr = (struct ifreq *)data;
error = 0;
reinit = 0;
if (cmd == SIOCSIFCAP) {
AXGE_LOCK(sc);
- mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
if ((mask & IFCAP_TXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_TXCSUM;
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
- ifp->if_hwassist |= AXGE_CSUM_FEATURES;
+ (if_getcapabilities(ifp) & IFCAP_TXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_TXCSUM);
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
+ if_sethwassistbits(ifp, AXGE_CSUM_FEATURES, 0);
else
- ifp->if_hwassist &= ~AXGE_CSUM_FEATURES;
+ if_sethwassistbits(ifp, 0, AXGE_CSUM_FEATURES);
reinit++;
}
if ((mask & IFCAP_RXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM);
reinit++;
}
- if (reinit > 0 && ifp->if_drv_flags & IFF_DRV_RUNNING)
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if (reinit > 0 && if_getdrvflags(ifp) & IFF_DRV_RUNNING)
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
else
reinit = 0;
AXGE_UNLOCK(sc);
@@ -1000,7 +999,7 @@
axge_rxeof(struct usb_ether *ue, struct usb_page_cache *pc, unsigned offset,
unsigned len, uint32_t status)
{
- struct ifnet *ifp;
+ if_t ifp;
struct mbuf *m;
ifp = ue->ue_ifp;
@@ -1023,7 +1022,7 @@
usbd_copy_out(pc, offset, mtod(m, uint8_t *), len);
- if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0) {
if ((status & AXGE_RX_L3_CSUM_ERR) == 0 &&
(status & AXGE_RX_L3_TYPE_MASK) == AXGE_RX_L3_TYPE_IPV4)
m->m_pkthdr.csum_flags |= CSUM_IP_CHECKED |
@@ -1045,7 +1044,7 @@
axge_csum_cfg(struct usb_ether *ue)
{
struct axge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
uint8_t csum;
sc = uether_getsc(ue);
@@ -1053,12 +1052,12 @@
ifp = uether_getifp(ue);
csum = 0;
- if ((ifp->if_capenable & IFCAP_TXCSUM) != 0)
+ if ((if_getcapenable(ifp) & IFCAP_TXCSUM) != 0)
csum |= CTCR_IP | CTCR_TCP | CTCR_UDP;
axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CTCR, csum);
csum = 0;
- if ((ifp->if_capenable & IFCAP_RXCSUM) != 0)
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0)
csum |= CRCR_IP | CRCR_TCP | CRCR_UDP;
axge_write_cmd_1(sc, AXGE_ACCESS_MAC, AXGE_CRCR, csum);
}
diff --git a/sys/dev/usb/net/if_cdce.c b/sys/dev/usb/net/if_cdce.c
--- a/sys/dev/usb/net/if_cdce.c
+++ b/sys/dev/usb/net/if_cdce.c
@@ -112,9 +112,9 @@
static uether_fn_t cdce_setmulti;
static uether_fn_t cdce_setpromisc;
static int cdce_attach_post_sub(struct usb_ether *);
-static int cdce_ioctl(struct ifnet *, u_long, caddr_t);
-static int cdce_media_change_cb(struct ifnet *);
-static void cdce_media_status_cb(struct ifnet *, struct ifmediareq *);
+static int cdce_ioctl(if_t , u_long, caddr_t);
+static int cdce_media_change_cb(if_t );
+static void cdce_media_status_cb(if_t , struct ifmediareq *);
static uint32_t cdce_m_crc32(struct mbuf *, uint32_t, uint32_t);
static void cdce_set_filter(struct usb_ether *);
@@ -571,16 +571,15 @@
cdce_attach_post_sub(struct usb_ether *ue)
{
struct cdce_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
/* mostly copied from usb_ethernet.c */
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = cdce_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, cdce_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
if ((sc->sc_flags & CDCE_FLAG_VLAN) == CDCE_FLAG_VLAN)
if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
@@ -808,9 +807,9 @@
}
static int
-cdce_ioctl(struct ifnet *ifp, u_long command, caddr_t data)
+cdce_ioctl(if_t ifp, u_long command, caddr_t data)
{
- struct usb_ether *ue = ifp->if_softc;
+ struct usb_ether *ue = if_getsoftc(ifp);
struct cdce_softc *sc = uether_getsc(ue);
struct ifreq *ifr = (struct ifreq *)data;
int error;
@@ -843,14 +842,14 @@
}
static int
-cdce_media_change_cb(struct ifnet *ifp)
+cdce_media_change_cb(if_t ifp)
{
return (EOPNOTSUPP);
}
static void
-cdce_media_status_cb(struct ifnet *ifp, struct ifmediareq *ifmr)
+cdce_media_status_cb(if_t ifp, struct ifmediareq *ifmr)
{
if ((if_getflags(ifp) & IFF_UP) == 0)
@@ -859,14 +858,14 @@
ifmr->ifm_active = IFM_ETHER;
ifmr->ifm_status = IFM_AVALID;
ifmr->ifm_status |=
- ifp->if_link_state == LINK_STATE_UP ? IFM_ACTIVE : 0;
+ ifp->if_link_state == LINK_STATE_UP ? IFM_ACTIVE : 0; /* XXX - DRVAPI */
}
static void
cdce_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct cdce_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct mbuf *m;
struct mbuf *mt;
uint32_t crc;
@@ -891,7 +890,7 @@
case USB_ST_SETUP:
tr_setup:
for (x = 0; x != CDCE_FRAMES_MAX; x++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
@@ -982,11 +981,11 @@
cdce_init(struct usb_ether *ue)
{
struct cdce_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
CDCE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* start interrupt transfer */
usbd_transfer_start(sc->sc_xfer[CDCE_INTR_RX]);
@@ -1009,11 +1008,11 @@
cdce_stop(struct usb_ether *ue)
{
struct cdce_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
CDCE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
/*
* stop all the transfers, if not already stopped:
@@ -1042,7 +1041,7 @@
cdce_set_filter(struct usb_ether *ue)
{
struct cdce_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_device_request req;
uint16_t value;
@@ -1167,7 +1166,7 @@
u_char buf[CDCE_IND_SIZE_MAX];
struct usb_cdc_notification ucn;
struct cdce_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
struct usb_page_cache *pc;
int off, actlen;
uint32_t downrate, uprate;
@@ -1377,7 +1376,7 @@
cdce_ncm_fill_tx_frames(struct usb_xfer *xfer, uint8_t index)
{
struct cdce_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc = usbd_xfer_get_frame(xfer, index);
struct mbuf *m;
uint32_t rem;
@@ -1414,7 +1413,7 @@
rem = sc->sc_ncm.tx_max - offset;
- IFQ_DRV_DEQUEUE(&(ifp->if_snd), m);
+ m = if_dequeue(ifp);
if (m == NULL) {
/* buffer not full */
@@ -1432,7 +1431,7 @@
continue;
}
/* Wait till next buffer becomes ready */
- IFQ_DRV_PREPEND(&(ifp->if_snd), m);
+ if_sendq_prepend(ifp, m);
break;
}
usbd_m_copy_in(pc, offset, m, 0, m->m_pkthdr.len);
@@ -1529,7 +1528,7 @@
cdce_ncm_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct cdce_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
uint16_t x;
uint8_t temp;
int actlen;
@@ -1587,7 +1586,7 @@
{
struct cdce_softc *sc = usbd_xfer_softc(xfer);
struct usb_page_cache *pc = usbd_xfer_get_frame(xfer, 0);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct mbuf *m;
int sumdata __usbdebug_used;
int sumlen;
diff --git a/sys/dev/usb/net/if_cdceem.c b/sys/dev/usb/net/if_cdceem.c
--- a/sys/dev/usb/net/if_cdceem.c
+++ b/sys/dev/usb/net/if_cdceem.c
@@ -423,7 +423,7 @@
struct cdceem_softc *sc;
struct usb_page_cache *pc;
struct usb_ether *ue;
- struct ifnet *ifp;
+ if_t ifp;
struct mbuf *m;
uint32_t computed_crc, received_crc;
int pktlen;
@@ -646,7 +646,7 @@
{
struct cdceem_softc *sc;
struct usb_page_cache *pc;
- struct ifnet *ifp;
+ if_t ifp;
struct mbuf *m;
int maxlen __diagused, off;
uint32_t crc;
@@ -658,7 +658,7 @@
ifp = uether_getifp(&sc->sc_ue);
maxlen = usbd_xfer_max_len(xfer);
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL) {
CDCEEM_DEBUG(sc, "no Data packets to send");
return;
@@ -711,7 +711,7 @@
cdceem_bulk_write_callback(struct usb_xfer *xfer, usb_error_t usb_error)
{
struct cdceem_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
int actlen, aframes, maxlen __diagused, off;
sc = usbd_xfer_softc(xfer);
@@ -804,12 +804,12 @@
cdceem_init(struct usb_ether *ue)
{
struct cdceem_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
sc = uether_getsc(ue);
ifp = uether_getifp(ue);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
if (cdceem_send_echoes)
sc->sc_flags = CDCEEM_SC_FLAGS_ECHO_PENDING;
@@ -832,12 +832,12 @@
cdceem_stop(struct usb_ether *ue)
{
struct cdceem_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
sc = uether_getsc(ue);
ifp = uether_getifp(ue);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
usbd_transfer_stop(sc->sc_xfer[CDCEEM_BULK_RX]);
usbd_transfer_stop(sc->sc_xfer[CDCEEM_BULK_TX]);
diff --git a/sys/dev/usb/net/if_cue.c b/sys/dev/usb/net/if_cue.c
--- a/sys/dev/usb/net/if_cue.c
+++ b/sys/dev/usb/net/if_cue.c
@@ -291,12 +291,12 @@
cue_setpromisc(struct usb_ether *ue)
{
struct cue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
CUE_LOCK_ASSERT(sc, MA_OWNED);
/* if we want promiscuous mode, set the allframes bit */
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
CUE_SETBIT(sc, CUE_ETHCTL, CUE_ETHCTL_PROMISC);
else
CUE_CLRBIT(sc, CUE_ETHCTL, CUE_ETHCTL_PROMISC);
@@ -321,13 +321,13 @@
cue_setmulti(struct usb_ether *ue)
{
struct cue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint32_t h, i;
uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
CUE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
for (i = 0; i < 8; i++)
hashtbl[i] = 0xff;
cue_mem(sc, CUE_CMD_WRITESRAM, CUE_MCAST_TABLE_ADDR,
@@ -342,8 +342,8 @@
* Also include the broadcast address in the filter
* so we can receive broadcast frames.
*/
- if (ifp->if_flags & IFF_BROADCAST) {
- h = cue_mchash(ifp->if_broadcastaddr);
+ if (if_getflags(ifp) & IFF_BROADCAST) {
+ h = cue_mchash(ifp->if_broadcastaddr); /* XXX - DRVAPI */
hashtbl[h >> 3] |= 1 << (h & 0x7);
}
@@ -454,7 +454,7 @@
{
struct cue_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_page_cache *pc;
uint8_t buf[2];
int len;
@@ -501,7 +501,7 @@
cue_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct cue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
uint8_t buf[2];
@@ -514,7 +514,7 @@
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -562,7 +562,7 @@
cue_tick(struct usb_ether *ue)
{
struct cue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
CUE_LOCK_ASSERT(sc, MA_OWNED);
@@ -590,7 +590,7 @@
cue_init(struct usb_ether *ue)
{
struct cue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
int i;
CUE_LOCK_ASSERT(sc, MA_OWNED);
@@ -604,7 +604,7 @@
#endif
/* Set MAC address */
for (i = 0; i < ETHER_ADDR_LEN; i++)
- cue_csr_write_1(sc, CUE_PAR0 - i, IF_LLADDR(ifp)[i]);
+ cue_csr_write_1(sc, CUE_PAR0 - i, if_getlladdr(ifp)[i]);
/* Enable RX logic. */
cue_csr_write_1(sc, CUE_ETHCTL, CUE_ETHCTL_RX_ON | CUE_ETHCTL_MCAST_ON);
@@ -628,7 +628,7 @@
usbd_xfer_set_stall(sc->sc_xfer[CUE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
cue_start(ue);
}
@@ -640,11 +640,11 @@
cue_stop(struct usb_ether *ue)
{
struct cue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
CUE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
/*
* stop all the transfers, if not already stopped:
diff --git a/sys/dev/usb/net/if_ipheth.c b/sys/dev/usb/net/if_ipheth.c
--- a/sys/dev/usb/net/if_ipheth.c
+++ b/sys/dev/usb/net/if_ipheth.c
@@ -343,11 +343,11 @@
ipheth_init(struct usb_ether *ue)
{
struct ipheth_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
IPHETH_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* stall data write direction, which depends on USB mode */
usbd_xfer_set_stall(sc->sc_xfer[IPHETH_BULK_TX]);
@@ -385,7 +385,7 @@
ipheth_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct ipheth_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
uint8_t x;
@@ -410,7 +410,7 @@
case USB_ST_SETUP:
tr_setup:
for (x = 0; x != IPHETH_TX_FRAMES_MAX; x++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
diff --git a/sys/dev/usb/net/if_kue.c b/sys/dev/usb/net/if_kue.c
--- a/sys/dev/usb/net/if_kue.c
+++ b/sys/dev/usb/net/if_kue.c
@@ -342,11 +342,11 @@
kue_setpromisc(struct usb_ether *ue)
{
struct kue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
KUE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
sc->sc_rxfilt |= KUE_RXFILT_PROMISC;
else
sc->sc_rxfilt &= ~KUE_RXFILT_PROMISC;
@@ -371,12 +371,12 @@
kue_setmulti(struct usb_ether *ue)
{
struct kue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
int i;
KUE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
sc->sc_rxfilt |= KUE_RXFILT_ALLMULTI;
sc->sc_rxfilt &= ~KUE_RXFILT_MULTICAST;
kue_setword(sc, KUE_CMD_SET_PKT_FILTER, sc->sc_rxfilt);
@@ -534,7 +534,7 @@
{
struct kue_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_page_cache *pc;
uint8_t buf[2];
int len;
@@ -581,7 +581,7 @@
kue_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct kue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
int total_len;
@@ -596,7 +596,7 @@
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -660,13 +660,13 @@
kue_init(struct usb_ether *ue)
{
struct kue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
KUE_LOCK_ASSERT(sc, MA_OWNED);
/* set MAC address */
kue_ctl(sc, KUE_CTL_WRITE, KUE_CMD_SET_MAC,
- 0, IF_LLADDR(ifp), ETHER_ADDR_LEN);
+ 0, if_getlladdr(ifp), ETHER_ADDR_LEN);
/* I'm not sure how to tune these. */
#if 0
@@ -683,7 +683,7 @@
usbd_xfer_set_stall(sc->sc_xfer[KUE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
kue_start(ue);
}
@@ -691,11 +691,11 @@
kue_stop(struct usb_ether *ue)
{
struct kue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
KUE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
/*
* stop all the transfers, if not already stopped:
diff --git a/sys/dev/usb/net/if_mos.c b/sys/dev/usb/net/if_mos.c
--- a/sys/dev/usb/net/if_mos.c
+++ b/sys/dev/usb/net/if_mos.c
@@ -180,8 +180,8 @@
static int mos_miibus_readreg(device_t, int, int);
static int mos_miibus_writereg(device_t, int, int, int);
static void mos_miibus_statchg(device_t);
-static int mos_ifmedia_upd(struct ifnet *);
-static void mos_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int mos_ifmedia_upd(if_t );
+static void mos_ifmedia_sts(if_t , struct ifmediareq *);
static void mos_reset(struct mos_softc *sc);
static int mos_reg_read_1(struct mos_softc *, int);
@@ -529,9 +529,9 @@
* Set media options.
*/
static int
-mos_ifmedia_upd(struct ifnet *ifp)
+mos_ifmedia_upd(if_t ifp)
{
- struct mos_softc *sc = ifp->if_softc;
+ struct mos_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
struct mii_softc *miisc;
int error;
@@ -549,9 +549,9 @@
* Report current media status.
*/
static void
-mos_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+mos_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct mos_softc *sc = ifp->if_softc;
+ struct mos_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
MOS_LOCK(sc);
@@ -566,7 +566,7 @@
mos_setpromisc(struct usb_ether *ue)
{
struct mos_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint8_t rxmode;
@@ -575,7 +575,7 @@
rxmode = mos_reg_read_1(sc, MOS_CTL);
/* If we want promiscuous mode, set the allframes bit. */
- if (ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_PROMISC) {
rxmode |= MOS_CTL_RX_PROMISC;
} else {
rxmode &= ~MOS_CTL_RX_PROMISC;
@@ -600,7 +600,7 @@
mos_setmulti(struct usb_ether *ue)
{
struct mos_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint8_t rxmode;
uint8_t hashtbl[8] = {0, 0, 0, 0, 0, 0, 0, 0};
int allmulti = 0;
@@ -609,7 +609,7 @@
rxmode = mos_reg_read_1(sc, MOS_CTL);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC)
allmulti = 1;
/* get all new ones */
@@ -773,7 +773,7 @@
{
struct mos_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint8_t rxstat = 0;
uint32_t actlen;
@@ -845,7 +845,7 @@
mos_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct mos_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
@@ -859,7 +859,7 @@
/*
* XXX: don't send anything if there is no link?
*/
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -925,7 +925,7 @@
mos_init(struct usb_ether *ue)
{
struct mos_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint8_t rxmode;
MOS_LOCK_ASSERT(sc, MA_OWNED);
@@ -934,7 +934,7 @@
mos_reset(sc);
/* Write MAC address */
- mos_writemac(sc, IF_LLADDR(ifp));
+ mos_writemac(sc, if_getlladdr(ifp));
/* Read and set transmitter IPG values */
sc->mos_ipgs[0] = mos_reg_read_1(sc, MOS_IPG0);
@@ -958,7 +958,7 @@
/* Load the multicast filter. */
mos_setmulti(ue);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
mos_start(ue);
}
@@ -966,7 +966,7 @@
mos_intr_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct mos_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
uint32_t pkt;
int actlen;
@@ -1002,12 +1002,12 @@
mos_stop(struct usb_ether *ue)
{
struct mos_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
mos_reset(sc);
MOS_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
/* stop all the transfers, if not already stopped */
usbd_transfer_stop(sc->sc_xfer[MOS_ENDPT_TX]);
diff --git a/sys/dev/usb/net/if_muge.c b/sys/dev/usb/net/if_muge.c
--- a/sys/dev/usb/net/if_muge.c
+++ b/sys/dev/usb/net/if_muge.c
@@ -217,11 +217,11 @@
static uether_fn_t muge_setmulti;
static uether_fn_t muge_setpromisc;
-static int muge_ifmedia_upd(struct ifnet *);
-static void muge_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int muge_ifmedia_upd(if_t );
+static void muge_ifmedia_sts(if_t , struct ifmediareq *);
static int lan78xx_chip_init(struct muge_softc *sc);
-static int muge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
+static int muge_ioctl(if_t ifp, u_long cmd, caddr_t data);
static const struct usb_config muge_config[MUGE_N_TRANSFER] = {
[MUGE_BULK_DT_WR] = {
@@ -759,7 +759,7 @@
{
struct muge_softc *sc = device_get_softc(dev);
struct mii_data *mii = uether_getmii(&sc->sc_ue);
- struct ifnet *ifp;
+ if_t ifp;
int err;
uint32_t flow = 0;
uint32_t fct_flow = 0;
@@ -771,7 +771,7 @@
ifp = uether_getifp(&sc->sc_ue);
if (mii == NULL || ifp == NULL ||
- (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
goto done;
/* Use the MII status to determine link status */
@@ -1164,7 +1164,7 @@
{
struct muge_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct mbuf *m;
struct usb_page_cache *pc;
uint32_t rx_cmd_a, rx_cmd_b;
@@ -1262,7 +1262,7 @@
* Check if RX checksums are computed, and
* offload them
*/
- if ((ifp->if_capenable & IFCAP_RXCSUM) &&
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) &&
!(rx_cmd_a & RX_CMD_A_ICSM_)) {
/*
* Remove the extra 2 bytes of the csum
@@ -1357,7 +1357,7 @@
muge_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct muge_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
int nframes;
@@ -1367,19 +1367,19 @@
case USB_ST_TRANSFERRED:
muge_dbg_printf(sc,
"USB TRANSFER status: USB_ST_TRANSFERRED\n");
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
/* FALLTHROUGH */
case USB_ST_SETUP:
muge_dbg_printf(sc, "USB TRANSFER status: USB_ST_SETUP\n");
tr_setup:
if ((sc->sc_flags & MUGE_FLAG_LINK) == 0 ||
- (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+ (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
muge_dbg_printf(sc,
"sc->sc_flags & MUGE_FLAG_LINK: %d\n",
(sc->sc_flags & MUGE_FLAG_LINK));
muge_dbg_printf(sc,
- "ifp->if_drv_flags & IFF_DRV_OACTIVE: %d\n",
- (ifp->if_drv_flags & IFF_DRV_OACTIVE));
+ "if_getdrvflags(ifp) & IFF_DRV_OACTIVE: %d",
+ (if_getdrvflags(ifp) & IFF_DRV_OACTIVE));
muge_dbg_printf(sc,
"USB TRANSFER not sending: no link or controller is busy \n");
/*
@@ -1389,9 +1389,9 @@
return;
}
for (nframes = 0;
- nframes < 16 && !IFQ_DRV_IS_EMPTY(&ifp->if_snd);
+ nframes < 16 && !if_sendq_empty(ifp);
nframes++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -1438,13 +1438,13 @@
muge_dbg_printf(sc, "USB TRANSFER submit attempt\n");
usbd_xfer_set_frames(xfer, nframes);
usbd_transfer_submit(xfer);
- ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
}
return;
default:
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if (error != USB_ERR_CANCELLED) {
muge_err_printf(sc,
@@ -1592,30 +1592,29 @@
muge_attach_post_sub(struct usb_ether *ue)
{
struct muge_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
sc = uether_getsc(ue);
muge_dbg_printf(sc, "Calling muge_attach_post_sub.\n");
ifp = ue->ue_ifp;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = muge_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, muge_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
/*
* The chip supports TCP/UDP checksum offloading on TX and RX paths,
* however currently only RX checksum is supported in the driver
* (see top of file).
*/
- ifp->if_capabilities |= IFCAP_VLAN_MTU;
- ifp->if_hwassist = 0;
- ifp->if_capabilities |= IFCAP_RXCSUM;
+ if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
+ if_sethwassist(ifp, 0);
+ if_setcapabilitiesbit(ifp, IFCAP_RXCSUM, 0);
if (MUGE_DEFAULT_TX_CSUM_ENABLE)
- ifp->if_capabilities |= IFCAP_TXCSUM;
+ if_setcapabilitiesbit(ifp, IFCAP_TXCSUM, 0);
/*
* In the Linux driver they also enable scatter/gather (NETIF_F_SG)
@@ -1623,16 +1622,16 @@
* FreeBSD doesn't have that as an interface feature.
*/
if (MUGE_DEFAULT_TSO_ENABLE)
- ifp->if_capabilities |= IFCAP_TSO4 | IFCAP_TSO6;
+ if_setcapabilitiesbit(ifp, IFCAP_TSO4 | IFCAP_TSO6, 0);
#if 0
/* TX checksuming is disabled since not yet implemented. */
- ifp->if_capabilities |= IFCAP_TXCSUM;
- ifp->if_capenable |= IFCAP_TXCSUM;
- ifp->if_hwassist = CSUM_TCP | CSUM_UDP;
+ if_setcapabilitiesbit(ifp, IFCAP_TXCSUM, 0);
+ if_setcapenablebit(ifp, IFCAP_TXCSUM, 0);
+ if_sethwassist(ifp, CSUM_TCP | CSUM_UDP);
#endif
- ifp->if_capenable = ifp->if_capabilities;
+ if_setcapenable(ifp, if_getcapabilities(ifp));
bus_topo_lock();
mii_attach(ue->ue_dev, &ue->ue_miibus, ifp, uether_ifmedia_upd,
@@ -1673,9 +1672,9 @@
* 0 on success and an error code on failure.
*/
static int
-muge_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+muge_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct usb_ether *ue = ifp->if_softc;
+ struct usb_ether *ue = if_getsoftc(ifp);
struct muge_softc *sc;
struct ifreq *ifr;
int rc;
@@ -1691,15 +1690,15 @@
rc = 0;
reinit = 0;
- mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
/* Modify the RX CSUM enable bits. */
if ((mask & IFCAP_RXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM);
- if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
reinit = 1;
}
}
@@ -1886,7 +1885,7 @@
muge_setmulti(struct usb_ether *ue)
{
struct muge_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint8_t i;
MUGE_LOCK_ASSERT(sc, MA_OWNED);
@@ -1905,10 +1904,10 @@
sc->sc_rfe_ctl |= ETH_RFE_CTL_BCAST_EN_;
- if (ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_PROMISC) {
muge_dbg_printf(sc, "promiscuous mode enabled\n");
sc->sc_rfe_ctl |= ETH_RFE_CTL_MCAST_EN_ | ETH_RFE_CTL_UCAST_EN_;
- } else if (ifp->if_flags & IFF_ALLMULTI) {
+ } else if (if_getflags(ifp) & IFF_ALLMULTI) {
muge_dbg_printf(sc, "receive all multicast enabled\n");
sc->sc_rfe_ctl |= ETH_RFE_CTL_MCAST_EN_;
} else {
@@ -1929,14 +1928,14 @@
muge_setpromisc(struct usb_ether *ue)
{
struct muge_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
muge_dbg_printf(sc, "promiscuous mode %sabled\n",
- (ifp->if_flags & IFF_PROMISC) ? "en" : "dis");
+ (if_getflags(ifp) & IFF_PROMISC) ? "en" : "dis");
MUGE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
sc->sc_rfe_ctl |= ETH_RFE_CTL_MCAST_EN_ | ETH_RFE_CTL_UCAST_EN_;
else
sc->sc_rfe_ctl &= ~(ETH_RFE_CTL_MCAST_EN_);
@@ -1957,7 +1956,7 @@
static int
muge_sethwcsum(struct muge_softc *sc)
{
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
int err;
if (!ifp)
@@ -1965,7 +1964,7 @@
MUGE_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_capenable & IFCAP_RXCSUM) {
+ if (if_getcapenable(ifp) & IFCAP_RXCSUM) {
sc->sc_rfe_ctl |= ETH_RFE_CTL_IGMP_COE_ | ETH_RFE_CTL_ICMP_COE_;
sc->sc_rfe_ctl |= ETH_RFE_CTL_TCPUDP_COE_ | ETH_RFE_CTL_IP_COE_;
} else {
@@ -2002,9 +2001,9 @@
* Returns 0 on success or a negative error code.
*/
static int
-muge_ifmedia_upd(struct ifnet *ifp)
+muge_ifmedia_upd(if_t ifp)
{
- struct muge_softc *sc = ifp->if_softc;
+ struct muge_softc *sc = if_getsoftc(ifp);
muge_dbg_printf(sc, "Calling muge_ifmedia_upd.\n");
struct mii_data *mii = uether_getmii(&sc->sc_ue);
struct mii_softc *miisc;
@@ -2033,13 +2032,13 @@
{
struct muge_softc *sc = uether_getsc(ue);
muge_dbg_printf(sc, "Calling muge_init.\n");
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
MUGE_LOCK_ASSERT(sc, MA_OWNED);
- if (lan78xx_setmacaddress(sc, IF_LLADDR(ifp)))
+ if (lan78xx_setmacaddress(sc, if_getlladdr(ifp)))
muge_dbg_printf(sc, "setting MAC address failed\n");
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
return;
/* Cancel pending I/O. */
@@ -2057,7 +2056,7 @@
usbd_xfer_set_stall(sc->sc_xfer[MUGE_BULK_DT_WR]);
/* Indicate we are up and running. */
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* Switch to selected media. */
muge_ifmedia_upd(ifp);
@@ -2072,11 +2071,11 @@
muge_stop(struct usb_ether *ue)
{
struct muge_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
MUGE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
sc->sc_flags &= ~MUGE_FLAG_LINK;
/*
@@ -2123,9 +2122,9 @@
* Internally takes and releases the device lock.
*/
static void
-muge_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+muge_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct muge_softc *sc = ifp->if_softc;
+ struct muge_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = uether_getmii(&sc->sc_ue);
MUGE_LOCK(sc);
diff --git a/sys/dev/usb/net/if_rue.c b/sys/dev/usb/net/if_rue.c
--- a/sys/dev/usb/net/if_rue.c
+++ b/sys/dev/usb/net/if_rue.c
@@ -158,8 +158,8 @@
static int rue_csr_write_4(struct rue_softc *, int, uint32_t);
static void rue_reset(struct rue_softc *);
-static int rue_ifmedia_upd(struct ifnet *);
-static void rue_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int rue_ifmedia_upd(if_t );
+static void rue_ifmedia_sts(if_t , struct ifmediareq *);
static const struct usb_config rue_config[RUE_N_TRANSFER] = {
[RUE_BULK_DT_WR] = {
@@ -459,12 +459,12 @@
rue_setpromisc(struct usb_ether *ue)
{
struct rue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
RUE_LOCK_ASSERT(sc, MA_OWNED);
/* If we want promiscuous mode, set the allframes bit. */
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
RUE_SETBIT(sc, RUE_RCR, RUE_RCR_AAP);
else
RUE_CLRBIT(sc, RUE_RCR, RUE_RCR_AAP);
@@ -492,7 +492,7 @@
rue_setmulti(struct usb_ether *ue)
{
struct rue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint16_t rxcfg;
uint32_t hashes[2] = { 0, 0 };
int mcnt;
@@ -501,7 +501,7 @@
rxcfg = rue_csr_read_2(sc, RUE_RCR);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
rxcfg |= (RUE_RCR_AAM | RUE_RCR_AAP);
rxcfg &= ~RUE_RCR_AM;
rue_csr_write_2(sc, RUE_RCR, rxcfg);
@@ -638,7 +638,7 @@
rue_intr_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct rue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct rue_intrpkt pkt;
struct usb_page_cache *pc;
int actlen;
@@ -648,7 +648,7 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
- if (ifp && (ifp->if_drv_flags & IFF_DRV_RUNNING) &&
+ if (ifp && (if_getdrvflags(ifp) & IFF_DRV_RUNNING) &&
actlen >= (int)sizeof(pkt)) {
pc = usbd_xfer_get_frame(xfer, 0);
usbd_copy_out(pc, 0, &pkt, sizeof(pkt));
@@ -679,7 +679,7 @@
{
struct rue_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_page_cache *pc;
uint16_t status;
int actlen;
@@ -729,7 +729,7 @@
rue_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct rue_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
int temp_len;
@@ -748,7 +748,7 @@
*/
return;
}
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -832,7 +832,7 @@
rue_init(struct usb_ether *ue)
{
struct rue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
RUE_LOCK_ASSERT(sc, MA_OWNED);
@@ -842,7 +842,7 @@
rue_reset(sc);
/* Set MAC address */
- rue_write_mem(sc, RUE_IDR0, IF_LLADDR(ifp), ETHER_ADDR_LEN);
+ rue_write_mem(sc, RUE_IDR0, if_getlladdr(ifp), ETHER_ADDR_LEN);
rue_stop(ue);
@@ -862,7 +862,7 @@
usbd_xfer_set_stall(sc->sc_xfer[RUE_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
rue_start(ue);
}
@@ -870,9 +870,9 @@
* Set media options.
*/
static int
-rue_ifmedia_upd(struct ifnet *ifp)
+rue_ifmedia_upd(if_t ifp)
{
- struct rue_softc *sc = ifp->if_softc;
+ struct rue_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
struct mii_softc *miisc;
int error;
@@ -890,9 +890,9 @@
* Report current media status.
*/
static void
-rue_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+rue_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct rue_softc *sc = ifp->if_softc;
+ struct rue_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
RUE_LOCK(sc);
@@ -906,11 +906,11 @@
rue_stop(struct usb_ether *ue)
{
struct rue_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
RUE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
sc->sc_flags &= ~RUE_FLAG_LINK;
/*
diff --git a/sys/dev/usb/net/if_smsc.c b/sys/dev/usb/net/if_smsc.c
--- a/sys/dev/usb/net/if_smsc.c
+++ b/sys/dev/usb/net/if_smsc.c
@@ -201,11 +201,11 @@
static uether_fn_t smsc_setmulti;
static uether_fn_t smsc_setpromisc;
-static int smsc_ifmedia_upd(struct ifnet *);
-static void smsc_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int smsc_ifmedia_upd(if_t );
+static void smsc_ifmedia_sts(if_t , struct ifmediareq *);
static int smsc_chip_init(struct smsc_softc *sc);
-static int smsc_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
+static int smsc_ioctl(if_t ifp, u_long cmd, caddr_t data);
static const struct usb_config smsc_config[SMSC_N_TRANSFER] = {
[SMSC_BULK_DT_WR] = {
@@ -537,7 +537,7 @@
{
struct smsc_softc *sc = device_get_softc(dev);
struct mii_data *mii = uether_getmii(&sc->sc_ue);
- struct ifnet *ifp;
+ if_t ifp;
int locked;
int err;
uint32_t flow;
@@ -549,7 +549,7 @@
ifp = uether_getifp(&sc->sc_ue);
if (mii == NULL || ifp == NULL ||
- (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
goto done;
/* Use the MII status to determine link status */
@@ -631,9 +631,9 @@
* Returns 0 on success or a negative error code.
*/
static int
-smsc_ifmedia_upd(struct ifnet *ifp)
+smsc_ifmedia_upd(if_t ifp)
{
- struct smsc_softc *sc = ifp->if_softc;
+ struct smsc_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = uether_getmii(&sc->sc_ue);
struct mii_softc *miisc;
int err;
@@ -658,9 +658,9 @@
* Internally takes and releases the device lock.
*/
static void
-smsc_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+smsc_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
- struct smsc_softc *sc = ifp->if_softc;
+ struct smsc_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = uether_getmii(&sc->sc_ue);
SMSC_LOCK(sc);
@@ -712,12 +712,12 @@
smsc_setmulti(struct usb_ether *ue)
{
struct smsc_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint32_t hashtbl[2] = { 0, 0 };
SMSC_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
+ if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
smsc_dbg_printf(sc, "receive all multicast enabled\n");
sc->sc_mac_csr |= SMSC_MAC_CSR_MCPAS;
sc->sc_mac_csr &= ~SMSC_MAC_CSR_HPFILT;
@@ -761,14 +761,14 @@
smsc_setpromisc(struct usb_ether *ue)
{
struct smsc_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
smsc_dbg_printf(sc, "promiscuous mode %sabled\n",
- (ifp->if_flags & IFF_PROMISC) ? "en" : "dis");
+ (if_getflags(ifp) & IFF_PROMISC) ? "en" : "dis");
SMSC_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
sc->sc_mac_csr |= SMSC_MAC_CSR_PRMS;
else
sc->sc_mac_csr &= ~SMSC_MAC_CSR_PRMS;
@@ -788,7 +788,7 @@
*/
static int smsc_sethwcsum(struct smsc_softc *sc)
{
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
uint32_t val;
int err;
@@ -804,13 +804,13 @@
}
/* Enable/disable the Rx checksum */
- if ((ifp->if_capabilities & ifp->if_capenable) & IFCAP_RXCSUM)
+ if ((if_getcapabilities(ifp) & if_getcapenable(ifp)) & IFCAP_RXCSUM)
val |= SMSC_COE_CTRL_RX_EN;
else
val &= ~SMSC_COE_CTRL_RX_EN;
/* Enable/disable the Tx checksum (currently not supported) */
- if ((ifp->if_capabilities & ifp->if_capenable) & IFCAP_TXCSUM)
+ if ((if_getcapabilities(ifp) & if_getcapenable(ifp)) & IFCAP_TXCSUM)
val |= SMSC_COE_CTRL_TX_EN;
else
val &= ~SMSC_COE_CTRL_TX_EN;
@@ -901,14 +901,14 @@
smsc_init(struct usb_ether *ue)
{
struct smsc_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
SMSC_LOCK_ASSERT(sc, MA_OWNED);
- if (smsc_setmacaddress(sc, IF_LLADDR(ifp)))
+ if (smsc_setmacaddress(sc, if_getlladdr(ifp)))
smsc_dbg_printf(sc, "setting MAC address failed\n");
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
return;
/* Cancel pending I/O */
@@ -926,7 +926,7 @@
usbd_xfer_set_stall(sc->sc_xfer[SMSC_BULK_DT_WR]);
/* Indicate we are up and running. */
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* Switch to selected media. */
smsc_ifmedia_upd(ifp);
@@ -949,7 +949,7 @@
{
struct smsc_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct mbuf *m;
struct usb_page_cache *pc;
uint32_t rxhdr;
@@ -1019,7 +1019,7 @@
usbd_copy_out(pc, off, mtod(m, uint8_t *), pktlen);
/* Check if RX TCP/UDP checksumming is being offloaded */
- if ((ifp->if_capenable & IFCAP_RXCSUM) != 0) {
+ if ((if_getcapenable(ifp) & IFCAP_RXCSUM) != 0) {
struct ether_header *eh;
eh = mtod(m, struct ether_header *);
@@ -1119,7 +1119,7 @@
smsc_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct smsc_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
uint32_t txhdr;
@@ -1128,20 +1128,19 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
/* FALLTHROUGH */
case USB_ST_SETUP:
tr_setup:
if ((sc->sc_flags & SMSC_FLAG_LINK) == 0 ||
- (ifp->if_drv_flags & IFF_DRV_OACTIVE) != 0) {
+ (if_getdrvflags(ifp) & IFF_DRV_OACTIVE) != 0) {
/* Don't send anything if there is no link or controller is busy. */
return;
}
- for (nframes = 0; nframes < 16 &&
- !IFQ_DRV_IS_EMPTY(&ifp->if_snd); nframes++) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ for (nframes = 0; nframes < 16 && if_sendq_empty(ifp); nframes++) {
+ m = if_dequeue(ifp);
if (m == NULL)
break;
usbd_xfer_set_frame_offset(xfer, nframes * MCLBYTES,
@@ -1180,13 +1179,13 @@
if (nframes != 0) {
usbd_xfer_set_frames(xfer, nframes);
usbd_transfer_submit(xfer);
- ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
}
return;
default:
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if (error != USB_ERR_CANCELLED) {
smsc_err_printf(sc, "usb error on tx: %s\n", usbd_errstr(error));
@@ -1252,11 +1251,11 @@
smsc_stop(struct usb_ether *ue)
{
struct smsc_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
SMSC_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
sc->sc_flags &= ~SMSC_FLAG_LINK;
/*
@@ -1498,9 +1497,9 @@
* 0 on success and an error code on failure.
*/
static int
-smsc_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+smsc_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct usb_ether *ue = ifp->if_softc;
+ struct usb_ether *ue = if_getsoftc(ifp);
struct smsc_softc *sc;
struct ifreq *ifr;
int rc;
@@ -1516,15 +1515,15 @@
rc = 0;
reinit = 0;
- mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
/* Modify the RX CSUM enable bits */
if ((mask & IFCAP_RXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM);
- if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
reinit = 1;
}
}
@@ -1614,32 +1613,31 @@
smsc_attach_post_sub(struct usb_ether *ue)
{
struct smsc_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
int error;
sc = uether_getsc(ue);
ifp = ue->ue_ifp;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = smsc_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, smsc_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
/* The chip supports TCP/UDP checksum offloading on TX and RX paths, however
* currently only RX checksum is supported in the driver (see top of file).
*/
- ifp->if_capabilities |= IFCAP_RXCSUM | IFCAP_VLAN_MTU;
- ifp->if_hwassist = 0;
+ if_setcapabilitiesbit(ifp, IFCAP_RXCSUM | IFCAP_VLAN_MTU, 0);
+ if_sethwassist(ifp, 0);
/* TX checksuming is disabled (for now?)
- ifp->if_capabilities |= IFCAP_TXCSUM;
- ifp->if_capenable |= IFCAP_TXCSUM;
- ifp->if_hwassist = CSUM_TCP | CSUM_UDP;
+ if_setcapabilitiesbit(ifp, IFCAP_TXCSUM, 0);
+ if_setcapenablebit(ifp, IFCAP_TXCSUM, 0);
+ if_sethwassist(ifp, CSUM_TCP | CSUM_UDP);
*/
- ifp->if_capenable = ifp->if_capabilities;
+ if_setcapenable(ifp, if_getcapabilities(ifp));
bus_topo_lock();
error = mii_attach(ue->ue_dev, &ue->ue_miibus, ifp,
diff --git a/sys/dev/usb/net/if_udav.c b/sys/dev/usb/net/if_udav.c
--- a/sys/dev/usb/net/if_udav.c
+++ b/sys/dev/usb/net/if_udav.c
@@ -112,8 +112,8 @@
static uint8_t udav_csr_read1(struct udav_softc *, uint16_t);
static int udav_csr_write1(struct udav_softc *, uint16_t, uint8_t);
static void udav_reset(struct udav_softc *);
-static int udav_ifmedia_upd(struct ifnet *);
-static void udav_ifmedia_status(struct ifnet *, struct ifmediareq *);
+static int udav_ifmedia_upd(if_t );
+static void udav_ifmedia_status(if_t , struct ifmediareq *);
static miibus_readreg_t udav_miibus_readreg;
static miibus_writereg_t udav_miibus_writereg;
@@ -435,7 +435,7 @@
udav_init(struct usb_ether *ue)
{
struct udav_softc *sc = ue->ue_sc;
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
UDAV_LOCK_ASSERT(sc, MA_OWNED);
@@ -445,7 +445,7 @@
udav_stop(ue);
/* set MAC address */
- udav_csr_write(sc, UDAV_PAR, IF_LLADDR(ifp), ETHER_ADDR_LEN);
+ udav_csr_write(sc, UDAV_PAR, if_getlladdr(ifp), ETHER_ADDR_LEN);
/* initialize network control register */
@@ -467,7 +467,7 @@
usbd_xfer_set_stall(sc->sc_xfer[UDAV_BULK_DT_WR]);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
udav_start(ue);
}
@@ -518,12 +518,12 @@
udav_setmulti(struct usb_ether *ue)
{
struct udav_softc *sc = ue->ue_sc;
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
uint8_t hashtbl[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
UDAV_LOCK_ASSERT(sc, MA_OWNED);
- if (ifp->if_flags & IFF_ALLMULTI || ifp->if_flags & IFF_PROMISC) {
+ if (if_getflags(ifp) & IFF_ALLMULTI || if_getflags(ifp) & IFF_PROMISC) {
UDAV_SETBIT(sc, UDAV_RCR, UDAV_RCR_ALL|UDAV_RCR_PRMSC);
return;
}
@@ -547,15 +547,15 @@
udav_setpromisc(struct usb_ether *ue)
{
struct udav_softc *sc = ue->ue_sc;
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
uint8_t rxmode;
rxmode = udav_csr_read1(sc, UDAV_RCR);
rxmode &= ~(UDAV_RCR_ALL | UDAV_RCR_PRMSC);
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & IFF_PROMISC)
rxmode |= UDAV_RCR_ALL | UDAV_RCR_PRMSC;
- else if (ifp->if_flags & IFF_ALLMULTI)
+ else if (if_getflags(ifp) & IFF_ALLMULTI)
rxmode |= UDAV_RCR_ALL;
/* write new mode bits */
@@ -579,7 +579,7 @@
udav_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct udav_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
int extra_len;
@@ -600,7 +600,7 @@
*/
return;
}
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
return;
@@ -661,7 +661,7 @@
{
struct udav_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_page_cache *pc;
struct udav_rxpkt stat;
int len;
@@ -737,11 +737,11 @@
udav_stop(struct usb_ether *ue)
{
struct udav_softc *sc = ue->ue_sc;
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
UDAV_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
if (!(sc->sc_flags & UDAV_FLAG_NO_PHY))
sc->sc_flags &= ~UDAV_FLAG_LINK;
@@ -756,9 +756,9 @@
}
static int
-udav_ifmedia_upd(struct ifnet *ifp)
+udav_ifmedia_upd(if_t ifp)
{
- struct udav_softc *sc = ifp->if_softc;
+ struct udav_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
struct mii_softc *miisc;
int error;
@@ -773,9 +773,9 @@
}
static void
-udav_ifmedia_status(struct ifnet *ifp, struct ifmediareq *ifmr)
+udav_ifmedia_status(if_t ifp, struct ifmediareq *ifmr)
{
- struct udav_softc *sc = ifp->if_softc;
+ struct udav_softc *sc = if_getsoftc(ifp);
struct mii_data *mii = GET_MII(sc);
UDAV_LOCK(sc);
diff --git a/sys/dev/usb/net/if_ure.c b/sys/dev/usb/net/if_ure.c
--- a/sys/dev/usb/net/if_ure.c
+++ b/sys/dev/usb/net/if_ure.c
@@ -154,12 +154,12 @@
static void ure_read_chipver(struct ure_softc *);
static int ure_attach_post_sub(struct usb_ether *);
static void ure_reset(struct ure_softc *);
-static int ure_ifmedia_upd(struct ifnet *);
-static void ure_ifmedia_sts(struct ifnet *, struct ifmediareq *);
+static int ure_ifmedia_upd(if_t );
+static void ure_ifmedia_sts(if_t , struct ifmediareq *);
static void ure_add_media_types(struct ure_softc *);
static void ure_link_state(struct ure_softc *sc);
static int ure_get_link_status(struct ure_softc *);
-static int ure_ioctl(struct ifnet *, u_long, caddr_t);
+static int ure_ioctl(if_t , u_long, caddr_t);
static void ure_rtl8152_init(struct ure_softc *);
static void ure_rtl8152_nic_reset(struct ure_softc *);
static void ure_rtl8153_init(struct ure_softc *);
@@ -438,7 +438,7 @@
{
struct ure_softc *sc;
struct mii_data *mii;
- struct ifnet *ifp;
+ if_t ifp;
int locked;
sc = device_get_softc(dev);
@@ -449,7 +449,7 @@
ifp = uether_getifp(&sc->sc_ue);
if (mii == NULL || ifp == NULL ||
- (ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
goto done;
sc->sc_flags &= ~URE_FLAG_LINK;
@@ -636,7 +636,7 @@
{
struct ure_softc *sc = usbd_xfer_softc(xfer);
struct usb_ether *ue = &sc->sc_ue;
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct usb_page_cache *pc;
struct mbuf *m;
struct ure_rxpkt pkt;
@@ -741,7 +741,7 @@
ure_bulk_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct ure_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct usb_page_cache *pc;
struct mbuf *m;
struct ure_txpkt txpkt;
@@ -753,7 +753,7 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
DPRINTFN(11, "transfer complete\n");
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
/* FALLTHROUGH */
case USB_ST_SETUP:
@@ -769,7 +769,7 @@
pos = 0;
rem = URE_TX_BUFSZ;
while (rem > sizeof(txpkt)) {
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
@@ -790,7 +790,7 @@
if (sizeof(txpkt) +
roundup(len, URE_TXPKT_ALIGN) > rem) {
/* out of space */
- IFQ_DRV_PREPEND(&ifp->if_snd, m);
+ if_sendq_prepend(ifp, m);
m = NULL;
break;
}
@@ -852,7 +852,7 @@
usbd_errstr(error));
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if (error == USB_ERR_TIMEOUT) {
DEVPRINTFN(12, sc->sc_ue.ue_dev,
@@ -988,22 +988,22 @@
struct sysctl_ctx_list *sctx;
struct sysctl_oid *soid;
struct ure_softc *sc;
- struct ifnet *ifp;
+ if_t ifp;
int error;
sc = uether_getsc(ue);
ifp = ue->ue_ifp;
- ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
- ifp->if_start = uether_start;
- ifp->if_ioctl = ure_ioctl;
- ifp->if_init = uether_init;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
+ if_setflags(ifp, IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST);
+ if_setstartfn(ifp, uether_start);
+ if_setioctlfn(ifp, ure_ioctl);
+ if_setinitfn(ifp, uether_init);
+ if_setsendqlen(ifp, ifqmaxlen);
/*
* Try to keep two transfers full at a time.
* ~(TRANSFER_SIZE / 80 bytes/pkt * 2 buffers in flight)
*/
- ifp->if_snd.ifq_drv_maxlen = 512;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setsendqlen(ifp, 512);
+ if_setsendqready(ifp);
if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
if_setcapabilitiesbit(ifp, IFCAP_VLAN_HWTAGGING, 0);
@@ -1044,13 +1044,13 @@
ure_init(struct usb_ether *ue)
{
struct ure_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint16_t cpcr;
uint32_t reg;
URE_LOCK_ASSERT(sc, MA_OWNED);
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) != 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) != 0)
return;
/* Cancel pending I/O. */
@@ -1064,7 +1064,7 @@
/* Set MAC address. */
ure_write_1(sc, URE_PLA_CRWECR, URE_MCU_TYPE_PLA, URE_CRWECR_CONFIG);
ure_write_mem(sc, URE_PLA_IDR, URE_MCU_TYPE_PLA | URE_BYTE_EN_SIX_BYTES,
- IF_LLADDR(ifp), 8);
+ if_getlladdr(ifp), 8);
ure_write_1(sc, URE_PLA_CRWECR, URE_MCU_TYPE_PLA, URE_CRWECR_NORAML);
/* Set RX EARLY timeout and size */
@@ -1134,7 +1134,7 @@
usbd_xfer_set_stall(sc->sc_tx_xfer[0]);
/* Indicate we are up and running. */
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* Switch to selected media. */
ure_ifmedia_upd(ifp);
@@ -1144,7 +1144,7 @@
ure_tick(struct usb_ether *ue)
{
struct ure_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
struct mii_data *mii;
URE_LOCK_ASSERT(sc, MA_OWNED);
@@ -1193,7 +1193,7 @@
ure_rxfilter(struct usb_ether *ue)
{
struct ure_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
uint32_t rxmode;
uint32_t h, hashes[2] = { 0, 0 };
@@ -1203,8 +1203,8 @@
rxmode &= ~(URE_RCR_AAP | URE_RCR_AM);
rxmode |= URE_RCR_APM; /* accept physical match packets */
rxmode |= URE_RCR_AB; /* always accept broadcasts */
- if (ifp->if_flags & (IFF_ALLMULTI | IFF_PROMISC)) {
- if (ifp->if_flags & IFF_PROMISC)
+ if (if_getflags(ifp) & (IFF_ALLMULTI | IFF_PROMISC)) {
+ if (if_getflags(ifp) & IFF_PROMISC)
rxmode |= URE_RCR_AAP;
rxmode |= URE_RCR_AM;
hashes[0] = hashes[1] = 0xffffffff;
@@ -1266,9 +1266,9 @@
* Set media options.
*/
static int
-ure_ifmedia_upd(struct ifnet *ifp)
+ure_ifmedia_upd(if_t ifp)
{
- struct ure_softc *sc = ifp->if_softc;
+ struct ure_softc *sc = if_getsoftc(ifp);
struct ifmedia *ifm;
struct mii_data *mii;
struct mii_softc *miisc;
@@ -1300,20 +1300,20 @@
anar |= ANAR_TX_FD | ANAR_TX | ANAR_10_FD | ANAR_10;
gig |= GTCR_ADV_1000TFDX | GTCR_ADV_1000THDX;
reg |= URE_ADV_2500TFDX;
- ifp->if_baudrate = IF_Mbps(2500);
+ if_setbaudrate(ifp, IF_Mbps(2500));
break;
case IFM_1000_T:
anar |= ANAR_TX_FD | ANAR_TX | ANAR_10_FD | ANAR_10;
gig |= GTCR_ADV_1000TFDX | GTCR_ADV_1000THDX;
- ifp->if_baudrate = IF_Gbps(1);
+ if_setbaudrate(ifp, IF_Gbps(1));
break;
case IFM_100_TX:
anar |= ANAR_TX | ANAR_TX_FD;
- ifp->if_baudrate = IF_Mbps(100);
+ if_setbaudrate(ifp, IF_Mbps(100));
break;
case IFM_10_T:
anar |= ANAR_10 | ANAR_10_FD;
- ifp->if_baudrate = IF_Mbps(10);
+ if_setbaudrate(ifp, IF_Mbps(10));
break;
default:
device_printf(sc->sc_ue.ue_dev, "unsupported media type\n");
@@ -1346,13 +1346,13 @@
* Report current media status.
*/
static void
-ure_ifmedia_sts(struct ifnet *ifp, struct ifmediareq *ifmr)
+ure_ifmedia_sts(if_t ifp, struct ifmediareq *ifmr)
{
struct ure_softc *sc;
struct mii_data *mii;
uint16_t status;
- sc = ifp->if_softc;
+ sc = if_getsoftc(ifp);
if (sc->sc_flags & (URE_FLAG_8156 | URE_FLAG_8156B)) {
URE_LOCK(sc);
ifmr->ifm_status = IFM_AVALID;
@@ -1401,10 +1401,10 @@
static void
ure_link_state(struct ure_softc *sc)
{
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
if (ure_get_link_status(sc)) {
- if (ifp->if_link_state != LINK_STATE_UP) {
+ if (ifp->if_link_state != LINK_STATE_UP) { /* XXX - DRVAPI */
if_link_state_change(ifp, LINK_STATE_UP);
/* Enable transmit and receive. */
URE_SETBIT_1(sc, URE_PLA_CR, URE_MCU_TYPE_PLA, URE_CR_RE | URE_CR_TE);
@@ -1416,7 +1416,7 @@
URE_SETBIT_2(sc, URE_PLA_MAC_PWR_CTRL4, URE_MCU_TYPE_PLA, 0x40);
}
} else {
- if (ifp->if_link_state != LINK_STATE_DOWN) {
+ if (ifp->if_link_state != LINK_STATE_DOWN) { /* XXX - DRVAPI */
if_link_state_change(ifp, LINK_STATE_DOWN);
}
}
@@ -1436,9 +1436,9 @@
}
static int
-ure_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+ure_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct usb_ether *ue = ifp->if_softc;
+ struct usb_ether *ue = if_getsoftc(ifp);
struct ure_softc *sc;
struct ifreq *ifr;
int error, mask, reinit;
@@ -1450,30 +1450,30 @@
switch (cmd) {
case SIOCSIFCAP:
URE_LOCK(sc);
- mask = ifr->ifr_reqcap ^ ifp->if_capenable;
+ mask = ifr->ifr_reqcap ^ if_getcapenable(ifp);
if ((mask & IFCAP_VLAN_HWTAGGING) != 0 &&
- (ifp->if_capabilities & IFCAP_VLAN_HWTAGGING) != 0) {
- ifp->if_capenable ^= IFCAP_VLAN_HWTAGGING;
+ (if_getcapabilities(ifp) & IFCAP_VLAN_HWTAGGING) != 0) {
+ if_togglecapenable(ifp, IFCAP_VLAN_HWTAGGING);
reinit++;
}
if ((mask & IFCAP_TXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_TXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_TXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_TXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_TXCSUM);
}
if ((mask & IFCAP_RXCSUM) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM);
}
if ((mask & IFCAP_TXCSUM_IPV6) != 0 &&
- (ifp->if_capabilities & IFCAP_TXCSUM_IPV6) != 0) {
- ifp->if_capenable ^= IFCAP_TXCSUM_IPV6;
+ (if_getcapabilities(ifp) & IFCAP_TXCSUM_IPV6) != 0) {
+ if_togglecapenable(ifp, IFCAP_TXCSUM_IPV6);
}
if ((mask & IFCAP_RXCSUM_IPV6) != 0 &&
- (ifp->if_capabilities & IFCAP_RXCSUM_IPV6) != 0) {
- ifp->if_capenable ^= IFCAP_RXCSUM_IPV6;
+ (if_getcapabilities(ifp) & IFCAP_RXCSUM_IPV6) != 0) {
+ if_togglecapenable(ifp, IFCAP_RXCSUM_IPV6);
}
- if (reinit > 0 && ifp->if_drv_flags & IFF_DRV_RUNNING)
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if (reinit > 0 && if_getdrvflags(ifp) & IFF_DRV_RUNNING)
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
else
reinit = 0;
URE_UNLOCK(sc);
@@ -1852,7 +1852,7 @@
static void
ure_rtl8153b_nic_reset(struct ure_softc *sc)
{
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
uint16_t val;
int i;
@@ -1907,7 +1907,7 @@
/* Configure rxvlan */
val = ure_read_2(sc, 0xc012, URE_MCU_TYPE_PLA);
val &= ~0x00c0;
- if (ifp->if_capabilities & IFCAP_VLAN_HWTAGGING)
+ if (if_getcapabilities(ifp) & IFCAP_VLAN_HWTAGGING)
val |= 0x00c0;
ure_write_2(sc, 0xc012, URE_MCU_TYPE_PLA, val);
@@ -1974,11 +1974,11 @@
ure_stop(struct usb_ether *ue)
{
struct ure_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
URE_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
sc->sc_flags &= ~URE_FLAG_LINK;
sc->sc_rxstarted = 0;
diff --git a/sys/dev/usb/net/if_urndis.c b/sys/dev/usb/net/if_urndis.c
--- a/sys/dev/usb/net/if_urndis.c
+++ b/sys/dev/usb/net/if_urndis.c
@@ -369,11 +369,11 @@
urndis_init(struct usb_ether *ue)
{
struct urndis_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
URNDIS_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* stall data write direction, which depends on USB mode */
usbd_xfer_set_stall(sc->sc_xfer[URNDIS_BULK_TX]);
@@ -386,11 +386,11 @@
urndis_stop(struct usb_ether *ue)
{
struct urndis_softc *sc = uether_getsc(ue);
- struct ifnet *ifp = uether_getifp(ue);
+ if_t ifp = uether_getifp(ue);
URNDIS_LOCK_ASSERT(sc, MA_OWNED);
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
/*
* stop all the transfers, if not already stopped:
@@ -818,7 +818,7 @@
{
struct urndis_softc *sc = usbd_xfer_softc(xfer);
struct usb_page_cache *pc = usbd_xfer_get_frame(xfer, 0);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct rndis_packet_msg msg;
struct mbuf *m;
int actlen;
@@ -947,7 +947,7 @@
{
struct rndis_packet_msg msg;
struct urndis_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = uether_getifp(&sc->sc_ue);
+ if_t ifp = uether_getifp(&sc->sc_ue);
struct mbuf *m;
unsigned x;
int actlen;
@@ -974,7 +974,7 @@
usbd_xfer_set_frame_offset(xfer, x * RNDIS_TX_MAXLEN, x);
next_pkt:
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
diff --git a/sys/dev/usb/net/if_usie.c b/sys/dev/usb/net/if_usie.c
--- a/sys/dev/usb/net/if_usie.c
+++ b/sys/dev/usb/net/if_usie.c
@@ -128,12 +128,12 @@
static void usie_if_sync_cb(void *, int);
static void usie_if_status_cb(void *, int);
-static void usie_if_start(struct ifnet *);
-static int usie_if_output(struct ifnet *, struct mbuf *,
+static void usie_if_start(if_t );
+static int usie_if_output(if_t , struct mbuf *,
const struct sockaddr *, struct route *);
static void usie_if_init(void *);
static void usie_if_stop(struct usie_softc *);
-static int usie_if_ioctl(struct ifnet *, u_long, caddr_t);
+static int usie_if_ioctl(if_t , u_long, caddr_t);
static int usie_do_request(struct usie_softc *, struct usb_device_request *, void *);
static int usie_if_cmd(struct usie_softc *, uint8_t);
@@ -295,7 +295,7 @@
{
struct usie_softc *sc = device_get_softc(self);
struct usb_attach_arg *uaa = device_get_ivars(self);
- struct ifnet *ifp;
+ if_t ifp;
struct usb_interface *iface;
struct usb_interface_descriptor *id;
struct usb_device_request req;
@@ -440,16 +440,15 @@
}
if_initname(ifp, "usie", device_get_unit(self));
- ifp->if_softc = sc;
- ifp->if_mtu = USIE_MTU_MAX;
- ifp->if_flags |= IFF_NOARP;
- ifp->if_init = usie_if_init;
- ifp->if_ioctl = usie_if_ioctl;
- ifp->if_start = usie_if_start;
- ifp->if_output = usie_if_output;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setsoftc(ifp, sc);
+ if_setmtu(ifp, USIE_MTU_MAX);
+ if_setflagbits(ifp, IFF_NOARP, 0);
+ if_setinitfn(ifp, usie_if_init);
+ if_setioctlfn(ifp, usie_if_ioctl);
+ if_setstartfn(ifp, usie_if_start);
+ if_setoutputfn(ifp, usie_if_output);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
if_attach(ifp);
bpfattach(ifp, DLT_RAW, 0);
@@ -772,7 +771,7 @@
{
struct epoch_tracker et;
struct usie_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
struct mbuf *m0;
struct mbuf *m = NULL;
struct usie_desc *rxd;
@@ -930,24 +929,24 @@
{
struct usie_softc *sc = usbd_xfer_softc(xfer);
struct usb_page_cache *pc;
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
struct mbuf *m;
uint16_t size;
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
DPRINTFN(11, "transfer complete\n");
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
/* fall though */
case USB_ST_SETUP:
tr_setup:
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0)
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0)
break;
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
@@ -1064,7 +1063,7 @@
usie_if_status_cb(void *arg, int pending)
{
struct usie_softc *sc = arg;
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
struct usb_device_request req;
struct usie_hip *hip;
struct usie_lsi *lsi;
@@ -1143,8 +1142,8 @@
memcpy(&sc->sc_net.dns2_addr, &lsi->dns2_addr, 16);
memcpy(sc->sc_net.pdp_addr, lsi->pdp_addr, 16);
memcpy(sc->sc_net.gw_addr, lsi->gw_addr, 16);
- ifp->if_flags |= IFF_UP;
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setflagbits(ifp, IFF_UP, 0);
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
device_printf(sc->sc_dev, "IP Addr=%d.%d.%d.%d\n",
*lsi->pdp_addr, *(lsi->pdp_addr + 1),
@@ -1174,11 +1173,11 @@
}
static void
-usie_if_start(struct ifnet *ifp)
+usie_if_start(if_t ifp)
{
- struct usie_softc *sc = ifp->if_softc;
+ struct usie_softc *sc = if_getsoftc(ifp);
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) {
DPRINTF("Not running\n");
return;
}
@@ -1190,7 +1189,7 @@
}
static int
-usie_if_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
+usie_if_output(if_t ifp, struct mbuf *m, const struct sockaddr *dst,
struct route *ro)
{
int err;
@@ -1216,7 +1215,7 @@
return (EAFNOSUPPORT);
}
- err = (ifp->if_transmit)(ifp, m);
+ err = if_transmit(ifp, m);
if (err) {
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
return (ENOBUFS);
@@ -1230,7 +1229,7 @@
usie_if_init(void *arg)
{
struct usie_softc *sc = arg;
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
uint8_t i;
mtx_lock(&sc->sc_mtx);
@@ -1248,7 +1247,7 @@
usbd_transfer_start(sc->sc_if_xfer[USIE_IF_RX]);
/* if not running, initiate the modem */
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
+ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))
usie_cns_req(sc, USIE_CNS_ID_INIT, USIE_CNS_OB_LINK_UPDATE);
mtx_unlock(&sc->sc_mtx);
@@ -1277,26 +1276,26 @@
}
static int
-usie_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+usie_if_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct usie_softc *sc = ifp->if_softc;
+ struct usie_softc *sc = if_getsoftc(ifp);
struct ieee80211req *ireq;
struct ieee80211req_sta_info si;
struct ifmediareq *ifmr;
switch (cmd) {
case SIOCSIFFLAGS:
- if (ifp->if_flags & IFF_UP) {
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING))
+ if (if_getflags(ifp) & IFF_UP) {
+ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))
usie_if_init(sc);
} else {
- if (ifp->if_drv_flags & IFF_DRV_RUNNING)
+ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING)
usie_if_stop(sc);
}
break;
case SIOCSIFCAP:
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) {
device_printf(sc->sc_dev,
"Connect to the network first.\n");
break;
@@ -1387,7 +1386,7 @@
static void
usie_cns_req(struct usie_softc *sc, uint32_t id, uint16_t obj)
{
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
struct mbuf *m;
struct usb_xfer *xfer;
struct usie_hip *hip;
@@ -1469,7 +1468,7 @@
static void
usie_cns_rsp(struct usie_softc *sc, struct usie_cns *cns)
{
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
DPRINTF("received CnS\n");
@@ -1478,9 +1477,9 @@
if (be32toh(cns->id) & USIE_CNS_ID_INIT)
usie_if_sync_to(sc);
else if (be32toh(cns->id) & USIE_CNS_ID_STOP) {
- ifp->if_flags &= ~IFF_UP;
- ifp->if_drv_flags &=
- ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setflagbits(ifp, 0, IFF_UP);
+ if_setdrvflagbits(ifp, 0,
+ IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
} else
DPRINTF("undefined link update\n");
break;
diff --git a/sys/dev/usb/net/if_usievar.h b/sys/dev/usb/net/if_usievar.h
--- a/sys/dev/usb/net/if_usievar.h
+++ b/sys/dev/usb/net/if_usievar.h
@@ -229,7 +229,7 @@
struct usb_xfer *sc_uc_xfer[USIE_UCOM_MAX][USIE_UC_N_XFER];
struct usb_xfer *sc_if_xfer[USIE_IF_N_XFER];
- struct ifnet *sc_ifp;
+ if_t sc_ifp;
struct usb_device *sc_udev;
device_t sc_dev;
diff --git a/sys/dev/usb/net/uhso.c b/sys/dev/usb/net/uhso.c
--- a/sys/dev/usb/net/uhso.c
+++ b/sys/dev/usb/net/uhso.c
@@ -95,7 +95,7 @@
/* Network */
struct usb_xfer *sc_if_xfer[2];
- struct ifnet *sc_ifp;
+ if_t sc_ifp;
struct mbuf *sc_mwait; /* Partial packet */
size_t sc_waitlen; /* No. of outstanding bytes */
struct mbufq sc_rxq;
@@ -470,10 +470,10 @@
static void uhso_ucom_cfg_set_dtr(struct ucom_softc *, uint8_t);
static void uhso_ucom_cfg_set_rts(struct ucom_softc *, uint8_t);
static void uhso_if_init(void *);
-static void uhso_if_start(struct ifnet *);
+static void uhso_if_start(if_t );
static void uhso_if_stop(struct uhso_softc *);
-static int uhso_if_ioctl(struct ifnet *, u_long, caddr_t);
-static int uhso_if_output(struct ifnet *, struct mbuf *,
+static int uhso_if_ioctl(if_t , u_long, caddr_t);
+static int uhso_if_output(if_t , struct mbuf *,
const struct sockaddr *, struct route *);
static void uhso_if_rxflush(void *);
@@ -687,7 +687,7 @@
if (sc->sc_ifp != NULL) {
callout_drain(&sc->sc_c);
- free_unr(uhso_ifnet_unit, sc->sc_ifp->if_dunit);
+ free_unr(uhso_ifnet_unit, sc->sc_ifp->if_dunit); /* XXX - DRVAPI */
mtx_lock(&sc->sc_mtx);
uhso_if_stop(sc);
mtx_unlock(&sc->sc_mtx);
@@ -1552,7 +1552,7 @@
static int
uhso_attach_ifnet(struct uhso_softc *sc, struct usb_interface *iface, int type)
{
- struct ifnet *ifp;
+ if_t ifp;
usb_error_t uerr;
struct sysctl_ctx_list *sctx;
struct sysctl_oid *soid;
@@ -1586,16 +1586,15 @@
devunit = alloc_unr(uhso_ifnet_unit);
if_initname(ifp, device_get_name(sc->sc_dev), devunit);
- ifp->if_mtu = UHSO_MAX_MTU;
- ifp->if_ioctl = uhso_if_ioctl;
- ifp->if_init = uhso_if_init;
- ifp->if_start = uhso_if_start;
- ifp->if_output = uhso_if_output;
- ifp->if_flags = IFF_BROADCAST | IFF_MULTICAST | IFF_NOARP;
- ifp->if_softc = sc;
- IFQ_SET_MAXLEN(&ifp->if_snd, ifqmaxlen);
- ifp->if_snd.ifq_drv_maxlen = ifqmaxlen;
- IFQ_SET_READY(&ifp->if_snd);
+ if_setmtu(ifp, UHSO_MAX_MTU);
+ if_setioctlfn(ifp, uhso_if_ioctl);
+ if_setinitfn(ifp, uhso_if_init);
+ if_setstartfn(ifp, uhso_if_start);
+ if_setoutputfn(ifp, uhso_if_output);
+ if_setflags(ifp, IFF_BROADCAST | IFF_MULTICAST | IFF_NOARP);
+ if_setsoftc(ifp, sc);
+ if_setsendqlen(ifp, ifqmaxlen);
+ if_setsendqready(ifp);
if_attach(ifp);
bpfattach(ifp, DLT_RAW, 0);
@@ -1603,8 +1602,8 @@
sctx = device_get_sysctl_ctx(sc->sc_dev);
soid = device_get_sysctl_tree(sc->sc_dev);
/* Unlocked read... */
- SYSCTL_ADD_STRING(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "netif",
- CTLFLAG_RD, ifp->if_xname, 0, "Attached network interface");
+ SYSCTL_ADD_CONST_STRING(sctx, SYSCTL_CHILDREN(soid), OID_AUTO, "netif",
+ CTLFLAG_RD, if_name(ifp), "Attached network interface");
return (0);
}
@@ -1623,7 +1622,7 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
- if (actlen > 0 && (sc->sc_ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (actlen > 0 && (if_getdrvflags(sc->sc_ifp) & IFF_DRV_RUNNING)) {
pc = usbd_xfer_get_frame(xfer, 0);
if (mbufq_full(&sc->sc_rxq))
break;
@@ -1664,7 +1663,7 @@
{
struct epoch_tracker et;
struct uhso_softc *sc = arg;
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
uint8_t *cp;
struct mbuf *m, *m0, *mwait;
struct ip *ip;
@@ -1782,7 +1781,7 @@
/* Dispatch to IP layer */
BPF_MTAP(sc->sc_ifp, m);
- M_SETFIB(m, ifp->if_fib);
+ M_SETFIB(m, ifp->if_fib); /* XXX - DRVAPI */
netisr_dispatch(isr, m);
m = m0 != NULL ? m0 : NULL;
mtx_lock(&sc->sc_mtx);
@@ -1795,7 +1794,7 @@
uhso_ifnet_write_callback(struct usb_xfer *xfer, usb_error_t error)
{
struct uhso_softc *sc = usbd_xfer_softc(xfer);
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
struct usb_page_cache *pc;
struct mbuf *m;
int actlen;
@@ -1807,14 +1806,14 @@
switch (USB_GET_STATE(xfer)) {
case USB_ST_TRANSFERRED:
if_inc_counter(ifp, IFCOUNTER_OPACKETS, 1);
- ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_OACTIVE);
case USB_ST_SETUP:
tr_setup:
- IFQ_DRV_DEQUEUE(&ifp->if_snd, m);
+ m = if_dequeue(ifp);
if (m == NULL)
break;
- ifp->if_drv_flags |= IFF_DRV_OACTIVE;
+ if_setdrvflagbits(ifp, IFF_DRV_OACTIVE, 0);
if (m->m_pkthdr.len > MCLBYTES)
m->m_pkthdr.len = MCLBYTES;
@@ -1837,21 +1836,21 @@
}
static int
-uhso_if_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+uhso_if_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
struct uhso_softc *sc;
- sc = ifp->if_softc;
+ sc = if_getsoftc(ifp);
switch (cmd) {
case SIOCSIFFLAGS:
- if (ifp->if_flags & IFF_UP) {
- if (!(ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if (if_getflags(ifp) & IFF_UP) {
+ if (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING)) {
uhso_if_init(sc);
}
}
else {
- if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
+ if (if_getdrvflags(ifp) & IFF_DRV_RUNNING) {
mtx_lock(&sc->sc_mtx);
uhso_if_stop(sc);
mtx_unlock(&sc->sc_mtx);
@@ -1872,20 +1871,20 @@
uhso_if_init(void *priv)
{
struct uhso_softc *sc = priv;
- struct ifnet *ifp = sc->sc_ifp;
+ if_t ifp = sc->sc_ifp;
mtx_lock(&sc->sc_mtx);
uhso_if_stop(sc);
ifp = sc->sc_ifp;
- ifp->if_flags |= IFF_UP;
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setflagbits(ifp, IFF_UP, 0);
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
mtx_unlock(&sc->sc_mtx);
UHSO_DPRINTF(2, "ifnet initialized\n");
}
static int
-uhso_if_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst,
+uhso_if_output(if_t ifp, struct mbuf *m0, const struct sockaddr *dst,
struct route *ro)
{
int error;
@@ -1899,7 +1898,7 @@
return (EAFNOSUPPORT);
}
- error = (ifp->if_transmit)(ifp, m0);
+ error = if_transmit(ifp, m0);
if (error) {
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
return (ENOBUFS);
@@ -1909,11 +1908,11 @@
}
static void
-uhso_if_start(struct ifnet *ifp)
+uhso_if_start(if_t ifp)
{
- struct uhso_softc *sc = ifp->if_softc;
+ struct uhso_softc *sc = if_getsoftc(ifp);
- if ((ifp->if_drv_flags & IFF_DRV_RUNNING) == 0) {
+ if ((if_getdrvflags(ifp) & IFF_DRV_RUNNING) == 0) {
UHSO_DPRINTF(1, "Not running\n");
return;
}
@@ -1931,5 +1930,5 @@
usbd_transfer_stop(sc->sc_if_xfer[UHSO_IFNET_READ]);
usbd_transfer_stop(sc->sc_if_xfer[UHSO_IFNET_WRITE]);
- sc->sc_ifp->if_drv_flags &= ~(IFF_DRV_RUNNING | IFF_DRV_OACTIVE);
+ if_setdrvflagbits(sc->sc_ifp, 0, (IFF_DRV_RUNNING | IFF_DRV_OACTIVE));
}
diff --git a/sys/dev/usb/net/usb_ethernet.c b/sys/dev/usb/net/usb_ethernet.c
--- a/sys/dev/usb/net/usb_ethernet.c
+++ b/sys/dev/usb/net/usb_ethernet.c
@@ -265,7 +265,7 @@
ether_ifattach(ifp, ue->ue_eaddr);
/* Tell upper layer we support VLAN oversized frames. */
if (if_getcapabilities(ifp) & IFCAP_VLAN_MTU)
- if_sethdrlen(ifp, sizeof(struct ether_vlan_header));
+ if_setifheaderlen(ifp, sizeof(struct ether_vlan_header));
CURVNET_RESTORE();
diff --git a/sys/dev/usb/usb_pf.c b/sys/dev/usb/usb_pf.c
--- a/sys/dev/usb/usb_pf.c
+++ b/sys/dev/usb/usb_pf.c
@@ -68,11 +68,11 @@
static void usbpf_init(void *);
static void usbpf_uninit(void *);
-static int usbpf_ioctl(struct ifnet *, u_long, caddr_t);
+static int usbpf_ioctl(if_t , u_long, caddr_t);
static int usbpf_clone_match(struct if_clone *, const char *);
static int usbpf_clone_create(struct if_clone *, char *, size_t,
- struct ifc_data *, struct ifnet **);
-static int usbpf_clone_destroy(struct if_clone *, struct ifnet *, uint32_t);
+ struct ifc_data *, if_t *);
+static int usbpf_clone_destroy(struct if_clone *, if_t, uint32_t);
static struct usb_bus *usbpf_ifname2ubus(const char *);
static uint32_t usbpf_aggregate_xferflags(struct usb_xfer_flags *);
static uint32_t usbpf_aggregate_status(struct usb_xfer_flags_int *);
@@ -124,7 +124,7 @@
}
static int
-usbpf_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+usbpf_ioctl(if_t ifp, u_long cmd, caddr_t data)
{
/* No configuration allowed. */
@@ -170,11 +170,11 @@
static int
usbpf_clone_create(struct if_clone *ifc, char *name, size_t len,
- struct ifc_data *ifd, struct ifnet **ifpp)
+ struct ifc_data *ifd, if_t *ifpp)
{
int error;
int unit;
- struct ifnet *ifp;
+ if_t ifp;
struct usb_bus *ubus;
error = ifc_name2unit(name, &unit);
@@ -202,13 +202,12 @@
"instance\n");
return (ENOSPC);
}
- strlcpy(ifp->if_xname, name, sizeof(ifp->if_xname));
- ifp->if_softc = ubus;
- ifp->if_dname = usbusname;
- ifp->if_dunit = unit;
- ifp->if_ioctl = usbpf_ioctl;
+ if_setsoftc(ifp, ubus);
+ if_initname(ifp, usbusname, unit);
+ if_setname(ifp, name);
+ if_setioctlfn(ifp, usbpf_ioctl);
if_attach(ifp);
- ifp->if_flags |= IFF_UP;
+ if_setflagbits(ifp, IFF_UP, 0);
rt_ifmsg(ifp, IFF_UP);
/*
* XXX According to the specification of DLT_USB, it indicates
@@ -222,13 +221,13 @@
}
static int
-usbpf_clone_destroy(struct if_clone *ifc, struct ifnet *ifp, uint32_t flags)
+usbpf_clone_destroy(struct if_clone *ifc, if_t ifp, uint32_t flags)
{
struct usb_bus *ubus;
int unit;
- ubus = ifp->if_softc;
- unit = ifp->if_dunit;
+ ubus = if_getsoftc(ifp);
+ unit = ifp->if_dunit; /* XXX - DRVAPI */
/*
* Lock USB before clearing the "ifp" pointer, to avoid
@@ -410,9 +409,9 @@
bus = xfer->xroot->bus;
/* sanity checks */
- if (bus->ifp == NULL || bus->ifp->if_bpf == NULL)
+ if (bus->ifp == NULL || bus->ifp->if_bpf == NULL) /* XXX - DRVAPI */
return;
- if (!bpf_peers_present(bus->ifp->if_bpf))
+ if (!bpf_peers_present(bus->ifp->if_bpf)) /* XXX - DRVAPI */
return;
totlen = usbpf_xfer_precompute_size(xfer, type);
@@ -535,7 +534,7 @@
}
}
- bpf_tap(bus->ifp->if_bpf, buf, totlen);
+ bpf_tap(bus->ifp->if_bpf, buf, totlen); /* XXX - DRVAPI */
free(buf, M_TEMP);
}
diff --git a/sys/dev/usb/wlan/if_rsu.c b/sys/dev/usb/wlan/if_rsu.c
--- a/sys/dev/usb/wlan/if_rsu.c
+++ b/sys/dev/usb/wlan/if_rsu.c
@@ -684,7 +684,7 @@
struct rsu_softc *sc = ic->ic_softc;
struct rsu_vap *uvp;
struct ieee80211vap *vap;
- struct ifnet *ifp;
+ if_t ifp;
if (!TAILQ_EMPTY(&ic->ic_vaps)) /* only one at a time */
return (NULL);
@@ -700,10 +700,10 @@
}
ifp = vap->iv_ifp;
- ifp->if_capabilities = IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6;
+ if_setcapabilities(ifp, IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6);
RSU_LOCK(sc);
if (sc->sc_rx_checksum_enable)
- ifp->if_capenable |= IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6;
+ if_setcapenablebit(ifp, IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6, 0);
RSU_UNLOCK(sc);
/* override state transition machine */
@@ -3036,11 +3036,11 @@
IEEE80211_LOCK(ic); /* XXX */
TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
- struct ifnet *ifp = vap->iv_ifp;
+ if_t ifp = vap->iv_ifp;
- ifp->if_capenable &=
- ~(IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6);
- ifp->if_capenable |= rxmask;
+ if_setcapenablebit(ifp, 0,
+ IFCAP_RXCSUM | IFCAP_RXCSUM_IPV6);
+ if_setcapenablebit(ifp, rxmask, 0);
}
IEEE80211_UNLOCK(ic);
break;
diff --git a/sys/dev/usb/wlan/if_run.c b/sys/dev/usb/wlan/if_run.c
--- a/sys/dev/usb/wlan/if_run.c
+++ b/sys/dev/usb/wlan/if_run.c
@@ -414,7 +414,7 @@
static int run_read_eeprom(struct run_softc *);
static struct ieee80211_node *run_node_alloc(struct ieee80211vap *,
const uint8_t mac[IEEE80211_ADDR_LEN]);
-static int run_media_change(struct ifnet *);
+static int run_media_change(if_t );
static int run_newstate(struct ieee80211vap *, enum ieee80211_state, int);
static int run_wme_update(struct ieee80211com *);
static void run_key_set_cb(void *);
@@ -2116,9 +2116,9 @@
}
static int
-run_media_change(struct ifnet *ifp)
+run_media_change(if_t ifp)
{
- struct ieee80211vap *vap = ifp->if_softc;
+ struct ieee80211vap *vap = if_getsoftc(ifp);
struct ieee80211com *ic = vap->iv_ic;
const struct ieee80211_txparam *tp;
struct run_softc *sc = ic->ic_softc;
@@ -2154,8 +2154,8 @@
}
#if 0
- if ((ifp->if_flags & IFF_UP) &&
- (ifp->if_drv_flags & RUN_RUNNING)){
+ if ((if_getflags(ifp) & IFF_UP) &&
+ (if_getdrvflags(ifp) & RUN_RUNNING)){
run_init_locked(sc);
}
#endif
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Sep 25, 2:38 PM (19 m, 46 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
12761834
Default Alt Text
D37812.id114928.diff (101 KB)
Attached To
Mode
D37812: Mechanically convert usb ethernet drivers to DrvAPI
Attached
Detach File
Event Timeline
Log In to Comment