Add recvmmsg interface.

This commit is contained in:
Ulrich Drepper 2009-12-08 20:10:46 -08:00
parent 406300d20a
commit ee1a7fabb4
5 changed files with 41 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2009-12-08 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/bits/socket.h: Define mmsghdr and declare
recvmmsg.
* sysdeps/unix/sysv/linux/syscalls.list: Add entry for recvmmsg.
* sysdeps/unix/sysv/linux/Versions: Add recvmmsg for GLIBC_2.12.
2009-12-04 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* sysdeps/s390/s390-64/dl-trampoline.S: Add CFI for the call saved

7
NEWS
View File

@ -1,9 +1,14 @@
GNU C Library NEWS -- history of user-visible changes. 2009-10-30
GNU C Library NEWS -- history of user-visible changes. 2009-12-8
Copyright (C) 1992-2008, 2009 Free Software Foundation, Inc.
See the end for copying conditions.
Please send GNU C library bug reports via <http://sources.redhat.com/bugzilla/>
using `glibc' in the "product" field.
Version 2.12
* New Linux interface: recvmmsg
Version 2.11

View File

@ -146,6 +146,8 @@ libc {
_sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
ntp_gettimex;
recvmmsg;
}
GLIBC_PRIVATE {
# functions used in other libraries

View File

@ -234,8 +234,8 @@ enum
#define MSG_MORE MSG_MORE
MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
descriptor received through
SCM_RIGHTS. */
descriptor received through
SCM_RIGHTS. */
#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
};
@ -259,6 +259,15 @@ struct msghdr
int msg_flags; /* Flags on received message. */
};
#ifdef __USE_GNU
/* For `recvmmsg'. */
struct mmsghdr
{
struct msghdr msg_hdr; /* Actual message header. */
unsigned int msg_len; /* Number of received bytes for the entry. */
};
#endif
/* Structure used for storage of ancillary data object information. */
struct cmsghdr
{
@ -403,4 +412,18 @@ struct linger
int l_linger; /* Time to linger. */
};
__BEGIN_DECLS
/* Receive a message as described by MESSAGE from socket FD.
Returns the number of bytes read or -1 for errors.
This function is a cancellation point and therefore not marked with
__THROW. */
extern int recvmmsg (int __fd, struct mmsghdr *__vmessages,
unsigned int __vlen, int __flags,
__const struct timespec *__tmo);
__END_DECLS
#endif /* bits/socket.h */

View File

@ -53,6 +53,7 @@ prctl EXTRA prctl i:iiiii __prctl prctl
putpmsg - putpmsg i:ippii putpmsg
query_module EXTRA query_module i:sipip query_module
quotactl EXTRA quotactl i:isip quotactl
recvmmsg EXTRA recvmmsg Ci:ipiip recvmmsg
remap_file_pages - remap_file_pages i:piiii __remap_file_pages remap_file_pages
sched_getp - sched_getparam i:ip __sched_getparam sched_getparam
sched_gets - sched_getscheduler i:i __sched_getscheduler sched_getscheduler