Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Feb 2018 11:22:47 +0800
From:      Kevin Lo <kevlo@FreeBSD.org>
To:        Eitan Adler <lists@eitanadler.com>
Cc:        FreeBSD Hackers <freebsd-hackers@freebsd.org>, Warner Losh <imp@bsdimp.com>
Subject:   Re: Marking select(2) as restrict
Message-ID:  <20180221032247.GA81670@ns.kevlo.org>
In-Reply-To: <CAF6rxgnt9c0n8i-nHQwoKGbZKF2hM5AZqEJnz0CLo26XOO4_sg@mail.gmail.com>
References:  <CAF6rxg=h_oMiUu7P=GAOQf_OySQM2w31hg6Kas%2B3jeEM3qq_Cg@mail.gmail.com> <CAF6rxgnt9c0n8i-nHQwoKGbZKF2hM5AZqEJnz0CLo26XOO4_sg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 20, 2018 at 04:29:59PM -0800, Eitan Adler wrote:
> 
> I filed a request for a slightly modified version of this patch to be
> exp-run. I'm planning on committing unless there is significant
> fallout or objections on this list.
> 
> https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=225981

Please send your patch to standards@.  The freebsd-standards mailing list
was created for precisely this purpose, thanks.

> On 15 February 2018 at 00:10, Eitan Adler <lists@eitanadler.com> wrote:
> > Hi all,
> >
> > POSIX requires that the fd_set arguments in select(2) be marked as
> > restrict. This patch attempts to implement that.
> >
> > (a) Am I missing anything?
> > (b) Anything in particular to watch out for?
> > (c) Assuming an exp-run passes any reason not to commit?
> >
> >
> > Index: lib/libc/sys/select.2
> > ===================================================================
> > --- lib/libc/sys/select.2 (revision 329296)
> > +++ lib/libc/sys/select.2 (working copy)
> > @@ -39,7 +39,7 @@
> >  .Sh SYNOPSIS
> >  .In sys/select.h
> >  .Ft int
> > -.Fn select "int nfds" "fd_set *readfds" "fd_set *writefds" "fd_set
> > *exceptfds" "struct timeval *timeout"
> > +.Fn select "int nfds" "fd_set * restrict readfds" "fd_set * restrict
> > writefds" "fd_set * restrict exceptfds" "struct timeval *timeout"
> >  .Fn FD_SET fd &fdset
> >  .Fn FD_CLR fd &fdset
> >  .Fn FD_ISSET fd &fdset
> > Index: lib/libc/sys/select.c
> > ===================================================================
> > --- lib/libc/sys/select.c (revision 329296)
> > +++ lib/libc/sys/select.c (working copy)
> > @@ -41,7 +41,7 @@ __weak_reference(__sys_select, __select);
> >
> >  #pragma weak select
> >  int
> > -select(int n, fd_set *rs, fd_set *ws, fd_set *es, struct timeval *t)
> > +select(int n, fd_set * restrict rs, fd_set * restrict ws, fd_set *
> > restrict es, struct timeval *t)
> >  {
> >
> >   return (((int (*)(int, fd_set *, fd_set *, fd_set *, struct timeval *))
> > Index: sys/sys/select.h
> > ===================================================================
> > --- sys/sys/select.h (revision 329296)
> > +++ sys/sys/select.h (working copy)
> > @@ -101,8 +101,7 @@ int pselect(int, fd_set *__restrict, fd_set *__res
> >   const struct timespec *__restrict, const sigset_t *__restrict);
> >  #ifndef _SELECT_DECLARED
> >  #define _SELECT_DECLARED
> > -/* XXX missing restrict type-qualifier */
> > -int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
> > +int select(int, fd_set *__restrict, fd_set *__restrict, fd_set
> > *__restrict, struct timeval *);
> >  #endif
> >  __END_DECLS
> >  #endif /* !_KERNEL */
> >
> >
> > --
> > Eitan Adler
> 
> 
> 
> -- 
> Eitan Adler
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
> 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180221032247.GA81670>