Date: Tue, 20 Feb 2018 20:52:00 -0800 From: Eitan Adler <lists@eitanadler.com> To: Kevin Lo <kevlo@freebsd.org>, FreeBSD Standards <freebsd-standards@freebsd.org> Cc: FreeBSD Hackers <freebsd-hackers@freebsd.org>, Warner Losh <imp@bsdimp.com> Subject: Re: Marking select(2) as restrict Message-ID: <CAF6rxg=WwqeBnmJzfOZgtwrYesXPfvJFeaVmQwtTa_89_sxaJg@mail.gmail.com> In-Reply-To: <20180221032247.GA81670@ns.kevlo.org> References: <CAF6rxg=h_oMiUu7P=GAOQf_OySQM2w31hg6Kas%2B3jeEM3qq_Cg@mail.gmail.com> <CAF6rxgnt9c0n8i-nHQwoKGbZKF2hM5AZqEJnz0CLo26XOO4_sg@mail.gmail.com> <20180221032247.GA81670@ns.kevlo.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Adding standards mailing list On Tuesday, 20 February 2018, Kevin Lo <kevlo@freebsd.org> wrote: > 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" > > > -- Sent from my Turing Machine
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAF6rxg=WwqeBnmJzfOZgtwrYesXPfvJFeaVmQwtTa_89_sxaJg>