And of course there's a silly error in my first patch. Corrected patch
follows:

The following changes since commit 548361ec318c5381bc13eb7d9fa7e6f59d7081f1:

  Created a new Makefrag-user-app helper for building binaries (2015-12-21
12:56:49 -0500)

are available in the git repository at:

  [email protected]:dancrossnyc/akaros.git gen

for you to fetch changes up to 4ff0db0d2e15efc143e3923a7899bf95bf6164b7:

  Clean up 'devgen()' a bit. (2016-01-08 15:52:19 -0500)

----------------------------------------------------------------
Dan Cross (1):
      Clean up 'devgen()' a bit.

 kern/src/ns/dev.c | 30 ++++++++++++++++--------------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff --git a/kern/src/ns/dev.c b/kern/src/ns/dev.c
index 8b23bbd..99ee384 100644
--- a/kern/src/ns/dev.c
+++ b/kern/src/ns/dev.c
@@ -85,28 +85,30 @@ devdir(struct chan *c, struct qid qid, char *n,
 }

 /*
- * the zeroth element of the table MUST be the directory itself for ..
- * Any entry with qid vers of -1 will return 0, indicating that the value
is
- * valid but there is nothing there continue walk.
- * TODO(gvdl): Update akaros devgen man page.
-*/
+ * The zeroth element of the table MUST be the directory itself, or '.'
(dot).
+ * Any entry with qid verion of -1 will return 0, indicating that the
value is
+ * valid but there is nothing there, so continue walking.
+ *
+ * TODO(cross): Document devgen.
+ */
 int
-devgen(struct chan *c, char *unused_char_p_t, struct dirtab *tab, int ntab,
-   int i, struct dir *dp)
+devgen(struct chan *c, char *unused_name, struct dirtab *tab, int ntab,
+       int i, struct dir *dp)
 {
- if (tab == 0)
+ if (tab == NULL)
  return -1;
  if (i != DEVDOTDOT) {
- /* skip over the first element, that for . itself */
+ /* Skip over the first element, that for the directory itself. */
  i++;
- if (i >= ntab)
+ if (i < 0 || i >= ntab || tab[i] == NULL)
  return -1;
  tab += i;
  }
- int ret = (tab->qid.vers == -1)? 0 : 1;
- if (ret)
- devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp);
- return ret;
+ assert(tab != NULL);
+ if (tab->qid.vers == -1)
+ return 0;
+ devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp);
+ return 1;
 }

 void devreset(void)

On Fri, Jan 8, 2016 at 2:47 PM, Dan Cross <[email protected]> wrote:

> The following changes since commit
> 548361ec318c5381bc13eb7d9fa7e6f59d7081f1:
>
>   Created a new Makefrag-user-app helper for building binaries (2015-12-21
> 12:56:49 -0500)
>
> are available in the git repository at:
>
>   [email protected]:dancrossnyc/akaros.git gen
>
> for you to fetch changes up to 391f7fce9fb680492aa22d3ec2166707906ef621:
>
>   Clean up 'devgen()' a bit. (2016-01-08 14:42:01 -0500)
>
> ----------------------------------------------------------------
> Dan Cross (1):
>       Clean up 'devgen()' a bit.
>
>  kern/src/ns/dev.c | 30 ++++++++++++++++--------------
>  1 file changed, 16 insertions(+), 14 deletions(-)
>
> diff --git a/kern/src/ns/dev.c b/kern/src/ns/dev.c
> index 8b23bbd..99ee384 100644
> --- a/kern/src/ns/dev.c
> +++ b/kern/src/ns/dev.c
> @@ -85,28 +85,30 @@ devdir(struct chan *c, struct qid qid, char *n,
>  }
>
>  /*
> - * the zeroth element of the table MUST be the directory itself for ..
> - * Any entry with qid vers of -1 will return 0, indicating that the value
> is
> - * valid but there is nothing there continue walk.
> - * TODO(gvdl): Update akaros devgen man page.
> -*/
> + * The zeroth element of the table MUST be the directory itself, or '.'
> (dot).
> + * Any entry with qid verion of -1 will return 0, indicating that the
> value is
> + * valid but there is nothing there, so continue walking.
> + *
> + * TODO(cross): Document devgen.
> + */
>  int
> -devgen(struct chan *c, char *unused_char_p_t, struct dirtab *tab, int
> ntab,
> -   int i, struct dir *dp)
> +devgen(struct chan *c, char *unused_name, struct dirtab *tab, int ntab,
> +       int i, struct dir *dp)
>  {
> - if (tab == 0)
> + if (tab == NULL)
>   return -1;
>   if (i != DEVDOTDOT) {
> - /* skip over the first element, that for . itself */
> + /* Skip over the first element, that for the directory itself. */
>   i++;
> - if (i >= ntab)
> + if (i < 0 || i >= ntab || tab[i] == NULL)
>   return -1;
>   tab += i;
>   }
> - int ret = (tab->qid.vers == -1)? 0 : 1;
> - if (ret)
> - devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp);
> - return ret;
> + assert(tab != NULL);
> + if (tab->qid.vers == -1)
> + return 0;
> + devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm, dp);
> + return 1;
>  }
>
>  void devreset(void)
>

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to