yeah. 0 is DOT

And lots of code seems to care afaict.

On Sat, Jan 9, 2016 at 2:32 PM barret rhoden <[email protected]> wrote:

> On 2016-01-09 at 22:22 ron minnich wrote:
> > It was for .
>
> It was for what?  There's nothing after 'for' and before the period
> '.'.  =)
>
> So are you saying that the previous comment:
>
> * the zeroth element of the table MUST be the directory itself for ..
>
> was:
>
> * the zeroth element of the table MUST be the directory itself for .PERIOD
>
> (first dot means '.', second dot is a period?)
>
> The git log says that line came from the original dev.c (9838b574b8d0
> ("dev.c, which has stubs we need").
>
> Anyway, I don't disagree that the first entry in the devtab is DOT.
> But why does the first entry need to be DOT?  I think it is because of
> DOTDOT processing, which goes on in the later lines of code.
> Specifically, if i == DEVDOTDOT, then we just devdir the first entry of
> the table.  For DOTDOT to work correctly, this first entry should be
> the actual directory we're in (a.k.a. DOT).  I think.
>
> Barret
>
>
>
>
>
> > ron
> >
> > On Sat, Jan 9, 2016 at 2:17 PM Dan Cross <[email protected]> wrote:
> >
> > > On Sat, Jan 9, 2016 at 11:21 AM, barret rhoden
> > > <[email protected]> wrote:
> > >
> > >> On 2016-01-08 at 15:53 Dan Cross wrote:
> > >> > 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).
> > >>
> > >> The "for .." in the original comment was probably "for DOTDOT
> > >> processing", not that the 0th element represented "..".  Clearly,
> > >> the comment needs to change a little, since it was unclear enough
> > >> that you changed it.  =)
> > >>
> > >
> > > No, it was definitely for 'dot'. I got confused by that myself, but
> > > stared through it enough to finally understand that that's what it
> > > is, hence the change of the comment.
> > >
> > > > + * 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);
> > >>
> > >> don't need the assert, since there's a check for tab == NULL
> > >> earlier.
> > >
> > > Ooops. Will change once I get access to my workstation again....
> > >
> > > > + if (tab->qid.vers == -1)
> > >> > + return 0;
> > >> > + devdir(c, tab->qid, tab->name, tab->length, eve, tab->perm,
> > >> > dp);
> > >> > + return 1;
> > >> >  }
> > >>
> > >> barret
> > >>
> > >> --
> > >> 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.
> > >>
> > > --
> > > 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.
> > >
> >
>
> --
> 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.
>

-- 
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