On Sat, Jan 9, 2016 at 5:31 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?)
>
Haha; yes. Horrible, isn't it?
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.
>
That's right.
Ironically, this is almost *exactly* the conversation Ron and I had
yesterday about this. "Wait, so that second dot is a dot?" "Yeah, but it's
a period...like an 'end of sentence, full-stop' type period."
Who's on first? :-)
- Dan C.
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.