mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
cbdee2790d
1997-12-03 23:50 Ulrich Drepper <drepper@cygnus.com> * Makeconfig: Add shared-thread-library variable. * math/Makfile (CPPFLAGS): Add -D__LIBC_INTERNAL_MATH_INLINES. * sysdeps/i386/Makefile: Don't define ___LIBC_INTERNAL_MATH_INLINES here. * sysdeps/m68k/fpu/e_acos.c: Likewise. * sysdeps/m68k/fpu/e_atan2.c: Likewise. * sysdeps/m68k/fpu/e_fmod.c: Likewise. * sysdeps/m68k/fpu/e_pow.c: Likewise. * sysdeps/m68k/fpu/e_scalb.c: Likewise. * sysdeps/m68k/fpu/k_cos.c: Likewise. * sysdeps/m68k/fpu/k_sin.c: Likewise. * sysdeps/m68k/fpu/k_tan.c: Likewise. * sysdeps/m68k/fpu/s_atan.c: Likewise. * sysdeps/m68k/fpu/s_ccos.c: Likewise. * sysdeps/m68k/fpu/s_ccosh.c: Likewise. * sysdeps/m68k/fpu/s_cexp.c: Likewise. * sysdeps/m68k/fpu/s_csin.c: Likewise. * sysdeps/m68k/fpu/s_csinh.c: Likewise. * sysdeps/m68k/fpu/s_frexp.c: Likewise. * sysdeps/m68k/fpu/s_ilogb.c: Likewise. * sysdeps/m68k/fpu/s_isinf.c: Likewise. * sysdeps/m68k/fpu/s_llrint.c: Likewise. * sysdeps/m68k/fpu/s_llrintf.c: Likewise. * sysdeps/m68k/fpu/s_llrintl.c: Likewise. * sysdeps/m68k/fpu/s_lrint.c: Likewise. * sysdeps/m68k/fpu/s_modf.c: Likewise. * sysdeps/m68k/fpu/s_remquo.c: Likewise. * sysdeps/m68k/fpu/s_scalbn.c: Likewise. * sysdeps/m68k/fpu/s_sincos.c: Likewise. * libc.map: Add __libc_current_sigrtmin, __libc_current_sigrtmax, __libc_allocate_rtsig, sigqueue, sigtimedwait, sigwaitinfo. * signal/Makefile (headers): Add bits/siginfo.h. (routines): Add allocrtsig, sigtimedwait, sigwaitinfo, sigqueue. (distribute): Add testrtsig.h. * signal/allocrtsig.c: New file. * signal/signal.h: Define `union sigval'. Include <bits/siginfo.h>. Declare sigwaitinfo, sigtimedwait, sigqueue, __libc_current_sigrtmin, __libc_current_sigrtmax. * sysdeps/generic/sigqueue.c: New file. * sysdeps/generic/sigtimedwait.c: New file. * sysdeps/generic/sigwaitinfo.c: New file. * sysdeps/generic/testrtsig.h: New file. * sysdeps/generic/bits/siginfo.h: New file. * sysdeps/unix/sysv/linux/bits/siginfo.h: New file. * sysdeps/unix/sysv/linux/kernel_sigaction.h: Define struct as old_kernel_sigaction and rename sa_handler member to k_sa_handler. * sysdeps/unix/sysv/linux/rt_sigaction.c: New file. * sysdeps/unix/sysv/linux/rt_sigprocmask.c: New file. * sysdeps/unix/sysv/linux/rt_sigqueueinfo.c: New file. * sysdeps/unix/sysv/linux/rt_sigreturn.c: New file. * sysdeps/unix/sysv/linux/rt_sigsuspend.c: New file. * sysdeps/unix/sysv/linux/rt_sigtimedwait.c: New file. * sysdeps/unix/sysv/linux/sigpending.c: New file. * sysdeps/unix/sysv/linux/sigprocmask.c: New file. * sysdeps/unix/sysv/linux/sigqueue.c: New file. * sysdeps/unix/sysv/linux/sigreturn.c: New file. * sysdeps/unix/sysv/linux/sigtimedwait.c: New file. * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file. * sysdeps/unix/sysv/linux/testrtsig.h: New file. * sysdeps/unix/sysv/linux/sigsuspend.c: Update for AIO. * sysdeps/unix/sysv/linux/syscalls.list: Update for AIO. * sysdeps/unix/sysv/linux/sigaction.c: Update for AIO. * sysdeps/unix/sysv/linux/bits/local_lim.h: Define AIO_PRIO_DELTA_MAX. * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define _XOPEN_REALTIME and _POSIX_REALTIME_SIGNALS. * sysdeps/unix/sysv/linux/bits/sigaction.h: Update for AIO. * sysdeps/unix/sysv/linux/bits/signum.h: Define SIGRTMIN/MAX and update _NSIG. * sysdeps/unix/sysv/linux/i386/sigaction.c: Update for AIO. * sysdeps/unix/sysv/linux/i386/sys/ucontext.h: Linux/i386 specific definitions. * Makefile (subdirs): Add rt. * shlib-versions: Add entry for librt. * rt/Makefile: New file. * rt/aio.h: New file. * rt/aio_cancel.c: New file. * rt/aio_error.c: New file. * rt/aio_fsync.c: New file. * rt/aio_misc.c: New file. * rt/aio_misc.h: New file. * rt/aio_read.c: New file. * rt/aio_read64.c: New file. * rt/aio_return.c: New file. * rt/aio_suspend.c: New file. * rt/aio_write.c: New file. * rt/aio_write64.c: New file. * rt/lio_listio.c: New file. * rt/lio_listio64.c: New file. * sysdeps/generic/aio_sigqueue.c: New file. * sysdeps/unix/sysv/linux/aio_sigqueue.c: New file. * sysdeps/unix/sysv/linux/Dist: Add new files * sysdeps/unix/sysv/linux/Makefile [$(subdir)=signal] (sysdep_routines): Add rt_sigsuspend, rt_sigprocmask, rt_sigtimedwait, rt_sigqueueinfo, rt_sigaction. * posix/Makefile (headers): Add bits/environments.h. * posix/confstr.c: Correctly handle _CS_XBS5_ILP32_OFFBIG_CFLAGS and _CS_LFS_CFLAGS on 64bit platforms. * posix/unistd.h: Define _XOPEN_LEGACY. Explain _XOPEN_REALTIME and _XOPEN_REALTIME_THREADS. Include bits/environments.h. * sysdeps/generic/bits/confname.h: Define _SC_* constants for compilation modules. * sysdeps/wordsize-32/bits/environments.h: New file. * sysdeps/wordsize-64/bits/environments.h: New file. * posix/getopt.c: Remove declaration of getpid and __libc_pid. * posix/getopt_init.c: Test for value 0xf00baa of uninitialized __libc_pid. * sysdeps/unix/sysv/linux/init-first.c: Initialize __libc_pid to 0xf00baa. * string/string.h: Add declaration of __strverscmp. * string/strverscmp.c: Rename function ot __strverscmp and make old name weak alias. * sysdeps/generic/dl-sysdep.c: Declare and define __libc_uid. * sysdeps/generic/enbl-secure.c: Likewise. * sysdeps/mach/hurd/dl-sysdep.c: Likewise. * sysdeps/unix/sysv/linux/bits/sigset.h: Pretty print. * sysdeps/unix/sysv/linux/sys/pci.h: New file. 1997-12-03 Ulrich Drepper <drepper@cygnus.com> * posix/sys/wait.h: Use __transparent_union__ instead of transparent_union. Reported by Roland McGrath. 1997-12-03 Andreas Jaeger <aj@arthur.rhein-neckar.de> * resolv/inet_neta.c (inet_neta): Change type of first parameter to u_int32_t. Suggested by John Lavagnino <John_Lavagnino@Brown.edu> [PR libc/366]. * resolv/inet_addr.c (inet_addr): Change return type to u_int32_t. * inet/arpa/inet.h: Change types of inet_neta and inet_addr. 1997-12-03 20:40 Thorsten Kukuk <kukuk@vt.uni-paderborn.de> * grp/initgroups.c: Increase buffer if it is too small. 1997-12-03 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/netinet/ip.h: Don't use u_int8_t for bit fields, this is no ISO C. Reported by Andreas Jaeger. 1997-12-03 Andreas Jaeger <aj@arthur.rhein-neckar.de> * sysdeps/i386/sys/ucontext.h (enum): Add missing commata. 1997-12-03 08:58 Philip Blundell <pb@nexus.co.uk> * sysdeps/generic/bits/utsname.h: <sys/utsname.h> defines _SYS_UTSNAME_H not _UTSNAME_H. 1997-11-28 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * elf/dl-profile.c (_dl_start_profile): Avoid overflow when computing s_scale. 1997-11-29 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/libm-ieee754/s_csqrt.c: Use different formula for now. * sysdeps/libm-ieee754/s_csqrtf.c: Likewise. * sysdeps/libm-ieee754/s_csqrtl.c: Likewise. * math/libm-test.c (csqrt_test): Add testcase. 1997-12-03 15:44 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/sys/ultrasound.h: New file. * sysdeps/unix/sysv/linux/sys/Dist: Add it. * sysdeps/unix/sysv/linux/sys/Makefile [$(subdir)=misc]: Likewise. 1997-11-30 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> * sysdeps/unix/sysv/linux/sys/timex.h: Fix declaration. 1997-12-01 Andreas Jaeger <aj@arthur.rhein-neckar.de> * math/libm-test.c (acos_test): Add more tests. (asin_test): Likewise. (atan_test): Likewise. (exp_test): Likewise. (sin_test): Likewise. (sqrt_test): Likewise. (cpow_test): Likewise. (csqrt_test): Likewise. (cexp_test): Correct typo in gcc version test. 1997-12-02 17:14 Philip Blundell <pb@nexus.co.uk> * sysdeps/arm/__longjmp.S: Define _SETJMP_H before including <bits/setjmp.h>. * sysdeps/arm/setjmp.S: Likewise. * sysdeps/unix/sysv/linux/arm/bits/mman.h: New file. 1997-12-02 18:07 Philip Blundell <pb@nexus.co.uk> * stdio/stdio.h: Add prototype for tmpfile64(). 1997-12-02 17:47 Philip Blundell <pb@nexus.co.uk> * stdio/stdio.h (__stdio_gen_tempname): Add extra argument to prototype to keep in step with libio version. * stdio-common/tmpfile64.c: Include <errno.h> for ENOSYS. 1997-12-02 17:41 Philip Blundell <pb@nexus.co.uk> * sysdeps/generic/Makefile: Don't try to use make_siglist if cross-compiling. 1997-12-02 01:18 Ulrich Drepper <drepper@cygnus.com> * sysdeps/unix/sysv/linux/i386/clone.S: When cloned process returns load GOT ptr before jumping to _exit. Reported by Xavier Leroy.
185 lines
5.7 KiB
C
185 lines
5.7 KiB
C
/* siginfo_t, sigevent and constants. Stub version.
|
|
Copyright (C) 1997 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 Library General Public License as
|
|
published by the Free Software Foundation; either version 2 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
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public
|
|
License along with the GNU C Library; see the file COPYING.LIB. If not,
|
|
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA. */
|
|
|
|
#ifndef _SIGNAL_H
|
|
# error "Never include this file directly. Use <signal.h> instead"
|
|
#endif
|
|
|
|
typedef struct siginfo
|
|
{
|
|
int si_signo; /* Signal number. */
|
|
int si_errno; /* If non-zero, an errno value associated with
|
|
this signal, as defined in <errno.h>. */
|
|
int si_code; /* Signal code. */
|
|
__pid_t si_pid; /* Sending process ID. */
|
|
__uid_t si_uid; /* Real user ID of sending process. */
|
|
void *si_addr; /* Address of faulting instruction. */
|
|
int si_status; /* Exit value or signal. */
|
|
long int si_band; /* Band event for SIGPOLL. */
|
|
union sigval si_value; /* Signal value. */
|
|
} siginfo_t;
|
|
|
|
|
|
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
|
signals. */
|
|
enum
|
|
{
|
|
SI_ASYNCIO = -4, /* Sent by AIO completion. */
|
|
#define SI_ASYNCIO SI_ASYNCIO
|
|
SI_MESGQ, /* Sent by real time mesq state change. */
|
|
#define SI_MESGQ SI_MESGQ
|
|
SI_TIMER, /* Sent by timer expiration. */
|
|
#define SI_TIMER SI_TIMER
|
|
SI_QUEUE, /* Sent by sigqueue. */
|
|
#define SI_QUEUE SI_QUEUE
|
|
SI_USER /* Sent by kill, sigsend, raise. */
|
|
#define SI_USER SI_USER
|
|
};
|
|
|
|
|
|
/* `si_code' values for SIGILL signal. */
|
|
enum
|
|
{
|
|
ILL_ILLOPC = 1, /* Illegal opcode. */
|
|
#define ILL_ILLOPC ILL_ILLOPC
|
|
ILL_ILL_OPN, /* Illegal operand. */
|
|
#define ILL_ILLOPN ILL_ILLOPN
|
|
ILL_ILLADR, /* Illegal addressing mode. */
|
|
#define ILL_ILLADR ILL_ILLADR
|
|
ILL_ILLTRP, /* Illegal trap. */
|
|
#define ILL_ILLTRP ILL_ILLTRP
|
|
ILL_PRVOPC, /* Privileged opcode. */
|
|
#define ILL_PRVOPC ILL_PRVOPC
|
|
ILL_PRVREG, /* Privileged register. */
|
|
#define ILL_PRVREG ILL_PRVREG
|
|
ILL_COPROC, /* Coprocessor error. */
|
|
#define ILL_COPROC ILL_COPROC
|
|
ILL_BADSTK /* Internal stack error. */
|
|
#define ILL_BADSTK ILL_BADSTK
|
|
};
|
|
|
|
/* `si_code' values for SIGFPE signal. */
|
|
enum
|
|
{
|
|
FPE_INTDIV = 1, /* Integer divide by zero. */
|
|
#define FPE_INTDIV FPE_INTDIV
|
|
FPE_INTOVF, /* Integer overflow. */
|
|
#define FPE_INTOVF FPE_INTOVF
|
|
FPE_FLTDIV, /* Floating point divide by zero. */
|
|
#define FPE_FLTDIV FPE_FLTDIV
|
|
FPE_FLTOVF, /* Floating point overflow. */
|
|
#define FPE_FLTOVF FPE_FLTOVF
|
|
FPE_FLTUND, /* Floating point underflow. */
|
|
#define FPE_FLTUND FPE_FLTUND
|
|
FPE_FLTRES, /* Floating point inexact result. */
|
|
#define FPE_FLTRES FPE_FLTRES
|
|
FPE_FLTINV, /* Floating point invalid operation. */
|
|
#define FPE_FLTINV FPE_FLTINV
|
|
FPE_FLTSUB /* Subscript out of range. */
|
|
#define FPE_FLTSUB FPE_FLTSUB
|
|
};
|
|
|
|
/* `si_code' values for SIGSEGV signal. */
|
|
enum
|
|
{
|
|
SEGV_MAPERR = 1, /* Address not mapped to object. */
|
|
#define SEGV_MAPERR SEGV_MAPERR
|
|
SEGV_ACCERR /* Invalid permissions for mapped object. */
|
|
#define SEGV_ACCERR SEGV_ACCERR
|
|
};
|
|
|
|
/* `si_code' values for SIGBUS signal. */
|
|
enum
|
|
{
|
|
BUS_ADRALN = 1, /* Invalid address alignment. */
|
|
#define BUS_ADRALN BUS_ADRALN
|
|
BUS_ADRERR, /* Non-existant physical address. */
|
|
#define BUS_ADRERR BUS_ADRERR
|
|
BUS_OBJERR /* Object specific hardware error. */
|
|
#define BUS_OBJERR BUS_OBJERR
|
|
};
|
|
|
|
/* `si_code' values for SIGTRAP signal. */
|
|
enum
|
|
{
|
|
TRAP_BRKPT = 1, /* Process breakpoint. */
|
|
#define TRAP_BRKPT TRAP_BRKPT
|
|
TRAP_TRACE /* Process trace trap. */
|
|
#define TRAP_TRACE TRAP_TRACE
|
|
};
|
|
|
|
/* `si_code' values for SIGCHLD signal. */
|
|
enum
|
|
{
|
|
CLD_EXITED = 1, /* Child has exited. */
|
|
#define CLD_EXITED CLD_EXITED
|
|
CLD_KILLED, /* Child was killed. */
|
|
#define CLD_KILLED CLD_KILLED
|
|
CLD_DUMPED, /* Child terminated abnormally. */
|
|
#define CLD_DUMPED CLD_DUMPED
|
|
CLD_TRAPPED, /* Traced child has trapped. */
|
|
#define CLD_TRAPPED CLD_TRAPPED
|
|
CLD_STOPPED, /* Child has stopped. */
|
|
#define CLD_STOPPED CLD_STOPPED
|
|
CLD_CONTINUED /* Stopped child has continued. */
|
|
#define CLD_CONTINUED CLD_CONTINUED
|
|
};
|
|
|
|
/* `si_code' values for SIGPOLL signal. */
|
|
enum
|
|
{
|
|
POLL_IN = 1, /* Data input available. */
|
|
#define POLL_IN POLL_IN
|
|
POLL_OUT, /* Output buffers available. */
|
|
#define POLL_OUT POLL_OUT
|
|
POLL_MSG, /* Input message available. */
|
|
#define POLL_MSG POLL_MSG
|
|
POLL_ERR, /* I/O error. */
|
|
#define POLL_ERR POLL_ERR
|
|
POLL_PRI, /* High priority input available. */
|
|
#define POLL_PRI POLL_PRI
|
|
POLL_HUP /* Device disconnected. */
|
|
#define POLL_HUP POLL_HUP
|
|
};
|
|
|
|
|
|
/* Structure to transport application-defined values with signals. */
|
|
#define SIGEV_MAX_SIZE 64
|
|
#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
|
|
|
typedef struct sigevent
|
|
{
|
|
sigval_t sigev_value;
|
|
int sigev_signo;
|
|
int sigev_notify;
|
|
void (*sigev_notify_function) __P ((sigval_t)); /* Function to start. */
|
|
void *sigev_notify_attributes; /* Really pthread_attr_t.*/
|
|
} sigevent_t;
|
|
|
|
/* `sigev_notify' values. */
|
|
enum
|
|
{
|
|
SIGEV_SIGNAL = 0, /* Notify via signal. */
|
|
#define SIGEV_SIGNAL SIGEV_SIGNAL
|
|
SIGEV_NONE, /* Other notification: meaningless. */
|
|
#define SIGEV_NONE SIGEV_NONE
|
|
SIGEV_THREAD /* Deliver via thread creation. */
|
|
#define SIGEV_THREAD SIGEV_THREAD
|
|
};
|