1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

* sysdeps/unix/sysv/linux/Versions: Export Inotify_* syscalls.

This commit is contained in:
Ulrich Drepper
2005-08-23 14:33:08 +00:00
parent f9a906e786
commit fd4af66481
4 changed files with 25 additions and 7 deletions

View File

@ -1,3 +1,7 @@
2005-08-23 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/Versions: Export Inotify_* syscalls.
2005-08-22 Jakub Jelinek <jakub@redhat.com> 2005-08-22 Jakub Jelinek <jakub@redhat.com>
* stdlib/bits/stdlib.h (mbstowcs): Divide __bos (__dst) by * stdlib/bits/stdlib.h (mbstowcs): Divide __bos (__dst) by

View File

@ -1,3 +1,7 @@
2005-08-23 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/timer_routines.c: Don't block SIGSETXID ever.
2005-07-11 Jakub Jelinek <jakub@redhat.com> 2005-07-11 Jakub Jelinek <jakub@redhat.com>
[BZ #1102] [BZ #1102]

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. /* Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library. This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2003. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
@ -53,10 +53,14 @@ timer_sigev_thread (void *arg)
static void * static void *
timer_helper_thread (void *arg) timer_helper_thread (void *arg)
{ {
/* Wait for the SIGTIMER signal and none else. */ /* Wait for the SIGTIMER signal, allowing the setXid signal, and
none else. */
sigset_t ss; sigset_t ss;
sigemptyset (&ss); sigemptyset (&ss);
sigaddset (&ss, SIGTIMER); __sigaddset (&ss, SIGTIMER);
#ifdef SIGSETXID
__sigaddset (&ss, SIGSETXID);
#endif
/* Endless loop of waiting for signals. The loop is only ended when /* Endless loop of waiting for signals. The loop is only ended when
the thread is canceled. */ the thread is canceled. */
@ -121,14 +125,17 @@ __start_helper_thread (void)
(void) pthread_attr_init (&attr); (void) pthread_attr_init (&attr);
(void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN); (void) pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
/* Block all signals in the helper thread. To do this thoroughly we /* Block all signals in the helper thread but SIGSETXID. To do this
temporarily have to block all signals here. The helper can lose thoroughly we temporarily have to block all signals here. The
wakeups if SIGCANCEL is not blocked throughout, but sigfillset omits helper can lose wakeups if SIGCANCEL is not blocked throughout,
it. So, we add it back explicitly here. */ but sigfillset omits it. So, we add it back explicitly here. */
sigset_t ss; sigset_t ss;
sigset_t oss; sigset_t oss;
sigfillset (&ss); sigfillset (&ss);
__sigaddset (&ss, SIGCANCEL); __sigaddset (&ss, SIGCANCEL);
#ifdef SIGSETXID
__sigdelset (&ss, SIGSETXID);
#endif
INTERNAL_SYSCALL_DECL (err); INTERNAL_SYSCALL_DECL (err);
INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8); INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);

View File

@ -115,6 +115,9 @@ libc {
GLIBC_2.3.4 { GLIBC_2.3.4 {
sched_getaffinity; sched_setaffinity; sched_getaffinity; sched_setaffinity;
} }
GLIBC_2.4 {
inotify_init; inotify_add_watch; inotify_rm_watch;
}
GLIBC_PRIVATE { GLIBC_PRIVATE {
# functions used in other libraries # functions used in other libraries
__syscall_rt_sigqueueinfo; __syscall_rt_sigqueueinfo;