]> git.lizzy.rs Git - plan9front.git/blobdiff - sys/src/9/port/devaoe.c
kernel: use 64-bit virtual entry point for expanded header, document behaviour in...
[plan9front.git] / sys / src / 9 / port / devaoe.c
index 5c01c922d4badc978f5315e5168d8da45532e34d..ed091df0a7d36735b48a58c51a510b3c82850bc8 100644 (file)
@@ -12,7 +12,7 @@
 #include "ureg.h"
 #include "../port/error.h"
 #include "../port/netif.h"
-#include "etherif.h"
+#include "../port/etherif.h"
 #include "../ip/ip.h"
 #include "../port/aoe.h"
 #include <fis.h>
@@ -828,7 +828,7 @@ unitgen(Chan *c, ulong type, Dir *dp)
        Qid q;
 
        d = unit2dev(UNIT(c->qid));
-       perm = 0644;
+       perm = 0664;
        size = 0;
        vers = d->vers;
        t = QTFILE;
@@ -841,7 +841,7 @@ unitgen(Chan *c, ulong type, Dir *dp)
                break;
        case Qdata:
                p = "data";
-               perm = 0640;
+               perm = 0660;
                if(UP(d))
                        size = d->bsize;
                break;
@@ -881,7 +881,7 @@ topgen(Chan *c, ulong type, Dir *d)
                return -1;
        case Qtopctl:
                p = "ctl";
-               perm = 0644;
+               perm = 0664;
                break;
        case Qtoplog:
                p = "log";
@@ -949,24 +949,24 @@ aoegen(Chan *c, char *, Dirtab *, int, int s, Dir *dp)
                return unitgen(c, TYPE(c->qid), dp);
        case Qdevlinkdir:
                i = UNIT(c->qid);
+               if(i >= Maxunits || i >= units.ref)
+                       return -1;
+               d = unit2dev(i);
                if(s == DEVDOTDOT){
                        mkqid(&q, QID(i, Qunitdir), 0, QTDIR);
-                       devdir(c, q, "devlink", 0, eve, 0555, dp);
+                       devdir(c, q, unitname(d), 0, eve, 0555, dp);
                        return 1;
                }
-               if(i >= Maxunits || i >= units.ref)
-                       return -1;
-               d = unit2dev(i);
                if(s >= d->ndl)
                        return -1;
                uprint("%d", s);
                mkqid(&q, Q3(s, i, Qdevlink), 0, QTFILE);
-               devdir(c, q, up->genbuf, 0, eve, 0755, dp);
+               devdir(c, q, up->genbuf, 0, eve, 0444, dp);
                return 1;
        case Qdevlink:
                uprint("%d", s);
                mkqid(&q, Q3(s, UNIT(c->qid), Qdevlink), 0, QTFILE);
-               devdir(c, q, up->genbuf, 0, eve, 0755, dp);
+               devdir(c, q, up->genbuf, 0, eve, 0444, dp);
                return 1;
        }
 }
@@ -1728,7 +1728,7 @@ newunit(void)
 {
        int x;
 
-       x = incref(&units);
+       x = incref(&units)-1;
        if(x >= Maxunits){
                decref(&units);
                x = -1;