9ns: Fix devtab function pointer signatures
[akaros.git] / kern / drivers / dev / ether.c
index 21db7e5..f0a7c14 100644 (file)
@@ -86,7 +86,7 @@ struct chan *etherattach(char *spec)
                nexterror();
        }
        if (vlanid) {
                nexterror();
        }
        if (vlanid) {
-               if (ether->maxmtu < ETHERMAXTU + 4)
+               if (ether->max_mtu < ETHERMAXTU + ETHERHDRSIZE + 4)
                        error(EFAIL, "interface cannot support 802.1 tags");
                vlan = vlanalloc(ether, vlanid);
                chan = devattach(devname(), spec);
                        error(EFAIL, "interface cannot support 802.1 tags");
                vlan = vlanalloc(ether, vlanid);
                chan = devattach(devname(), spec);
@@ -119,7 +119,7 @@ static void ethershutdown(void)
 }
 
 static struct walkqid *etherwalk(struct chan *chan, struct chan *nchan,
 }
 
 static struct walkqid *etherwalk(struct chan *chan, struct chan *nchan,
-                                                                char **name, int nname)
+                                                                char **name, unsigned int nname)
 {
        ERRSTACK(1);
        struct walkqid *wq;
 {
        ERRSTACK(1);
        struct walkqid *wq;
@@ -139,10 +139,10 @@ static struct walkqid *etherwalk(struct chan *chan, struct chan *nchan,
        return wq;
 }
 
        return wq;
 }
 
-static int etherstat(struct chan *chan, uint8_t * dp, int n)
+static size_t etherstat(struct chan *chan, uint8_t *dp, size_t n)
 {
        ERRSTACK(1);
 {
        ERRSTACK(1);
-       int s;
+       size_t s;
        struct ether *ether;
 
        ether = chan->aux;
        struct ether *ether;
 
        ether = chan->aux;
@@ -191,7 +191,7 @@ static void etherclose(struct chan *chan)
        runlock(&ether->rwlock);
 }
 
        runlock(&ether->rwlock);
 }
 
-static long etherread(struct chan *chan, void *buf, long n, int64_t off)
+static size_t etherread(struct chan *chan, void *buf, size_t n, off64_t off)
 {
        ERRSTACK(1);
        struct ether *ether;
 {
        ERRSTACK(1);
        struct ether *ether;
@@ -223,7 +223,7 @@ out:
        return r;
 }
 
        return r;
 }
 
-static struct block *etherbread(struct chan *chan, long n, uint32_t offset)
+static struct block *etherbread(struct chan *chan, size_t n, off64_t offset)
 {
        ERRSTACK(1);
        struct block *b;
 {
        ERRSTACK(1);
        struct block *b;
@@ -241,7 +241,7 @@ static struct block *etherbread(struct chan *chan, long n, uint32_t offset)
        return b;
 }
 
        return b;
 }
 
-static int etherwstat(struct chan *chan, uint8_t * dp, int n)
+static size_t etherwstat(struct chan *chan, uint8_t *dp, size_t n)
 {
        ERRSTACK(1);
        struct ether *ether;
 {
        ERRSTACK(1);
        struct ether *ether;
@@ -440,8 +440,8 @@ static int etheroq(struct ether *ether, struct block *bp)
                ether = ether->ctlr;
        }
 
                ether = ether->ctlr;
        }
 
-       if ((ether->feat & NETF_PADMIN) == 0 && BLEN(bp) < ether->minmtu)
-               bp = adjustblock(bp, ether->minmtu);
+       if ((ether->feat & NETF_PADMIN) == 0 && BLEN(bp) < ether->min_mtu)
+               bp = adjustblock(bp, ether->min_mtu);
 
        qbwrite(ether->oq, bp);
        if (ether->transmit != NULL)
 
        qbwrite(ether->oq, bp);
        if (ether->transmit != NULL)
@@ -450,7 +450,7 @@ static int etheroq(struct ether *ether, struct block *bp)
        return len;
 }
 
        return len;
 }
 
-static long etherwrite(struct chan *chan, void *buf, long n, int64_t unused)
+static size_t etherwrite(struct chan *chan, void *buf, size_t n, off64_t unused)
 {
        ERRSTACK(2);
        struct ether *ether;
 {
        ERRSTACK(2);
        struct ether *ether;
@@ -492,7 +492,7 @@ static long etherwrite(struct chan *chan, void *buf, long n, int64_t unused)
                error(EINVAL, ERROR_FIXME);
        }
 
                error(EINVAL, ERROR_FIXME);
        }
 
-       if (n > ether->maxmtu + ETHERHDRSIZE)
+       if (n > ether->mtu + ETHERHDRSIZE)
                error(E2BIG, ERROR_FIXME);
        bp = block_alloc(n, MEM_WAIT);
        if (waserror()) {
                error(E2BIG, ERROR_FIXME);
        bp = block_alloc(n, MEM_WAIT);
        if (waserror()) {
@@ -511,7 +511,7 @@ out:
        return l;
 }
 
        return l;
 }
 
-static long etherbwrite(struct chan *chan, struct block *bp, uint32_t unused)
+static size_t etherbwrite(struct chan *chan, struct block *bp, off64_t unused)
 {
        ERRSTACK(1);
        struct ether *ether;
 {
        ERRSTACK(1);
        struct ether *ether;
@@ -534,7 +534,7 @@ static long etherbwrite(struct chan *chan, struct block *bp, uint32_t unused)
                runlock(&ether->rwlock);
                nexterror();
        }
                runlock(&ether->rwlock);
                nexterror();
        }
-       if (n > ether->maxmtu + ETHERHDRSIZE && (bp->flag & Btso) == 0) {
+       if (n > ether->mtu + ETHERHDRSIZE && (bp->flag & Btso) == 0) {
                freeb(bp);
                error(E2BIG, ERROR_FIXME);
        }
                freeb(bp);
                error(E2BIG, ERROR_FIXME);
        }
@@ -629,8 +629,9 @@ static struct ether *vlanalloc(struct ether *ether, int id)
        vlan->mbps = ether->mbps;
        vlan->fullduplex = ether->fullduplex;
        vlan->encry = ether->encry;
        vlan->mbps = ether->mbps;
        vlan->fullduplex = ether->fullduplex;
        vlan->encry = ether->encry;
-       vlan->minmtu = ether->minmtu;
-       vlan->maxmtu = ether->maxmtu;
+       vlan->mtu = ether->mtu;
+       vlan->min_mtu = ether->min_mtu;
+       vlan->max_mtu = ether->max_mtu;
        vlan->ctlrno = ether->ctlrno;
        vlan->vlanid = id;
        vlan->alen = Eaddrlen;
        vlan->ctlrno = ether->ctlrno;
        vlan->vlanid = id;
        vlan->alen = Eaddrlen;
@@ -694,10 +695,12 @@ static void etherreset(void)
                memset(ether, 0, sizeof(struct ether));
                rwinit(&ether->rwlock);
                qlock_init(&ether->vlq);
                memset(ether, 0, sizeof(struct ether));
                rwinit(&ether->rwlock);
                qlock_init(&ether->vlq);
+               rendez_init(&ether->link_rz);
                ether->ctlrno = ctlrno;
                ether->mbps = 10;
                ether->ctlrno = ctlrno;
                ether->mbps = 10;
-               ether->minmtu = ETHERMINTU;
-               ether->maxmtu = ETHERMAXTU;
+               ether->mtu = ETHERMAXTU;
+               ether->min_mtu = ETHERMINTU;
+               ether->max_mtu = ETHERMAXTU;
                /* looked like irq type, we don't have these yet */
                //ether->netif.itype = -1;
 
                /* looked like irq type, we don't have these yet */
                //ether->netif.itype = -1;