9ns: Use an int for perm and mode
authorBarret Rhoden <brho@cs.berkeley.edu>
Thu, 30 Mar 2017 18:04:12 +0000 (14:04 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 30 Mar 2017 18:08:59 +0000 (14:08 -0400)
-1 means "don't change the mode."  That was 0x00000000ffffffff, which is
not ~0UL (0xffffffffffffffff).  Just use an int and don't play games with
the sizeof longs and whatnot.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/dev/pipe.c
kern/drivers/dev/proc.c
kern/drivers/dev/root.c
kern/drivers/dev/sd.c
kern/include/ns.h
kern/src/net/devip.c
kern/src/net/netif.c

index be2593b..b2e24cf 100644 (file)
@@ -507,7 +507,7 @@ static int pipewstat(struct chan *c, uint8_t *dp, int n)
                        error(EEXIST, ERROR_FIXME);
                strncpy(p->pipedir[1 + d1].name, d->name, KNAMELEN);
        }
-       if (d->mode != ~0UL)
+       if (d->mode != -1)
                p->pipedir[d1 + 1].perm = d->mode & 0777;
        poperror();
        kfree(d);
index f4f9150..4212f8b 100644 (file)
@@ -693,7 +693,7 @@ static int procwstat(struct chan *c, uint8_t * db, int n)
                else
                        proc_set_username(p, d->uid);
        }
-       if (d->mode != ~0UL)
+       if (d->mode != -1)
                p->procmode = d->mode & 0777;
 
        poperror();
index 08a16e4..33275ca 100644 (file)
@@ -442,7 +442,7 @@ static int rootwstat(struct chan *c, uint8_t *m_buf, int m_buf_sz)
        if (!emptystr(dir->name))
                printk("[%s] attempted rename of %s to %s\n", __FUNCTION__,
                       file->name, dir->name);  /* strncpy for this btw */
-       if (dir->mode != ~0UL)
+       if (dir->mode != -1)
                file->perm = dir->mode | (file->qid.type == QTDIR ? DMDIR : 0);
        kfree(dir);
        return m_sz;
index 6022cc9..6259f23 100644 (file)
@@ -1451,7 +1451,7 @@ static int32_t sdwstat(struct chan *c, uint8_t *dp, int32_t n)
                error(EIO, "Short status");
        if (!emptystr(d[0].uid))
                kstrdup(&perm->user, d[0].uid);
-       if (d[0].mode != (uint32_t)~0UL)
+       if (d[0].mode != -1)
                perm->perm = (perm->perm & ~0777) | (d[0].mode & 0777);
 
        kfree(d);
index 9dad04e..eb7fa9c 100644 (file)
@@ -139,7 +139,7 @@ struct dir {
        unsigned int dev;                       /* server subtype */
        /* file data */
        struct qid qid;                         /* unique id from server */
-       uint32_t mode;                          /* permissions */
+       int mode;                                       /* permissions */
        uint32_t atime;                         /* last read time */
        uint32_t mtime;                         /* last write time */
        int64_t length;                         /* file length: see <u.h> */
@@ -475,7 +475,7 @@ struct dirtab {
        char name[KNAMELEN];
        struct qid qid;
        int64_t length;
-       long perm;
+       int perm;
 };
 
 struct walkqid {
index 63d5289..717bd3e 100644 (file)
@@ -618,7 +618,7 @@ static int ipwstat(struct chan *c, uint8_t * dp, int n)
                error(EPERM, ERROR_FIXME);
        if (!emptystr(d->uid))
                kstrdup(&cv->owner, d->uid);
-       if (d->mode != ~0UL)
+       if (d->mode != -1)
                cv->perm = d->mode & 0777;
        poperror();
        kfree(d);
index 89567ab..a66555b 100644 (file)
@@ -471,7 +471,7 @@ int netifwstat(struct ether *nif, struct chan *c, uint8_t * db, int n)
        }
        if (!emptystr(dir[0].uid))
                strlcpy(f->owner, dir[0].uid, KNAMELEN);
-       if (dir[0].mode != ~0UL)
+       if (dir[0].mode != -1)
                f->mode = dir[0].mode;
        kfree(dir);
        return m;