On Fri, Nov 29, 2013 at 04:09:25PM -0800, Philip Guenther wrote:
> On Fri, Nov 29, 2013 at 2:16 PM, Jared Yanovich <[email protected]> wrote:
> > Perhaps 'basep' was from an earlier proposed getdents interface but
> > I'm not sure what it references now...
> 
> Ah, that's left over from when this was also going to be a manpage for
> getdirentries(3), but we turned out to not need that wrapper and
> didn't re-add it.  Thanks for noting this.
> 
> 
> 
> > --- getdents.2  7 Oct 2013 01:50:26 -0000       1.1
> > +++ getdents.2  29 Nov 2013 22:15:58 -0000
> > @@ -126,19 +126,13 @@ The actual number of bytes transferred i
> >  The current position pointer associated with
> >  .Fa fd
> >  is set to point to the next block of entries.
> > -The pointer may not advance by the number of bytes returned by
> > -.Fn getdents .
> > -.Pp
> > -.Fn getdents
> > -writes the position of the block read into the location pointed to by
> > -.Fa basep .
> > -Alternatively, the current position pointer may be set and retrieved by
> > -.Xr lseek 2 .
> > -The current position pointer should only be set to a value returned by
> > +This position can be set or retrieved by
> > +.Xr lseek 2
> > +but should only ever be set to a value previously returned by
> >  .Xr lseek 2 ,
> > -a value returned in the location pointed to by
> > -.Fa basep ,
> >  or zero.
> > +The pointer may not advance by the number of bytes returned by
> > +.Fn getdents .
> >  .Sh RETURN VALUES
> >  If successful, the number of bytes actually transferred is returned.
> >  A value of zero is returned when
> > @@ -154,10 +148,7 @@ will fail if:
> >  .Fa fd
> >  is not a valid file descriptor open for reading.
> >  .It Bq Er EFAULT
> > -Either
> >  .Fa buf
> > -or
> > -.Fa basep
> >  points outside the allocated address space.
> 
> Hmm, I think I prefer a smaller diff that doesn't rearrange it quite
> so much.  Also, d_off values are legit for lseek positioning (that's
> the point of them), so how about this:
> 
> --- getdents.2  7 Oct 2013 01:50:26 -0000       1.1
> +++ getdents.2  30 Nov 2013 00:07:06 -0000
> @@ -129,15 +129,13 @@ is set to point to the next block of ent
>  The pointer may not advance by the number of bytes returned by
>  .Fn getdents .
>  .Pp
> -.Fn getdents
> -writes the position of the block read into the location pointed to by
> -.Fa basep .
> -Alternatively, the current position pointer may be set and retrieved by
> +The current position pointer may be set and retrieved by
>  .Xr lseek 2 .
>  The current position pointer should only be set to a value returned by
>  .Xr lseek 2 ,
> -a value returned in the location pointed to by
> -.Fa basep ,
> +the value of
> +.Fa d_off
> +from an entry,
>  or zero.
>  .Sh RETURN VALUES
>  If successful, the number of bytes actually transferred is returned.
> @@ -154,11 +152,9 @@ will fail if:
>  .Fa fd
>  is not a valid file descriptor open for reading.
>  .It Bq Er EFAULT
> -Either
> +Part of
>  .Fa buf
> -or
> -.Fa basep
> -points outside the allocated address space.
> +points outside the process's allocated address space.
>  .It Bq Er EINVAL
>  The file referenced by
>  .Fa fd
> 
> 
> That last chunk brings the EFAULT wording in line with the other
> syscall manpages.
> 
> 
> > @@ -174,6 +165,7 @@ error occurred while reading from or wri
> >  .Sh SEE ALSO
> >  .Xr lseek 2 ,
> >  .Xr open 2 ,
> > +.Xr directory 3 ,
> >  .Xr opendir 3 ,
> >  .Xr dirent 5
> >  .Sh STANDARDS
> 
> directory(3) is the same as opendir(3), so this seems unnecessary.
> 

yes, no point having multiple Xr to the same page in SEE ALSO.
especially since i note there appears to be no directory() function...

your diff reads fine.

jmc

Reply via email to