This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PING][PATCH v2][BZ 16852] Fix recvmmsg prototype
- From: OndÅej BÃlka <neleai at seznam dot cz>
- To: David Miller <davem at davemloft dot net>
- Cc: schwab at linux-m68k dot org, libc-alpha at sourceware dot org
- Date: Wed, 4 Jun 2014 17:57:33 +0200
- Subject: Re: [PING][PATCH v2][BZ 16852] Fix recvmmsg prototype
- Authentication-results: sourceware.org; auth=none
- References: <20140428152937 dot GA1736 at domone dot podge> <87mwf5zcl3 dot fsf at igel dot home> <20140428160420 dot GA23142 at domone dot podge> <20140428 dot 130122 dot 2188782190759376374 dot davem at davemloft dot net> <20140504153424 dot GA16138 at domone dot podge> <20140523120202 dot GD15258 at domone dot podge>
ping
On Fri, May 23, 2014 at 02:02:02PM +0200, OndÅej BÃlka wrote:
> ping
> On Sun, May 04, 2014 at 05:34:24PM +0200, OndÅej BÃlka wrote:
> > On Mon, Apr 28, 2014 at 01:01:22PM -0400, David Miller wrote:
> > > From: OndÅej BÃlka <neleai@seznam.cz>
> > > Date: Mon, 28 Apr 2014 18:04:20 +0200
> > >
> > > > * sysdeps/unix/sysv/linux/recvmmsg.c (recvmmsg): Do not clobber
> > > > timeout argument.
> > >
> > > It is extremely unfortunate if we've defined this argument as const,
> > > now you are making it so that the user has no mechanism to get the
> > > updated timeval other than to define their own syscall stubs.
> > >
> > > This is doubly unfortunately since there is absolutely no reason for
> > > us to have defined the interface different from what the kernel
> > > actually provides.
> >
> > Ok, here is second alternative that drops constness.
> >
> >
> > * socket/recvmmsg.c (recvmmsg): Drop const argument.
> > * socket/sys/socket.h: Likewise
> > * sysdeps/unix/sysv/linux/recvmmsg.c: Likewise.
> >
> > ---
> > socket/recvmmsg.c | 2 +-
> > socket/sys/socket.h | 2 +-
> > sysdeps/unix/sysv/linux/recvmmsg.c | 6 +++---
> > 3 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/socket/recvmmsg.c b/socket/recvmmsg.c
> > index ed0c369..3daa501 100644
> > --- a/socket/recvmmsg.c
> > +++ b/socket/recvmmsg.c
> > @@ -23,7 +23,7 @@
> > Returns the number of bytes read or -1 for errors. */
> > int
> > recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
> > - const struct timespec *tmo)
> > + struct timespec *tmo)
> > {
> > __set_errno (ENOSYS);
> > return -1;
> > diff --git a/socket/sys/socket.h b/socket/sys/socket.h
> > index 95ee26a..091b08c 100644
> > --- a/socket/sys/socket.h
> > +++ b/socket/sys/socket.h
> > @@ -209,7 +209,7 @@ extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
> > __THROW. */
> > extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
> > unsigned int __vlen, int __flags,
> > - const struct timespec *__tmo);
> > + struct timespec *__tmo);
> > #endif
> >
> >
> > diff --git a/sysdeps/unix/sysv/linux/recvmmsg.c b/sysdeps/unix/sysv/linux/recvmmsg.c
> > index 57ddf31..6c9ca44 100644
> > --- a/sysdeps/unix/sysv/linux/recvmmsg.c
> > +++ b/sysdeps/unix/sysv/linux/recvmmsg.c
> > @@ -35,7 +35,7 @@
> > #ifdef __NR_recvmmsg
> > int
> > recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
> > - const struct timespec *tmo)
> > + struct timespec *tmo)
> > {
> > if (SINGLE_THREAD_P)
> > return INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo);
> > @@ -52,14 +52,14 @@ recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
> > # ifndef __ASSUME_RECVMMSG_SOCKETCALL
> > extern int __internal_recvmmsg (int fd, struct mmsghdr *vmessages,
> > unsigned int vlen, int flags,
> > - const struct timespec *tmo)
> > + struct timespec *tmo)
> > attribute_hidden;
> >
> > static int have_recvmmsg;
> >
> > int
> > recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
> > - const struct timespec *tmo)
> > + struct timespec *tmo)
> > {
> > if (__glibc_likely (have_recvmmsg >= 0))
> > {
> > --
> > 1.8.4.rc3
>
> --
>
> parallel processors running perpendicular today
--
PCMCIA slave driver