Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F111636257
D37851.id116607.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D37851.id116607.diff
View Options
diff --git a/sys/dev/iicbus/if_ic.c b/sys/dev/iicbus/if_ic.c
--- a/sys/dev/iicbus/if_ic.c
+++ b/sys/dev/iicbus/if_ic.c
@@ -72,7 +72,7 @@
#define ICMTU 1500 /* default mtu */
struct ic_softc {
- struct ifnet *ic_ifp;
+ if_t ic_ifp;
device_t ic_dev;
u_char ic_addr; /* peer I2C address */
@@ -99,8 +99,8 @@
static int icprobe(device_t);
static int icattach(device_t);
-static int icioctl(struct ifnet *, u_long, caddr_t);
-static int icoutput(struct ifnet *, struct mbuf *, const struct sockaddr *,
+static int icioctl(if_t, u_long, caddr_t);
+static int icoutput(if_t, struct mbuf *, const struct sockaddr *,
struct route *);
static int icintr(device_t, int, char *);
@@ -141,7 +141,7 @@
free(sc->ic_ifbuf, M_DEVBUF);
sc->ic_obuf = obuf;
sc->ic_ifbuf = ifbuf;
- sc->ic_ifp->if_mtu = mtu;
+ if_setmtu(sc->ic_ifp, mtu);
mtx_unlock(&sc->ic_lock);
}
@@ -161,7 +161,7 @@
icattach(device_t dev)
{
struct ic_softc *sc = (struct ic_softc *)device_get_softc(dev);
- struct ifnet *ifp;
+ if_t ifp;
ifp = sc->ic_ifp = if_alloc(IFT_PARA);
if (ifp == NULL)
@@ -172,14 +172,13 @@
sc->ic_addr = PCF_MASTER_ADDRESS; /* XXX only PCF masters */
sc->ic_dev = dev;
- ifp->if_softc = sc;
+ if_setsoftc(ifp, sc);
if_initname(ifp, device_get_name(dev), device_get_unit(dev));
- ifp->if_flags = IFF_SIMPLEX | IFF_POINTOPOINT | IFF_MULTICAST;
- ifp->if_ioctl = icioctl;
- ifp->if_output = icoutput;
- ifp->if_hdrlen = 0;
- ifp->if_addrlen = 0;
- ifp->if_snd.ifq_maxlen = ifqmaxlen;
+ if_setflags(ifp, IFF_SIMPLEX | IFF_POINTOPOINT | IFF_MULTICAST);
+ if_setioctlfn(ifp, icioctl);
+ if_setoutputfn(ifp, icoutput);
+ if_setifheaderlen(ifp, 0);
+ if_setsendqlen(ifp, ifqmaxlen);
ic_alloc_buffers(sc, ICMTU);
@@ -194,9 +193,9 @@
* iciotcl()
*/
static int
-icioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
+icioctl(if_t ifp, u_long cmd, caddr_t data)
{
- struct ic_softc *sc = ifp->if_softc;
+ struct ic_softc *sc = if_getsoftc(ifp);
device_t icdev = sc->ic_dev;
device_t parent = device_get_parent(icdev);
struct ifaddr *ifa = (struct ifaddr *)data;
@@ -210,31 +209,31 @@
if (ifa->ifa_addr->sa_family != AF_INET)
return (EAFNOSUPPORT);
mtx_lock(&sc->ic_lock);
- ifp->if_flags |= IFF_UP;
+ if_setflagbits(ifp, IFF_UP, 0);
goto locked;
case SIOCSIFFLAGS:
mtx_lock(&sc->ic_lock);
locked:
- if ((!(ifp->if_flags & IFF_UP)) &&
- (ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+ if ((!(if_getflags(ifp) & IFF_UP)) &&
+ (if_getdrvflags(ifp) & IFF_DRV_RUNNING)) {
/* XXX disable PCF */
- ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, 0, IFF_DRV_RUNNING);
mtx_unlock(&sc->ic_lock);
/* IFF_UP is not set, try to release the bus anyway */
iicbus_release_bus(parent, icdev);
break;
}
- if (((ifp->if_flags & IFF_UP)) &&
- (!(ifp->if_drv_flags & IFF_DRV_RUNNING))) {
+ if (((if_getflags(ifp) & IFF_UP)) &&
+ (!(if_getdrvflags(ifp) & IFF_DRV_RUNNING))) {
mtx_unlock(&sc->ic_lock);
if ((error = iicbus_request_bus(parent, icdev,
IIC_WAIT | IIC_INTR)))
return (error);
mtx_lock(&sc->ic_lock);
iicbus_reset(parent, IIC_FASTEST, 0, NULL);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
}
mtx_unlock(&sc->ic_lock);
break;
@@ -245,7 +244,7 @@
case SIOCGIFMTU:
mtx_lock(&sc->ic_lock);
- ifr->ifr_mtu = sc->ic_ifp->if_mtu;
+ ifr->ifr_mtu = if_getmtu(sc->ic_ifp);
mtx_unlock(&sc->ic_lock);
break;
@@ -310,7 +309,7 @@
struct epoch_tracker et;
mtx_unlock(&sc->ic_lock);
- M_SETFIB(top, sc->ic_ifp->if_fib);
+ M_SETFIB(top, if_getfib(sc->ic_ifp));
NET_EPOCH_ENTER(et);
netisr_dispatch(NETISR_IP, top);
NET_EPOCH_EXIT(et);
@@ -324,7 +323,7 @@
break;
case INTR_RECEIVE:
- if (sc->ic_xfercnt >= sc->ic_ifp->if_mtu + ICHDRLEN) {
+ if (sc->ic_xfercnt >= if_getmtu(sc->ic_ifp) + ICHDRLEN) {
sc->ic_iferrs++;
} else {
*sc->ic_cp++ = *ptr;
@@ -355,10 +354,10 @@
* icoutput()
*/
static int
-icoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
+icoutput(if_t ifp, struct mbuf *m, const struct sockaddr *dst,
struct route *ro)
{
- struct ic_softc *sc = ifp->if_softc;
+ struct ic_softc *sc = if_getsoftc(ifp);
device_t icdev = sc->ic_dev;
device_t parent = device_get_parent(icdev);
int len, sent;
@@ -373,7 +372,7 @@
hdr = RO_GET_FAMILY(ro, dst);
mtx_lock(&sc->ic_lock);
- ifp->if_drv_flags |= IFF_DRV_RUNNING;
+ if_setdrvflagbits(ifp, IFF_DRV_RUNNING, 0);
/* already sending? */
if (sc->ic_flags & IC_SENDING) {
@@ -388,7 +387,7 @@
len = 0;
mm = m;
do {
- if (len + mm->m_len > sc->ic_ifp->if_mtu) {
+ if (len + mm->m_len > if_getmtu(sc->ic_ifp)) {
/* packet too large */
if_inc_counter(ifp, IFCOUNTER_OERRORS, 1);
goto error;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Mar 7, 8:17 AM (19 h, 13 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17023057
Default Alt Text
D37851.id116607.diff (4 KB)
Attached To
Mode
D37851: Mechanically convert ic(4) to DrvAPI
Attached
Detach File
Event Timeline
Log In to Comment