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>
|
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.
|
* po/de.po: Update from translation team.
|
||||||
|
|
||||||
1999-12-31 Martin Buchholz <martin@xemacs.org>
|
1999-12-31 Martin Buchholz <martin@xemacs.org>
|
||||||
|
|
|
@ -4,7 +4,9 @@ $CC = "gcc";
|
||||||
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
|
$CFLAGS = "-I. '-D__attribute__(x)=' -D_XOPEN_SOURCE=500";
|
||||||
|
|
||||||
# List of the headers we are testing.
|
# 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",
|
"poll.h", "nl_types.h", "ndbm.h", "mqueue.h", "monetary.h",
|
||||||
"math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h",
|
"math.h", "locale.h", "libgen.h", "langinfo.h", "iso646.h",
|
||||||
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
|
"inttypes.h", "iconv.h", "grp.h", "glob.h", "ftw.h", "fnmatch.h",
|
||||||
|
@ -171,8 +173,12 @@ sub newtoken {
|
||||||
my($token, $nerrors, @allow) = @_;
|
my($token, $nerrors, @allow) = @_;
|
||||||
my($idx);
|
my($idx);
|
||||||
|
|
||||||
|
if ($token =~ /^[0-9_]/ || $iskeyword{$token}) {
|
||||||
|
return $nerrors;
|
||||||
|
}
|
||||||
|
|
||||||
for ($idx = 0; $idx <= $#allow; ++$idx) {
|
for ($idx = 0; $idx <= $#allow; ++$idx) {
|
||||||
if ($token =~ /^[0-9_]/ || $iskeyword{$token} || poorfnmatch ($allow[$idx], $token)) {
|
if (poorfnmatch ($allow[$idx], $token)) {
|
||||||
return $nerrors;
|
return $nerrors;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -308,6 +314,48 @@ while ($#headers >= 0) {
|
||||||
$res = compiletest ($fnamebase, "Testing for constant $const",
|
$res = compiletest ($fnamebase, "Testing for constant $const",
|
||||||
"Constant \"$const\" not available.", $res);
|
"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 "") {
|
if ($value ne "") {
|
||||||
# Generate a program to test for the value of this constant.
|
# Generate a program to test for the value of this constant.
|
||||||
open (TESTFILE, ">$fnamebase.c");
|
open (TESTFILE, ">$fnamebase.c");
|
||||||
|
@ -343,7 +391,38 @@ while ($#headers >= 0) {
|
||||||
|
|
||||||
compiletest ($fnamebase, "Testing for type $type",
|
compiletest ($fnamebase, "Testing for type $type",
|
||||||
"Type \"$type\" not available.", $missing);
|
"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($rettype) = "$2$3";
|
||||||
my($fname) = "$4";
|
my($fname) = "$4";
|
||||||
my($args) = "$5";
|
my($args) = "$5";
|
||||||
|
@ -372,6 +451,68 @@ while ($#headers >= 0) {
|
||||||
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
print TESTFILE "extern __typeof__ (&$fname) foobarbaz;\n";
|
||||||
close (TESTFILE);
|
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",
|
compiletest ($fnamebase, "Test for type of function $fname",
|
||||||
"Function \"$fname\" has incorrect type.", $res);
|
"Function \"$fname\" has incorrect type.", $res);
|
||||||
} elsif (/^macro *([^ ]*)/) {
|
} elsif (/^macro *([^ ]*)/) {
|
||||||
|
|
|
@ -10,4 +10,5 @@ function int dlclose (void*)
|
||||||
function {char*} dlerror (void)
|
function {char*} dlerror (void)
|
||||||
|
|
||||||
allow *_t
|
allow *_t
|
||||||
|
allow RTLD_*
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -17,7 +17,7 @@ macro FTW_DEPTH
|
||||||
macro FTW_CHDIR
|
macro FTW_CHDIR
|
||||||
|
|
||||||
function int ftw (const char*, int (*) (const char *, const struct stat*, int), int)
|
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
|
allow *_t
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
type iconv_t
|
type iconv_t
|
||||||
|
|
||||||
function iconv_t iconv_open (const char*, const char*)
|
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)
|
function int iconv_close (iconv_t)
|
||||||
|
|
||||||
allow *_t
|
allow *_t
|
||||||
|
|
|
@ -6,7 +6,7 @@ constant NL_SETD
|
||||||
constant NL_CAT_LOCALE
|
constant NL_CAT_LOCALE
|
||||||
|
|
||||||
function int catclose (nl_catd)
|
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)
|
function nl_catd catopen (const char*, int)
|
||||||
|
|
||||||
allow *_t
|
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*} lsearch (const void*, void*, size_t*, size_t, int (*)(const void*, const void*))
|
||||||
function void remque (void*)
|
function void remque (void*)
|
||||||
function {void*} tdelete (const void*, void**, int(*)(const void*, const 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*} tsearch (const void*, void**, int(*)(const void*, const void*))
|
||||||
function void twalk (const void*, void (*) (const void*, VISIT, int))
|
function void twalk (const void*, void (*) (const void*, VISIT, int))
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -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_*
|
|
@ -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
|
|
@ -0,0 +1,8 @@
|
||||||
|
constant NULL
|
||||||
|
|
||||||
|
macro offsetof
|
||||||
|
|
||||||
|
type ptrdiff_t
|
||||||
|
type wchar_t
|
||||||
|
type size_t
|
||||||
|
type wint_t
|
|
@ -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.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -21,8 +21,6 @@
|
||||||
#define _DLFCN_H 1
|
#define _DLFCN_H 1
|
||||||
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
#define __need_NULL
|
|
||||||
#include <stddef.h>
|
|
||||||
|
|
||||||
/* Collect various system dependent definitions and declarations. */
|
/* Collect various system dependent definitions and declarations. */
|
||||||
#include <bits/dlfcn.h>
|
#include <bits/dlfcn.h>
|
||||||
|
@ -37,7 +35,7 @@
|
||||||
/* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT
|
/* 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
|
the run-time address of the symbol called NAME in the global scope
|
||||||
is returned. */
|
is returned. */
|
||||||
# define RTLD_DEFAULT NULL
|
# define RTLD_DEFAULT ((void *) 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
/* Convert at most *INBYTESLEFT bytes from *INBUF according to the
|
||||||
code conversion algorithm specified by CD and place up to
|
code conversion algorithm specified by CD and place up to
|
||||||
*OUTBYTESLEFT bytes in buffer at *OUTBUF. */
|
*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,
|
size_t *__restrict __inbytesleft,
|
||||||
char **__restrict __outbuf,
|
char **__restrict __outbuf,
|
||||||
size_t *__restrict __outbytesleft);
|
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -19,7 +19,7 @@
|
||||||
#ifndef _LIBGEN_H
|
#ifndef _LIBGEN_H
|
||||||
#define _LIBGEN_H 1
|
#define _LIBGEN_H 1
|
||||||
|
|
||||||
#include <sys/cdefs.h>
|
#include <features.h>
|
||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Declarations for System V style searching functions.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -70,7 +70,7 @@ ACTION;
|
||||||
typedef struct entry
|
typedef struct entry
|
||||||
{
|
{
|
||||||
char *key;
|
char *key;
|
||||||
char *data;
|
void *data;
|
||||||
}
|
}
|
||||||
ENTRY;
|
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
|
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
|
modify it under the terms of the GNU Library General Public License as
|
||||||
|
@ -49,6 +49,9 @@ extern "C" {
|
||||||
#ifndef __size_t
|
#ifndef __size_t
|
||||||
# if defined __GNUC__ && __GNUC__ >= 2
|
# if defined __GNUC__ && __GNUC__ >= 2
|
||||||
typedef __SIZE_TYPE__ __size_t;
|
typedef __SIZE_TYPE__ __size_t;
|
||||||
|
# ifdef _XOPEN_SOURCE
|
||||||
|
typedef __SIZE_TYPE__ size_t;
|
||||||
|
# endif
|
||||||
# else
|
# else
|
||||||
/* This is a guess. */
|
/* This is a guess. */
|
||||||
typedef unsigned long int __size_t;
|
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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,
|
/* 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. */
|
which is not necessarily the same as the hardware page size. */
|
||||||
extern int __getpagesize (void) __THROW;
|
extern int __getpagesize (void) __attribute__ ((__const__)) __THROW;
|
||||||
extern int getpagesize (void) __THROW;
|
extern int getpagesize (void) __attribute__ ((__const__)) __THROW;
|
||||||
|
|
||||||
|
|
||||||
/* Truncate FILE to LENGTH bytes. */
|
/* Truncate FILE to LENGTH bytes. */
|
||||||
|
|
|
@ -45,4 +45,8 @@ libc {
|
||||||
# LinuxThreads needs this entry point.
|
# LinuxThreads needs this entry point.
|
||||||
__sigsuspend;
|
__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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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/types.h>
|
||||||
#include <bits/signum.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;
|
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 */
|
#endif /* Unix98 */
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,6 +146,9 @@ extern int sigpause (int __mask) __THROW;
|
||||||
# define sigpause(mask) __sigpause ((mask), 0)
|
# define sigpause(mask) __sigpause ((mask), 0)
|
||||||
#else
|
#else
|
||||||
# ifdef __USE_XOPEN
|
# 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. */
|
/* Remove a signal from the signal mask and suspend the process. */
|
||||||
# define sigpause(sig) __sigpause ((sig), 1)
|
# define sigpause(sig) __sigpause ((sig), 1)
|
||||||
# endif
|
# endif
|
||||||
|
@ -309,12 +318,14 @@ extern int sigreturn (struct sigcontext *__scp) __THROW;
|
||||||
extern int siginterrupt (int __sig, int __interrupt) __THROW;
|
extern int siginterrupt (int __sig, int __interrupt) __THROW;
|
||||||
|
|
||||||
# include <bits/sigstack.h>
|
# include <bits/sigstack.h>
|
||||||
|
# ifdef __USE_XOPEN
|
||||||
|
# include <ucontext.h>
|
||||||
|
# endif
|
||||||
|
|
||||||
/* Run signals handlers on the stack specified by SS (if not NULL).
|
/* 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.
|
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. */
|
This interface is obsolete and on many platform not implemented. */
|
||||||
extern int sigstack (__const struct sigstack *__ss,
|
extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) __THROW;
|
||||||
struct sigstack *__oss) __THROW;
|
|
||||||
|
|
||||||
/* Alternate signal handler stack interface.
|
/* Alternate signal handler stack interface.
|
||||||
This interface should always be preferred over `sigstack'. */
|
This interface should always be preferred over `sigstack'. */
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Message display handling.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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)
|
stub_warning (__sigpause)
|
||||||
|
|
||||||
|
|
||||||
int __default_sigpause __P ((int mask));
|
|
||||||
int
|
int
|
||||||
__default_sigpause (mask)
|
__default_sigpause (int mask)
|
||||||
int mask;
|
|
||||||
{
|
{
|
||||||
__set_errno (ENOSYS);
|
__set_errno (ENOSYS);
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -41,3 +39,11 @@ __default_sigpause (mask)
|
||||||
weak_alias (__default_sigpause, sigpause)
|
weak_alias (__default_sigpause, sigpause)
|
||||||
stub_warning (sigpause)
|
stub_warning (sigpause)
|
||||||
#include <stub-tag.h>
|
#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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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. */
|
If OSS is not NULL, it is filled in with the old signal stack status. */
|
||||||
int
|
int
|
||||||
sigstack (ss, oss)
|
sigstack (ss, oss)
|
||||||
const struct sigstack *ss;
|
struct sigstack *ss;
|
||||||
struct sigstack *oss;
|
struct sigstack *oss;
|
||||||
{
|
{
|
||||||
__set_errno (ENOSYS);
|
__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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
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
|
/* We have to provide a default version of this function since the
|
||||||
standards demand it. The version which is a bit more reasonable is
|
standards demand it. The version which is a bit more reasonable is
|
||||||
the BSD version. So make this the default. */
|
the BSD version. So make this the default. */
|
||||||
int __default_sigpause __P ((int mask));
|
|
||||||
int
|
int
|
||||||
__default_sigpause (mask)
|
__default_sigpause (int mask)
|
||||||
int mask;
|
|
||||||
{
|
{
|
||||||
return __sigpause (mask, 0);
|
return __sigpause (mask, 0);
|
||||||
}
|
}
|
||||||
#undef sigpause
|
#undef sigpause
|
||||||
weak_alias (__default_sigpause, 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.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -49,6 +49,7 @@ struct sigaction
|
||||||
|
|
||||||
/* Bits in `sa_flags'. */
|
/* Bits in `sa_flags'. */
|
||||||
#define SA_NOCLDSTOP 0x00000004 /* Don't send SIGCHLD when children stop. */
|
#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
|
#define SA_SIGINFO 0x00000040 /* Invoke signal-catching function with
|
||||||
three arguments instead of one. */
|
three arguments instead of one. */
|
||||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||||
|
|
|
@ -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.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -52,6 +52,7 @@ struct sigaction
|
||||||
|
|
||||||
/* Bits in `sa_flags'. */
|
/* Bits in `sa_flags'. */
|
||||||
#define SA_NOCLDSTOP 1 /* Don't send SIGCHLD when children stop. */
|
#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
|
#define SA_SIGINFO 4 /* Invoke signal-catching function with
|
||||||
three arguments instead of one. */
|
three arguments instead of one. */
|
||||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||||
|
|
|
@ -93,7 +93,7 @@ typedef struct siginfo
|
||||||
/* SIGPOLL. */
|
/* SIGPOLL. */
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
int si_band; /* Band event for SIGPOLL. */
|
long int si_band; /* Band event for SIGPOLL. */
|
||||||
int si_fd;
|
int si_fd;
|
||||||
} _sigpoll;
|
} _sigpoll;
|
||||||
} _sifields;
|
} _sifields;
|
||||||
|
|
|
@ -58,6 +58,7 @@ struct sigaction
|
||||||
/* Please note that some Linux kernels versions use different values for these
|
/* Please note that some Linux kernels versions use different values for these
|
||||||
flags which is a bug in those kernel versions. */
|
flags which is a bug in those kernel versions. */
|
||||||
#define SA_NOCLDSTOP 0x00000001 /* Don't send SIGCHLD when children stop. */
|
#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
|
#define SA_SIGINFO 0x00000008 /* Invoke signal-catching function with
|
||||||
three arguments instead of one. */
|
three arguments instead of one. */
|
||||||
#if defined __USE_UNIX98 || defined __USE_MISC
|
#if defined __USE_UNIX98 || defined __USE_MISC
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* Emulate sigstack function using sigaltstack.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
||||||
#ifdef __NR_sigaltstack
|
#ifdef __NR_sigaltstack
|
||||||
int
|
int
|
||||||
sigstack (ss, oss)
|
sigstack (ss, oss)
|
||||||
const struct sigstack *ss;
|
struct sigstack *ss;
|
||||||
struct sigstack *oss;
|
struct sigstack *oss;
|
||||||
{
|
{
|
||||||
stack_t sas;
|
stack_t sas;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* The proper definitions for Linux/SPARC sigaction.
|
/* 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.
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
The GNU C Library is free software; you can redistribute it and/or
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
@ -53,6 +53,7 @@ struct sigaction
|
||||||
|
|
||||||
/* Bits in `sa_flags'. */
|
/* Bits in `sa_flags'. */
|
||||||
#define SA_NOCLDSTOP 0x00000008 /* Don't send SIGCHLD when children stop. */
|
#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
|
#define SA_SIGINFO 0x00000200 /* Invoke signal-catching function with
|
||||||
three arguments instead of one. */
|
three arguments instead of one. */
|
||||||
#ifdef __USE_MISC
|
#ifdef __USE_MISC
|
||||||
|
|
|
@ -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