diff options
Diffstat (limited to 'sysdeps')
54 files changed, 529 insertions, 181 deletions
diff --git a/sysdeps/alpha/Makefile b/sysdeps/alpha/Makefile index 841dc980a8..5fe8e4ee7f 100644 --- a/sysdeps/alpha/Makefile +++ b/sysdeps/alpha/Makefile @@ -44,3 +44,7 @@ sysdep-CFLAGS += -mno-fp-regs endif divrem := divl divq reml remq + +# For now, build everything with full IEEE math support. +# TODO: build separate libm and libm-ieee. +sysdep-CFLAGS += -mieee diff --git a/sysdeps/alpha/fpu/fpu_control.h b/sysdeps/alpha/fpu/fpu_control.h index 219ea55f24..bcf73e857e 100644 --- a/sysdeps/alpha/fpu/fpu_control.h +++ b/sysdeps/alpha/fpu/fpu_control.h @@ -1,23 +1,22 @@ -/* FPU control word bits. Alpha version. -Copyright (C) 1996 Free Software Foundation, Inc. -Contributed by Olaf Flebbe. - -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., 675 Mass Ave, -Cambridge, MA 02139, USA. */ +/* FPU control word bits. Alpha-maped-to-Intel version. + Copyright (C) 1996 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Olaf Flebbe. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ #ifndef _ALPHA_FPU_CONTROL_H #define _ALPHA_FPU_CONTROL_H @@ -91,11 +90,12 @@ Cambridge, MA 02139, USA. */ qualifier. By setting the dynamic rounding mode to +infinity, one can use /d to get round to +infinity with no extra overhead (so long as the default isn't changed, of course...) - - exceptions on overflow, zero divide and NaN */ -#define _FPU_DEFAULT 0x1f72 + - no exceptions enabled. */ + +#define _FPU_DEFAULT 0x137f /* IEEE: same as above, but exceptions */ -#define _FPU_IEEE 0x1f7f +#define _FPU_IEEE 0x137f /* Type of the control word. */ typedef unsigned int fpu_control_t; diff --git a/sysdeps/generic/socketbits.h b/sysdeps/generic/socketbits.h index 5d85a8e079..7b951922c9 100644 --- a/sysdeps/generic/socketbits.h +++ b/sysdeps/generic/socketbits.h @@ -27,6 +27,8 @@ __BEGIN_DECLS #define __need_size_t #include <stddef.h> +/* Type for length arguments in socket calls. */ +typedef unsigned int socklen_t; /* Types of sockets. */ enum __socket_type @@ -143,13 +145,15 @@ enum struct msghdr { __ptr_t msg_name; /* Address to send to/receive from. */ - size_t msg_namelen; /* Length of address data. */ + socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ - size_t msg_iovlen; /* Number of elements in the vector. */ + int msg_iovlen; /* Number of elements in the vector. */ __ptr_t msg_accrights; /* Access rights information. */ - size_t msg_accrightslen; /* Length of access rights information. */ + socklen_t msg_accrightslen; /* Length of access rights information. */ + + int msg_flags; /* Flags in received message. */ }; diff --git a/sysdeps/i386/fpu/__math.h b/sysdeps/i386/fpu/__math.h index 78b2467b65..4fb0af7965 100644 --- a/sysdeps/i386/fpu/__math.h +++ b/sysdeps/i386/fpu/__math.h @@ -380,13 +380,17 @@ hypot (double __x, double __y) return sqrt (__x * __x + __y * __y); } +/* We cannot rely on M_SQRT being defined. So we do it for ourself + here. */ +# define __M_SQRT2 _Mldbl(1.41421356237309504880) /* sqrt(2) */ + __MATH_INLINE double log1p (double __x); __MATH_INLINE double log1p (double __x) { register double __value; - if (fabs (__x) >= 1.0 - 0.5 * M_SQRT2) + if (fabs (__x) >= 1.0 - 0.5 * __M_SQRT2) __value = log (1.0 + __x); else __asm __volatile__ diff --git a/sysdeps/libm-i387/s_asinh.S b/sysdeps/libm-i387/s_asinh.S index a71d0b66f4..a4c52cb67c 100644 --- a/sysdeps/libm-i387/s_asinh.S +++ b/sysdeps/libm-i387/s_asinh.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -49,6 +49,10 @@ ENTRY(__asinh) movl $0x7fffffff, %eax andl %ecx, %eax andl $0x80000000, %ecx + movl %eax, %edx + orl $0x800fffff, %edx + incl %edx + jz 7f // x in ħInf or NaN xorl %ecx, 8(%esp) fldl 4(%esp) // |x| cmpl $0x3e300000, %eax @@ -83,6 +87,9 @@ ENTRY(__asinh) fchs 4: ret +7: fldl 4(%esp) + ret + 6: faddl MO(one) fyl2x jecxz 4f diff --git a/sysdeps/libm-i387/s_asinhf.S b/sysdeps/libm-i387/s_asinhf.S index f47bc9e0ac..6369e19ac6 100644 --- a/sysdeps/libm-i387/s_asinhf.S +++ b/sysdeps/libm-i387/s_asinhf.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -49,6 +49,10 @@ ENTRY(__asinhf) movl $0x7fffffff, %eax andl %ecx, %eax andl $0x80000000, %ecx + movl %eax, %edx + orl $0x807fffff, %edx + incl %edx + jz 7f // x in ħInf or NaN xorl %ecx, 8(%esp) flds 4(%esp) // |x| cmpl $0x38000000, %eax @@ -83,6 +87,9 @@ ENTRY(__asinhf) fchs 4: ret +7: flds 4(%esp) + ret + 6: faddl MO(one) fyl2x jecxz 4f diff --git a/sysdeps/libm-i387/s_asinhl.S b/sysdeps/libm-i387/s_asinhl.S index e112244908..62e29bc58e 100644 --- a/sysdeps/libm-i387/s_asinhl.S +++ b/sysdeps/libm-i387/s_asinhl.S @@ -1,5 +1,5 @@ /* ix87 specific implementation of arcsinh. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996. @@ -56,6 +56,10 @@ ENTRY(__asinhl) movl $0x7fff, %eax andl %ecx, %eax andl $0x8000, %ecx + movl %eax, %edx + orl $0xffff8000, %edx + incl %edx + jz 7f // x in ħInf or NaN xorl %ecx, 12(%esp) fldt 4(%esp) // |x| cmpl $0x3fde, %eax @@ -90,6 +94,9 @@ ENTRY(__asinhl) fchs 4: ret +7: fldt 4(%esp) + ret + 6: faddl MO(one) fyl2x jecxz 4f diff --git a/sysdeps/libm-ieee754/k_standard.c b/sysdeps/libm-ieee754/k_standard.c index ada1df1a99..4dd2b11221 100644 --- a/sysdeps/libm-ieee754/k_standard.c +++ b/sysdeps/libm-ieee754/k_standard.c @@ -117,7 +117,7 @@ static double zero = 0.0; /* used as const */ exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if(_LIB_VERSION == _SVID_) { (void) WRITE2("acos: DOMAIN error\n", 19); } @@ -137,7 +137,7 @@ static double zero = 0.0; /* used as const */ exc.retval = NAN; if(_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if(_LIB_VERSION == _SVID_) { (void) WRITE2("asin: DOMAIN error\n", 19); } @@ -157,7 +157,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE; if(_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if(_LIB_VERSION == _SVID_) { (void) WRITE2("atan2: DOMAIN error\n", 20); } @@ -177,7 +177,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -194,7 +194,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -211,7 +211,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -225,7 +225,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -241,7 +241,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("y0: DOMAIN error\n", 17); } @@ -260,7 +260,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("y0: DOMAIN error\n", 17); } @@ -279,7 +279,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("y1: DOMAIN error\n", 17); } @@ -298,7 +298,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("y1: DOMAIN error\n", 17); } @@ -317,7 +317,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("yn: DOMAIN error\n", 17); } @@ -336,7 +336,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("yn: DOMAIN error\n", 17); } @@ -356,7 +356,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -373,7 +373,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("lgamma: SING error\n", 19); } @@ -392,7 +392,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("log: SING error\n", 16); } @@ -411,7 +411,7 @@ static double zero = 0.0; /* used as const */ exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("log: DOMAIN error\n", 18); } @@ -431,7 +431,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("log10: SING error\n", 18); } @@ -451,7 +451,7 @@ static double zero = 0.0; /* used as const */ exc.retval = NAN; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("log10: DOMAIN error\n", 20); } @@ -467,7 +467,7 @@ static double zero = 0.0; /* used as const */ exc.name = type < 100 ? "pow" : (type < 200 ? "powf" : "powl"); exc.retval = zero; if (_LIB_VERSION != _SVID_) exc.retval = 1.0; - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { (void) WRITE2("pow(0,0): DOMAIN error\n", 23); __set_errno (EDOM); } @@ -489,7 +489,7 @@ static double zero = 0.0; /* used as const */ } if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -502,7 +502,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -518,7 +518,7 @@ static double zero = 0.0; /* used as const */ exc.retval = -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("pow(0,neg): DOMAIN error\n", 25); } @@ -537,7 +537,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("pow(0,neg): DOMAIN error\n", 25); } @@ -556,7 +556,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; /* X/Open allow NaN */ if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("neg**non-integral: DOMAIN error\n", 32); } @@ -576,7 +576,7 @@ static double zero = 0.0; /* used as const */ exc.retval = ( (x>zero) ? HUGE_VAL : -HUGE_VAL); if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -593,7 +593,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("sqrt: DOMAIN error\n", 19); } @@ -613,7 +613,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("fmod: DOMAIN error\n", 20); } @@ -631,7 +631,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("remainder: DOMAIN error\n", 24); } @@ -648,7 +648,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("acosh: DOMAIN error\n", 20); } @@ -665,7 +665,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero/zero; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("atanh: DOMAIN error\n", 20); } @@ -682,7 +682,7 @@ static double zero = 0.0; /* used as const */ exc.retval = x/zero; /* sign(x)*inf */ if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("atanh: SING error\n", 18); } @@ -699,7 +699,7 @@ static double zero = 0.0; /* used as const */ exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -713,7 +713,7 @@ static double zero = 0.0; /* used as const */ exc.retval = __copysign(zero,x); if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -726,7 +726,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -743,7 +743,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -760,7 +760,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -777,7 +777,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -794,7 +794,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -811,7 +811,7 @@ static double zero = 0.0; /* used as const */ exc.retval = zero; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2(exc.name, 2); (void) WRITE2(": TLOSS error\n", 14); @@ -832,7 +832,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (ERANGE); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (ERANGE); } break; @@ -849,7 +849,7 @@ static double zero = 0.0; /* used as const */ exc.retval = HUGE_VAL; if (_LIB_VERSION == _POSIX_) __set_errno (EDOM); - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { if (_LIB_VERSION == _SVID_) { (void) WRITE2("gamma: SING error\n", 18); } @@ -866,7 +866,7 @@ static double zero = 0.0; /* used as const */ exc.retval = x; if (_LIB_VERSION == _IEEE_ || _LIB_VERSION == _POSIX_) exc.retval = 1.0; - else if (!__matherr(&exc)) { + else if (!matherr(&exc)) { __set_errno (EDOM); } break; diff --git a/sysdeps/mach/hurd/mmap.c b/sysdeps/mach/hurd/mmap.c index 8753fd644b..dc4b024bb8 100644 --- a/sysdeps/mach/hurd/mmap.c +++ b/sysdeps/mach/hurd/mmap.c @@ -1,20 +1,20 @@ -/* Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. +/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is 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. + 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., 675 Mass Ave, -Cambridge, MA 02139, USA. */ + 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. */ #include <sys/types.h> #include <sys/mman.h> @@ -98,7 +98,7 @@ __mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) __mach_port_deallocate (__mach_task_self (), memobj); } else if (wobj == MACH_PORT_NULL && /* Not writable by mapping. */ - (flags & (MAP_COPY|MAP_PRIVATE))) + !(flags & MAP_SHARED)) /* The file can only be mapped for reading. Since we are making a private mapping, we will never try to write the object anyway, so we don't care. */ @@ -106,8 +106,7 @@ __mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) else { __mach_port_deallocate (__mach_task_self (), wobj); - return ((caddr_t) (long int) - __hurd_fail (EGRATUITOUS)); /* XXX */ + return (caddr_t) (long int) __hurd_fail (EACCES); } break; } @@ -154,4 +153,3 @@ __mmap (caddr_t addr, size_t len, int prot, int flags, int fd, off_t offset) } weak_alias (__mmap, mmap) - diff --git a/sysdeps/stub/e_acoshl.c b/sysdeps/stub/e_acoshl.c index 6ec9a15d38..3383c14872 100644 --- a/sysdeps/stub/e_acoshl.c +++ b/sysdeps/stub/e_acoshl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_acoshl (long double x) { fputs ("__ieee754_acoshl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_acosl.c b/sysdeps/stub/e_acosl.c index 5c10b526cc..af1e6261c3 100644 --- a/sysdeps/stub/e_acosl.c +++ b/sysdeps/stub/e_acosl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_acosl (long double x) { fputs ("__ieee754_acosl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_asinl.c b/sysdeps/stub/e_asinl.c index f9260913e8..ce8c8cdaea 100644 --- a/sysdeps/stub/e_asinl.c +++ b/sysdeps/stub/e_asinl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_asinl (long double x) { fputs ("__ieee754_asinl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_atan2l.c b/sysdeps/stub/e_atan2l.c new file mode 100644 index 0000000000..6c500d4c8a --- /dev/null +++ b/sysdeps/stub/e_atan2l.c @@ -0,0 +1,13 @@ +#include <math.h> +#include <stdio.h> +#include <errno.h> + +long double +__ieee754_atan2l (long double x, long double y) +{ + fputs ("__ieee754_atan2l not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} + +stub_warning (__ieee754_atan2l) diff --git a/sysdeps/stub/e_expl.c b/sysdeps/stub/e_expl.c index 246b5ae83f..4ea8c79597 100644 --- a/sysdeps/stub/e_expl.c +++ b/sysdeps/stub/e_expl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_expl (long double x) { fputs ("__ieee754_expl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_fmodl.c b/sysdeps/stub/e_fmodl.c index b47912581b..25cc114808 100644 --- a/sysdeps/stub/e_fmodl.c +++ b/sysdeps/stub/e_fmodl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_fmodl (long double x, long double y) { fputs ("__ieee754_fmodl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_j0l.c b/sysdeps/stub/e_j0l.c index c16e8a8a9d..ecb8a8ed16 100644 --- a/sysdeps/stub/e_j0l.c +++ b/sysdeps/stub/e_j0l.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_j0l (long double x) { fputs ("__ieee754_j0l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } @@ -14,6 +16,7 @@ long double __ieee754_y0l (long double x) { fputs ("__ieee754_y0l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_j1l.c b/sysdeps/stub/e_j1l.c index 0a781e5cc1..24655700e3 100644 --- a/sysdeps/stub/e_j1l.c +++ b/sysdeps/stub/e_j1l.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_j1l (long double x) { fputs ("__ieee754_j1l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } @@ -14,6 +16,7 @@ long double __ieee754_y1l (long double x) { fputs ("__ieee754_y1l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_jnl.c b/sysdeps/stub/e_jnl.c index 86ff03b031..8ced34d461 100644 --- a/sysdeps/stub/e_jnl.c +++ b/sysdeps/stub/e_jnl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_jnl (int n, long double x) { fputs ("__ieee754_jnl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } @@ -14,6 +16,7 @@ long double __ieee754_ynl (int n, long double x) { fputs ("__ieee754_ynl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_lgammal_r.c b/sysdeps/stub/e_lgammal_r.c index 015511818c..d7fbbca4df 100644 --- a/sysdeps/stub/e_lgammal_r.c +++ b/sysdeps/stub/e_lgammal_r.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_lgammal_r (long double x, int *signgamp) { fputs ("__ieee754_lgammal_r not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_log10l.c b/sysdeps/stub/e_log10l.c index 0e8cdcaaa9..a414d04d74 100644 --- a/sysdeps/stub/e_log10l.c +++ b/sysdeps/stub/e_log10l.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_log10l (long double x) { fputs ("__ieee754_log10l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_logl.c b/sysdeps/stub/e_logl.c index b8357543b0..45248a375a 100644 --- a/sysdeps/stub/e_logl.c +++ b/sysdeps/stub/e_logl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_logl (long double x) { fputs ("__ieee754_logl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_powl.c b/sysdeps/stub/e_powl.c index 2fa7862ea5..611dfb583c 100644 --- a/sysdeps/stub/e_powl.c +++ b/sysdeps/stub/e_powl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_powl (long double x, long double y) { fputs ("__ieee754_powl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_rem_pio2l.c b/sysdeps/stub/e_rem_pio2l.c index 0a9ac79917..eec7d793bb 100644 --- a/sysdeps/stub/e_rem_pio2l.c +++ b/sysdeps/stub/e_rem_pio2l.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_rem_pio2l (long double x, long double *y) { fputs ("__ieee754_rem_pio2l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/e_sqrtl.c b/sysdeps/stub/e_sqrtl.c index 88a7668330..c583a27673 100644 --- a/sysdeps/stub/e_sqrtl.c +++ b/sysdeps/stub/e_sqrtl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __ieee754_sqrtl (long double x) { fputs ("__ieee754_sqrtl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/k_cosl.c b/sysdeps/stub/k_cosl.c index 3e6c9688f0..10016ab72e 100644 --- a/sysdeps/stub/k_cosl.c +++ b/sysdeps/stub/k_cosl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __kernel_cosl (long double x, long double y) { fputs ("__kernel_cosl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/k_rem_pio2l.c b/sysdeps/stub/k_rem_pio2l.c index a51c44546b..01bf158249 100644 --- a/sysdeps/stub/k_rem_pio2l.c +++ b/sysdeps/stub/k_rem_pio2l.c @@ -1,12 +1,14 @@ #include <math.h> #include <math_private.h> #include <stdio.h> +#include <errno.h> int __kernel_rem_pio2l (long double *x, long double *y, int e0, int nx, int prec, const int *ipio2) { fputs ("__kernel_rem_pio2l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/k_sinl.c b/sysdeps/stub/k_sinl.c index 2057bf8bff..40cf22a596 100644 --- a/sysdeps/stub/k_sinl.c +++ b/sysdeps/stub/k_sinl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __kernel_sinl (long double x, long double y) { fputs ("__kernel_sinl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } diff --git a/sysdeps/stub/libc-lock.h b/sysdeps/stub/libc-lock.h index 724b6e59d4..9efd799dab 100644 --- a/sysdeps/stub/libc-lock.h +++ b/sysdeps/stub/libc-lock.h @@ -17,8 +17,8 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifndef _LIBC_LOCK_H -#define _LIBC_LOCK_H 1 +#ifndef _BITS_LIBC_LOCK_H +#define _BITS_LIBC_LOCK_H 1 /* Define a lock variable NAME with storage class CLASS. The lock must be @@ -70,6 +70,20 @@ /* Unlock the recursive named lock variable. */ #define __libc_lock_unlock_recursive(NAME) + +/* Define once control variable. */ +#define __libc_once_define(NAME) int NAME = 0 + +/* Call handler iff the first call. */ +#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \ + do { \ + if ((ONCE_CONTROL) == 0) { \ + INIT_FUNCTION (); \ + (ONCE_CONTROL) = 1; \ + } \ + } while (0) + + /* Start critical region with cleanup. */ #define __libc_cleanup_region_start(FCT, ARG) @@ -80,4 +94,16 @@ /* We need portable names for some of the functions. */ #define __libc_mutex_unlock -#endif /* libc-lock.h */ +/* Type for key of thread specific data. */ +typedef int __libc_key_t; + +/* Create key for thread specific data. */ +#define __libc_key_create(KEY,DEST) -1 + +/* Set thread-specific data associated with KEY to VAL. */ +#define __libc_setspecific(KEY,VAL) -1 + +/* Get thread-specific data associated with KEY. */ +#define __libc_getspecific(KEY) 0 + +#endif /* bits/libc-lock.h */ diff --git a/sysdeps/stub/s_atanl.c b/sysdeps/stub/s_atanl.c index 38dd6f5991..2957d702d5 100644 --- a/sysdeps/stub/s_atanl.c +++ b/sysdeps/stub/s_atanl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __atanl (long double x) { fputs ("__atanl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } weak_alias (__atanl, atanl) diff --git a/sysdeps/stub/s_erfl.c b/sysdeps/stub/s_erfl.c index e01bad206d..7ae25d6252 100644 --- a/sysdeps/stub/s_erfl.c +++ b/sysdeps/stub/s_erfl.c @@ -1,12 +1,25 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __erfl (long double x) { fputs ("__erfl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } weak_alias (__erfl, erfl) stub_warning (erfl) + +long double +__erfcl (long double x) +{ + fputs ("__erfcl not implemented\n", stderr); + __set_errno (ENOSYS); + return 0.0; +} +weak_alias (__erfcl, erfcl) + +stub_warning (erfcl) diff --git a/sysdeps/stub/s_expm1l.c b/sysdeps/stub/s_expm1l.c index fb8bda5eca..38798812ff 100644 --- a/sysdeps/stub/s_expm1l.c +++ b/sysdeps/stub/s_expm1l.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __expm1l (long double x) { fputs ("__expm1l not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } weak_alias (__expm1l, expm1l) diff --git a/sysdeps/stub/s_log1pl.c b/sysdeps/stub/s_log1pl.c index 07282482f3..9e51ce2d43 100644 --- a/sysdeps/stub/s_log1pl.c +++ b/sysdeps/stub/s_log1pl.c @@ -1,10 +1,12 @@ #include <math.h> #include <stdio.h> +#include <errno.h> long double __log1pl (long double x) { fputs ("__log1pl not implemented\n", stderr); + __set_errno (ENOSYS); return 0.0; } weak_alias (__log1pl, log1pl) diff --git a/sysdeps/unix/alpha/sysdep.S b/sysdeps/unix/alpha/sysdep.S index 9df313422c..fc5cc0436b 100644 --- a/sysdeps/unix/alpha/sysdep.S +++ b/sysdeps/unix/alpha/sysdep.S @@ -38,7 +38,7 @@ __errno = errno .globl __syscall_error .ent __syscall_error __syscall_error: - ldgp gp, 0(t12) + ldgp gp, 0(pv) lda sp, -16(sp) .frame sp, 16, ra, 0 stq ra, 0(sp) @@ -53,7 +53,7 @@ __syscall_error: jsr ra, __errno_location /* Store the error value. */ - ldl t0, 8(sp) + ldq t0, 8(sp) stl t0, 0(v0) /* And kick back a -1. */ diff --git a/sysdeps/unix/getlogin.c b/sysdeps/unix/getlogin.c index 6e8a9a2a87..84b7dd8276 100644 --- a/sysdeps/unix/getlogin.c +++ b/sysdeps/unix/getlogin.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -46,7 +46,7 @@ getlogin (void) thing to do. Note that ttyname(open("/dev/tty")) on those systems returns /dev/tty, so that is not a possible solution for getlogin(). */ - if (__ttyname_r (0, real_tty_path, sizeof (tty_pathname)) < 0) + if (__ttyname_r (0, real_tty_path, sizeof (tty_pathname)) != 0) return NULL; real_tty_path += 5; /* Remove "/dev/". */ diff --git a/sysdeps/unix/getlogin_r.c b/sysdeps/unix/getlogin_r.c index 75f17cb86f..259879f953 100644 --- a/sysdeps/unix/getlogin_r.c +++ b/sysdeps/unix/getlogin_r.c @@ -1,5 +1,5 @@ /* Reentrant function to return the current login name. Unix version. - Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc. + Copyright (C) 1991, 1992, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -50,7 +50,7 @@ getlogin_r (name, name_len) err = errno; (void) close (d); - if (result < 0) + if (result != 0) { __set_errno (err); return err; diff --git a/sysdeps/unix/sysv/linux/Dist b/sysdeps/unix/sysv/linux/Dist index fc403871f3..1e30ac58fd 100644 --- a/sysdeps/unix/sysv/linux/Dist +++ b/sysdeps/unix/sysv/linux/Dist @@ -26,6 +26,7 @@ netipx/ipx.h nfs/nfs.h sys/acct.h sys/debugreg.h +sys/fsuid.h sys/io.h sys/kd.h sys/kdaemon.h diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 2827113d68..339862d356 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -11,7 +11,7 @@ sysdep_headers += sys/mount.h sys/acct.h sys/sysctl.h sys/mtio.h \ sys/module.h sys/io.h sys/klog.h sys/kdaemon.h \ sys/user.h syscall-list.h sys/sysmacros.h sys/procfs.h \ sys/debugreg.h sys/kd.h sys/soundcard.h sys/vt.h \ - sys/quota.h + sys/quota.h sys/fsuid.h # Generate the list of SYS_* macros for the system calls (__NR_* macros). $(objpfx)syscall-%.h $(objpfx)syscall-%.d: ../sysdeps/unix/sysv/linux/sys/syscall.h @@ -55,7 +55,8 @@ endif ifeq ($(subdir),inet) sysdep_headers += netinet/in_systm.h netinet/udp.h \ netinet/if_fddi.h netinet/if_tr.h netinet/igmp.h \ - netinet/ip_fw.h netinet/ip_icmp.h sys/socketvar.h + netinet/ip_fw.h netinet/ip_icmp.h netipx/ipx.h \ + sys/socketvar.h endif # Don't compile the ctype glue code, since there is no old non-GNU C library. diff --git a/sysdeps/unix/sysv/linux/alpha/brk.S b/sysdeps/unix/sysv/linux/alpha/brk.S index 74fef64f64..be0539b475 100644 --- a/sysdeps/unix/sysv/linux/alpha/brk.S +++ b/sysdeps/unix/sysv/linux/alpha/brk.S @@ -73,8 +73,9 @@ $ok: stq a0, __curbrk /* What a horrible way to die. */ $err0: ldi v0, ENOMEM -$err1: addq sp, 8, sp - jmp zero, __syscall_error +$err1: lda pv, __syscall_error + addq sp, 8, sp + jmp zero, (pv), __syscall_error END(__brk) diff --git a/sysdeps/unix/sysv/linux/alpha/gnu/types.h b/sysdeps/unix/sysv/linux/alpha/gnu/types.h index 5c1e407423..2af77f70cf 100644 --- a/sysdeps/unix/sysv/linux/alpha/gnu/types.h +++ b/sysdeps/unix/sysv/linux/alpha/gnu/types.h @@ -66,7 +66,12 @@ typedef long int __swblk_t; /* Type of a swap block maybe? */ typedef long int __clock_t; /* One element in the file descriptor mask array. */ -typedef unsigned int __fd_mask; +typedef unsigned long int __fd_mask; + +/* Due to incaution, we may have gotten these from a kernel header file. */ +#undef __FD_SETSIZE +#undef __NFDBITS +#undef __FDMASK /* Number of descriptors that can fit in an `fd_set'. */ #define __FD_SETSIZE 1024 diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S index dbc25bcbf3..193baf7491 100644 --- a/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S +++ b/sysdeps/unix/sysv/linux/alpha/ieee_get_fp_control.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc. +/* Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by David Mosberger <davidm@azstarnet.com>, 1995. @@ -41,18 +41,20 @@ LEAF(__ieee_get_fp_control, 16) ldi a0, GSI_IEEE_FP_CONTROL ldi v0, __NR_osf_getsysinfo call_pal PAL_callsys - bne a3, error + bne a3, $error ldq v0, 0(sp) lda sp, 16(sp) ret -error: lda sp, 16(sp) +$error: lda sp, 16(sp) #ifndef PROF br gp, 1f 1: ldgp gp, 0(gp) #endif - jmp zero, __syscall_error + lda pv, __syscall_error + lda sp, 16(sp) + jmp zero, (pv), __syscall_error END(__ieee_get_fp_control) diff --git a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S index d2d2add56c..be8caf632d 100644 --- a/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S +++ b/sysdeps/unix/sysv/linux/alpha/ieee_set_fp_control.S @@ -43,15 +43,17 @@ LEAF(__ieee_set_fp_control, 16) lda sp, 16(sp) - bne a3, error + bne a3, $error ret -error: +$error: #ifndef PROF br gp, 1f 1: ldgp gp, 0(gp) #endif - jmp zero, __syscall_error + lda pv, __syscall_error + lda sp, 16(sp) + jmp zero, (pv), __syscall_error END(__ieee_set_fp_control) diff --git a/sysdeps/unix/sysv/linux/alpha/ioperm.c b/sysdeps/unix/sysv/linux/alpha/ioperm.c index 63bf17588a..76a744d167 100644 --- a/sysdeps/unix/sysv/linux/alpha/ioperm.c +++ b/sysdeps/unix/sysv/linux/alpha/ioperm.c @@ -55,14 +55,13 @@ #define JENSEN_IO_BASE (0xfffffc0300000000UL) #define JENSEN_SPARSE_MEM (0xfffffc0200000000UL) -/* - * With respect to the I/O architecture, APECS and LCA are identical, - * so the following defines apply to LCA as well. - */ +/* With respect to the I/O architecture, APECS and LCA are identical, + so the following defines apply to LCA as well. */ #define APECS_IO_BASE (0xfffffc01c0000000UL) #define APECS_SPARSE_MEM (0xfffffc0200000000UL) #define APECS_DENSE_MEM (0xfffffc0300000000UL) +/* The same holds for CIA and PYXIS. */ #define CIA_IO_BASE (0xfffffc8580000000UL) #define CIA_SPARSE_MEM (0xfffffc8000000000UL) #define CIA_DENSE_MEM (0xfffffc8600000000UL) @@ -104,6 +103,7 @@ static struct platform { {"Mustang", IOSYS_APECS, 5, APECS_DENSE_MEM, APECS_SPARSE_MEM}, {"Noname", IOSYS_APECS, 5, APECS_DENSE_MEM, APECS_SPARSE_MEM}, {"Sable", IOSYS_T2, 5, T2_DENSE_MEM, T2_SPARSE_MEM}, + {"Miata", IOSYS_CIA, 5, CIA_DENSE_MEM, CIA_SPARSE_MEM}, }; diff --git a/sysdeps/unix/sysv/linux/alpha/setfpucw.c b/sysdeps/unix/sysv/linux/alpha/setfpucw.c index 43e8536b20..9133c81110 100644 --- a/sysdeps/unix/sysv/linux/alpha/setfpucw.c +++ b/sysdeps/unix/sysv/linux/alpha/setfpucw.c @@ -1,65 +1,78 @@ -#include <fpu_control.h> +/* Set FP exception mask and rounding mode. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ +#include <fpu_control.h> #include <asm/fpu.h> + extern void __ieee_set_fp_control (unsigned long); extern unsigned long __ieee_get_fp_control (void); - static inline unsigned long rdfpcr (void) { - unsigned long fpcr; - - asm ("trapb; mf_fpcr $f0; trapb; stt $f0,%0" : "m="(fpcr)); - return fpcr; + unsigned long fpcr; + asm ("excb; mf_fpcr %0" : "=f"(fpcr)); + return fpcr; } static inline void wrfpcr (unsigned long fpcr) { - asm volatile ("ldt $f0,%0; trapb; mt_fpcr $f0; trapb" :: "m"(fpcr)); + asm volatile ("mt_fpcr %0; excb" : : "f"(fpcr)); } void __setfpucw (unsigned short fpu_control) { - unsigned long fpcr = 0, fpcw = 0; + unsigned long fpcr = 0, fpcw = 0; - if (!fpu_control) - fpu_control = _FPU_DEFAULT; + if (!fpu_control) + fpu_control = _FPU_DEFAULT; - /* first, set dynamic rounding mode: */ + /* first, set dynamic rounding mode: */ - fpcr = rdfpcr(); - fpcr &= ~FPCR_DYN_MASK; - switch (fpu_control & 0xc00) { - case _FPU_RC_NEAREST: fpcr |= FPCR_DYN_NORMAL; break; - case _FPU_RC_DOWN: fpcr |= FPCR_DYN_MINUS; break; - case _FPU_RC_UP: fpcr |= FPCR_DYN_PLUS; break; - case _FPU_RC_ZERO: fpcr |= FPCR_DYN_CHOPPED; break; + fpcr = rdfpcr(); + fpcr &= ~FPCR_DYN_MASK; + switch (fpu_control & 0xc00) + { + case _FPU_RC_NEAREST: fpcr |= FPCR_DYN_NORMAL; break; + case _FPU_RC_DOWN: fpcr |= FPCR_DYN_MINUS; break; + case _FPU_RC_UP: fpcr |= FPCR_DYN_PLUS; break; + case _FPU_RC_ZERO: fpcr |= FPCR_DYN_CHOPPED; break; } - wrfpcr(fpcr); + wrfpcr(fpcr); - /* now tell kernel about traps that we like to hear about: */ + /* now tell kernel about traps that we like to hear about: */ - fpcw = __ieee_get_fp_control(); - fpcw &= ~IEEE_TRAP_ENABLE_MASK; + fpcw = __ieee_get_fp_control(); + fpcw &= ~IEEE_TRAP_ENABLE_MASK; - if (!(fpu_control & _FPU_MASK_IM)) - fpcw |= IEEE_TRAP_ENABLE_INV; - if (!(fpu_control & _FPU_MASK_DM)) - fpcw |= IEEE_TRAP_ENABLE_UNF; - if (!(fpu_control & _FPU_MASK_ZM)) - fpcw |= IEEE_TRAP_ENABLE_DZE; - if (!(fpu_control & _FPU_MASK_OM)) - fpcw |= IEEE_TRAP_ENABLE_OVF; - if (!(fpu_control & _FPU_MASK_PM)) - fpcw |= IEEE_TRAP_ENABLE_INE; + if (!(fpu_control & _FPU_MASK_IM)) fpcw |= IEEE_TRAP_ENABLE_INV; + if (!(fpu_control & _FPU_MASK_DM)) fpcw |= IEEE_TRAP_ENABLE_UNF; + if (!(fpu_control & _FPU_MASK_ZM)) fpcw |= IEEE_TRAP_ENABLE_DZE; + if (!(fpu_control & _FPU_MASK_OM)) fpcw |= IEEE_TRAP_ENABLE_OVF; + if (!(fpu_control & _FPU_MASK_PM)) fpcw |= IEEE_TRAP_ENABLE_INE; - __ieee_set_fp_control(fpcw); + __fpu_control = fpu_control; /* update global copy */ - __fpu_control = fpu_control; /* update global copy */ + __ieee_set_fp_control(fpcw); } diff --git a/sysdeps/unix/sysv/linux/alpha/syscall.S b/sysdeps/unix/sysv/linux/alpha/syscall.S index 75e1260aea..d25dd6b51f 100644 --- a/sysdeps/unix/sysv/linux/alpha/syscall.S +++ b/sysdeps/unix/sysv/linux/alpha/syscall.S @@ -62,10 +62,10 @@ LEAF(__syscall, 0) mov a5, a4 call_pal PAL_callsys /* Invoke system call */ - bne a3, error + bne a3, $error ret -error: +$error: #ifndef PROF br gp, 2f 2: ldgp gp, 0(gp) diff --git a/sysdeps/unix/sysv/linux/net/if_arp.h b/sysdeps/unix/sysv/linux/net/if_arp.h index b1cd18360e..d784f0cfc7 100644 --- a/sysdeps/unix/sysv/linux/net/if_arp.h +++ b/sysdeps/unix/sysv/linux/net/if_arp.h @@ -90,6 +90,8 @@ struct arphdr #define ARPHRD_ROSE 270 #define ARPHRD_X25 271 /* CCITT X.25. */ #define ARPHRD_PPP 512 +#define ARPHRD_HDLC 513 /* (Cisco) HDLC. */ +#define ARPHRD_LAPB 516 /* LAPB. */ #define ARPHRD_TUNNEL 768 /* IPIP tunnel. */ #define ARPHRD_TUNNEL6 769 /* IPIP6 tunnel. */ diff --git a/sysdeps/unix/sysv/linux/net/ppp_defs.h b/sysdeps/unix/sysv/linux/net/ppp_defs.h index 5d613e0d0f..f8924c4f27 100644 --- a/sysdeps/unix/sysv/linux/net/ppp_defs.h +++ b/sysdeps/unix/sysv/linux/net/ppp_defs.h @@ -1,6 +1,9 @@ #ifndef _NET_PPP_DEFS_H #define _NET_PPP_DEFS_H 1 +#define __need_time_t +#include <time.h> + #include <asm/types.h> #include <linux/ppp_defs.h> diff --git a/sysdeps/unix/sysv/linux/netinet/ip_fw.h b/sysdeps/unix/sysv/linux/netinet/ip_fw.h index 8ba10ae196..322467b5ff 100644 --- a/sysdeps/unix/sysv/linux/netinet/ip_fw.h +++ b/sysdeps/unix/sysv/linux/netinet/ip_fw.h @@ -53,6 +53,7 @@ #include <netinet/ip.h> #include <netinet/tcp.h> #include <netinet/udp.h> +#include <net/if.h> __BEGIN_DECLS diff --git a/sysdeps/unix/sysv/linux/netipx/ipx.h b/sysdeps/unix/sysv/linux/netipx/ipx.h index 170dfdf134..ec93c8185c 100644 --- a/sysdeps/unix/sysv/linux/netipx/ipx.h +++ b/sysdeps/unix/sysv/linux/netipx/ipx.h @@ -19,10 +19,94 @@ #ifndef __NETIPX_IPX_H #define __NETIPX_IPX_H 1 -#include <asm/types.h> -#include <linux/ipx.h> +#include <features.h> + +#include <sys/types.h> +#include <sys/socket.h> + +__BEGIN_DECLS #define SOL_IPX 256 /* sockopt level */ -#define IPX_TYPE 1 + +#define IPX_TYPE 1 +#define IPX_NODE_LEN 6 +#define IPX_MTU 576 + +struct sockaddr_ipx + { + sa_family_t sipx_family; + u_int16_t sipx_port; + u_int32_t sipx_network; + unsigned char sipx_node[IPX_NODE_LEN]; + u_int8_t sipx_type; + unsigned char sipx_zero; /* 16 byte fill */ + }; + +/* + * So we can fit the extra info for SIOCSIFADDR into the address nicely + */ + +#define sipx_special sipx_port +#define sipx_action sipx_zero +#define IPX_DLTITF 0 +#define IPX_CRTITF 1 + +typedef struct ipx_route_definition + { + unsigned long ipx_network; + unsigned long ipx_router_network; + unsigned char ipx_router_node[IPX_NODE_LEN]; + } +ipx_route_definition; + +typedef struct ipx_interface_definition + { + unsigned long ipx_network; + unsigned char ipx_device[16]; + unsigned char ipx_dlink_type; +#define IPX_FRAME_NONE 0 +#define IPX_FRAME_SNAP 1 +#define IPX_FRAME_8022 2 +#define IPX_FRAME_ETHERII 3 +#define IPX_FRAME_8023 4 +#define IPX_FRAME_TR_8022 5 + unsigned char ipx_special; +#define IPX_SPECIAL_NONE 0 +#define IPX_PRIMARY 1 +#define IPX_INTERNAL 2 + unsigned char ipx_node[IPX_NODE_LEN]; + } +ipx_interface_definition; + +typedef struct ipx_config_data + { + unsigned char ipxcfg_auto_select_primary; + unsigned char ipxcfg_auto_create_interfaces; + } +ipx_config_data; + +/* + * OLD Route Definition for backward compatibility. + */ + +struct ipx_route_def + { + unsigned long ipx_network; + unsigned long ipx_router_network; +#define IPX_ROUTE_NO_ROUTER 0 + unsigned char ipx_router_node[IPX_NODE_LEN]; + unsigned char ipx_device[16]; + unsigned short ipx_flags; +#define IPX_RT_SNAP 8 +#define IPX_RT_8022 4 +#define IPX_RT_BLUEBOOK 2 +#define IPX_RT_ROUTED 1 + }; + +#define SIOCAIPXITFCRT (SIOCPROTOPRIVATE) +#define SIOCAIPXPRISLT (SIOCPROTOPRIVATE + 1) +#define SIOCIPXCFGDATA (SIOCPROTOPRIVATE + 2) + +__END_DECLS #endif /* netipx/ipx.h */ diff --git a/sysdeps/unix/sysv/linux/ptrace.c b/sysdeps/unix/sysv/linux/ptrace.c index ede413a43c..b50234d2a1 100644 --- a/sysdeps/unix/sysv/linux/ptrace.c +++ b/sysdeps/unix/sysv/linux/ptrace.c @@ -1,20 +1,20 @@ -/* Copyright (C) 1995, 1996 Free Software Foundation, Inc. -This file is part of the GNU C Library. +/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. -The GNU C Library is free software; you can redistribute it and/or -modify it under the terms of the GNU Library General Public License as -published by the Free Software Foundation; either version 2 of the -License, or (at your option) any later version. + The GNU C Library is 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. + 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. */ + 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. */ #include <errno.h> #include <sys/types.h> @@ -52,6 +52,5 @@ ptrace (enum __ptrace_request request, ...) return res; } - __set_errno (-res); return -1; } diff --git a/sysdeps/unix/sysv/linux/socketbits.h b/sysdeps/unix/sysv/linux/socketbits.h index 38a8fb74d1..3630ff5aa3 100644 --- a/sysdeps/unix/sysv/linux/socketbits.h +++ b/sysdeps/unix/sysv/linux/socketbits.h @@ -29,6 +29,9 @@ __BEGIN_DECLS +/* Type for length arguments in socket calls. */ +typedef unsigned int socklen_t; + /* Types of sockets. */ enum __socket_type { @@ -116,25 +119,22 @@ enum struct msghdr { __ptr_t msg_name; /* Address to send to/receive from. */ - int msg_namelen; /* Length of address data. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ + socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ int msg_iovlen; /* Number of elements in the vector. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ __ptr_t msg_control; /* Ancillary data (eg BSD filedesc passing). */ - int msg_controllen; /* Ancillary data buffer length. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ + socklen_t msg_controllen; /* Ancillary data buffer length. */ + int msg_flags; /* Flags on received message. */ }; /* Structure used for storage of ancillary data object information. */ struct cmsghdr { - int cmsg_len; /* Length of data in cmsg_data plus length + socklen_t cmsg_len; /* Length of data in cmsg_data plus length of cmsghdr structure. */ - /* XXX Should be type `size_t' according to POSIX.1g. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ #if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2 diff --git a/sysdeps/unix/sysv/linux/sys/fsuid.h b/sysdeps/unix/sysv/linux/sys/fsuid.h new file mode 100644 index 0000000000..fd30542e9f --- /dev/null +++ b/sysdeps/unix/sysv/linux/sys/fsuid.h @@ -0,0 +1,36 @@ +/* Copyright (C) 1997 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with the GNU C Library; see the file COPYING.LIB. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#ifndef _SYS_FSUID_H +#define _SYS_FSUID_H 1 + +#include <features.h> +#include <sys/types.h> + +__BEGIN_DECLS + +/* Change uid used for file access control to UID, without affecting + other priveledges (such as who can send signals at the process). */ +extern int setfsuid __P ((__uid_t __uid)); + +/* Ditto for group id. */ +extern int setfsgid __P ((__gid_t __gid)); + +__END_DECLS + +#endif /* fsuid.h */ diff --git a/sysdeps/unix/sysv/linux/sys/mount.h b/sysdeps/unix/sysv/linux/sys/mount.h index 59a1aa45be..08a2e3158f 100644 --- a/sysdeps/unix/sysv/linux/sys/mount.h +++ b/sysdeps/unix/sysv/linux/sys/mount.h @@ -1,5 +1,5 @@ /* Header file for mounting/unmount Linux filesystems. - Copyright (C) 1996 Free Software Foundation, Inc. + Copyright (C) 1996, 1997 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -17,13 +17,81 @@ write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +/* This is taken from /usr/include/linux/fs.h. */ + #ifndef _SYS_MOUNT_H #define _SYS_MOUNT_H 1 #include <features.h> +#include <sys/ioctl.h> + __BEGIN_DECLS +#define BLOCK_SIZE 1024 +#define BLOCK_SIZE_BITS 10 + + +/* These are the fs-independent mount-flags: up to 16 flags are + supported */ +#define MS_RDONLY 1 /* Mount read-only. */ +#define MS_NOSUID 2 /* Ignore suid and sgid bits. */ +#define MS_NODEV 4 /* Disallow access to device special files. */ +#define MS_NOEXEC 8 /* Disallow program execution. */ +#define MS_SYNCHRONOUS 16 /* Writes are synced at once. */ +#define MS_REMOUNT 32 /* Alter flags of a mounted FS. */ +#define MS_MANDLOCK 64 /* Allow mandatory locks on an FS. */ +#define S_WRITE 128 /* Write on file/directory/symlink. */ +#define S_APPEND 256 /* Append-only file. */ +#define S_IMMUTABLE 512 /* Immutable file. */ +#define MS_NOATIME 1024 /* Do not update access times. */ + + +/* Flags that can be altered by MS_REMOUNT */ +#define MS_RMT_MASK (MS_RDONLY | MS_MANDLOCK) + + +/* Magic mount flag number. Has to be or-ed to the flag values. */ + +#define MS_MGC_VAL 0xc0ed0000 /* Magic flag number to indicate "new" flags */ +#define MS_MGC_MSK 0xffff0000 /* Magic flag number mask */ + + +/* Note that read-only etc flags are inode-specific: setting some + file-system flags just means all the inodes inherit those flags by + default. It might be possible to override it selectively if you + really wanted to with some ioctl() that is not currently + implemented. + + Exception: MS_RDONLY is always applied to the entire file system. */ +#define IS_RDONLY(inode) \ + (((inode)->i_sb) && ((inode)->i_sb->s_flags & MS_RDONLY)) +#define DO_UPDATE_ATIME(inode) \ + (!((inode)->i_flags & MS_NOATIME) && !IS_RDONLY (inode)) +#define IS_NOSUID(inode) ((inode)->i_flags & MS_NOSUID) +#define IS_NODEV(inode) ((inode)->i_flags & MS_NODEV) +#define IS_NOEXEC(inode) ((inode)->i_flags & MS_NOEXEC) +#define IS_SYNC(inode) ((inode)->i_flags & MS_SYNCHRONOUS) +#define IS_MANDLOCK(inode) ((inode)->i_flags & MS_MANDLOCK) + +#define IS_WRITABLE(inode) ((inode)->i_flags & S_WRITE) +#define IS_APPEND(inode) ((inode)->i_flags & S_APPEND) +#define IS_IMMUTABLE(inode) ((inode)->i_flags & S_IMMUTABLE) + + +/* The read-only stuff doesn't really belong here, but any other place + is probably as bad and I don't want to create yet another include + file. */ + +#define BLKROSET _IO(0x12, 93) /* Set device read-only (0 = read-write). */ +#define BLKROGET _IO(0x12, 94) /* Get read-only status (0 = read_write). */ +#define BLKRRPART _IO(0x12, 95) /* Re-read partition table. */ +#define BLKGETSIZE _IO(0x12, 96) /* Return device size. */ +#define BLKFLSBUF _IO(0x12, 97) /* Flush buffer cache. */ +#define BLKRASET _IO(0x12, 98) /* Set read ahead for block device. */ +#define BLKRAGET _IO(0x12, 99) /* Get current read ahead setting. */ + + /* Mount a filesystem. */ extern int mount __P ((__const char *__special_file, __const char *__dir, __const char *__fstype, unsigned long int __rwflag, diff --git a/sysdeps/unix/sysv/linux/sys/ttydefaults.h b/sysdeps/unix/sysv/linux/sys/ttydefaults.h index 28512ebebb..b21c6d5686 100644 --- a/sysdeps/unix/sysv/linux/sys/ttydefaults.h +++ b/sysdeps/unix/sysv/linux/sys/ttydefaults.h @@ -61,14 +61,14 @@ #ifdef _POSIX_VDISABLE # define CEOL _POSIX_VDISABLE #else -# define CEOL ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */ +# define CEOL '\0' /* XXX avoid _POSIX_VDISABLE */ #endif #define CERASE 0177 #define CINTR CTRL('c') #ifdef _POSIX_VDISABLE # define CSTATUS _POSIX_VDISABLE #else -# define CSTATUS ((unsigned char)'\377') /* XXX avoid _POSIX_VDISABLE */ +# define CSTATUS '\0' /* XXX avoid _POSIX_VDISABLE */ #endif #define CKILL CTRL('u') #define CMIN 1 diff --git a/sysdeps/unix/sysv/linux/syscalls.list b/sysdeps/unix/sysv/linux/syscalls.list index c7180ccb42..a3b0eef691 100644 --- a/sysdeps/unix/sysv/linux/syscalls.list +++ b/sysdeps/unix/sysv/linux/syscalls.list @@ -13,6 +13,7 @@ geteuid - geteuid 0 __geteuid geteuid getpgid - getpgid 1 __getpgid getpgid getpgrp - getpgrp 0 getpgrp getppid - getppid 0 __getppid getppid +getresgid EXTRA getresgid 3 getresgid getresuid EXTRA getresuid 3 getresuid getsid - getsid 1 getsid init_module EXTRA init_module 5 init_module @@ -32,6 +33,7 @@ pause - pause 0 __libc_pause pause personality init-first personality 1 __personality personality pipe - pipe 1 __pipe pipe query_module EXTRA query_module 5 query_module +quotactl EXTRA quotactl 4 quotactl s_getdents EXTRA getdents 3 __getdents s_getpriority getpriority getpriority 2 __syscall_getpriority s_poll poll poll 3 __syscall_poll @@ -53,6 +55,7 @@ select - _newselect 5 __select select setfsgid EXTRA setfsgid 1 setfsgid setfsuid EXTRA setfsuid 1 setfsuid setpgid - setpgid 2 __setpgid setpgid +setresgid EXTRA setresgid 3 setresgid setresuid EXTRA setresuid 3 setresuid sigpending - sigpending 1 sigpending sigprocmask - sigprocmask 3 __sigprocmask sigprocmask @@ -64,7 +67,8 @@ sys_readv readv readv 3 __syscall_readv sys_stat xstat stat 2 __syscall_stat sys_writev writev writev 3 __syscall_writev sysinfo EXTRA sysinfo 1 sysinfo -swapon - swapon 2 swapon +swapon - swapon 2 __swapon swapon +swapoff - swapoff 1 __swapoff swapoff umount EXTRA umount 1 __umount umount uselib EXTRA uselib 1 uselib wait4 - wait4 4 __wait4 wait4 |