mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-18 06:30:05 +00:00
Update.
* dlfcn/dlfcn.h (RTLD_DEFAULT): Don't use NULL. * iconv/iconv.h (iconv): Fix prototype. * misc/libgen.h: When using gcc using renaming feature to get XPG definition of basename. * misc/search.h (struct entry): Fix type of element data. * posix/unistd.h (getpagesize): Declare as const function. * sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Define SA_NOCLDWAIT. * sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise. * sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise. * signal/signal.h [__USE_XOPEN]: Define uid_t. (sigstack): Correct type of first parameter. * sysdeps/generic/sigstack.c (sigstack): Likewise. * sysdeps/unix/sysv/linux/sigstack.c (sigstack): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: New file. Copy of old sysdeps/unix/sysv/linux/bits/siginfo.h. * sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h: Likewise. * sysdeps/unix/sysv/linux/bits/siginfo.h [struct siginfo] (si_band): Change type to `long int'. * signal/signal.h [__USE_XOPEN]: Declare sigpause to redirect to __xpg_sigpause. * sysdeps/generic/sigpause.c: Define __xpg_sigpause. * sysdeps/posix/sigpause.c: Likewise. * conform/conformtest.pl: Correct bugs. Add more functionality. * conform/data/dlfcn.h-data: Correct typos. * conform/data/ftw.h-data: Likewise. * conform/data/iconv.h-data: Likewise. * conform/data/nl_types.h-data: Likewise. * conform/data/search.h-data: Likewise. * conform/data/semaphore.h-data: New file. * conform/data/setjmp.h-data: New file. * conform/data/signal.h-data: New file. * conform/data/stdarg.h-data: New file. * conform/data/stddef.h-data: New file. * conform/data/stdio.h-data: New file.
This commit is contained in:
parent
93a19c64c9
commit
8ce9ea0ca6
45
ChangeLog
45
ChangeLog
@ -1,5 +1,50 @@
|
||||
2000-02-22 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* dlfcn/dlfcn.h (RTLD_DEFAULT): Don't use NULL.
|
||||
|
||||
* iconv/iconv.h (iconv): Fix prototype.
|
||||
|
||||
* misc/libgen.h: When using gcc using renaming feature to get XPG
|
||||
definition of basename.
|
||||
|
||||
* misc/search.h (struct entry): Fix type of element data.
|
||||
|
||||
* posix/unistd.h (getpagesize): Declare as const function.
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/sigaction.h: Define SA_NOCLDWAIT.
|
||||
* sysdeps/unix/sysv/linux/bits/sigaction.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/mips/bits/sigaction.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/sparc/bits/sigaction.h: Likewise.
|
||||
|
||||
* signal/signal.h [__USE_XOPEN]: Define uid_t.
|
||||
(sigstack): Correct type of first parameter.
|
||||
* sysdeps/generic/sigstack.c (sigstack): Likewise.
|
||||
* sysdeps/unix/sysv/linux/sigstack.c (sigstack): Likewise.
|
||||
|
||||
* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h: New file. Copy of
|
||||
old sysdeps/unix/sysv/linux/bits/siginfo.h.
|
||||
* sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h: Likewise.
|
||||
* sysdeps/unix/sysv/linux/bits/siginfo.h [struct siginfo] (si_band):
|
||||
Change type to `long int'.
|
||||
|
||||
* signal/signal.h [__USE_XOPEN]: Declare sigpause to redirect to
|
||||
__xpg_sigpause.
|
||||
* sysdeps/generic/sigpause.c: Define __xpg_sigpause.
|
||||
* sysdeps/posix/sigpause.c: Likewise.
|
||||
|
||||
* conform/conformtest.pl: Correct bugs. Add more functionality.
|
||||
* conform/data/dlfcn.h-data: Correct typos.
|
||||
* conform/data/ftw.h-data: Likewise.
|
||||
* conform/data/iconv.h-data: Likewise.
|
||||
* conform/data/nl_types.h-data: Likewise.
|
||||
* conform/data/search.h-data: Likewise.
|
||||
* conform/data/semaphore.h-data: New file.
|
||||
* conform/data/setjmp.h-data: New file.
|
||||
* conform/data/signal.h-data: New file.
|
||||
* conform/data/stdarg.h-data: New file.
|
||||
* conform/data/stddef.h-data: New file.
|
||||
* conform/data/stdio.h-data: New file.
|
||||
|
||||
* po/de.po: Update from translation team.
|
||||
|
||||
1999-12-31 Martin Buchholz <martin@xemacs.org>
|
||||
|
@ -4,7 +4,9 @@ $CC = "gcc";
|
||||
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
|
||||
|
||||
# List of the headers we are testing.
|
||||
@headers = ("search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
|
||||
@headers = ("stdio.h",
|
||||
"stddef.h", "stdarg.h", "signal.h", "setjmp.h", "semaphore.h",
|
||||
"search.h", "sched.h", "regex.h", "pwd.h", "pthread.h",
|
||||
"poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h",
|
||||
"math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h",
|
||||
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
|
||||
@ -171,8 +173,12 @@ sub newtoken {
|
||||
my($token, $nerrors, @allow) = @_;
|
||||
my($idx);
|
||||
|
||||
if ($token =~ /^[0-9_]/ || $iskeyword{$token}) {
|
||||
return $nerrors;
|
||||
}
|
||||
|
||||
for ($idx = 0; $idx <= $#allow; ++$idx) {
|
||||
if ($token =~ /^[0-9_]/ || $iskeyword{$token} || poorfnmatch ($allow[$idx], $token)) {
|
||||
if (poorfnmatch ($allow[$idx], $token)) {
|
||||
return $nerrors;
|
||||
}
|
||||
}
|
||||
@ -308,6 +314,48 @@ while ($#headers >= 0) {
|
||||
$res = compiletest ($fnamebase, "Testing for constant $const",
|
||||
"Constant \"$const\" not available.", $res);
|
||||
|
||||
if ($value ne "") {
|
||||
# Generate a program to test for the value of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "int main (void) { return $const != $value; }\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = runtest ($fnamebase, "Testing for value of constant $const",
|
||||
"Constant \"$const\" has not the right value.", $res);
|
||||
}
|
||||
} elsif (/^typed-constant *([a-zA-Z0-9_]*) *({([^}]*)}|([^ ]*)) *([A-Za-z0-9_]*)?/) {
|
||||
my($const) = $1;
|
||||
my($type) = "$3$4";
|
||||
my($value) = $5;
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
push @allow, $const;
|
||||
|
||||
# Generate a program to test for the availability of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "__typeof__ ($const) a = $const;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = compiletest ($fnamebase, "Testing for constant $const",
|
||||
"Constant \"$const\" not available.", $res);
|
||||
|
||||
# Test the types of the members.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "__typeof__ (($type) 0) a;\n";
|
||||
print TESTFILE "extern __typeof__ ($const) a;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Testing for type of constant $const",
|
||||
"Constant \"$const\" does not have the correct type.",
|
||||
$res);
|
||||
|
||||
if ($value ne "") {
|
||||
# Generate a program to test for the value of this constant.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
@ -343,7 +391,38 @@ while ($#headers >= 0) {
|
||||
|
||||
compiletest ($fnamebase, "Testing for type $type",
|
||||
"Type \"$type\" not available.", $missing);
|
||||
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(][^)]*[)])/) {
|
||||
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) [(][*]([a-zA-Z0-9_]*) ([(].*[)])/) {
|
||||
my($rettype) = "$2$3";
|
||||
my($fname) = "$4";
|
||||
my($args) = "$5";
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
push @allow, $fname;
|
||||
|
||||
# Generate a program to test for availability of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
# print TESTFILE "#undef $fname\n";
|
||||
print TESTFILE "$rettype (*(*foobarbaz) $args = $fname;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = compiletest ($fnamebase, "Test availability of function $fname",
|
||||
"Function \"$fname\" is not available.", $res);
|
||||
|
||||
# Generate a program to test for the type of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
# print TESTFILE "#undef $fname\n";
|
||||
print TESTFILE "extern $rettype (*(*foobarbaz) $args;\n";
|
||||
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Test for type of function $fname",
|
||||
"Function \"$fname\" has incorrect type.", $res);
|
||||
} elsif (/^function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
|
||||
my($rettype) = "$2$3";
|
||||
my($fname) = "$4";
|
||||
my($args) = "$5";
|
||||
@ -372,6 +451,68 @@ while ($#headers >= 0) {
|
||||
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Test for type of function $fname",
|
||||
"Function \"$fname\" has incorrect type.", $res);
|
||||
} elsif (/^variable *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*)/) {
|
||||
my($type) = "$2$3";
|
||||
my($vname) = "$4";
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
push @allow, $vname;
|
||||
|
||||
# Generate a program to test for availability of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
# print TESTFILE "#undef $fname\n";
|
||||
print TESTFILE "$type *foobarbaz = &$vname;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = compiletest ($fnamebase, "Test availability of variable $vname",
|
||||
"Variable \"$vname\" is not available.", $res);
|
||||
|
||||
# Generate a program to test for the type of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
# print TESTFILE "#undef $fname\n";
|
||||
print TESTFILE "extern $type $vname;\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Test for type of variable $fname",
|
||||
"Variable \"$vname\" has incorrect type.", $res);
|
||||
} elsif (/^macro-function *({([^}]*)}|([a-zA-Z0-9_]*)) ([a-zA-Z0-9_]*) ([(].*[)])/) {
|
||||
my($rettype) = "$2$3";
|
||||
my($fname) = "$4";
|
||||
my($args) = "$5";
|
||||
my($res) = $missing;
|
||||
|
||||
# Remember that this name is allowed.
|
||||
push @allow, $fname;
|
||||
|
||||
# Generate a program to test for availability of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "#ifndef $fname\n";
|
||||
print TESTFILE "$rettype (*foobarbaz) $args = $fname;\n";
|
||||
print TESTFILE "#endif\n";
|
||||
close (TESTFILE);
|
||||
|
||||
$res = compiletest ($fnamebase, "Test availability of function $fname",
|
||||
"Function \"$fname\" is not available.", $res);
|
||||
|
||||
# Generate a program to test for the type of this function.
|
||||
open (TESTFILE, ">$fnamebase.c");
|
||||
print TESTFILE "$prepend";
|
||||
print TESTFILE "#include <$h>\n";
|
||||
print TESTFILE "#ifndef $fname\n";
|
||||
print TESTFILE "extern $rettype (*foobarbaz) $args;\n";
|
||||
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
||||
print TESTFILE "#endif\n";
|
||||
close (TESTFILE);
|
||||
|
||||
compiletest ($fnamebase, "Test for type of function $fname",
|
||||
"Function \"$fname\" has incorrect type.", $res);
|
||||
} elsif (/^macro *([^ ]*)/) {
|
||||
|
@ -10,4 +10,5 @@ function int dlclose (void*)
|
||||
function {char*} dlerror (void)
|
||||
|
||||
allow *_t
|
||||
allow RTLD_*
|
||||
#endif
|
||||
|
@ -17,7 +17,7 @@ macro FTW_DEPTH
|
||||
macro FTW_CHDIR
|
||||
|
||||
function int ftw (const char*, int (*) (const char *, const struct stat*, int), int)
|
||||
function int nftw (const char*, int (*) (const char *, const struct stat*, int, FTW *), int, int)
|
||||
function int nftw (const char*, int (*) (const char *, const struct stat*, int, struct FTW *), int, int)
|
||||
|
||||
allow *_t
|
||||
#endif
|
||||
|
@ -2,7 +2,7 @@
|
||||
type iconv_t
|
||||
|
||||
function iconv_t iconv_open (const char*, const char*)
|
||||
function size_t iconv (iconv_t, char**, size_t*, char**, size_t*)
|
||||
function size_t iconv (iconv_t, const char**, size_t*, char**, size_t*)
|
||||
function int iconv_close (iconv_t)
|
||||
|
||||
allow *_t
|
||||
|
@ -6,7 +6,7 @@ constant NL_SETD
|
||||
constant NL_CAT_LOCALE
|
||||
|
||||
function int catclose (nl_catd)
|
||||
function {char*} catgets (nl_catd, int, int, char char*)
|
||||
function {char*} catgets (nl_catd, int, int, const char*)
|
||||
function nl_catd catopen (const char*, int)
|
||||
|
||||
allow *_t
|
||||
|
@ -22,7 +22,7 @@ function {void*} lfind (const void*, const void*, size_t*, size_t, int (*)(const
|
||||
function {void*} lsearch (const void*, void*, size_t*, size_t, int (*)(const void*, const void*))
|
||||
function void remque (void*)
|
||||
function {void*} tdelete (const void*, void**, int(*)(const void*, const void*))
|
||||
function {void*} tfind (const void*, void*const*, int(*)(const void*, const void*)) tfind (const void*, void*const*, int(*)(const void*, const void*))
|
||||
function {void*} tfind (const void*, void*const*, int(*)(const void*, const void*))
|
||||
function {void*} tsearch (const void*, void**, int(*)(const void*, const void*))
|
||||
function void twalk (const void*, void (*) (const void*, VISIT, int))
|
||||
|
||||
|
23
conform/data/semaphore.h-data
Normal file
23
conform/data/semaphore.h-data
Normal file
@ -0,0 +1,23 @@
|
||||
#if !defined ISO
|
||||
type sem_t
|
||||
|
||||
constant SEM_FAILED
|
||||
|
||||
function int sem_close (sem_t*)
|
||||
function int sem_destroy (sem_t*)
|
||||
function int sem_getvalue (sem_t*, int*)
|
||||
function int sem_init (sem_t*, int, unsigned int)
|
||||
function {sem_t*} sem_open (const char*, int, ...)
|
||||
function int sem_post (sem_t*)
|
||||
function int sem_trywait (sem_t*)
|
||||
function int sem_unlink (const char*)
|
||||
function int sem_wait (sem_t*)
|
||||
|
||||
# if !defined POSIX
|
||||
allow-header fcntl.h
|
||||
allow-header sys/types.h
|
||||
# endif
|
||||
|
||||
allow sem_*
|
||||
allow SEM_*
|
||||
#endif
|
20
conform/data/setjmp.h-data
Normal file
20
conform/data/setjmp.h-data
Normal file
@ -0,0 +1,20 @@
|
||||
type jmp_buf
|
||||
#ifndef ISO
|
||||
type sigjmp_buf
|
||||
#endif
|
||||
|
||||
function void longjmp (jmp_buf, int)
|
||||
#ifndef ISO
|
||||
function void siglongjmp (sigjmp_buf, int)
|
||||
# ifndef POSIX
|
||||
function void _longjmp (jmp_buf, int)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
macro-function int setjmp (jmp_buf)
|
||||
#ifndef ISO
|
||||
macro-function int sigsetjmp (sigjmp_buf, int)
|
||||
# ifndef POSIX
|
||||
macro-function int _setjmp (jmp_buf)
|
||||
# endif
|
||||
#endif
|
191
conform/data/signal.h-data
Normal file
191
conform/data/signal.h-data
Normal file
@ -0,0 +1,191 @@
|
||||
typed-constant SIG_DFL {void(*)(int)}
|
||||
typed-constant SIG_ERR {void(*)(int)}
|
||||
typed-constant SIG_HOLD {void(*)(int)}
|
||||
typed-constant SIG_IGN {void(*)(int)}
|
||||
|
||||
type sig_atomic_t
|
||||
type sigset_t
|
||||
type pid_t
|
||||
|
||||
element {union sigval} int sival_int
|
||||
element {union sigval} {void*} sival_ptr
|
||||
|
||||
type {struct sigevent}
|
||||
|
||||
// Test the elements of the sigevent_t structure.
|
||||
element {struct sigevent} int sigev_notify
|
||||
element {struct sigevent} int sigev_signo
|
||||
element {struct sigevent} {union sigval} sigev_value
|
||||
element {struct sigevent} {void(*)(union sigval)} sigev_notify_function
|
||||
element {struct sigevent} {pthread_attr_t*} sigev_notify_attributes
|
||||
|
||||
constant SIGEV_NONE
|
||||
constant SIGEV_SIGNAL
|
||||
constant SIGEV_THREAD
|
||||
|
||||
type {union sigval}
|
||||
|
||||
macro SIGRTMIN
|
||||
macro SIGRTMAX
|
||||
|
||||
constant SIGABRT
|
||||
constant SIGALRM
|
||||
constant SIGFPE
|
||||
constant SIGHUP
|
||||
constant SIGILL
|
||||
constant SIGINT
|
||||
constant SIGKILL
|
||||
constant SIGPIPE
|
||||
constant SIGQUIT
|
||||
constant SIGSEGV
|
||||
constant SIGTERM
|
||||
constant SIGUSR1
|
||||
constant SIGUSR2
|
||||
constant SIGCHLD
|
||||
constant SIGCONT
|
||||
constant SIGSTOP
|
||||
constant SIGTSTP
|
||||
constant SIGTTIN
|
||||
constant SIGTTOU
|
||||
constant SIGBUS
|
||||
constant SIGPOLL
|
||||
constant SIGPROF
|
||||
constant SIGSYS
|
||||
constant SIGTRAP
|
||||
constant SIGURG
|
||||
constant SIGVALRM
|
||||
constant SIGXCPU
|
||||
constant SIGXFSZ
|
||||
|
||||
type {struct sigaction}
|
||||
|
||||
element {struct sigaction} {void(*} sa_handler )(int)
|
||||
element {struct sigaction} sigset_t sa_mask
|
||||
element {struct sigaction} int sa_flags
|
||||
element {struct sigaction} {void(*} sa_sigaction )(int, siginfo_t*, void*)
|
||||
|
||||
constant SA_NOCLDSTOP
|
||||
constant SIG_BLOCK
|
||||
constant SIG_UNBLOCK
|
||||
constant SIG_SETMASK
|
||||
constant SA_ONSTACK
|
||||
constant SA_RESETHAND
|
||||
constant SA_RESTART
|
||||
constant SA_SIGINFO
|
||||
constant SA_NOCLDWAIT
|
||||
constant SA_NODEFER
|
||||
constant SS_ONSTACK
|
||||
constant SS_DISABLE
|
||||
constant MINSIGSTKSZ
|
||||
constant SIGSTKSZ
|
||||
|
||||
type ucontext_t
|
||||
|
||||
element ucontext_t {ucontext_t*} uc_link
|
||||
element ucontext_t sigset_t uc_sigmask
|
||||
element ucontext_t stack_t uc_stack
|
||||
element ucontext_t mcontext_t uc_mcontext
|
||||
|
||||
type stack_t
|
||||
|
||||
element stack_t {void*} ss_sp
|
||||
element stack_t size_t ss_size
|
||||
element stack_t int ss_flags
|
||||
|
||||
type {struct sigstack}
|
||||
|
||||
element {struct sigstack} int ss_onstack
|
||||
element {struct sigstack} {void*} ss_sp
|
||||
|
||||
type siginfo_t
|
||||
|
||||
element siginfo_t int si_signo
|
||||
element siginfo_t int si_errno
|
||||
element siginfo_t int si_code
|
||||
element siginfo_t pid_t si_pid
|
||||
element siginfo_t uid_t si_uid
|
||||
element siginfo_t {void*} si_addr
|
||||
element siginfo_t int si_status
|
||||
element siginfo_t long si_band
|
||||
element siginfo_t {union sigval} si_value
|
||||
|
||||
constant ILL_ILLOPC
|
||||
constant ILL_ILLOPN
|
||||
constant ILL_ILLADR
|
||||
constant ILL_ILLTRP
|
||||
constant ILL_PRVOPC
|
||||
constant ILL_PRVREG
|
||||
constant ILL_COPROC
|
||||
constant ILL_BADSTK
|
||||
constant FPE_INTDIV
|
||||
constant FPE_INTOVF
|
||||
constant FPE_FLTDIV
|
||||
constant FPE_FLTOVF
|
||||
constant FPE_FLTUND
|
||||
constant FPE_FLTRES
|
||||
constant FPE_FLTINV
|
||||
constant FPE_FLTSUB
|
||||
constant SEGV_MAPERR
|
||||
constant SEGV_ACCERR
|
||||
constant BUS_ADRALN
|
||||
constant BUS_ADRERR
|
||||
constant BUS_OBJERR
|
||||
constant TRAP_BRKPT
|
||||
constant TRAP_TRACE
|
||||
constant CLD_EXITED
|
||||
constant CLD_KILLED
|
||||
constant CLD_DUMPED
|
||||
constant CLD_TRAPPED
|
||||
constant CLD_STOPPED
|
||||
constant CLD_CONTINUED
|
||||
constant POLL_IN
|
||||
constant POLL_OUT
|
||||
constant POLL_MSG
|
||||
constant POLL_ERR
|
||||
constant POLL_PRI
|
||||
constant POLL_HUP
|
||||
constant SI_USER
|
||||
constant SI_QUEUE
|
||||
constant SI_TIMER
|
||||
constant SI_ASYNCIO
|
||||
constant SI_MESGQ
|
||||
|
||||
function void (*bsd_signal (int, void(*)(int)))(int)
|
||||
function int kill (pid_t, int)
|
||||
function int killpg (pid_t, int)
|
||||
function int pthread_kill (pthread_t, int)
|
||||
function int pthread_sigmask (int, const sigset_t*, sigset_t*)
|
||||
function int raise (int)
|
||||
function int sigaction (int, const struct sigaction*, struct sigaction*)
|
||||
function int sigaddset (sigset_t*, int)
|
||||
function int sigaltstack (const stack_t*, stack_t*)
|
||||
function int sigdelset (sigset_t*, int)
|
||||
function int sigemptyset (sigset_t*)
|
||||
function int sigfillset (sigset_t*)
|
||||
function int sighold (int)
|
||||
function int sigignore (int)
|
||||
function int siginterrupt (int, int)
|
||||
function int sigismember (const sigset_t*, int)
|
||||
function void (*signal (int, void(*)(int)))(int)
|
||||
function int sigpause (int)
|
||||
function int sigpending (sigset_t*)
|
||||
function int sigprocmask (int, const sigset_t*, sigset_t*)
|
||||
function int sigqueue (pid_t, int, const union sigval)
|
||||
function int sigrelse (int)
|
||||
function void (*sigset (int, void(*)(int)))(int)
|
||||
function int sigstack (struct sigstack*, struct sigstack*)
|
||||
function int sigsuspend (const sigset_t*)
|
||||
function int sigtimedwait (const sigset_t*, siginfo_t*, const struct timespec*)
|
||||
function int sigwait (const sigset_t*, int*)
|
||||
function int sigwaitinfo (const sigset_t*, siginfo_t*)
|
||||
|
||||
allow SIG*
|
||||
allow sa_*
|
||||
allow uc_*
|
||||
allow ss_*
|
||||
allow sv_*
|
||||
allow si_*
|
||||
allow SI_*
|
||||
allow sigev_*
|
||||
allow SIGEV_*
|
||||
allow sival_*
|
7
conform/data/stdarg.h-data
Normal file
7
conform/data/stdarg.h-data
Normal file
@ -0,0 +1,7 @@
|
||||
type va_list
|
||||
|
||||
// XXX We didn't check the parameters.
|
||||
macro va_start
|
||||
macro va_arg
|
||||
macro va_end
|
||||
macro va_copy
|
8
conform/data/stddef.h-data
Normal file
8
conform/data/stddef.h-data
Normal file
@ -0,0 +1,8 @@
|
||||
constant NULL
|
||||
|
||||
macro offsetof
|
||||
|
||||
type ptrdiff_t
|
||||
type wchar_t
|
||||
type size_t
|
||||
type wint_t
|
103
conform/data/stdio.h-data
Normal file
103
conform/data/stdio.h-data
Normal file
@ -0,0 +1,103 @@
|
||||
constant BUFSIZ
|
||||
constant FILENAME_MAX
|
||||
constant FOPEN_MAX
|
||||
|
||||
constant _IOFBF
|
||||
constant _IOLBF
|
||||
constant _IONBF
|
||||
|
||||
constant L_ctermid
|
||||
constant L_cuserid
|
||||
constant L_tmpnam
|
||||
|
||||
constant SEEK_CUR
|
||||
constant SEEK_END
|
||||
constant SEEK_SET
|
||||
|
||||
constant TMP_MAX
|
||||
|
||||
constant EOF
|
||||
|
||||
constant NULL
|
||||
|
||||
constant P_tmpdir
|
||||
|
||||
macro stdin
|
||||
macro stdout
|
||||
macro stderr
|
||||
|
||||
type FILE
|
||||
type fpos_t
|
||||
type va_list
|
||||
type size_t
|
||||
|
||||
function void clearerr (FILE*)
|
||||
function {char*} ctermid (char*)
|
||||
function {char*} cuserid (char*)
|
||||
function int fclose (FILE*)
|
||||
function {FILE*} fdopen (int, const char*)
|
||||
function int feof (FILE*)
|
||||
function int ferror (FILE*)
|
||||
function int fflush (FILE*)
|
||||
function int fgetc (FILE*)
|
||||
function int fgetpos (FILE*, fpos_t*)
|
||||
function {char*} fgets (char*, int, FILE*)
|
||||
function int fileno (FILE*)
|
||||
function void flockfile (FILE*)
|
||||
function {FILE*} fopen (const char*, const char*)
|
||||
function int fprintf (FILE*, const char*, ...)
|
||||
function int fputc (int, FILE*)
|
||||
function int fputs (const char*, FILE*)
|
||||
function size_t fread (void*, size_t, size_t, FILE*)
|
||||
function {FILE*} freopen (const char*, const char*, FILE*)
|
||||
function int fscanf (FILE*, const char*, ...)
|
||||
function int fseek (FILE*, long int, int)
|
||||
function int fseeko (FILE*, off_t, int)
|
||||
function int fsetpos (FILE*, const fpos_t*)
|
||||
function {long int} ftell (FILE*)
|
||||
function off_t ftello (FILE*)
|
||||
function int ftrylockfile (FILE*)
|
||||
function void funlockfile (FILE*)
|
||||
function size_t fwrite (const void*, size_t, size_t, FILE*)
|
||||
function int getc (FILE*)
|
||||
function int getchar (void)
|
||||
function int getc_unlocked (FILE*)
|
||||
function int getopt (int, char *const[], const char *)
|
||||
function {char*} gets (char*)
|
||||
function int getw (FILE*)
|
||||
function int pclose (FILE*)
|
||||
function void perror (const char*)
|
||||
function {FILE*} popen (const char*, const char*)
|
||||
function int printf (const char*, ...)
|
||||
function int putc (int, FILE*)
|
||||
function int putchar (int)
|
||||
function int putc_unlocked (int, FILE*)
|
||||
function int putchar_unlocked (int)
|
||||
function int puts (const char*)
|
||||
function int putw (int, FILE*)
|
||||
function int remove (const char*)
|
||||
function int rename (const char*, const char*)
|
||||
function void rewind (FILE*)
|
||||
function int scanf (const char*, ...)
|
||||
function void setbuf (FILE*, char*)
|
||||
function int setvbuf (FILE*, char*, int, size_t)
|
||||
function int snprintf (char*, size_t, const char*, ...)
|
||||
function int sprintf (char *, const char *, ...)
|
||||
function int sscanf (const char*, const char*, ...)
|
||||
function {char*} tempnam (const char*, const char*)
|
||||
function {FILE*} tmpfile (void)
|
||||
function {char*} tmpnam (char*)
|
||||
function int ungetc (int, FILE*)
|
||||
function int vfprintf (FILE*, const char*, va_list)
|
||||
function int vprintf (const char*, va_list)
|
||||
function int vsnprintf (char*, size_t, const char*, va_list)
|
||||
function int vsprintf (char*, const char*, va_list)
|
||||
|
||||
#if !defined ISO && !defined POSIX
|
||||
variable {char*} optarg
|
||||
variable int opterr
|
||||
variable int optind
|
||||
variable int optopt
|
||||
|
||||
allow-header stddef.h
|
||||
#endif
|
@ -1,5 +1,5 @@
|
||||
/* User functions for run-time dynamic loading.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995-1999, 2000 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
|
||||
@ -21,8 +21,6 @@
|
||||
#define _DLFCN_H 1
|
||||
|
||||
#include <features.h>
|
||||
#define __need_NULL
|
||||
#include <stddef.h>
|
||||
|
||||
/* Collect various system dependent definitions and declarations. */
|
||||
#include <bits/dlfcn.h>
|
||||
@ -37,7 +35,7 @@
|
||||
/* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT
|
||||
the run-time address of the symbol called NAME in the global scope
|
||||
is returned. */
|
||||
# define RTLD_DEFAULT NULL
|
||||
# define RTLD_DEFAULT ((void *) 0)
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1997, 1998, 1999, 2000 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
|
||||
@ -38,7 +38,7 @@ extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode)
|
||||
/* Convert at most *INBYTESLEFT bytes from *INBUF according to the
|
||||
code conversion algorithm specified by CD and place up to
|
||||
*OUTBYTESLEFT bytes in buffer at *OUTBUF. */
|
||||
extern size_t iconv (iconv_t cd, __const char **__restrict __inbuf,
|
||||
extern size_t iconv (iconv_t __cd, __const char **__restrict __inbuf,
|
||||
size_t *__restrict __inbytesleft,
|
||||
char **__restrict __outbuf,
|
||||
size_t *__restrict __outbytesleft);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1996, 1997, 1999, 2000 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
|
||||
@ -19,7 +19,7 @@
|
||||
#ifndef _LIBGEN_H
|
||||
#define _LIBGEN_H 1
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <features.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Declarations for System V style searching functions.
|
||||
Copyright (C) 1995, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1995-1999, 2000 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
|
||||
@ -70,7 +70,7 @@ ACTION;
|
||||
typedef struct entry
|
||||
{
|
||||
char *key;
|
||||
char *data;
|
||||
void *data;
|
||||
}
|
||||
ENTRY;
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 92, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 92, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
|
||||
|
||||
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
|
||||
@ -49,6 +49,9 @@ extern "C" {
|
||||
#ifndef __size_t
|
||||
# if defined __GNUC__ && __GNUC__ >= 2
|
||||
typedef __SIZE_TYPE__ __size_t;
|
||||
# ifdef _XOPEN_SOURCE
|
||||
typedef __SIZE_TYPE__ size_t;
|
||||
# endif
|
||||
# else
|
||||
/* This is a guess. */
|
||||
typedef unsigned long int __size_t;
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991-1999, 2000 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
|
||||
@ -814,8 +814,8 @@ extern int sync (void) __THROW;
|
||||
|
||||
/* Return the number of bytes in a page. This is the system's page size,
|
||||
which is not necessarily the same as the hardware page size. */
|
||||
extern int __getpagesize (void) __THROW;
|
||||
extern int getpagesize (void) __THROW;
|
||||
extern int __getpagesize (void) __attribute__ ((__const__)) __THROW;
|
||||
extern int getpagesize (void) __attribute__ ((__const__)) __THROW;
|
||||
|
||||
|
||||
/* Truncate FILE to LENGTH bytes. */
|
||||
|
@ -45,4 +45,8 @@ libc {
|
||||
# LinuxThreads needs this entry point.
|
||||
__sigsuspend;
|
||||
}
|
||||
GLIBC_2.2 {
|
||||
# Needed to provide a pointer to the XPG sigpause function.
|
||||
__xpg_sigpause;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991-1999, 2000 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
|
||||
@ -55,9 +55,15 @@ typedef __sigset_t sigset_t;
|
||||
#include <bits/types.h>
|
||||
#include <bits/signum.h>
|
||||
|
||||
#if defined __USE_XOPEN && !defined __pid_t_defined
|
||||
#ifdef __USE_XOPEN
|
||||
# ifndef __pid_t_defined
|
||||
typedef __pid_t pid_t;
|
||||
# define __pid_t_defined
|
||||
# define __pid_t_defined
|
||||
# endif
|
||||
# ifndef __uid_t_defined
|
||||
typedef __uid_t uid_t;
|
||||
# define __uid_t_defined
|
||||
# endif
|
||||
#endif /* Unix98 */
|
||||
|
||||
|
||||
@ -140,6 +146,9 @@ extern int sigpause (int __mask) __THROW;
|
||||
# define sigpause(mask) __sigpause ((mask), 0)
|
||||
#else
|
||||
# ifdef __USE_XOPEN
|
||||
# ifdef __GNUC__
|
||||
extern int sigpause (int __sig) __asm__ ("__xpg_sigpause") __THROW;
|
||||
# endif
|
||||
/* Remove a signal from the signal mask and suspend the process. */
|
||||
# define sigpause(sig) __sigpause ((sig), 1)
|
||||
# endif
|
||||
@ -309,12 +318,14 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
|
||||
extern int siginterrupt (int __sig, int __interrupt) __THROW;
|
||||
|
||||
# include <bits/sigstack.h>
|
||||
# ifdef __USE_XOPEN
|
||||
# include <ucontext.h>
|
||||
# endif
|
||||
|
||||
/* Run signals handlers on the stack specified by SS (if not NULL).
|
||||
If OSS is not NULL, it is filled in with the old signal stack status.
|
||||
This interface is obsolete and on many platform not implemented. */
|
||||
extern int sigstack (__const struct sigstack *__ss,
|
||||
struct sigstack *__oss) __THROW;
|
||||
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __THROW;
|
||||
|
||||
/* Alternate signal handler stack interface.
|
||||
This interface should always be preferred over `sigstack'. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Message display handling.
|
||||
Copyright (C) 1997, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1999, 2000 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
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1995, 1996, 2000 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
|
||||
@ -30,10 +30,8 @@ __sigpause (sig_or_mask, is_sig)
|
||||
stub_warning (__sigpause)
|
||||
|
||||
|
||||
int __default_sigpause __P ((int mask));
|
||||
int
|
||||
__default_sigpause (mask)
|
||||
int mask;
|
||||
__default_sigpause (int mask)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
@ -41,3 +39,11 @@ __default_sigpause (mask)
|
||||
weak_alias (__default_sigpause, sigpause)
|
||||
stub_warning (sigpause)
|
||||
#include <stub-tag.h>
|
||||
|
||||
|
||||
int
|
||||
__xpg_sigpause (int sig)
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
return -1;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1995, 1996, 1997, 2000 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
|
||||
@ -23,7 +23,7 @@
|
||||
If OSS is not NULL, it is filled in with the old signal stack status. */
|
||||
int
|
||||
sigstack (ss, oss)
|
||||
const struct sigstack *ss;
|
||||
struct sigstack *ss;
|
||||
struct sigstack *oss;
|
||||
{
|
||||
__set_errno (ENOSYS);
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991, 92, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 92, 1994-1998, 2000 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
|
||||
@ -60,12 +60,20 @@ __sigpause (sig_or_mask, is_sig)
|
||||
/* We have to provide a default version of this function since the
|
||||
standards demand it. The version which is a bit more reasonable is
|
||||
the BSD version. So make this the default. */
|
||||
int __default_sigpause __P ((int mask));
|
||||
int
|
||||
__default_sigpause (mask)
|
||||
int mask;
|
||||
__default_sigpause (int mask)
|
||||
{
|
||||
return __sigpause (mask, 0);
|
||||
}
|
||||
#undef sigpause
|
||||
weak_alias (__default_sigpause, sigpause)
|
||||
|
||||
|
||||
/* We have to provide a default version of this function since the
|
||||
standards demand it. The version which is a bit more reasonable is
|
||||
the BSD version. So make this the default. */
|
||||
int
|
||||
__xpg_sigpause (int sig)
|
||||
{
|
||||
return __sigpause (sig, 1);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* The proper definitions for Linux/Alpha sigaction.
|
||||
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1999, 2000 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
|
||||
@ -49,6 +49,7 @@ struct sigaction
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 0x00000004 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 0x00000020 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 0x00000040 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
|
293
sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
Normal file
293
sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
Normal file
@ -0,0 +1,293 @@
|
||||
/* siginfo_t, sigevent and constants. Linux/SPARC version.
|
||||
Copyright (C) 1997, 1998, 1999, 2000 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. */
|
||||
|
||||
#if !defined _SIGNAL_H && !defined __need_siginfo_t
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if (!defined __have_siginfo_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t))
|
||||
# define __have_siginfo_t 1
|
||||
|
||||
/* Type for data associated with a signal. */
|
||||
typedef union sigval
|
||||
{
|
||||
int sival_int;
|
||||
void *sival_ptr;
|
||||
} sigval_t;
|
||||
|
||||
# define __SI_MAX_SIZE 128
|
||||
# if __WORDSIZE == 64
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
|
||||
# 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. */
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SI_PAD_SIZE];
|
||||
|
||||
/* kill(). */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
} _kill;
|
||||
|
||||
/* POSIX.1b timers. */
|
||||
struct
|
||||
{
|
||||
unsigned int _timer1;
|
||||
unsigned int _timer2;
|
||||
} _timer;
|
||||
|
||||
/* POSIX.1b signals. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
sigval_t si_sigval; /* Signal value. */
|
||||
} _rt;
|
||||
|
||||
/* SIGCHLD. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Which child. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
int si_status; /* Exit value or signal. */
|
||||
__clock_t si_utime;
|
||||
__clock_t si_stime;
|
||||
} _sigchld;
|
||||
|
||||
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */
|
||||
struct
|
||||
{
|
||||
void *si_addr; /* Faulting insn/memory ref. */
|
||||
} _sigfault;
|
||||
|
||||
/* SIGPOLL. */
|
||||
struct
|
||||
{
|
||||
int si_band; /* Band event for SIGPOLL. */
|
||||
int si_fd;
|
||||
} _sigpoll;
|
||||
} _sifields;
|
||||
} siginfo_t;
|
||||
|
||||
|
||||
/* 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_status _sifields._sigchld.si_status
|
||||
# define si_utime _sifields._sigchld.si_utime
|
||||
# define si_stime _sifields._sigchld.si_stime
|
||||
# define si_value _sifields._rt.si_sigval
|
||||
# define si_int _sifields._rt.si_sigval.sival_int
|
||||
# define si_ptr _sifields._rt.si_sigval.sival_ptr
|
||||
# define si_addr _sifields._sigfault.si_addr
|
||||
# define si_band _sifields._sigpoll.si_band
|
||||
# define si_fd _sifields._sigpoll.si_fd
|
||||
|
||||
|
||||
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
||||
signals. */
|
||||
enum
|
||||
{
|
||||
SI_SIGIO = -5, /* Sent by queued SIGIO. */
|
||||
# define SI_SIGIO SI_SIGIO
|
||||
SI_ASYNCIO, /* 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_KERNEL = 0x80 /* Send by kernel. */
|
||||
#define SI_KERNEL SI_KERNEL
|
||||
};
|
||||
|
||||
|
||||
/* `si_code' values for SIGILL signal. */
|
||||
enum
|
||||
{
|
||||
ILL_ILLOPC = 1, /* Illegal opcode. */
|
||||
# define ILL_ILLOPC ILL_ILLOPC
|
||||
ILL_ILLOPN, /* 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
|
||||
};
|
||||
|
||||
# undef __need_siginfo_t
|
||||
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
|
||||
|
||||
|
||||
#if defined _SIGNAL_H && !defined __have_sigevent_t
|
||||
# define __have_sigevent_t 1
|
||||
|
||||
/* Structure to transport application-defined values with signals. */
|
||||
# define __SIGEV_MAX_SIZE 64
|
||||
# if __WORDSIZE == 64
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
typedef struct sigevent
|
||||
{
|
||||
sigval_t sigev_value;
|
||||
int sigev_signo;
|
||||
int sigev_notify;
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SIGEV_PAD_SIZE];
|
||||
|
||||
struct
|
||||
{
|
||||
void (*_function) (sigval_t); /* Function to start. */
|
||||
void *_attribute; /* Really pthread_attr_t. */
|
||||
} _sigev_thread;
|
||||
} _sigev_un;
|
||||
} sigevent_t;
|
||||
|
||||
/* POSIX names to access some of the members. */
|
||||
# define sigev_notify_function _sigev_un._sigev_thread._function
|
||||
# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
|
||||
|
||||
/* `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
|
||||
};
|
||||
|
||||
#endif /* have _SIGNAL_H. */
|
@ -1,5 +1,5 @@
|
||||
/* The proper definitions for Linux's sigaction.
|
||||
Copyright (C) 1993, 94, 95, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
Copyright (C) 1993-1999, 2000 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
|
||||
@ -52,6 +52,7 @@ struct sigaction
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 2 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 4 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
|
@ -93,7 +93,7 @@ typedef struct siginfo
|
||||
/* SIGPOLL. */
|
||||
struct
|
||||
{
|
||||
int si_band; /* Band event for SIGPOLL. */
|
||||
long int si_band; /* Band event for SIGPOLL. */
|
||||
int si_fd;
|
||||
} _sigpoll;
|
||||
} _sifields;
|
||||
|
@ -58,6 +58,7 @@ struct sigaction
|
||||
/* Please note that some Linux kernels versions use different values for these
|
||||
flags which is a bug in those kernel versions. */
|
||||
#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 0x00010000 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 0x00000008 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* Emulate sigstack function using sigaltstack.
|
||||
Copyright (C) 1998 Free Software Foundation, Inc.
|
||||
Copyright (C) 1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||
|
||||
@ -26,7 +26,7 @@
|
||||
#ifdef __NR_sigaltstack
|
||||
int
|
||||
sigstack (ss, oss)
|
||||
const struct sigstack *ss;
|
||||
struct sigstack *ss;
|
||||
struct sigstack *oss;
|
||||
{
|
||||
stack_t sas;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/* The proper definitions for Linux/SPARC sigaction.
|
||||
Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1996, 1997, 1998, 1999, 2000 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
|
||||
@ -53,6 +53,7 @@ struct sigaction
|
||||
|
||||
/* Bits in `sa_flags'. */
|
||||
#define SA_NOCLDSTOP 0x00000008 /* Don't send SIGCHLD when children stop. */
|
||||
#define SA_NOCLDWAIT 0x00000100 /* Don't create zombie on child death. */
|
||||
#define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with
|
||||
three arguments instead of one. */
|
||||
#ifdef __USE_MISC
|
||||
|
293
sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h
Normal file
293
sysdeps/unix/sysv/linux/sparc/sparc64/bits/siginfo.h
Normal file
@ -0,0 +1,293 @@
|
||||
/* siginfo_t, sigevent and constants. Linux/SPARC version.
|
||||
Copyright (C) 1997, 1998, 1999, 2000 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. */
|
||||
|
||||
#if !defined _SIGNAL_H && !defined __need_siginfo_t
|
||||
# error "Never include this file directly. Use <signal.h> instead"
|
||||
#endif
|
||||
|
||||
#include <bits/wordsize.h>
|
||||
|
||||
#if (!defined __have_siginfo_t \
|
||||
&& (defined _SIGNAL_H || defined __need_siginfo_t))
|
||||
# define __have_siginfo_t 1
|
||||
|
||||
/* Type for data associated with a signal. */
|
||||
typedef union sigval
|
||||
{
|
||||
int sival_int;
|
||||
void *sival_ptr;
|
||||
} sigval_t;
|
||||
|
||||
# define __SI_MAX_SIZE 128
|
||||
# if __WORDSIZE == 64
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SI_PAD_SIZE ((__SI_MAX_SIZE / sizeof (int)) - 3)
|
||||
# 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. */
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SI_PAD_SIZE];
|
||||
|
||||
/* kill(). */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
} _kill;
|
||||
|
||||
/* POSIX.1b timers. */
|
||||
struct
|
||||
{
|
||||
unsigned int _timer1;
|
||||
unsigned int _timer2;
|
||||
} _timer;
|
||||
|
||||
/* POSIX.1b signals. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Sending process ID. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
sigval_t si_sigval; /* Signal value. */
|
||||
} _rt;
|
||||
|
||||
/* SIGCHLD. */
|
||||
struct
|
||||
{
|
||||
__pid_t si_pid; /* Which child. */
|
||||
__uid_t si_uid; /* Real user ID of sending process. */
|
||||
int si_status; /* Exit value or signal. */
|
||||
__clock_t si_utime;
|
||||
__clock_t si_stime;
|
||||
} _sigchld;
|
||||
|
||||
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS. */
|
||||
struct
|
||||
{
|
||||
void *si_addr; /* Faulting insn/memory ref. */
|
||||
} _sigfault;
|
||||
|
||||
/* SIGPOLL. */
|
||||
struct
|
||||
{
|
||||
int si_band; /* Band event for SIGPOLL. */
|
||||
int si_fd;
|
||||
} _sigpoll;
|
||||
} _sifields;
|
||||
} siginfo_t;
|
||||
|
||||
|
||||
/* 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_status _sifields._sigchld.si_status
|
||||
# define si_utime _sifields._sigchld.si_utime
|
||||
# define si_stime _sifields._sigchld.si_stime
|
||||
# define si_value _sifields._rt.si_sigval
|
||||
# define si_int _sifields._rt.si_sigval.sival_int
|
||||
# define si_ptr _sifields._rt.si_sigval.sival_ptr
|
||||
# define si_addr _sifields._sigfault.si_addr
|
||||
# define si_band _sifields._sigpoll.si_band
|
||||
# define si_fd _sifields._sigpoll.si_fd
|
||||
|
||||
|
||||
/* Values for `si_code'. Positive values are reserved for kernel-generated
|
||||
signals. */
|
||||
enum
|
||||
{
|
||||
SI_SIGIO = -5, /* Sent by queued SIGIO. */
|
||||
# define SI_SIGIO SI_SIGIO
|
||||
SI_ASYNCIO, /* 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_KERNEL = 0x80 /* Send by kernel. */
|
||||
#define SI_KERNEL SI_KERNEL
|
||||
};
|
||||
|
||||
|
||||
/* `si_code' values for SIGILL signal. */
|
||||
enum
|
||||
{
|
||||
ILL_ILLOPC = 1, /* Illegal opcode. */
|
||||
# define ILL_ILLOPC ILL_ILLOPC
|
||||
ILL_ILLOPN, /* 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
|
||||
};
|
||||
|
||||
# undef __need_siginfo_t
|
||||
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
|
||||
|
||||
|
||||
#if defined _SIGNAL_H && !defined __have_sigevent_t
|
||||
# define __have_sigevent_t 1
|
||||
|
||||
/* Structure to transport application-defined values with signals. */
|
||||
# define __SIGEV_MAX_SIZE 64
|
||||
# if __WORDSIZE == 64
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
|
||||
# else
|
||||
# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
|
||||
# endif
|
||||
|
||||
typedef struct sigevent
|
||||
{
|
||||
sigval_t sigev_value;
|
||||
int sigev_signo;
|
||||
int sigev_notify;
|
||||
|
||||
union
|
||||
{
|
||||
int _pad[__SIGEV_PAD_SIZE];
|
||||
|
||||
struct
|
||||
{
|
||||
void (*_function) (sigval_t); /* Function to start. */
|
||||
void *_attribute; /* Really pthread_attr_t. */
|
||||
} _sigev_thread;
|
||||
} _sigev_un;
|
||||
} sigevent_t;
|
||||
|
||||
/* POSIX names to access some of the members. */
|
||||
# define sigev_notify_function _sigev_un._sigev_thread._function
|
||||
# define sigev_notify_attributes _sigev_un._sigev_thread._attribute
|
||||
|
||||
/* `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
|
||||
};
|
||||
|
||||
#endif /* have _SIGNAL_H. */
|
Loading…
Reference in New Issue
Block a user