aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2003-03-25 20:41:26 +0000
committerUlrich Drepper <drepper@redhat.com>2003-03-25 20:41:26 +0000
commit09402f5bc1d87787c84dbf75d41777c87b1ce40e (patch)
treed5be40f068434405ba1554389d73460fea0a1a0a /sysdeps
parent2a9ae45c3f89b4069e75c53f6dd32e8174b5cfd1 (diff)
downloadglibc-09402f5bc1d87787c84dbf75d41777c87b1ce40e.tar
glibc-09402f5bc1d87787c84dbf75d41777c87b1ce40e.tar.gz
glibc-09402f5bc1d87787c84dbf75d41777c87b1ce40e.tar.bz2
glibc-09402f5bc1d87787c84dbf75d41777c87b1ce40e.zip
Update.
2003-03-25 Ulrich Drepper <drepper@redhat.com> * csu/tst-atomic.c: Adjust tests to what atomic_add_negative and atomic_add_zero were supposed to do. * include/atomic.h: Adjust atomic_add_negative and atomic_add_zero to x86 behavior. * sysdeps/generic/bits/typesizes.h (__TIMER_T_TYPE): Define as void*. This matches the new timer implementation. * sysdeps/unix/sysv/linux/bits/siginfo.h (struct siginfo): Adjust timer info for what the kernel provides these days. (struct sigevent): Add _tid field. Define SIGEV_THREAD_ID. * Versions.def (librt): Add GLIBC_2.3.3. * abilist/libpthread.abilist: Update for nptl.
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/generic/bits/typesizes.h4
-rw-r--r--sysdeps/unix/sysv/linux/bits/siginfo.h21
2 files changed, 17 insertions, 8 deletions
diff --git a/sysdeps/generic/bits/typesizes.h b/sysdeps/generic/bits/typesizes.h
index 6d6de21fab..2b9bd38760 100644
--- a/sysdeps/generic/bits/typesizes.h
+++ b/sysdeps/generic/bits/typesizes.h
@@ -1,5 +1,5 @@
/* bits/typesizes.h -- underlying types for *_t. Generic version.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 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
@@ -54,7 +54,7 @@
#define __SWBLK_T_TYPE __SLONGWORD_TYPE
#define __KEY_T_TYPE __S32_TYPE
#define __CLOCKID_T_TYPE __S32_TYPE
-#define __TIMER_T_TYPE __S32_TYPE
+#define __TIMER_T_TYPE void *
#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h
index 4d1087d33b..0ea0dc54a9 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h
@@ -1,5 +1,5 @@
/* siginfo_t, sigevent and constants. Linux version.
- Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
+ Copyright (C) 1997-2002, 2003 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
@@ -69,8 +69,10 @@ typedef struct siginfo
/* POSIX.1b timers. */
struct
{
- unsigned int _timer1;
- unsigned int _timer2;
+ int si_tid; /* Timer ID. */
+ int si_overrun; /* Overrun count. */
+ char _pad[sizeof (__uid_t) - sizeof (int)];
+ sigval_t si_sigval; /* Signal value. */
} _timer;
/* POSIX.1b signals. */
@@ -110,8 +112,8 @@ typedef struct siginfo
/* X/Open requires some more fields with fixed names. */
# define si_pid _sifields._kill.si_pid
# define si_uid _sifields._kill.si_uid
-# define si_timer1 _sifields._timer._timer1
-# define si_timer2 _sifields._timer._timer2
+# define si_timerid _sifields._timer.si_tid
+# define si_overrun _sifields._timer.si_overrun
# define si_status _sifields._sigchld.si_status
# define si_utime _sifields._sigchld.si_utime
# define si_stime _sifields._sigchld.si_stime
@@ -280,6 +282,10 @@ typedef struct sigevent
{
int _pad[__SIGEV_PAD_SIZE];
+ /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
+ thread to receive the signal. */
+ __pid_t _tid;
+
struct
{
void (*_function) (sigval_t); /* Function to start. */
@@ -299,8 +305,11 @@ enum
# define SIGEV_SIGNAL SIGEV_SIGNAL
SIGEV_NONE, /* Other notification: meaningless. */
# define SIGEV_NONE SIGEV_NONE
- SIGEV_THREAD /* Deliver via thread creation. */
+ SIGEV_THREAD, /* Deliver via thread creation. */
# define SIGEV_THREAD SIGEV_THREAD
+
+ SIGEV_THREAD_ID = 4 /* Send signal to specific thread. */
+#define SIGEV_THREAD_ID SIGEV_THREAD_ID
};
#endif /* have _SIGNAL_H. */