mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-05 09:01:07 +00:00
2007-10-04 Jakub Jelinek <jakub@redhat.com>
2007-10-03 Jakub Jelinek <jakub@redhat.com>
This commit is contained in:
parent
8e351378b7
commit
6789aaaa97
@ -17,7 +17,7 @@
|
|||||||
* sysdeps/unix/sysv/linux/sys/signalfd.h: New file.
|
* sysdeps/unix/sysv/linux/sys/signalfd.h: New file.
|
||||||
* sysdeps/unix/sysv/linux/Versions: Export signalfd for GLIBC_2.7.
|
* sysdeps/unix/sysv/linux/Versions: Export signalfd for GLIBC_2.7.
|
||||||
|
|
||||||
2007-10-04 Jakub Jelinek
|
2007-10-04 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* stdlib/msort.c: Include stdint.h.
|
* stdlib/msort.c: Include stdint.h.
|
||||||
(struct msort_param): New type.
|
(struct msort_param): New type.
|
||||||
@ -41,7 +41,7 @@
|
|||||||
include <features.h> now. Include <bits/error.h> if possible.
|
include <features.h> now. Include <bits/error.h> if possible.
|
||||||
* misc/bits/error.h: New file.
|
* misc/bits/error.h: New file.
|
||||||
|
|
||||||
2007-10-03 Jakub Jelinek
|
2007-10-03 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
* string/bits/string3.h (memcpy, memmove, mempcpy, memset, bcopy,
|
* string/bits/string3.h (memcpy, memmove, mempcpy, memset, bcopy,
|
||||||
bzero, strcpy, stpcpy, strncpy, strcat, strncat): Use
|
bzero, strcpy, stpcpy, strncpy, strcat, strncat): Use
|
||||||
|
@ -13,7 +13,8 @@ endif
|
|||||||
|
|
||||||
ifeq ($(subdir),misc)
|
ifeq ($(subdir),misc)
|
||||||
sysdep_routines += sysctl clone llseek umount umount2 readahead \
|
sysdep_routines += sysctl clone llseek umount umount2 readahead \
|
||||||
setfsuid setfsgid makedev epoll_pwait signalfd
|
setfsuid setfsgid makedev epoll_pwait signalfd \
|
||||||
|
eventfd eventfd_read eventfd_write
|
||||||
|
|
||||||
CFLAGS-gethostid.c = -fexceptions
|
CFLAGS-gethostid.c = -fexceptions
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ libc {
|
|||||||
epoll_pwait; sync_file_range; sched_getcpu;
|
epoll_pwait; sync_file_range; sched_getcpu;
|
||||||
}
|
}
|
||||||
GLIBC_2.7 {
|
GLIBC_2.7 {
|
||||||
signalfd;
|
eventfd; eventfd_read; eventfd_write; signalfd;
|
||||||
}
|
}
|
||||||
GLIBC_PRIVATE {
|
GLIBC_PRIVATE {
|
||||||
# functions used in other libraries
|
# functions used in other libraries
|
||||||
|
43
sysdeps/unix/sysv/linux/eventfd.c
Normal file
43
sysdeps/unix/sysv/linux/eventfd.c
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright (C) 2007 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/eventfd.h>
|
||||||
|
#include <sysdep.h>
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
eventfd (int count, 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_eventfd
|
||||||
|
return INLINE_SYSCALL (eventfd, 1, count);
|
||||||
|
#else
|
||||||
|
__set_errno (ENOSYS);
|
||||||
|
return -1;
|
||||||
|
#endif
|
||||||
|
}
|
28
sysdeps/unix/sysv/linux/eventfd_read.c
Normal file
28
sysdeps/unix/sysv/linux/eventfd_read.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* Copyright (C) 2007 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/eventfd.h>
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
eventfd_read (int fd, eventfd_t *value)
|
||||||
|
{
|
||||||
|
return read (fd, value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
|
||||||
|
}
|
28
sysdeps/unix/sysv/linux/eventfd_write.c
Normal file
28
sysdeps/unix/sysv/linux/eventfd_write.c
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
/* Copyright (C) 2007 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <sys/eventfd.h>
|
||||||
|
|
||||||
|
|
||||||
|
int
|
||||||
|
eventfd_write (int fd, eventfd_t value)
|
||||||
|
{
|
||||||
|
return write (fd, &value, sizeof (eventfd_t)) != sizeof (eventfd_t) ? -1 : 0;
|
||||||
|
}
|
43
sysdeps/unix/sysv/linux/sys/eventfd.h
Normal file
43
sysdeps/unix/sysv/linux/sys/eventfd.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright (C) 2007 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, write to the Free
|
||||||
|
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA. */
|
||||||
|
|
||||||
|
#ifndef _SYS_EVENTFD_H
|
||||||
|
#define _SYS_EVENTFD_H 1
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Type for event counter. */
|
||||||
|
typedef uint64_t eventfd_t;
|
||||||
|
|
||||||
|
|
||||||
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
/* Return file descriptor for generic event channel. Set initial
|
||||||
|
value to COUNT. */
|
||||||
|
extern int eventfd (int __count, int __flags) __THROW;
|
||||||
|
|
||||||
|
/* Read event counter and possibly wait for events. */
|
||||||
|
extern int eventfd_read (int __fd, eventfd_t *__value);
|
||||||
|
|
||||||
|
/* Increment event counter. */
|
||||||
|
extern int eventfd_write (int __fd, eventfd_t value);
|
||||||
|
|
||||||
|
__END_DECLS
|
||||||
|
|
||||||
|
#endif /* sys/eventfd.h */
|
Loading…
Reference in New Issue
Block a user