9ns: change parsecmd()'s size arg's type to size_t
authorBarret Rhoden <brho@cs.berkeley.edu>
Tue, 21 May 2019 03:05:26 +0000 (23:05 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 21 May 2019 03:05:26 +0000 (23:05 -0400)
This is a leftover from Inferno/Plan 9, where ints are scattered about
where we should use a size_t.  Longs are a little better (64 bit vs 32),
but are still signed.

This commit changes parsecmd() and all of its callers.  Beyond the
ether->ctl and whatnot, there probably are other users who still convert
length to an int, which can cause problems.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
12 files changed:
kern/drivers/dev/ether.c
kern/drivers/dev/proc.c
kern/drivers/net/bnx2x/bnx2x_dev.c
kern/drivers/net/ether82563.c
kern/drivers/net/etherigbe.c
kern/drivers/net/mlx4/main.c
kern/drivers/net/r8169.c
kern/include/net/ip.h
kern/include/ns.h
kern/src/net/iproute.c
kern/src/net/netlog.c
kern/src/ns/parse.c

index e1bcb18..8ed9298 100644 (file)
@@ -549,7 +549,7 @@ static void nop(struct ether *unused)
 {
 }
 
-static long vlanctl(struct ether *ether, void *buf, long n)
+static long vlanctl(struct ether *ether, void *buf, size_t n)
 {
        uint8_t ea[Eaddrlen];
        struct ether *master;
index 16bf9dc..1d81f96 100644 (file)
@@ -139,7 +139,7 @@ static struct cmdtab proccmd[] = {
 #define PID(q) ((q).vers)
 #define NOTEID(q) ((q).vers)
 
-static void procctlreq(struct proc *, char *, int);
+static void procctlreq(struct proc *, char *, size_t);
 static int procctlmemio(struct proc *, uintptr_t, int, void *, int);
 // static struct chan*   proctext(struct chan*, struct proc*);
 // static Segment* txt2data(struct proc*, Segment*);
@@ -1309,7 +1309,7 @@ static void strace_release(struct kref *a)
        kfree(strace);
 }
 
-static void procctlreq(struct proc *p, char *va, int n)
+static void procctlreq(struct proc *p, char *va, size_t n)
 {
        ERRSTACK(1);
        int8_t irq_state = 0;
index b31691f..eb031a4 100644 (file)
@@ -89,7 +89,7 @@ static long bnx2x_ifstat(struct ether *edev, void *a, long n, uint32_t offset)
        return n;
 }
 
-static long bnx2x_ctl(struct ether *edev, void *buf, long n)
+static long bnx2x_ctl(struct ether *edev, void *buf, size_t n)
 {
        ERRSTACK(1);
        int v;
index 09665e8..c4c48fc 100644 (file)
@@ -831,7 +831,7 @@ static struct cmdtab i82563ctlmsg[] = {
     {CMan, "an", 1},
 };
 
-static long i82563ctl(struct ether *edev, void *buf, long n)
+static long i82563ctl(struct ether *edev, void *buf, size_t n)
 {
        ERRSTACK(1);
        char *p;
index 7da2d76..f29869f 100644 (file)
@@ -710,7 +710,7 @@ static struct cmdtab igbectlmsg[] = {
     {CMrdtr, "rdtr", 2},
 };
 
-static long igbectl(struct ether *edev, void *buf, long n)
+static long igbectl(struct ether *edev, void *buf, size_t n)
 {
        ERRSTACK(2);
        int v;
index 75c49b3..bd8217e 100644 (file)
@@ -3890,7 +3890,7 @@ static long mlx4_ifstat(struct ether *edev, void *a, long n, uint32_t offset)
        return linux_ifstat(mlx4_en_get_stats(edev), a, n, offset);
 }
 
-static long mlx4_ctl(struct ether *edev, void *buf, long n)
+static long mlx4_ctl(struct ether *edev, void *buf, size_t n)
 {
        panic("Not implemented");
 }
index 038a01a..b9924e1 100644 (file)
@@ -8721,7 +8721,7 @@ static long rtl8169_ifstat(struct ether *edev, void *a, long n, uint32_t offset)
        return linux_ifstat(&edev->stats, a, n, offset);
 }
 
-static long rtl8169_ctl(struct ether *edev, void *buf, long n)
+static long rtl8169_ctl(struct ether *edev, void *buf, size_t n)
 {
        ERRSTACK(1);
        int v;
index c89208f..0beeab4 100644 (file)
@@ -436,7 +436,7 @@ enum {
 void netloginit(struct Fs *);
 void netlogopen(struct Fs *);
 void netlogclose(struct Fs *);
-void netlogctl(struct Fs *, char *unused_char_p_t, int);
+void netlogctl(struct Fs *, char *unused_char_p_t, size_t);
 long netlogread(struct Fs *, void *, uint32_t, long);
 void netlog(struct Fs *, int unused_int, char *unused_char_p_t, ...);
 void ifcloginit(struct Fs *);
@@ -511,7 +511,8 @@ extern void v6delroute(struct Fs *f, uint8_t * a, uint8_t * mask, int dolock);
 extern struct route *v4lookup(struct Fs *f, uint8_t * a, struct conv *c);
 extern struct route *v6lookup(struct Fs *f, uint8_t * a, struct conv *c);
 extern long routeread(struct Fs *f, char *unused_char_p_t, uint32_t, int);
-extern long routewrite(struct Fs *f, struct chan *, char *unused_char_p_t, int);
+extern long routewrite(struct Fs *f, struct chan *, char *unused_char_p_t,
+                      size_t);
 extern void routetype(int unused_int, char *unused_char_p_t);
 extern void ipwalkroutes(struct Fs *, struct routewalk *);
 extern void convroute(struct route *r, uint8_t * u8pt, uint8_t * u8pt1,
@@ -1170,7 +1171,7 @@ struct ether {
        void (*detach) (struct ether *);
        void (*transmit) (struct ether *);
        long (*ifstat) (struct ether *, void *, long, uint32_t);
-       long (*ctl) (struct ether *, void *, long); /* custom ctl messages */
+       long (*ctl) (struct ether *, void *, size_t); /* custom ctl messages */
        void (*power) (struct ether *, int);    /* power on/off */
        void (*shutdown) (struct ether *); /* shutdown hardware before reboot */
        void *ctlr;
index 32a51d6..37b6782 100644 (file)
@@ -1053,7 +1053,7 @@ void devtabinit();
 void devtabreset();
 
 /* kern/src/ns/parse.c */
-struct cmdbuf *parsecmd(char *p, int n);
+struct cmdbuf *parsecmd(char *p, size_t n);
 void cmderror(struct cmdbuf *cb, char *s);
 struct cmdtab *lookupcmd(struct cmdbuf *cb, struct cmdtab *ctab, int nctab);
 
index 482113c..a6f5005 100644 (file)
@@ -817,7 +817,7 @@ int routeflush(struct Fs *f, struct route *r, char *tag)
        return 0;
 }
 
-long routewrite(struct Fs *f, struct chan *c, char *p, int n)
+long routewrite(struct Fs *f, struct chan *c, char *p, size_t n)
 {
        ERRSTACK(1);
        int h, changed;
index cac8ff5..18e7abe 100644 (file)
@@ -193,7 +193,7 @@ long netlogread(struct Fs *f, void *a, uint32_t unused, long n)
        return n;
 }
 
-void netlogctl(struct Fs *f, char *s, int n)
+void netlogctl(struct Fs *f, char *s, size_t n)
 {
        ERRSTACK(1);
        int i, set = 0;
index 6577f19..239f8b9 100644 (file)
@@ -66,7 +66,7 @@ static int ncmdfield(char *p, int n)
 /*
  *  parse a command written to a device
  */
-struct cmdbuf *parsecmd(char *p, int n)
+struct cmdbuf *parsecmd(char *p, size_t n)
 {
        ERRSTACK(1);
        struct cmdbuf *volatile cb;