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.
