Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/dev/qbus Make if_il.c compilable again.



details:   https://anonhg.NetBSD.org/src/rev/df4490c3c760
branches:  trunk
changeset: 456700:df4490c3c760
user:      msaitoh <msaitoh%NetBSD.org@localhost>
date:      Fri May 24 08:29:17 2019 +0000

description:
Make if_il.c compilable again.

diffstat:

 sys/dev/qbus/if_il.c |  51 ++++++++++++++++++++++++---------------------------
 1 files changed, 24 insertions(+), 27 deletions(-)

diffs (127 lines):

diff -r 537adb3509ce -r df4490c3c760 sys/dev/qbus/if_il.c
--- a/sys/dev/qbus/if_il.c      Fri May 24 08:27:44 2019 +0000
+++ b/sys/dev/qbus/if_il.c      Fri May 24 08:29:17 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: if_il.c,v 1.33 2019/05/24 08:27:44 msaitoh Exp $       */
+/*     $NetBSD: if_il.c,v 1.34 2019/05/24 08:29:17 msaitoh Exp $       */
 /*
  * Copyright (c) 1982, 1986 Regents of the University of California.
  * All rights reserved.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_il.c,v 1.33 2019/05/24 08:27:44 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_il.c,v 1.34 2019/05/24 08:29:17 msaitoh Exp $");
 
 #include "opt_inet.h"
 
@@ -116,7 +116,7 @@
 static void ilcint(void *);
 static void ilrint(void *);
 static void ilreset(device_t);
-static int ilwait(struct il_softc *, char *);
+static int ilwait(struct il_softc *, const char *);
 static int ilinit(struct ifnet *);
 static void ilstart(struct ifnet *);
 static void ilwatch(struct ifnet *);
@@ -137,12 +137,11 @@
 ilmatch(device_t parent, cfdata_t cf, void *aux)
 {
        struct uba_attach_args *ua = aux;
-       volatile int i;
 
        bus_space_write_2(ua->ua_iot, ua->ua_ioh, IL_CSR,
            ILC_OFFLINE | IL_CIE);
        DELAY(100000);
-       i = bus_space_read_2(ua->ua_iot, ua->ua_ioh, IL_CSR); /* clear CDONE */
+       bus_space_read_2(ua->ua_iot, ua->ua_ioh, IL_CSR); /* clear CDONE */
 
        return 1;
 }
@@ -202,7 +201,7 @@
 
        strlcpy(ifp->if_xname, device_xname(sc->sc_dev), IFNAMSIZ);
        ifp->if_softc = sc;
-       ifp->if_flags = IFF_BROADCAST;
+       ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
        ifp->if_init = ilinit;
        ifp->if_stop = ilstop;
        ifp->if_ioctl = ether_ioctl;
@@ -224,7 +223,7 @@
 
 
 int
-ilwait(struct il_softc *sc, char *op)
+ilwait(struct il_softc *sc, const char *op)
 {
 
        while ((IL_RCSR(IL_CSR)&IL_CDONE) == 0)
@@ -325,19 +324,18 @@
                        goto out;
                }
        }
-#ifdef MULTICAST
-       if (is->is_if.if_flags & IFF_PROMISC) {
-               addr->il_csr = ILC_PRMSC;
-               if (ilwait(ui, "all multi"))
+       if (sc->sc_if.if_flags & IFF_PROMISC) {
+               IL_WCSR(IL_CSR, ILC_PRMSC);
+               if (ilwait(sc, "all multi"))
                        goto out;
-       } else if (is->is_if.if_flags & IFF_ALLMULTI) {
-       too_many_multis:
-               addr->il_csr = ILC_ALLMC;
-               if (ilwait(ui, "all multi"))
+       } else if (sc->sc_if.if_flags & IFF_ALLMULTI) {
+too_many_multis:
+               IL_WCSR(IL_CSR, ILC_ALLMC);
+               if (ilwait(sc, "all multi"))
                        goto out;
        } else {
                int i;
-               register struct ether_addr *ep = is->is_maddrs;
+               register struct ether_addr *ep = sc->sc_maddrs;
                struct ether_multi *enm;
                struct ether_multistep step;
                /*
@@ -347,29 +345,28 @@
                 * multicasts.
                 */
                i = 0;
-               ETHER_FIRST_MULTI(step, &is->is_ac, enm);
+               ETHER_FIRST_MULTI(step, &sc->sc_ec, enm);
                while (enm != NULL) {
-                       if (++i > 63 && k != 0) {
+                       if (++i > 63 /* && k != 0 */) {
                                break;
                        }
                        *ep++ = *(struct ether_addr *)enm->enm_addrlo;
                        ETHER_NEXT_MULTI(step, enm);
                }
-               if (i = 0) {
+               if (i == 0) {
                        /* no multicasts! */
                } else if (i <= 63) {
-                       addr->il_bar = is->is_ubaddr & 0xffff;
-                       addr->il_bcr = i * sizeof (struct ether_addr);
-                       addr->il_csr = ((is->is_ubaddr >> 2) & IL_EUA)|
-                                               LC_LDGRPS;
-                       if (ilwait(ui, "load multi"))
+                       IL_WCSR(IL_BAR, sc->sc_ubaddr & 0xffff);
+                       IL_WCSR(IL_BCR, i * sizeof(struct ether_addr));
+                       IL_WCSR(IL_CSR,
+                           ((sc->sc_ubaddr >> 2) & IL_EUA) | ILC_LDGRPS);
+                       if (ilwait(sc, "load multi"))
                                goto out;
                } else {
-                   is->is_if.if_flags |= IFF_ALLMULTI;
-                   goto too_many_multis;
+                       sc->sc_if.if_flags |= IFF_ALLMULTI;
+                       goto too_many_multis;
                }
        }
-#endif /* MULTICAST */
        /*
         * Set board online.
         * Hang receive buffer and start any pending



Home | Main Index | Thread Index | Old Index