* sysdeps/gnu/netinet/tcp.h: Define TCP_MD5SIG, TCP_MD5SIG_MAXKEYLEN,

struct tcp_md5sig.  Extend struct tcp_info according to recent kernels.

	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add eventfd,
	evetnfd_read, eventfd_write.
	* sysdeps/unix/sysv/linux/eventfd.c: New file.
	* sysdeps/unix/sysv/linux/eventfd_read.c: New file.
	* sysdeps/unix/sysv/linux/eventfd_write.c: New file.
	* sysdeps/unix/sysv/linux/sys/eventfd.h: New file.
	* sysdeps/unix/sysv/linux/Versions: Export eventfd, evetnfd_read,
	eventfd_write for GLIBC_2.7.
This commit is contained in:
Ulrich Drepper 2007-10-05 18:55:57 +00:00
parent 34c2c09296
commit 8e351378b7
4 changed files with 44 additions and 2 deletions

View File

@ -1,5 +1,17 @@
2007-10-05 Ulrich Drepper <drepper@redhat.com>
* sysdeps/gnu/netinet/tcp.h: Define TCP_MD5SIG, TCP_MD5SIG_MAXKEYLEN,
struct tcp_md5sig. Extend struct tcp_info according to recent kernels.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add eventfd,
evetnfd_read, eventfd_write.
* sysdeps/unix/sysv/linux/eventfd.c: New file.
* sysdeps/unix/sysv/linux/eventfd_read.c: New file.
* sysdeps/unix/sysv/linux/eventfd_write.c: New file.
* sysdeps/unix/sysv/linux/sys/eventfd.h: New file.
* sysdeps/unix/sysv/linux/Versions: Export eventfd, evetnfd_read,
eventfd_write for GLIBC_2.7.
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add signalfd.
* sysdeps/unix/sysv/linux/signalfd.c: New file.
* sysdeps/unix/sysv/linux/sys/signalfd.h: New file.

View File

@ -50,6 +50,7 @@
#define TCP_INFO 11 /* Information about this connection. */
#define TCP_QUICKACK 12 /* Bock/reenable quick ACKs. */
#define TCP_CONGESTION 13 /* Congestion control algorithm. */
#define TCP_MD5SIG 14 /* TCP MD5 Signature (RFC2385) */
#ifdef __USE_MISC
# include <sys/types.h>
@ -219,6 +220,24 @@ struct tcp_info
u_int32_t tcpi_snd_cwnd;
u_int32_t tcpi_advmss;
u_int32_t tcpi_reordering;
u_int32_t tcpi_rcv_rtt;
u_int32_t tcpi_rcv_space;
u_int32_t tcpi_total_retrans;
};
/* For TCP_MD5SIG socket option. */
#define TCP_MD5SIG_MAXKEYLEN 80
struct tcp_md5sig
{
struct __kernel_sockaddr_storage tcpm_addr; /* Address associated. */
u_int16_t __tcpm_pad1; /* Zero. */
u_int16_t tcpm_keylen; /* Key length. */
u_int32_t __tcpm_pad2; /* Zero. */
u_int8_t tcpm_key[TCP_MD5SIG_MAXKEYLEN]; /* Key (binary). */
};
#endif /* Misc. */

View File

@ -23,8 +23,18 @@
int
signalfd (int fd, const sigset_t *mask)
signalfd (int fd, const sigset_t *mask, int flags)
{
/* The system call has no flag parameter which is bad. So we have
to wait until we have to support to pass additional values to the
kernel (sys_indirect) before implementing setting flags like
O_NONBLOCK etc. */
if (flags != 0)
{
__set_errno (EINVAL);
return -1;
}
#ifdef __NR_signalfd
return INLINE_SYSCALL (signalfd, 3, fd, mask, _NSIG / 8);
#else

View File

@ -50,7 +50,8 @@ __BEGIN_DECLS
/* Request notification for delivery of signals in MASK to be
performed using descriptor FD.*/
extern int signalfd (int __fd, const sigset_t *__mask) __THROW;
extern int signalfd (int __fd, const sigset_t *__mask, int __flags)
__nonnull (2) __THROW;
__END_DECLS