OSDN Git Service

Sync up m68k headers
authorEric Andersen <andersen@codepoet.org>
Wed, 14 Nov 2001 07:34:46 +0000 (07:34 -0000)
committerEric Andersen <andersen@codepoet.org>
Wed, 14 Nov 2001 07:34:46 +0000 (07:34 -0000)
70 files changed:
libc/sysdeps/linux/m68k/bits/byteswap.h
libc/sysdeps/linux/m68k/bits/cmathcalls.h
libc/sysdeps/linux/m68k/bits/confname.h
libc/sysdeps/linux/m68k/bits/dirent.h
libc/sysdeps/linux/m68k/bits/dlfcn.h
libc/sysdeps/linux/m68k/bits/elfclass.h
libc/sysdeps/linux/m68k/bits/environments.h
libc/sysdeps/linux/m68k/bits/errno.h
libc/sysdeps/linux/m68k/bits/fcntl.h
libc/sysdeps/linux/m68k/bits/fenv.h
libc/sysdeps/linux/m68k/bits/fenvinline.h [new file with mode: 0644]
libc/sysdeps/linux/m68k/bits/huge_val.h
libc/sysdeps/linux/m68k/bits/in.h
libc/sysdeps/linux/m68k/bits/initspin.h [new file with mode: 0644]
libc/sysdeps/linux/m68k/bits/ioctl-types.h
libc/sysdeps/linux/m68k/bits/ioctls.h
libc/sysdeps/linux/m68k/bits/ipc.h
libc/sysdeps/linux/m68k/bits/libc-lock.h
libc/sysdeps/linux/m68k/bits/local_lim.h
libc/sysdeps/linux/m68k/bits/locale.h [new file with mode: 0644]
libc/sysdeps/linux/m68k/bits/mathcalls.h
libc/sysdeps/linux/m68k/bits/mathdef.h
libc/sysdeps/linux/m68k/bits/mathinline.h
libc/sysdeps/linux/m68k/bits/mman.h
libc/sysdeps/linux/m68k/bits/msq.h
libc/sysdeps/linux/m68k/bits/nan.h
libc/sysdeps/linux/m68k/bits/netdb.h [new file with mode: 0644]
libc/sysdeps/linux/m68k/bits/poll.h
libc/sysdeps/linux/m68k/bits/posix1_lim.h
libc/sysdeps/linux/m68k/bits/posix2_lim.h
libc/sysdeps/linux/m68k/bits/posix_opt.h
libc/sysdeps/linux/m68k/bits/pthreadtypes.h
libc/sysdeps/linux/m68k/bits/resource.h
libc/sysdeps/linux/m68k/bits/sched.h
libc/sysdeps/linux/m68k/bits/select.h
libc/sysdeps/linux/m68k/bits/sem.h
libc/sysdeps/linux/m68k/bits/setjmp.h
libc/sysdeps/linux/m68k/bits/shm.h
libc/sysdeps/linux/m68k/bits/sigaction.h
libc/sysdeps/linux/m68k/bits/sigcontext.h
libc/sysdeps/linux/m68k/bits/siginfo.h
libc/sysdeps/linux/m68k/bits/signum.h
libc/sysdeps/linux/m68k/bits/sigset.h
libc/sysdeps/linux/m68k/bits/sigstack.h
libc/sysdeps/linux/m68k/bits/sigthread.h
libc/sysdeps/linux/m68k/bits/sockaddr.h
libc/sysdeps/linux/m68k/bits/socket.h
libc/sysdeps/linux/m68k/bits/stab.def
libc/sysdeps/linux/m68k/bits/stat.h
libc/sysdeps/linux/m68k/bits/statfs.h
libc/sysdeps/linux/m68k/bits/statvfs.h
libc/sysdeps/linux/m68k/bits/stdio-lock.h
libc/sysdeps/linux/m68k/bits/stdio.h
libc/sysdeps/linux/m68k/bits/stdio_lim.h
libc/sysdeps/linux/m68k/bits/string.h
libc/sysdeps/linux/m68k/bits/string2.h
libc/sysdeps/linux/m68k/bits/stropts.h
libc/sysdeps/linux/m68k/bits/termios.h
libc/sysdeps/linux/m68k/bits/time.h
libc/sysdeps/linux/m68k/bits/types.h
libc/sysdeps/linux/m68k/bits/uio.h
libc/sysdeps/linux/m68k/bits/ustat.h
libc/sysdeps/linux/m68k/bits/utmp.h
libc/sysdeps/linux/m68k/bits/utmpx.h
libc/sysdeps/linux/m68k/bits/utsname.h
libc/sysdeps/linux/m68k/bits/waitflags.h
libc/sysdeps/linux/m68k/bits/waitstatus.h
libc/sysdeps/linux/m68k/bits/wchar.h [new file with mode: 0644]
libc/sysdeps/linux/m68k/bits/wordsize.h
libc/sysdeps/linux/m68k/bits/xopen_lim.h

index 41bbe59..ea6aa96 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #if !defined _BYTESWAP_H && !defined _NETINET_IN_H
 # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
 
 #if defined __GNUC__ && __GNUC__ >= 2
 # define __bswap_32(x) \
-  __extension__                                        \
-  ({ unsigned int __v;                         \
-     if (__builtin_constant_p (x))             \
-       __v = __bswap_constant_32 (x);          \
-     else                                      \
-       __asm__ __volatile__ ("ror%.w %#8, %0;" \
-                            "swap %0;"         \
-                            "ror%.w %#8, %0"   \
-                            : "=d" (__v)       \
-                            : "0" (x));        \
-     __v; })
+  __extension__                                                        \
+  ({ unsigned int __bswap_32_v;                                        \
+     if (__builtin_constant_p (x))                             \
+       __bswap_32_v = __bswap_constant_32 (x);                 \
+     else                                                      \
+       __asm__ __volatile__ ("ror%.w %#8, %0;"                 \
+                            "swap %0;"                         \
+                            "ror%.w %#8, %0"                   \
+                            : "=d" (__bswap_32_v)              \
+                            : "0" ((unsigned int) (x)));       \
+     __bswap_32_v; })
 #else
 # define __bswap_32(x) __bswap_constant_32 (x)
 #endif
 #if defined __GNUC__ && __GNUC__ >= 2
 /* Swap bytes in 64 bit value.  */
 # define __bswap_64(x) \
-  __extension__                                                \
-  ({ union { unsigned long long int __ll;              \
-            unsigned long int __l[2]; } __v, __r;      \
-     __v.__ll = (x);                                   \
-     __r.__l[0] = __bswap_32 (__v.__l[1]);             \
-     __r.__l[1] = __bswap_32 (__v.__l[0]);             \
-     __r.__ll; })
+  __extension__                                                                \
+  ({ union { unsigned long long int __ll;                              \
+            unsigned long int __l[2]; } __bswap_64_v, __bswap_64_r;    \
+     __bswap_64_v.__ll = (x);                                          \
+     __bswap_64_r.__l[0] = __bswap_32 (__bswap_64_v.__l[1]);           \
+     __bswap_64_r.__l[1] = __bswap_32 (__bswap_64_v.__l[0]);           \
+     __bswap_64_r.__ll; })
 #endif
index 842d2c1..c680c6d 100644 (file)
@@ -1,22 +1,22 @@
 /* Prototype declarations for complex math functions;
    helper file for <complex.h>.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* NOTE: Because of the special way this file is used by <complex.h>, this
    file must NOT be protected from multiple inclusion as header files
@@ -47,7 +47,6 @@
 
 #define _Mdouble_complex_ _Mdouble_ _Complex
 
-__BEGIN_DECLS
 
 /* Trigonometric functions.  */
 
@@ -131,29 +130,29 @@ __MATHDECL (_Mdouble_,creal, (_Mdouble_complex_ __z));
 
 
 /* Now some optimized versions.  GCC has handy notations for these
-   functions.  */
-#if defined __GNUC__ && defined __OPTIMIZE__
+   functions.  Recent GCC handles these as builtin functions so does
+   not need inlines.  */
+#if defined __GNUC__ && !__GNUC_PREREQ (2, 97) && defined __OPTIMIZE__
 
 /* Imaginary part of Z.  */
 extern __inline _Mdouble_
-__MATH_PRECNAME(cimag) (_Mdouble_complex_ __z)
+__MATH_PRECNAME(cimag) (_Mdouble_complex_ __z) __THROW
 {
   return __imag__ __z;
 }
 
 /* Real part of Z.  */
 extern __inline _Mdouble_
-__MATH_PRECNAME(creal) (_Mdouble_complex_ __z)
+__MATH_PRECNAME(creal) (_Mdouble_complex_ __z) __THROW
 {
   return __real__ __z;
 }
 
 /* Complex conjugate of Z.  */
 extern __inline _Mdouble_complex_
-__MATH_PRECNAME(conj) (_Mdouble_complex_ __z)
+__MATH_PRECNAME(conj) (_Mdouble_complex_ __z) __THROW
 {
-  return ~__z;
+  return __extension__ ~__z;
 }
-#endif
 
-__END_DECLS
+#endif
index a649e52..ba8868a 100644 (file)
@@ -1,21 +1,21 @@
 /* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-   Copyright (C) 1993, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1993, 1995-1998, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _UNISTD_H
 # error "Never use <bits/confname.h> directly; include <unistd.h> instead."
@@ -50,8 +50,20 @@ enum
 #define        _PC_PRIO_IO                     _PC_PRIO_IO
     _PC_SOCK_MAXBUF,
 #define        _PC_SOCK_MAXBUF                 _PC_SOCK_MAXBUF
-    _PC_FILESIZEBITS
+    _PC_FILESIZEBITS,
 #define _PC_FILESIZEBITS               _PC_FILESIZEBITS
+    _PC_REC_INCR_XFER_SIZE,
+#define _PC_REC_INCR_XFER_SIZE         _PC_REC_INCR_XFER_SIZE
+    _PC_REC_MAX_XFER_SIZE,
+#define _PC_REC_MAX_XFER_SIZE          _PC_REC_MAX_XFER_SIZE
+    _PC_REC_MIN_XFER_SIZE,
+#define _PC_REC_MIN_XFER_SIZE          _PC_REC_MIN_XFER_SIZE
+    _PC_REC_XFER_ALIGN,
+#define _PC_REC_XFER_ALIGN             _PC_REC_XFER_ALIGN
+    _PC_ALLOC_SIZE_MIN,
+#define _PC_ALLOC_SIZE_MIN             _PC_ALLOC_SIZE_MIN
+    _PC_SYMLINK_MAX
+#define _PC_SYMLINK_MAX                        _PC_SYMLINK_MAX
   };
 
 /* Values for the argument to `sysconf'.  */
@@ -185,6 +197,8 @@ enum
 #define        _SC_SELECT                      _SC_SELECT
     _SC_UIO_MAXIOV,
 #define        _SC_UIO_MAXIOV                  _SC_UIO_MAXIOV
+    _SC_IOV_MAX = _SC_UIO_MAXIOV,
+#define _SC_IOV_MAX                    _SC_IOV_MAX
     _SC_PII_INTERNET_STREAM,
 #define        _SC_PII_INTERNET_STREAM         _SC_PII_INTERNET_STREAM
     _SC_PII_INTERNET_DGRAM,
@@ -338,8 +352,114 @@ enum
     _SC_XOPEN_REALTIME_THREADS,
 #define _SC_XOPEN_REALTIME_THREADS     _SC_XOPEN_REALTIME_THREADS
 
-       /* MUST BE LAST VALUE!!! */
-       _UCLIBC_SYSCONF_NUM_VALID_ARGS
+    _SC_ADVISORY_INFO,
+#define _SC_ADVISORY_INFO              _SC_ADVISORY_INFO
+    _SC_BARRIERS,
+#define _SC_BARRIERS                   _SC_BARRIERS
+    _SC_BASE,
+#define _SC_BASE                       _SC_BASE
+    _SC_C_LANG_SUPPORT,
+#define _SC_C_LANG_SUPPORT             _SC_C_LANG_SUPPORT
+    _SC_C_LANG_SUPPORT_R,
+#define _SC_C_LANG_SUPPORT_R           _SC_C_LANG_SUPPORT_R
+    _SC_CLOCK_SELECTION,
+#define _SC_CLOCK_SELECTION            _SC_CLOCK_SELECTION
+    _SC_CPUTIME,
+#define _SC_CPUTIME                    _SC_CPUTIME
+    _SC_THREAD_CPUTIME,
+#define _SC_THREAD_CPUTIME             _SC_THREAD_CPUTIME
+    _SC_DEVICE_IO,
+#define _SC_DEVICE_IO                  _SC_DEVICE_IO
+    _SC_DEVICE_SPECIFIC,
+#define _SC_DEVICE_SPECIFIC            _SC_DEVICE_SPECIFIC
+    _SC_DEVICE_SPECIFIC_R,
+#define _SC_DEVICE_SPECIFIC_R          _SC_DEVICE_SPECIFIC_R
+    _SC_FD_MGMT,
+#define _SC_FD_MGMT                    _SC_FD_MGMT
+    _SC_FIFO,
+#define _SC_FIFO                       _SC_FIFO
+    _SC_PIPE,
+#define _SC_PIPE                       _SC_PIPE
+    _SC_FILE_ATTRIBUTES,
+#define _SC_FILE_ATTRIBUTES            _SC_FILE_ATTRIBUTES
+    _SC_FILE_LOCKING,
+#define _SC_FILE_LOCKING               _SC_FILE_LOCKING
+    _SC_FILE_SYSTEM,
+#define _SC_FILE_SYSTEM                        _SC_FILE_SYSTEM
+    _SC_MONOTONIC_CLOCK,
+#define _SC_MONOTONIC_CLOCK            _SC_MONOTONIC_CLOCK
+    _SC_MULTI_PROCESS,
+#define _SC_MULTI_PROCESS              _SC_MULTI_PROCESS
+    _SC_SINGLE_PROCESS,
+#define _SC_SINGLE_PROCESS             _SC_SINGLE_PROCESS
+    _SC_NETWORKING,
+#define _SC_NETWORKING                 _SC_NETWORKING
+    _SC_READER_WRITER_LOCKS,
+#define _SC_READER_WRITER_LOCKS                _SC_READER_WRITER_LOCKS
+    _SC_SPIN_LOCKS,
+#define _SC_SPIN_LOCKS                 _SC_SPIN_LOCKS
+    _SC_REGEXP,
+#define _SC_REGEXP                     _SC_REGEXP
+    _SC_REGEX_VERSION,
+#define _SC_REGEX_VERSION              _SC_REGEX_VERSION
+    _SC_SHELL,
+#define _SC_SHELL                      _SC_SHELL
+    _SC_SIGNALS,
+#define _SC_SIGNALS                    _SC_SIGNALS
+    _SC_SPAWN,
+#define _SC_SPAWN                      _SC_SPAWN
+    _SC_SPORADIC_SERVER,
+#define _SC_SPORADIC_SERVER            _SC_SPORADIC_SERVER
+    _SC_THREAD_SPORADIC_SERVER,
+#define _SC_THREAD_SPORADIC_SERVER     _SC_THREAD_SPORADIC_SERVER
+    _SC_SYSTEM_DATABASE,
+#define _SC_SYSTEM_DATABASE            _SC_SYSTEM_DATABASE
+    _SC_SYSTEM_DATABASE_R,
+#define _SC_SYSTEM_DATABASE_R          _SC_SYSTEM_DATABASE_R
+    _SC_TIMEOUTS,
+#define _SC_TIMEOUTS                   _SC_TIMEOUTS
+    _SC_TYPED_MEMORY_OBJECTS,
+#define _SC_TYPED_MEMORY_OBJECTS       _SC_TYPED_MEMORY_OBJECTS
+    _SC_USER_GROUPS,
+#define _SC_USER_GROUPS                        _SC_USER_GROUPS
+    _SC_USER_GROUPS_R,
+#define _SC_USER_GROUPS_R              _SC_USER_GROUPS_R
+    _SC_2_PBS,
+#define _SC_2_PBS                      _SC_2_PBS
+    _SC_2_PBS_ACCOUNTING,
+#define _SC_2_PBS_ACCOUNTING           _SC_2_PBS_ACCOUNTING
+    _SC_2_PBS_LOCATE,
+#define _SC_2_PBS_LOCATE               _SC_2_PBS_LOCATE
+    _SC_2_PBS_MESSAGE,
+#define _SC_2_PBS_MESSAGE              _SC_2_PBS_MESSAGE
+    _SC_2_PBS_TRACK,
+#define _SC_2_PBS_TRACK                        _SC_2_PBS_TRACK
+    _SC_SYMLOOP_MAX,
+#define _SC_SYMLOOP_MAX                        _SC_SYMLOOP_MAX
+    _SC_STREAMS,
+#define _SC_STREAMS                    _SC_STREAMS
+    _SC_2_PBS_CHECKPOINT,
+#define _SC_2_PBS_CHECKPOINT           _SC_2_PBS_CHECKPOINT
+
+    _SC_V6_ILP32_OFF32,
+#define _SC_V6_ILP32_OFF32             _SC_V6_ILP32_OFF32
+    _SC_V6_ILP32_OFFBIG,
+#define _SC_V6_ILP32_OFFBIG            _SC_V6_ILP32_OFFBIG
+    _SC_V6_LP64_OFF64,
+#define _SC_V6_LP64_OFF64              _SC_V6_LP64_OFF64
+    _SC_V6_LPBIG_OFFBIG,
+#define _SC_V6_LPBIG_OFFBIG            _SC_V6_LPBIG_OFFBIG
+
+    _SC_HOST_NAME_MAX,
+#define _SC_HOST_NAME_MAX              _SC_HOST_NAME_MAX
+    _SC_TRACE,
+#define _SC_TRACE                      _SC_TRACE
+    _SC_TRACE_EVENT_FILTER,
+#define _SC_TRACE_EVENT_FILTER         _SC_TRACE_EVENT_FILTER
+    _SC_TRACE_INHERIT,
+#define _SC_TRACE_INHERIT              _SC_TRACE_INHERIT
+    _SC_TRACE_LOG
+#define _SC_TRACE_LOG                  _SC_TRACE_LOG
   };
 
 #if (defined __USE_POSIX2 || defined __USE_UNIX98 \
@@ -348,64 +468,99 @@ enum
 /* Values for the NAME argument to `confstr'.  */
 enum
   {
-    _CS_PATH                   /* The default search path.  */
+    _CS_PATH,                  /* The default search path.  */
 #define _CS_PATH               _CS_PATH
 
-#if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
+# if (defined __USE_FILE_OFFSET64 || defined __USE_LARGEFILE64 \
      || defined __USE_LARGEFILE)
-    ,
     _CS_LFS_CFLAGS = 1000,
-# define _CS_LFS_CFLAGS                _CS_LFS_CFLAGS
+#  define _CS_LFS_CFLAGS               _CS_LFS_CFLAGS
     _CS_LFS_LDFLAGS,
-# define _CS_LFS_LDFLAGS       _CS_LFS_LDFLAGS
+#  define _CS_LFS_LDFLAGS      _CS_LFS_LDFLAGS
     _CS_LFS_LIBS,
-# define _CS_LFS_LIBS          _CS_LFS_LIBS
+#  define _CS_LFS_LIBS         _CS_LFS_LIBS
     _CS_LFS_LINTFLAGS,
-# define _CS_LFS_LINTFLAGS     _CS_LFS_LINTFLAGS
+#  define _CS_LFS_LINTFLAGS    _CS_LFS_LINTFLAGS
     _CS_LFS64_CFLAGS,
-# define _CS_LFS64_CFLAGS      _CS_LFS64_CFLAGS
+#  define _CS_LFS64_CFLAGS     _CS_LFS64_CFLAGS
     _CS_LFS64_LDFLAGS,
-# define _CS_LFS64_LDFLAGS     _CS_LFS64_LDFLAGS
+#  define _CS_LFS64_LDFLAGS    _CS_LFS64_LDFLAGS
     _CS_LFS64_LIBS,
-# define _CS_LFS64_LIBS                _CS_LFS64_LIBS
-    _CS_LFS64_LINTFLAGS
-# define _CS_LFS64_LINTFLAGS   _CS_LFS64_LINTFLAGS
-#endif
+#  define _CS_LFS64_LIBS               _CS_LFS64_LIBS
+    _CS_LFS64_LINTFLAGS,
+#  define _CS_LFS64_LINTFLAGS  _CS_LFS64_LINTFLAGS
+# endif
 
-#ifdef __USE_UNIX98
-    ,
+# ifdef __USE_UNIX98
     _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
-# define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
+#  define _CS_XBS5_ILP32_OFF32_CFLAGS _CS_XBS5_ILP32_OFF32_CFLAGS
     _CS_XBS5_ILP32_OFF32_LDFLAGS,
-# define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
+#  define _CS_XBS5_ILP32_OFF32_LDFLAGS _CS_XBS5_ILP32_OFF32_LDFLAGS
     _CS_XBS5_ILP32_OFF32_LIBS,
-# define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
+#  define _CS_XBS5_ILP32_OFF32_LIBS _CS_XBS5_ILP32_OFF32_LIBS
     _CS_XBS5_ILP32_OFF32_LINTFLAGS,
-# define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
+#  define _CS_XBS5_ILP32_OFF32_LINTFLAGS _CS_XBS5_ILP32_OFF32_LINTFLAGS
     _CS_XBS5_ILP32_OFFBIG_CFLAGS,
-# define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
+#  define _CS_XBS5_ILP32_OFFBIG_CFLAGS _CS_XBS5_ILP32_OFFBIG_CFLAGS
     _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
-# define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
+#  define _CS_XBS5_ILP32_OFFBIG_LDFLAGS _CS_XBS5_ILP32_OFFBIG_LDFLAGS
     _CS_XBS5_ILP32_OFFBIG_LIBS,
-# define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
+#  define _CS_XBS5_ILP32_OFFBIG_LIBS _CS_XBS5_ILP32_OFFBIG_LIBS
     _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
-# define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
+#  define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS _CS_XBS5_ILP32_OFFBIG_LINTFLAGS
     _CS_XBS5_LP64_OFF64_CFLAGS,
-# define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
+#  define _CS_XBS5_LP64_OFF64_CFLAGS _CS_XBS5_LP64_OFF64_CFLAGS
     _CS_XBS5_LP64_OFF64_LDFLAGS,
-# define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
+#  define _CS_XBS5_LP64_OFF64_LDFLAGS _CS_XBS5_LP64_OFF64_LDFLAGS
     _CS_XBS5_LP64_OFF64_LIBS,
-# define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
+#  define _CS_XBS5_LP64_OFF64_LIBS _CS_XBS5_LP64_OFF64_LIBS
     _CS_XBS5_LP64_OFF64_LINTFLAGS,
-# define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
+#  define _CS_XBS5_LP64_OFF64_LINTFLAGS _CS_XBS5_LP64_OFF64_LINTFLAGS
     _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
-# define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
+#  define _CS_XBS5_LPBIG_OFFBIG_CFLAGS _CS_XBS5_LPBIG_OFFBIG_CFLAGS
     _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
-# define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
+#  define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS _CS_XBS5_LPBIG_OFFBIG_LDFLAGS
     _CS_XBS5_LPBIG_OFFBIG_LIBS,
-# define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
-    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
-# define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
-#endif
+#  define _CS_XBS5_LPBIG_OFFBIG_LIBS _CS_XBS5_LPBIG_OFFBIG_LIBS
+    _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
+#  define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS
+# endif
+# ifdef __USE_XOPEN2K
+    _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFF32_CFLAGS _CS_POSIX_V6_ILP32_OFF32_CFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFF32_LIBS,
+#  define _CS_POSIX_V6_ILP32_OFF32_LIBS _CS_POSIX_V6_ILP32_OFF32_LIBS
+    _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
+#  define _CS_POSIX_V6_ILP32_OFFBIG_LIBS _CS_POSIX_V6_ILP32_OFFBIG_LIBS
+    _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
+#  define _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS
+    _CS_POSIX_V6_LP64_OFF64_CFLAGS,
+#  define _CS_POSIX_V6_LP64_OFF64_CFLAGS _CS_POSIX_V6_LP64_OFF64_CFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
+#  define _CS_POSIX_V6_LP64_OFF64_LDFLAGS _CS_POSIX_V6_LP64_OFF64_LDFLAGS
+    _CS_POSIX_V6_LP64_OFF64_LIBS,
+#  define _CS_POSIX_V6_LP64_OFF64_LIBS _CS_POSIX_V6_LP64_OFF64_LIBS
+    _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
+#  define _CS_POSIX_V6_LP64_OFF64_LINTFLAGS _CS_POSIX_V6_LP64_OFF64_LINTFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
+#  define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
+#  define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
+#  define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
+    _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
+#  define _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS
+# endif
+
+    _CS_V6_WIDTH_RESTRICTED_ENVS
+# define _CS_V6_WIDTH_RESTRICTED_ENVS  _CS_V6_WIDTH_RESTRICTED_ENVS
   };
 #endif
index 1754c7c..d11add0 100644 (file)
@@ -2,29 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.  */
-
-/*
- * June 25, 2001
- *
- * Removed d_type support for dirent and undefined _DIRENT_HAVE_D_TYPE;
- * i.e. match the kernel structs and avoid any translation for now.
- * Note: glibc fakes d_type for the dirent case.
- * Note: dirent64 still has the d_type field.
- */
+   Lesser General Public License for more details.
 
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _DIRENT_H
 # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
@@ -40,6 +30,7 @@ struct dirent
     __off64_t d_off;
 #endif
     unsigned short int d_reclen;
+    /*unsigned char d_type; */
     char d_name[256];          /* We must not include limits.h! */
   };
 
@@ -49,7 +40,7 @@ struct dirent64
     __ino64_t d_ino;
     __off64_t d_off;
     unsigned short int d_reclen;
-    unsigned char d_type;
+    /*unsigned char d_type; */
     char d_name[256];          /* We must not include limits.h! */
   };
 #endif
@@ -59,4 +50,4 @@ struct dirent64
 #undef  _DIRENT_HAVE_D_NAMLEN
 #define _DIRENT_HAVE_D_RECLEN
 #define _DIRENT_HAVE_D_OFF
-#undef  _DIRENT_HAVE_D_TYPE
+#define _DIRENT_HAVE_D_TYPE
index f5983d7..2525fa3 100644 (file)
@@ -1,37 +1,59 @@
 /* System dependent definitions for run-time dynamic loading.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _DLFCN_H
 # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
 #endif
 
 /* The MODE argument to `dlopen' contains one of the following: */
-#define RTLD_LAZY      0x001   /* Lazy function call binding.  */
-#define RTLD_NOW       0x002   /* Immediate function call binding.  */
-#define        RTLD_BINDING_MASK 0x3   /* Mask of binding time value.  */
+#define RTLD_LAZY      0x00001 /* Lazy function call binding.  */
+#define RTLD_NOW       0x00002 /* Immediate function call binding.  */
+#define        RTLD_BINDING_MASK   0x3 /* Mask of binding time value.  */
+#define RTLD_NOLOAD    0x00004 /* Do not load the object.  */
 
 /* If the following bit is set in the MODE argument to `dlopen',
    the symbols of the loaded object and its dependencies are made
    visible as if the object were linked directly into the program.  */
-#define RTLD_GLOBAL    0x100
+#define RTLD_GLOBAL    0x00100
 
 /* Unix98 demands the following flag which is the inverse to RTLD_GLOBAL.
    The implementation does this by default and so we can define the
    value to zero.  */
 #define RTLD_LOCAL     0
+
+/* Do not delete object when closed.  */
+#define RTLD_NODELETE  0x01000
+
+#ifdef __USE_GNU
+/* To support profiling of shared objects it is a good idea to call
+   the function found using `dlsym' using the following macro since
+   these calls do not use the PLT.  But this would mean the dynamic
+   loader has no chance to find out when the function is called.  The
+   macro applies the necessary magic so that profiling is possible.
+   Rewrite
+       foo = (*fctp) (arg1, arg2);
+   into
+        foo = DL_CALL_FCT (fctp, (arg1, arg2));
+*/
+# define DL_CALL_FCT(fctp, args) \
+  (_dl_mcount_wrapper_check (fctp), (*(fctp)) args)
+
+/* This function calls the profiling functions.  */
+extern void _dl_mcount_wrapper_check (void *__selfpc) __THROW;
+#endif
index bb4dd54..180227d 100644 (file)
@@ -9,3 +9,6 @@
 #include <bits/wordsize.h>
 
 #define __ELF_NATIVE_CLASS __WORDSIZE
+
+/* The entries in the .hash table always have a size of 32 bits.  */
+typedef uint32_t Elf_Symndx;
index f3af206..c382992 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1999, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _UNISTD_H
 # error "Never include this file directly.  Use <unistd.h> instead"
    `-1' means it is never supported.  Undefined means it cannot be
    statically decided.
 
-   _XBS5_ILP32_OFF32   32bit int, long, pointers, and off_t type
-   _XBS5_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
+   _POSIX_V6_ILP32_OFF32   32bit int, long, pointers, and off_t type
+   _POSIX_V6_ILP32_OFFBIG  32bit int, long, and pointers and larger off_t type
 
-   _XBS5_LP64_OFF32    64bit long and pointers and 32bit off_t type
-   _XBS5_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+   _POSIX_V6_LP64_OFF32           64bit long and pointers and 32bit off_t type
+   _POSIX_V6_LPBIG_OFFBIG  64bit long and pointers and large off_t type
+
+   The macros _XBS5_ILP32_OFF32, _XBS5_ILP32_OFFBIG, _XBS5_LP64_OFF32, and
+   _XBS5_LPBIG_OFFBIG were used in previous versions of the Unix standard
+   and are available only for compatibility.
 */
 
 #if __WORDSIZE == 64
 
 /* We can never provide environments with 32-bit wide pointers.  */
+# define _POSIX_V6_ILP32_OFF32 -1
+# define _POSIX_V6_ILP32_OFFBIG        -1
 # define _XBS5_ILP32_OFF32     -1
 # define _XBS5_ILP32_OFFBIG    -1
+/* We also have no use (for now) for an environment with bigger pointers
+   and offsets.  */
+# define _POSIX_V6_LPBIG_OFFBIG        -1
+# define _XBS5_LPBIG_OFFBIG    -1
 
 /* By default we have 64-bit wide `long int', pointers and `off_t'.  */
-# define _XBS5_LP64_OFF32      1
-# define _XBS5_LPBIG_OFFBIG    1
+# define _POSIX_V6_LP64_OFF64  1
+# define _XBS5_LP64_OFF64      1
 
 #else /* __WORDSIZE == 32 */
 
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'.  */
+/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
+   and all platforms support LFS.  */
+# define _POSIX_V6_ILP32_OFF32 1
+# define _POSIX_V6_ILP32_OFFBIG        1
 # define _XBS5_ILP32_OFF32     1
+# define _XBS5_ILP32_OFFBIG    1
 
 /* We optionally provide an environment with the above size but an 64-bit
    side `off_t'.  Therefore we don't define _XBS5_ILP32_OFFBIG.  */
 
 /* We can never provide environments with 64-bit wide pointers.  */
+# define _POSIX_V6_LP64_OFF64  -1
+# define _POSIX_V6_LPBIG_OFFBIG        -1
 # define _XBS5_LP64_OFF64      -1
 # define _XBS5_LPBIG_OFFBIG    -1
 
index 7a0bd81..ac59d4c 100644 (file)
@@ -1,21 +1,21 @@
 /* Error constants.  Linux specific version.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifdef _ERRNO_H
 
@@ -24,8 +24,6 @@
 # undef ERANGE
 # include <linux/errno.h>
 
-__BEGIN_DECLS
-
 /* Linux has no ENOTSUP error code.  */
 # define ENOTSUP EOPNOTSUPP
 
@@ -38,7 +36,7 @@ __BEGIN_DECLS
 extern int errno;
 
 /* Function to get address of global `errno' variable.  */
-extern int *__errno_location __P ((void)) __attribute__ ((__const__));
+extern int *__errno_location (void) __THROW __attribute__ ((__const__));
 
 #  if defined _LIBC
 /* We wouldn't need a special macro anymore but it is history.  */
@@ -54,11 +52,9 @@ extern int *__errno_location __P ((void)) __attribute__ ((__const__));
 
 #if !defined _ERRNO_H && defined __need_Emath
 /* This is ugly but the kernel header is not clean enough.  We must
-   define only the values EDOM and ERANGE in case __need_Emath is
-   defined.  The value is the same for all Linux ports.  */
+   define only the values EDOM, EILSEQ and ERANGE in case __need_Emath is
+   defined.  */
 # define EDOM  33      /* Math argument out of domain of function.  */
 # define EILSEQ        84      /* Illegal byte sequence.  */
 # define ERANGE        34      /* Math result not representable.  */
 #endif /* !_ERRNO_H && __need_Emath */
-
-__END_DECLS
index 0c94c6b..7de111a 100644 (file)
@@ -1,21 +1,21 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef        _FCNTL_H
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
-#define O_ACCMODE        0003
-#define O_RDONLY           00
-#define O_WRONLY           01
-#define O_RDWR             02
-#define O_CREAT                  0100  /* not fcntl */
-#define O_EXCL           0200  /* not fcntl */
-#define O_NOCTTY         0400  /* not fcntl */
-#define O_TRUNC                 01000  /* not fcntl */
-#define O_APPEND        02000
-#define O_NONBLOCK      04000
+#define O_ACCMODE         0003
+#define O_RDONLY            00
+#define O_WRONLY            01
+#define O_RDWR              02
+#define O_CREAT                   0100 /* not fcntl */
+#define O_EXCL            0200 /* not fcntl */
+#define O_NOCTTY          0400 /* not fcntl */
+#define O_TRUNC                  01000 /* not fcntl */
+#define O_APPEND         02000
+#define O_NONBLOCK       04000
 #define O_NDELAY       O_NONBLOCK
-#define O_SYNC         010000
-#define O_FSYNC                O_SYNC
-#define O_ASYNC                020000
+#define O_SYNC          010000
+#define O_FSYNC                 O_SYNC
+#define O_ASYNC                 020000
 
 #ifdef __USE_GNU
-# define O_DIRECTORY   040000  /* Must be a directory.  */
-# define O_NOFOLLOW    0100000 /* Do not follow links.  */
-#endif
-
-/* XXX missing */
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE   0
+# define O_DIRECTORY    040000 /* Must be a directory.  */
+# define O_NOFOLLOW    0100000 /* Do not follow links.  */
+# define O_DIRECT      0200000 /* Direct disk access.  */
 #endif
 
 /* For now Linux has synchronisity options for data and read operations.
    We define the symbols here but let them do the same as O_SYNC since
-   this is a superset.  */
+   this is a superset. */
 #if defined __USE_POSIX199309 || defined __USE_UNIX98
 # define O_DSYNC       O_SYNC  /* Synchronize data.  */
-# define O_RSYNC       O_SYNC  /* Synchronize read operations.  */
+# define O_RSYNC       O_SYNC  /* Synchronize read operations.  */
+#endif
+
+#ifdef __USE_LARGEFILE64
+# define O_LARGEFILE   0400000
 #endif
 
 /* Values for the second argument to `fcntl'.  */
 #define F_SETFD                2       /* Set file descriptor flags.  */
 #define F_GETFL                3       /* Get file status flags.  */
 #define F_SETFL                4       /* Set file status flags.  */
-#define F_GETLK                5       /* Get record locking info.  */
-#define F_SETLK                6       /* Set record locking info (non-blocking).  */
-#define F_SETLKW       7       /* Set record locking info (blocking).  */
-
-/* XXX missing */
-#define F_GETLK64      5       /* Get record locking info.  */
-#define F_SETLK64      6       /* Set record locking info (non-blocking).  */
-#define F_SETLKW64     7       /* Set record locking info (blocking).  */
+#ifndef __USE_FILE_OFFSET64
+# define F_GETLK       5       /* Get record locking info.  */
+# define F_SETLK       6       /* Set record locking info (non-blocking).  */
+# define F_SETLKW      7       /* Set record locking info (blocking).  */
+#else
+# define F_GETLK       F_GETLK64  /* Get record locking info.  */
+# define F_SETLK       F_SETLK64  /* Set record locking info (non-blocking).*/
+# define F_SETLKW      F_SETLKW64 /* Set record locking info (blocking).  */
+#endif
+#define F_GETLK64      12      /* Get record locking info.  */
+#define F_SETLK64      13      /* Set record locking info (non-blocking).  */
+#define F_SETLKW64     14      /* Set record locking info (blocking).  */
 
-#ifdef __USE_BSD
+#if defined __USE_BSD || defined __USE_XOPEN2K
 # define F_SETOWN      8       /* Get owner of socket (receiver of SIGIO).  */
 # define F_GETOWN      9       /* Set owner of socket (receiver of SIGIO).  */
 #endif
 # define F_GETSIG      11      /* Get number of signal to be sent.  */
 #endif
 
+#ifdef __USE_GNU
+# define F_SETLEASE    1024    /* Set a lease.  */
+# define F_GETLEASE    1025    /* Enquire what lease is active.  */
+# define F_NOTIFY      1026    /* Request notfications on a directory.  */
+#endif
+
 /* For F_[GET|SET]FL.  */
 #define FD_CLOEXEC     1       /* actually anything with low bit set goes */
 
 /* For posix fcntl() and `l_type' field of a `struct flock' for lockf().  */
 #define F_RDLCK                0       /* Read lock.  */
-#define F_WRLCK                1       /* Write lock.  */
-#define F_UNLCK                2       /* Remove lock.  */
+#define F_WRLCK                1       /* Write lock.  */
+#define F_UNLCK                2       /* Remove lock.  */
 
-/* for old implementation of bsd flock () */
+/* For old implementation of bsd flock().  */
 #define F_EXLCK                4       /* or 3 */
 #define F_SHLCK                8       /* or 4 */
 
 #ifdef __USE_BSD
-/* Operations for bsd flock(), also used by the kernel implementation */
+/* Operations for bsd flock(), also used by the kernel implementation. */
 # define LOCK_SH       1       /* shared lock */
 # define LOCK_EX       2       /* exclusive lock */
 # define LOCK_NB       4       /* or'd with one of the above to prevent
 # define LOCK_UN       8       /* remove lock */
 #endif
 
+#ifdef __USE_GNU
+# define LOCK_MAND     32      /* This is a mandatory flock:   */
+# define LOCK_READ     64      /* ... which allows concurrent read operations.  */
+# define LOCK_WRITE    128     /* ... which allows concurrent write operations.  */
+# define LOCK_RW       192     /* ... Which allows concurrent read & write operations.  */
+#endif
+
+#ifdef __USE_GNU
+/* Types of directory notifications that may be requested with F_NOTIFY.  */
+# define DN_ACCESS     0x00000001      /* File accessed.  */
+# define DN_MODIFY     0x00000002      /* File modified.  */
+# define DN_CREATE     0x00000004      /* File created.  */
+# define DN_DELETE     0x00000008      /* File removed.  */
+# define DN_RENAME     0x00000010      /* File renamed.  */
+# define DN_ATTRIB     0x00000020      /* File changed attibutes.  */
+# define DN_MULTISHOT  0x80000000      /* Don't remove notifier.  */
+#endif
+
 struct flock
   {
-    short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
+    short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
     short int l_whence;        /* Where `l_start' is relative to (like `lseek').  */
 #ifndef __USE_FILE_OFFSET64
     __off_t l_start;   /* Offset where the lock begins.  */
@@ -122,7 +150,7 @@ struct flock
 #ifdef __USE_LARGEFILE64
 struct flock64
   {
-    short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
+    short int l_type;  /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK.  */
     short int l_whence;        /* Where `l_start' is relative to (like `lseek').  */
     __off64_t l_start; /* Offset where the lock begins.  */
     __off64_t l_len;   /* Size of the locked area; zero means until EOF.  */
@@ -139,3 +167,13 @@ struct flock64
 # define FNONBLOCK     O_NONBLOCK
 # define FNDELAY       O_NDELAY
 #endif /* Use BSD.  */
+
+/* Advise to `posix_fadvise'.  */
+#ifdef __USE_XOPEN2K
+# define POSIX_FADV_NORMAL     0 /* No further special treatment.  */
+# define POSIX_FADV_RANDOM     1 /* Expect random page references.  */
+# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references.  */
+# define POSIX_FADV_WILLNEED   3 /* Will need these pages.  */
+# define POSIX_FADV_DONTNEED   4 /* Don't need these pages.  */
+# define POSIX_FADV_NOREUSE    5 /* Data will be accessed once.  */
+#endif
index 3138fef..7c0bcb6 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _FENV_H
 # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
@@ -71,9 +71,9 @@ typedef struct
 fenv_t;
 
 /* If the default argument is used we use this value.  */
-#define FE_DFL_ENV     ((fenv_t *) -1)
+#define FE_DFL_ENV     ((__const fenv_t *) -1)
 
 #ifdef __USE_GNU
 /* Floating-point environment where none of the exceptions are masked.  */
-# define FE_NOMASK_ENV ((fenv_t *) -2)
+# define FE_NOMASK_ENV ((__const fenv_t *) -2)
 #endif
diff --git a/libc/sysdeps/linux/m68k/bits/fenvinline.h b/libc/sysdeps/linux/m68k/bits/fenvinline.h
new file mode 100644 (file)
index 0000000..42f77b5
--- /dev/null
@@ -0,0 +1,8 @@
+/* This file provides inline versions of floating-pint environment
+   handling functions.  If there were any.  */
+
+#ifndef __NO_MATH_INLINES
+
+/* Here is where the code would go.  */
+
+#endif
index 822b829..ad52534 100644 (file)
@@ -1,22 +1,22 @@
 /* `HUGE_VAL' constants for m68k (where it is infinity).
    Used by <stdlib.h> and <math.h> functions for overflow.
-   Copyright (C) 1992, 1995, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
 
 #ifdef __GNUC__
 
-# define HUGE_VAL                                      \
+# if __GNUC_PREREQ(2,96)
+
+#  define HUGE_VAL (__extension__ 0x1.0p2047)
+
+# else
+
+#  define HUGE_VAL                                     \
   (__extension__                                       \
    ((union { unsigned long long __l; double __d; })    \
     { __l: 0x7ff0000000000000ULL }).__d)
 
+# endif
+
 #else /* not GCC */
 
 static union { unsigned char __c[8]; double __d; } __huge_val =
@@ -44,32 +52,41 @@ static union { unsigned char __c[8]; double __d; } __huge_val =
 #endif /* GCC.  */
 
 
-/* ISO C 9X extensions: (float) HUGE_VALF and (long double) HUGE_VALL.  */
+/* ISO C 99 extensions: (float) HUGE_VALF and (long double) HUGE_VALL.  */
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 
-# ifdef __GNUC__
+# if __GNUC_PREREQ(2,96)
 
-#  define HUGE_VALF                                    \
+#  define HUGE_VALF (__extension__ 0x1.0p255f)
+#  define HUGE_VALL (__extension__ 0x1.0p32767L)
+
+# else
+
+#  ifdef __GNUC__
+
+#   define HUGE_VALF                                   \
   (__extension__                                       \
    ((union { unsigned long __l; float __f; })          \
     { __l: 0x7f800000UL }).__f)
 
-#  define HUGE_VALL                                    \
+#   define HUGE_VALL                                   \
   (__extension__                                       \
    ((union { unsigned long __l[3]; long double __ld; })        \
     { __l: { 0x7fff0000UL, 0x80000000UL, 0UL } }).__ld)
 
-# else /* not GCC */
+#  else /* not GCC */
 
 static union { unsigned char __c[4]; float __f; } __huge_valf =
   { { 0x7f, 0x80, 0, 0 } };
-#  define HUGE_VALF    (__huge_valf.__f)
+#   define HUGE_VALF   (__huge_valf.__f)
 
 static union { unsigned char __c[12]; long double __ld; } __huge_vall =
   { { 0x7f, 0xff, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0 } };
-#  define HUGE_VALL    (__huge_vall.__ld)
+#   define HUGE_VALL   (__huge_vall.__ld)
+
+#  endif /* GCC.  */
 
-# endif        /* GCC.  */
+# endif /* GCC 2.95.  */
 
-#endif /* __USE_ISOC9X.  */
+#endif /* __USE_ISOC99.  */
index 38e2a2e..e6cf575 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98,99 Free Software Foundation, Inc.
+/* Copyright (C) 1991-1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* Linux version.  */
 
@@ -99,7 +99,7 @@ struct in_pktinfo
 #define IPV6_PKTINFO           2
 #define IPV6_HOPOPTS           3
 #define IPV6_DSTOPTS           4
-#define IPV6_RXSRCRT           5
+#define IPV6_RTHDR             5
 #define IPV6_PKTOPTIONS                6
 #define IPV6_CHECKSUM          7
 #define IPV6_HOPLIMIT          8
@@ -109,14 +109,21 @@ struct in_pktinfo
 #define IPV6_MULTICAST_IF      17
 #define IPV6_MULTICAST_HOPS    18
 #define IPV6_MULTICAST_LOOP    19
-#define IPV6_ADD_MEMBERSHIP    20
-#define IPV6_DROP_MEMBERSHIP   21
+#define IPV6_JOIN_GROUP                20
+#define IPV6_LEAVE_GROUP       21
 #define IPV6_ROUTER_ALERT      22
+#define IPV6_MTU_DISCOVER      23
+#define IPV6_MTU               24
+#define IPV6_RECVERR           25
 
 #define SCM_SRCRT              IPV6_RXSRCRT
 
-#define IPV6_RXHOPOPTS         IPV6_HOPOPTS    /* obsolete name */
-#define IPV6_RXDSTOPTS         IPV6_DSTOPTS    /* obsolete name */
+/* Obsolete synonyms for the above.  */
+#define IPV6_RXHOPOPTS         IPV6_HOPOPTS
+#define IPV6_RXDSTOPTS         IPV6_DSTOPTS
+#define IPV6_ADD_MEMBERSHIP    IPV6_JOIN_GROUP
+#define IPV6_DROP_MEMBERSHIP   IPV6_LEAVE_GROUP
+
 
 /* IPV6_MTU_DISCOVER values.  */
 #define IPV6_PMTUDISC_DONT     0       /* Never send DF frames.  */
@@ -126,3 +133,9 @@ struct in_pktinfo
 /* Socket level values for IPv6.  */
 #define SOL_IPV6        41
 #define SOL_ICMPV6      58
+
+/* Routing header options for IPv6.  */
+#define IPV6_RTHDR_LOOSE       0       /* Hop doesn't need to be neighbour. */
+#define IPV6_RTHDR_STRICT      1       /* Hop must be a neighbour.  */
+
+#define IPV6_RTHDR_TYPE_0      0       /* IPv6 Routing header type 0.  */
diff --git a/libc/sysdeps/linux/m68k/bits/initspin.h b/libc/sysdeps/linux/m68k/bits/initspin.h
new file mode 100644 (file)
index 0000000..af19d44
--- /dev/null
@@ -0,0 +1,28 @@
+/* Generic definitions for spinlock initializers.
+   Copyright (C) 2000, 2001 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.  */
+
+/* Initial value of a spinlock.  Most platforms should use zero,
+   unless they only implement a "test and clear" operation instead of
+   the usual "test and set". */
+#define __LT_SPINLOCK_INIT 0
+
+/* Macros for lock initializers, using the above definition. */
+#define __LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#define __ALT_LOCK_INITIALIZER { 0, __LT_SPINLOCK_INIT }
+#define __ATOMIC_INITIALIZER { 0, __LT_SPINLOCK_INIT }
index 59c79df..e856a04 100644 (file)
@@ -1,21 +1,21 @@
 /* Structure types for pre-termios terminal ioctls.  Linux version.
-   Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_IOCTL_H
 # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
@@ -75,3 +75,4 @@ struct termio
 #define N_SMSBLOCK     12      /* SMS block mode  */
 #define N_HDLC         13      /* synchronous HDLC  */
 #define N_SYNC_PPP     14      /* synchronous PPP  */
+#define        N_HCI           15      /* Bluetooth HCI UART  */
index c103645..b49ca20 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_IOCTL_H
 # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
index c4e3735..f1a043f 100644 (file)
@@ -1,26 +1,26 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995-1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_IPC_H
 # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
 
 /* Mode bits for `msgget', `semget', and `shmget'.  */
 #define IPC_CREAT      01000           /* Create key if key does not exist. */
@@ -31,7 +31,9 @@
 #define IPC_RMID       0               /* Remove identifier.  */
 #define IPC_SET                1               /* Set `ipc_perm' options.  */
 #define IPC_STAT       2               /* Get `ipc_perm' options.  */
-#define IPC_INFO       3               /* See ipcs.  */
+#ifdef __USE_GNU
+# define IPC_INFO      3               /* See ipcs.  */
+#endif
 
 /* Special key values.  */
 #define IPC_PRIVATE    ((__key_t) 0)   /* Private key.  */
 struct ipc_perm
   {
     __key_t __key;                     /* Key.  */
-    unsigned short int uid;            /* Owner's user ID.  */
-    unsigned short int gid;            /* Owner's group ID.  */
-    unsigned short int cuid;           /* Creator's user ID.  */
-    unsigned short int cgid;           /* Creator's group ID.  */
+    __uid_t uid;                       /* Owner's user ID.  */
+    __gid_t gid;                       /* Owner's group ID.  */
+    __uid_t cuid;                      /* Creator's user ID.  */
+    __gid_t cgid;                      /* Creator's group ID.  */
     unsigned short int mode;           /* Read/write permission.  */
+    unsigned short int __pad1;
     unsigned short int __seq;          /* Sequence number.  */
+    unsigned short int __pad2;
+    unsigned long int __unused1;
+    unsigned long int __unused2;
   };
index a14cea1..2c1d162 100644 (file)
@@ -1,5 +1,5 @@
 /* libc-internal interface for mutex locks.  LinuxThreads version.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 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
 #include <pthread.h>
 
 /* Mutex type.  */
-#ifdef _LIBC
+#if defined(_LIBC) || defined(_IO_MTSAFE_IO)
 typedef pthread_mutex_t __libc_lock_t;
+typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
+# ifdef __USE_UNIX98
+typedef pthread_rwlock_t __libc_rwlock_t;
+# else
+typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
+# endif
 #else
 typedef struct __libc_lock_opaque__ __libc_lock_t;
+typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
+typedef struct __libc_rwlock_opaque__ __libc_rwlock_t;
 #endif
 
 /* Type for key to thread-specific data.  */
@@ -41,25 +49,44 @@ typedef pthread_key_t __libc_key_t;
    of libc.  */
 #define __libc_lock_define(CLASS,NAME) \
   CLASS __libc_lock_t NAME;
+#define __libc_rwlock_define(CLASS,NAME) \
+  CLASS __libc_rwlock_t NAME;
+#define __libc_lock_define_recursive(CLASS,NAME) \
+  CLASS __libc_lock_recursive_t NAME;
 
 /* Define an initialized lock variable NAME with storage class CLASS.
 
-   For the C library we take a deeper look at the initializer.  For this
-   implementation all fields are initialized to zero.  Therefore we
-   don't initialize the variable which allows putting it into the BSS
-   section.  */
-#define __libc_lock_define_initialized(CLASS,NAME) \
+   For the C library we take a deeper look at the initializer.  For
+   this implementation all fields are initialized to zero.  Therefore
+   we don't initialize the variable which allows putting it into the
+   BSS section.  (Except on PA-RISC and other odd architectures, where
+   initialized locks must be set to one due to the lack of normal
+   atomic operations.) */
+
+#if __LT_SPINLOCK_INIT == 0
+#  define __libc_lock_define_initialized(CLASS,NAME) \
   CLASS __libc_lock_t NAME;
+#else
+#  define __libc_lock_define_initialized(CLASS,NAME) \
+  CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
+#endif
+
+#define __libc_rwlock_define_initialized(CLASS,NAME) \
+  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
 
 /* Define an initialized recursive lock variable NAME with storage
    class CLASS.  */
 #define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
+  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
+#define _LIBC_LOCK_RECURSIVE_INITIALIZER \
+  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
 
 /* Initialize the named lock variable, leaving it in a consistent, unlocked
    state.  */
 #define __libc_lock_init(NAME) \
   (__pthread_mutex_init != NULL ? __pthread_mutex_init (&(NAME), NULL) : 0);
+#define __libc_rwlock_init(NAME) \
+  (__pthread_rwlock_init != NULL ? __pthread_rwlock_init (&(NAME), NULL) : 0);
 
 /* Same as last but this time we initialize a recursive mutex.  */
 #define __libc_lock_init_recursive(NAME) \
@@ -69,7 +96,7 @@ typedef pthread_key_t __libc_key_t;
        pthread_mutexattr_t __attr;                                           \
        __pthread_mutexattr_init (&__attr);                                   \
        __pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP); \
-       __pthread_mutex_init (&(NAME), &__attr);                              \
+       __pthread_mutex_init (&(NAME).mutex, &__attr);                        \
        __pthread_mutexattr_destroy (&__attr);                                \
       }                                                                              \
   } while (0);
@@ -79,30 +106,44 @@ typedef pthread_key_t __libc_key_t;
    called on a lock variable before the containing storage is reused.  */
 #define __libc_lock_fini(NAME) \
   (__pthread_mutex_destroy != NULL ? __pthread_mutex_destroy (&(NAME)) : 0);
+#define __libc_rwlock_fini(NAME) \
+  (__pthread_rwlock_destroy != NULL ? __pthread_rwlock_destroy (&(NAME)) : 0);
 
 /* Finalize recursive named lock.  */
-#define __libc_lock_fini_recursive(NAME) __libc_lock_fini (NAME)
+#define __libc_lock_fini_recursive(NAME) __libc_lock_fini ((NAME).mutex)
 
 /* Lock the named lock variable.  */
 #define __libc_lock_lock(NAME) \
   (__pthread_mutex_lock != NULL ? __pthread_mutex_lock (&(NAME)) : 0);
+#define __libc_rwlock_rdlock(NAME) \
+  (__pthread_rwlock_rdlock != NULL ? __pthread_rwlock_rdlock (&(NAME)) : 0);
+#define __libc_rwlock_wrlock(NAME) \
+  (__pthread_rwlock_wrlock != NULL ? __pthread_rwlock_wrlock (&(NAME)) : 0);
 
 /* Lock the recursive named lock variable.  */
-#define __libc_lock_lock_recursive(NAME) __libc_lock_lock (NAME)
+#define __libc_lock_lock_recursive(NAME) __libc_lock_lock ((NAME).mutex)
 
 /* Try to lock the named lock variable.  */
 #define __libc_lock_trylock(NAME) \
   (__pthread_mutex_trylock != NULL ? __pthread_mutex_trylock (&(NAME)) : 0)
+#define __libc_rwlock_tryrdlock(NAME) \
+  (__pthread_rwlock_tryrdlock != NULL \
+   ? __pthread_rwlock_tryrdlock (&(NAME)) : 0)
+#define __libc_rwlock_trywrlock(NAME) \
+  (__pthread_rwlock_trywrlock != NULL \
+   ? __pthread_rwlock_trywrlock (&(NAME)) : 0)
 
 /* Try to lock the recursive named lock variable.  */
-#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock (NAME)
+#define __libc_lock_trylock_recursive(NAME) __libc_lock_trylock ((NAME).mutex)
 
 /* Unlock the named lock variable.  */
 #define __libc_lock_unlock(NAME) \
   (__pthread_mutex_unlock != NULL ? __pthread_mutex_unlock (&(NAME)) : 0);
+#define __libc_rwlock_unlock(NAME) \
+  (__pthread_rwlock_unlock != NULL ? __pthread_rwlock_unlock (&(NAME)) : 0);
 
 /* Unlock the recursive named lock variable.  */
-#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock (NAME)
+#define __libc_lock_unlock_recursive(NAME) __libc_lock_unlock ((NAME).mutex)
 
 
 /* Define once control variable.  */
@@ -121,17 +162,17 @@ typedef pthread_key_t __libc_key_t;
   do {                                                                       \
     if (__pthread_once != NULL)                                                      \
       __pthread_once (&(ONCE_CONTROL), (INIT_FUNCTION));                     \
-    else if ((ONCE_CONTROL) == 0) {                                          \
+    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {                          \
       INIT_FUNCTION ();                                                              \
-      (ONCE_CONTROL) = 1;                                                    \
+      (ONCE_CONTROL) = !PTHREAD_ONCE_INIT;                                   \
     }                                                                        \
   } while (0)
 
 
 /* Start critical region with cleanup.  */
-#define __libc_cleanup_region_start(FCT, ARG) \
+#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
   { struct _pthread_cleanup_buffer _buffer;                                  \
-    int _avail = _pthread_cleanup_push_defer != NULL;                        \
+    int _avail = (DOIT) && _pthread_cleanup_push_defer != NULL;                      \
     if (_avail) {                                                            \
       _pthread_cleanup_push_defer (&_buffer, (FCT), (ARG));                  \
     }
@@ -166,27 +207,93 @@ typedef pthread_key_t __libc_key_t;
 #define __libc_atfork(PREPARE, PARENT, CHILD) \
   (__pthread_atfork != NULL ? __pthread_atfork (PREPARE, PARENT, CHILD) : 0)
 
+/* Functions that are used by this file and are internal to the GNU C
+   library.  */
+
+extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
+                                __const pthread_mutexattr_t *__mutex_attr);
+
+extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
+
+extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
+
+extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
+
+extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
+
+extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
+
+extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
+
+extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
+                                       int __kind);
+
+#ifdef __USE_UNIX98
+extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
+                                 __const pthread_rwlockattr_t *__attr);
+
+extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
+
+extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
+
+extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
+
+extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
+
+extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
+
+extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
+#endif
+
+extern int __pthread_key_create (pthread_key_t *__key,
+                                void (*__destr_function) (void *));
+
+extern int __pthread_setspecific (pthread_key_t __key,
+                                 __const void *__pointer);
+
+extern void *__pthread_getspecific (pthread_key_t __key);
+
+extern int __pthread_once (pthread_once_t *__once_control,
+                          void (*__init_routine) (void));
+
+extern int __pthread_atfork (void (*__prepare) (void),
+                            void (*__parent) (void),
+                            void (*__child) (void));
+
+
 
 /* Make the pthread functions weak so that we can elide them from
    single-threaded processes.  */
 #ifndef __NO_WEAK_PTHREAD_ALIASES
 # ifdef weak_extern
-weak_extern (__pthread_mutex_init)
-weak_extern (__pthread_mutex_destroy)
-weak_extern (__pthread_mutex_lock)
-weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutex_unlock)
-weak_extern (__pthread_mutexattr_init)
-weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_settype)
-weak_extern (__pthread_key_create)
-weak_extern (__pthread_setspecific)
-weak_extern (__pthread_getspecific)
-weak_extern (__pthread_once)
+#  if _LIBC
+#   include <bp-sym.h>
+#  else
+#   define BP_SYM (sym) sym
+#  endif
+weak_extern (BP_SYM (__pthread_mutex_init))
+weak_extern (BP_SYM (__pthread_mutex_destroy))
+weak_extern (BP_SYM (__pthread_mutex_lock))
+weak_extern (BP_SYM (__pthread_mutex_trylock))
+weak_extern (BP_SYM (__pthread_mutex_unlock))
+weak_extern (BP_SYM (__pthread_mutexattr_init))
+weak_extern (BP_SYM (__pthread_mutexattr_destroy))
+weak_extern (BP_SYM (__pthread_mutexattr_settype))
+weak_extern (BP_SYM (__pthread_rwlock_init))
+weak_extern (BP_SYM (__pthread_rwlock_destroy))
+weak_extern (BP_SYM (__pthread_rwlock_rdlock))
+weak_extern (BP_SYM (__pthread_rwlock_tryrdlock))
+weak_extern (BP_SYM (__pthread_rwlock_wrlock))
+weak_extern (BP_SYM (__pthread_rwlock_trywrlock))
+weak_extern (BP_SYM (__pthread_rwlock_unlock))
+weak_extern (BP_SYM (__pthread_key_create))
+weak_extern (BP_SYM (__pthread_setspecific))
+weak_extern (BP_SYM (__pthread_getspecific))
+weak_extern (BP_SYM (__pthread_once))
 weak_extern (__pthread_initialize)
 weak_extern (__pthread_atfork)
-weak_extern (_pthread_cleanup_push_defer)
-weak_extern (_pthread_cleanup_pop_restore)
+weak_extern (BP_SYM (_pthread_cleanup_push_defer))
+weak_extern (BP_SYM (_pthread_cleanup_pop_restore))
 # else
 #  pragma weak __pthread_mutex_init
 #  pragma weak __pthread_mutex_destroy
@@ -196,6 +303,12 @@ weak_extern (_pthread_cleanup_pop_restore)
 #  pragma weak __pthread_mutexattr_init
 #  pragma weak __pthread_mutexattr_destroy
 #  pragma weak __pthread_mutexattr_settype
+#  pragma weak __pthread_rwlock_destroy
+#  pragma weak __pthread_rwlock_rdlock
+#  pragma weak __pthread_rwlock_tryrdlock
+#  pragma weak __pthread_rwlock_wrlock
+#  pragma weak __pthread_rwlock_trywrlock
+#  pragma weak __pthread_rwlock_unlock
 #  pragma weak __pthread_key_create
 #  pragma weak __pthread_setspecific
 #  pragma weak __pthread_getspecific
index 545a90b..0a7c837 100644 (file)
@@ -1,5 +1,5 @@
 /* Minimum guaranteed maximum values for system limits.  Linux version.
-   Copyright (C) 1993, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
+   Copyright (C) 1993, 94, 95, 96, 97, 98, 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
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-/* The kernel header pollutes the namespace with the NR_OPEN symbol.
-   Remove this after including the header if necessary.  */
+/* The kernel header pollutes the namespace with the NR_OPEN symbol
+   and defines LINK_MAX although filesystems have different maxima.  A
+   similar thing is true for OPEN_MAX: the limit can be changed at
+   runtime and therefore the macro must not be defined.  Remove this
+   after including the header if necessary.  */
 #ifndef NR_OPEN
 # define __undef_NR_OPEN
 #endif
+#ifndef LINK_MAX
+# define __undef_LINK_MAX
+#endif
+#ifndef OPEN_MAX
+# define __undef_OPEN_MAX
+#endif
 
 /* The kernel sources contain a file with all the needed information.  */
 #include <linux/limits.h>
 # undef NR_OPEN
 # undef __undef_NR_OPEN
 #endif
+/* Have to remove LINK_MAX?  */
+#ifdef __undef_LINK_MAX
+# undef LINK_MAX
+# undef __undef_LINK_MAX
+#endif
+/* Have to remove OPEN_MAX?  */
+#ifdef __undef_OPEN_MAX
+# undef OPEN_MAX
+# undef __undef_OPEN_MAX
+#endif
 
 /* The number of data keys per process.  */
 #define _POSIX_THREAD_KEYS_MAX 128
@@ -53,3 +72,6 @@
 
 /* Minimum size for a thread.  We are free to choose a reasonable value.  */
 #define PTHREAD_STACK_MIN      16384
+
+/* Maximum number of POSIX timers available.  */
+#define TIMER_MAX      256
diff --git a/libc/sysdeps/linux/m68k/bits/locale.h b/libc/sysdeps/linux/m68k/bits/locale.h
new file mode 100644 (file)
index 0000000..50064b5
--- /dev/null
@@ -0,0 +1,44 @@
+/* Definition of locale category symbol values.
+   Copyright (C) 2001 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#if !defined _LOCALE_H && !defined _LANGINFO_H
+# error "Never use <bits/locale.h> directly; include <locale.h> instead."
+#endif
+
+#ifndef _BITS_LOCALE_H
+#define _BITS_LOCALE_H 1
+
+enum
+{
+  __LC_CTYPE = 0,
+  __LC_NUMERIC = 1,
+  __LC_TIME = 2,
+  __LC_COLLATE = 3,
+  __LC_MONETARY = 4,
+  __LC_MESSAGES = 5,
+  __LC_ALL = 6,
+  __LC_PAPER = 7,
+  __LC_NAME = 8,
+  __LC_ADDRESS = 9,
+  __LC_TELEPHONE = 10,
+  __LC_MEASUREMENT = 11,
+  __LC_IDENTIFICATION = 12
+};
+
+#endif /* bits/locale.h */
index 97bda45..c1181f7 100644 (file)
@@ -1,21 +1,21 @@
 /* Prototype declarations for math functions; helper file for <math.h>.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* NOTE: Because of the special way this file is used by <math.h>, this
    file must NOT be protected from multiple inclusion as header files
@@ -81,7 +81,7 @@ __MATHCALL (sinh,, (_Mdouble_ __x));
 /* Hyperbolic tangent of X.  */
 __MATHCALL (tanh,, (_Mdouble_ __x));
 
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 /* Hyperbolic arc cosine of X.  */
 __MATHCALL (acosh,, (_Mdouble_ __x));
 /* Hyperbolic arc sine of X.  */
@@ -117,7 +117,7 @@ __MATHCALL (log10,, (_Mdouble_ __x));
 /* Break VALUE into integral and fractional parts.  */
 __MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr));
 
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 /* Return exp(X) - 1.  */
 __MATHCALL (expm1,, (_Mdouble_ __x));
 
@@ -128,7 +128,7 @@ __MATHCALL (log1p,, (_Mdouble_ __x));
 __MATHCALL (logb,, (_Mdouble_ __x));
 #endif
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 /* Compute base-2 exponential of X.  */
 __MATHCALL (exp2,, (_Mdouble_ __x));
 
@@ -145,12 +145,12 @@ __MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y));
 /* Return the square root of X.  */
 __MATHCALL (sqrt,, (_Mdouble_ __x));
 
-#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
 /* Return `sqrt(X*X + Y*Y)'.  */
 __MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
 #endif
 
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 /* Return the cube root of X.  */
 __MATHCALL (cbrt,, (_Mdouble_ __x));
 #endif
@@ -186,14 +186,6 @@ __MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
 /* Return nonzero if VALUE is finite and not NaN.  */
 __MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
 
-/* Deal with an infinite or NaN result.
-   If ERROR is ERANGE, result is +Inf;
-   if ERROR is - ERANGE, result is -Inf;
-   otherwise result is NaN.
-   This will set `errno' to either ERANGE or EDOM,
-   and may return an infinity or NaN, or may do something else.  */
-__MATHCALLX (infnan,, (int __error), (__const__));
-
 /* Return the remainder of X/Y.  */
 __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y));
 
@@ -202,12 +194,12 @@ __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y));
 __MATHCALL (significand,, (_Mdouble_ __x));
 #endif /* Use misc.  */
 
-#if defined __USE_MISC || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_ISOC99
 /* Return X with its signed changed to Y's.  */
 __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
 #endif
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 /* Return representation of NaN for double type.  */
 __MATHCALLX (nan,, (__const char *__tagb), (__const__));
 #endif
@@ -230,11 +222,14 @@ __MATHCALL (yn,, (int, _Mdouble_));
 #endif
 
 
-#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
 /* Error and gamma functions.  */
 __MATHCALL (erf,, (_Mdouble_));
 __MATHCALL (erfc,, (_Mdouble_));
 __MATHCALL (lgamma,, (_Mdouble_));
+#endif
+
+#ifdef __USE_ISOC99
 __MATHCALL (tgamma,, (_Mdouble_));
 #endif
 
@@ -251,14 +246,14 @@ __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
 #endif
 
 
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 /* Return the integer nearest X in the direction of the
    prevailing rounding mode.  */
 __MATHCALL (rint,, (_Mdouble_ __x));
 
 /* Return X + epsilon if X < Y, X - epsilon if X > Y.  */
 __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
-# ifdef __USE_ISOC9X
+# ifdef __USE_ISOC99
 __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__));
 # endif
 
@@ -270,14 +265,16 @@ __MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y));
 __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n));
 # endif
 
+# if defined __USE_MISC || defined __USE_ISOC99
 /* Return X times (2 to the Nth power).  */
 __MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
+# endif
 
 /* Return the binary exponent of X, which must be nonzero.  */
 __MATHDECL (int,ilogb,, (_Mdouble_ __x));
 #endif
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 /* Return X times (2 to the Nth power).  */
 __MATHCALL (scalbln,, (_Mdouble_ __x, long int __n));
 
@@ -333,4 +330,4 @@ __MATHDECL_1 (int, __signbit,, (_Mdouble_ __value))
 
 /* Multiply-add function computed as a ternary operation.  */
 __MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
-#endif /* Use ISO C 9X.  */
+#endif /* Use ISO C99.  */
index a933ac4..90146f1 100644 (file)
@@ -1,26 +1,26 @@
-/* Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #if !defined _MATH_H && !defined _COMPLEX_H
 # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
 #endif
 
-#if defined __USE_ISOC9X && defined _MATH_H && !defined _MATH_H_MATHDEF
+#if defined __USE_ISOC99 && defined _MATH_H && !defined _MATH_H_MATHDEF
 # define _MATH_H_MATHDEF       1
 
 /* The m68k FPUs evaluate all values in the 96 bit floating-point format
@@ -31,17 +31,11 @@ typedef long double float_t;        /* `float' expressions are evaluated as
 typedef long double double_t;  /* `double' expressions are evaluated as
                                   `long double'.  */
 
-/* Signal that both types are `long double'.  */
-# define FLT_EVAL_METHOD       2
-
 /* Define `INFINITY' as value of type `float'.  */
 # define INFINITY      HUGE_VALF
 
 /* The values returned by `ilogb' for 0 and NaN respectively.  */
-# define FP_ILOGB0     0x80000000
-# define FP_ILOGBNAN   0x7fffffff
-
-/* Number of decimal digits for the `long double' type.  */
-# define DECIMAL_DIG   18
+# define FP_ILOGB0     (-2147483647 - 1)
+# define FP_ILOGBNAN   (2147483647)
 
 #endif /* ISO C99 */
index b1e2a75..dec89d8 100644 (file)
@@ -1,27 +1,27 @@
 /* Definitions of inline math functions implemented by the m68881/2.
-   Copyright (C) 1991, 92, 93, 94, 96, 97, 98 Free Software Foundation, Inc.
+   Copyright (C) 1991,92,93,94,96,97,98,99,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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifdef __GNUC__
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 
-/* ISO C 9X defines some macros to perform unordered comparisons.  The
+/* ISO C99 defines some macros to perform unordered comparisons.  The
    m68k FPU supports this with special opcodes and we should use them.
    These must not be inline functions since we have to be able to handle
    all floating-point types.  */
@@ -98,7 +98,7 @@
    suffixed with f and l for the float and long double version, resp).  OP
    is the name of the fpu operation (without leading f).  */
 
-#if defined __USE_MISC || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_ISOC99
 # define __inline_mathop(func, op)                     \
   __inline_mathop1(double, func, op)                   \
   __inline_mathop1(float, __CONCAT(func,f), op)                \
 #endif
 
 #define __inline_mathop1(float_type,func, op)                                \
-  __m81_defun (float_type, func, (float_type __mathop_x))                    \
+  __m81_defun (float_type, func, (float_type __mathop_x)) __THROW            \
   {                                                                          \
     float_type __result;                                                     \
     __asm("f" __STRING(op) "%.x %1, %0" : "=f" (__result) : "f" (__mathop_x));\
     return __result;                                                         \
   }
 
-#ifdef __LIBC_INTERNAL_MATH_INLINES
-/* ieee style elementary functions */
-/* These are internal to the implementation of libm.  */
-__inline_mathop(__ieee754_acos, acos)
-__inline_mathop(__ieee754_asin, asin)
-__inline_mathop(__ieee754_cosh, cosh)
-__inline_mathop(__ieee754_sinh, sinh)
-__inline_mathop(__ieee754_exp, etox)
-__inline_mathop(__ieee754_exp2, twotox)
-__inline_mathop(__ieee754_exp10, tentox)
-__inline_mathop(__ieee754_log10, log10)
-__inline_mathop(__ieee754_log, logn)
-__inline_mathop(__ieee754_sqrt, sqrt)
-__inline_mathop(__ieee754_atanh, atanh)
-#endif
-
 __inline_mathop(__atan, atan)
 __inline_mathop(__cos, cos)
 __inline_mathop(__sin, sin)
@@ -139,7 +123,7 @@ __inline_mathop(__tan, tan)
 __inline_mathop(__tanh, tanh)
 __inline_mathop(__fabs, abs)
 
-#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 __inline_mathop(__rint, int)
 __inline_mathop(__expm1, etoxm1)
 __inline_mathop(__log1p, lognp1)
@@ -149,8 +133,7 @@ __inline_mathop(__log1p, lognp1)
 __inline_mathop(__significand, getman)
 #endif
 
-#ifdef __USE_ISOC9X
-__inline_mathop(__log2, log2)
+#ifdef __USE_ISOC99
 __inline_mathop(__trunc, intrz)
 #endif
 
@@ -162,7 +145,7 @@ __inline_mathop(sin, sin)
 __inline_mathop(tan, tan)
 __inline_mathop(tanh, tanh)
 
-# if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC9X
+# if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
 __inline_mathop(rint, int)
 __inline_mathop(expm1, etoxm1)
 __inline_mathop(log1p, lognp1)
@@ -172,63 +155,19 @@ __inline_mathop(log1p, lognp1)
 __inline_mathop(significand, getman)
 # endif
 
-# ifdef __USE_ISOC9X
-__inline_mathop(log2, log2)
+# ifdef __USE_ISOC99
 __inline_mathop(trunc, intrz)
 # endif
 
 #endif /* !__NO_MATH_INLINES && __OPTIMIZE__ */
 
 /* This macro contains the definition for the rest of the inline
-   functions, using __FLOAT_TYPE as the domain type and __S as the suffix
+   functions, using FLOAT_TYPE as the domain type and S as the suffix
    for the function names.  */
 
-#ifdef __LIBC_INTERNAL_MATH_INLINES
-/* Internally used functions.  */
-# define __internal_inline_functions(float_type, s)                         \
-__m81_defun (float_type, __CONCAT(__ieee754_remainder,s),                   \
-            (float_type __x, float_type __y))                               \
-{                                                                           \
-  float_type __result;                                                      \
-  __asm("frem%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));         \
-  return __result;                                                          \
-}                                                                           \
-                                                                            \
-__m81_defun (float_type, __CONCAT(__ieee754_fmod,s),                        \
-            (float_type __x, float_type __y))                               \
-{                                                                           \
-  float_type __result;                                                      \
-  __asm("fmod%.x %1, %0" : "=f" (__result) : "f" (__y), "0" (__x));         \
-  return __result;                                                          \
-}
-
-__internal_inline_functions (double,)
-__internal_inline_functions (float,f)
-__internal_inline_functions (long double,l)
-# undef __internal_inline_functions
-
-/* Get the m68881 condition codes, to quickly check multiple conditions.  */
-static __inline__ unsigned long
-__m81_test (long double __val)
-{
-  unsigned long __fpsr;
-  __asm ("ftst%.x %1; fmove%.l %/fpsr,%0" : "=dm" (__fpsr) : "f" (__val));
-  return __fpsr;
-}
-
-/* Bit values returned by __m81_test.  */
-# define __M81_COND_NAN (1 << 24)
-# define __M81_COND_INF (2 << 24)
-# define __M81_COND_ZERO (4 << 24)
-# define __M81_COND_NEG (8 << 24)
-
-#endif /* __LIBC_INTENRAL_MATH_INLINES */
-
-/* The rest of the functions are available to the user.  */
-
 #define __inline_functions(float_type, s)                                \
 __m81_inline float_type                                                          \
-__m81_u(__CONCAT(__frexp,s))(float_type __value, int *__expptr)                  \
+__m81_u(__CONCAT(__frexp,s))(float_type __value, int *__expptr)        __THROW   \
 {                                                                        \
   float_type __mantissa, __exponent;                                     \
   int __iexponent;                                                       \
@@ -249,7 +188,7 @@ __m81_u(__CONCAT(__frexp,s))(float_type __value, int *__expptr)               \
   return __mantissa;                                                     \
 }                                                                        \
                                                                          \
-__m81_defun (float_type, __CONCAT(__floor,s), (float_type __x))                  \
+__m81_defun (float_type, __CONCAT(__floor,s), (float_type __x))        __THROW   \
 {                                                                        \
   float_type __result;                                                   \
   unsigned long int __ctrl_reg;                                                  \
@@ -265,7 +204,7 @@ __m81_defun (float_type, __CONCAT(__floor,s), (float_type __x))               \
   return __result;                                                       \
 }                                                                        \
                                                                          \
-__m81_defun (float_type, __CONCAT(__ceil,s), (float_type __x))           \
+__m81_defun (float_type, __CONCAT(__ceil,s), (float_type __x)) __THROW   \
 {                                                                        \
   float_type __result;                                                   \
   unsigned long int __ctrl_reg;                                                  \
@@ -282,7 +221,7 @@ __m81_defun (float_type, __CONCAT(__ceil,s), (float_type __x))                \
 }
 
 __inline_functions(double,)
-#if defined __USE_MISC || defined __USE_ISOC9X
+#if defined __USE_MISC || defined __USE_ISOC99
 __inline_functions(float,f)
 __inline_functions(long double,l)
 #endif
@@ -291,7 +230,7 @@ __inline_functions(long double,l)
 #ifdef __USE_MISC
 
 # define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__isinf,s), (float_type __value))             \
+__m81_defun (int, __CONCAT(__isinf,s), (float_type __value)) __THROW     \
 {                                                                        \
   /* There is no branch-condition for infinity,                                  \
      so we must extract and examine the condition codes manually.  */    \
@@ -301,7 +240,7 @@ __m81_defun (int, __CONCAT(__isinf,s), (float_type __value))                  \
   return (__fpsr & (2 << 24)) ? (__fpsr & (8 << 24) ? -1 : 1) : 0;       \
 }                                                                        \
                                                                          \
-__m81_defun (int, __CONCAT(__finite,s), (float_type __value))            \
+__m81_defun (int, __CONCAT(__finite,s), (float_type __value)) __THROW    \
 {                                                                        \
   /* There is no branch-condition for infinity, so we must extract and   \
      examine the condition codes manually.  */                           \
@@ -312,7 +251,7 @@ __m81_defun (int, __CONCAT(__finite,s), (float_type __value))                 \
 }                                                                        \
                                                                          \
 __m81_defun (float_type, __CONCAT(__scalbn,s),                           \
-            (float_type __x, int __n))                                   \
+            (float_type __x, int __n)) __THROW                           \
 {                                                                        \
   float_type __result;                                                   \
   __asm ("fscale%.l %1, %0" : "=f" (__result) : "dmi" (__n), "0" (__x));  \
@@ -329,7 +268,7 @@ __inline_functions(long double,l)
 #if defined __USE_MISC || defined __USE_XOPEN
 
 # define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__isnan,s), (float_type __value))             \
+__m81_defun (int, __CONCAT(__isnan,s), (float_type __value)) __THROW     \
 {                                                                        \
   char __result;                                                         \
   __asm("ftst%.x %1\n"                                                   \
@@ -346,10 +285,10 @@ __inline_functions(long double,l)
 
 #endif
 
-#ifdef __USE_ISOC9X
+#ifdef __USE_ISOC99
 
 # define __inline_functions(float_type, s)                               \
-__m81_defun (int, __CONCAT(__signbit,s), (float_type __value))           \
+__m81_defun (int, __CONCAT(__signbit,s), (float_type __value)) __THROW   \
 {                                                                        \
   /* There is no branch-condition for the sign bit, so we must extract   \
      and examine the condition codes manually.  */                       \
@@ -360,12 +299,12 @@ __m81_defun (int, __CONCAT(__signbit,s), (float_type __value))              \
 }                                                                        \
                                                                          \
 __m81_defun (float_type, __CONCAT(__scalbln,s),                                  \
-            (float_type __x, long int __n))                              \
+            (float_type __x, long int __n)) __THROW                      \
 {                                                                        \
   return __CONCAT(__scalbn,s) (__x, __n);                                \
 }                                                                        \
                                                                          \
-__m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x))      \
+__m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x)) __THROW \
 {                                                                        \
   float_type __result;                                                   \
   unsigned long int __ctrl_reg;                                                  \
@@ -379,7 +318,7 @@ __m81_defun (float_type, __CONCAT(__nearbyint,s), (float_type __x))   \
   return __result;                                                       \
 }                                                                        \
                                                                          \
-__m81_defun (long int, __CONCAT(__lrint,s), (float_type __x))            \
+__m81_defun (long int, __CONCAT(__lrint,s), (float_type __x)) __THROW    \
 {                                                                        \
   long int __result;                                                     \
   __asm ("fmove%.l %1, %0" : "=dm" (__result) : "f" (__x));              \
@@ -388,7 +327,7 @@ __m81_defun (long int, __CONCAT(__lrint,s), (float_type __x))                 \
                                                                          \
 __m81_inline float_type                                                          \
 __m81_u(__CONCAT(__fma,s))(float_type __x, float_type __y,               \
-                          float_type __z)                                \
+                          float_type __z) __THROW                        \
 {                                                                        \
   return (__x * __y) + __z;                                              \
 }
@@ -405,7 +344,7 @@ __inline_functions (long double,l)
 # define __inline_functions(float_type, s)                             \
 __m81_inline void                                                      \
 __m81_u(__CONCAT(__sincos,s))(float_type __x, float_type *__sinx,      \
-                             float_type *__cosx)                       \
+                             float_type *__cosx) __THROW               \
 {                                                                      \
   __asm ("fsincos%.x %2,%1:%0"                                         \
         : "=f" (*__sinx), "=f" (*__cosx) : "f" (__x));                 \
@@ -426,13 +365,13 @@ __inline_functions (long double,l)
    NAME, to make token pasting work correctly with -traditional.  */
 # define __inline_forward_c(rettype, name, args1, args2)       \
 extern __inline rettype __attribute__((__const__))     \
-name args1                                             \
+name args1 __THROW                                     \
 {                                                      \
   return __CONCAT(__,name) args2;                      \
 }
 
 # define __inline_forward(rettype, name, args1, args2) \
-extern __inline rettype name args1                     \
+extern __inline rettype name args1 __THROW             \
 {                                                      \
   return __CONCAT(__,name) args2;                      \
 }
@@ -442,18 +381,18 @@ __inline_forward(double,frexp, (double __value, int *__expptr),
 __inline_forward_c(double,floor, (double __x), (__x))
 __inline_forward_c(double,ceil, (double __x), (__x))
 # ifdef __USE_MISC
-#  ifndef __USE_ISOC9X /* Conflict with macro of same name.  */
+#  ifndef __USE_ISOC99 /* Conflict with macro of same name.  */
 __inline_forward_c(int,isinf, (double __value), (__value))
 #  endif
 __inline_forward_c(int,finite, (double __value), (__value))
 __inline_forward_c(double,scalbn, (double __x, int __n), (__x, __n))
 # endif
 # if defined __USE_MISC || defined __USE_XOPEN
-#  ifndef __USE_ISOC9X /* Conflict with macro of same name.  */
+#  ifndef __USE_ISOC99 /* Conflict with macro of same name.  */
 __inline_forward_c(int,isnan, (double __value), (__value))
 #  endif
 # endif
-# ifdef __USE_ISOC9X
+# ifdef __USE_ISOC99
 __inline_forward_c(double,scalbln, (double __x, long int __n), (__x, __n))
 __inline_forward_c(double,nearbyint, (double __value), (__value))
 __inline_forward_c(long int,lrint, (double __value), (__value))
@@ -465,7 +404,7 @@ __inline_forward(void,sincos, (double __x, double *__sinx, double *__cosx),
                 (__x, __sinx, __cosx))
 # endif
 
-# if defined __USE_MISC || defined __USE_ISOC9X
+# if defined __USE_MISC || defined __USE_ISOC99
 
 __inline_forward(float,frexpf, (float __value, int *__expptr),
                 (__value, __expptr))
@@ -477,7 +416,7 @@ __inline_forward_c(int,finitef, (float __value), (__value))
 __inline_forward_c(float,scalbnf, (float __x, int __n), (__x, __n))
 __inline_forward_c(int,isnanf, (float __value), (__value))
 #  endif
-# ifdef __USE_ISOC9X
+# ifdef __USE_ISOC99
 __inline_forward_c(float,scalblnf, (float __x, long int __n), (__x, __n))
 __inline_forward_c(float,nearbyintf, (float __value), (__value))
 __inline_forward_c(long int,lrintf, (float __value), (__value))
@@ -499,7 +438,7 @@ __inline_forward_c(int,finitel, (long double __value), (__value))
 __inline_forward_c(long double,scalbnl, (long double __x, int __n), (__x, __n))
 __inline_forward_c(int,isnanl, (long double __value), (__value))
 # endif
-# ifdef __USE_ISOC9X
+# ifdef __USE_ISOC99
 __inline_forward_c(long double,scalblnl, (long double __x, long int __n),
                   (__x, __n))
 __inline_forward_c(long double,nearbyintl, (long double __value), (__value))
@@ -514,7 +453,7 @@ __inline_forward(void,sincosl,
                 (__x, __sinx, __cosx))
 # endif
 
-#endif /* Use misc or ISO C9X */
+#endif /* Use misc or ISO C99 */
 
 #undef __inline_forward
 #undef __inline_forward_c
index bca1dae..34f14ee 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_MMAN_H
 # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
index d7a8e5e..32a49b5 100644 (file)
@@ -1,30 +1,36 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_MSG_H
 # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
 
 /* Define options for message queue functions.  */
 #define MSG_NOERROR    010000  /* no error if message is too big */
-#define MSG_EXCEPT     020000  /* recv any msg except of specified type */
+#ifdef __USE_GNU
+# define MSG_EXCEPT    020000  /* recv any msg except of specified type */
+#endif
+
+/* Types used in the structure definition.  */
+typedef unsigned long int msgqnum_t;
+typedef unsigned long int msglen_t;
 
 
 /* Structure of record for one message inside the kernel.
 struct msqid_ds
 {
   struct ipc_perm msg_perm;    /* structure describing operation permission */
-  struct msg *__msg_first;     /* pointer to first message on queue */
-  struct msg *__msg_last;      /* pointer to last message on queue */
   __time_t msg_stime;          /* time of last msgsnd command */
+  unsigned long int __unused1;
   __time_t msg_rtime;          /* time of last msgrcv command */
+  unsigned long int __unused2;
   __time_t msg_ctime;          /* time of last change */
-  struct wait_queue *__wwait;  /* ??? */
-  struct wait_queue *__rwait;  /* ??? */
-  unsigned short int __msg_cbytes;/* current number of bytes on queue */
-  unsigned short int msg_qnum; /* number of messages currently on queue */
-  unsigned short int msg_qbytes;/* max number of bytes allowed on queue */
-  __ipc_pid_t msg_lspid;       /* pid of last msgsnd() */
-  __ipc_pid_t msg_lrpid;       /* pid of last msgrcv() */
+  unsigned long int __unused3;
+  unsigned long int __msg_cbytes; /* current number of bytes on queue */
+  msgqnum_t msg_qnum;          /* number of messages currently on queue */
+  msglen_t msg_qbytes;         /* max number of bytes allowed on queue */
+  __pid_t msg_lspid;           /* pid of last msgsnd() */
+  __pid_t msg_lrpid;           /* pid of last msgrcv() */
+  unsigned long int __unused4;
+  unsigned long int __unused5;
 };
 
 #ifdef __USE_MISC
index fbabd7e..6d88b55 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _MATH_H
 # error "Never use <bits/nan.h> directly; include <math.h> instead."
diff --git a/libc/sysdeps/linux/m68k/bits/netdb.h b/libc/sysdeps/linux/m68k/bits/netdb.h
new file mode 100644 (file)
index 0000000..41dc731
--- /dev/null
@@ -0,0 +1,33 @@
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _NETDB_H
+# error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
+#endif
+
+
+/* Description of data base entry for a single network.  NOTE: here a
+   poor assumption is made.  The network number is expected to fit
+   into an unsigned long int variable.  */
+struct netent
+{
+  char *n_name;                        /* Official name of network.  */
+  char **n_aliases;            /* Alias list.  */
+  int n_addrtype;              /* Net address type.  */
+  uint32_t n_net;              /* Network number.  */
+};
index 4aec021..f7a7393 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_POLL_H
 # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
 /* These values are defined in XPG4.2.  */
 # define POLLRDNORM    0x040           /* Normal data may be read.  */
 # define POLLRDBAND    0x080           /* Priority data may be read.  */
-# define POLLWRNORM    0x100           /* Writing now will not block.  */
-# define POLLWRBAND    0x200           /* Priority data may be written.  */
-#endif
-
-#ifdef __USE_GNU
-/* This is an extension for Linux.  */
-# define POLLMSG       0x400
+# define POLLWRNORM    POLLOUT         /* Writing now will not block.  */
+# define POLLWRBAND    0x100           /* Priority data may be written.  */
 #endif
 
 /* Event types always implicitly polled for.  These bits need not be set in
@@ -46,6 +41,3 @@
 #define POLLERR                0x008           /* Error condition.  */
 #define POLLHUP                0x010           /* Hung up.  */
 #define POLLNVAL       0x020           /* Invalid polling request.  */
-
-/* Canonical number of polling requests to read in at a time in poll.  */
-#define NPOLLFILE      30
index ee84b94..e16f467 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991, 1992, 1993, 1996, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,96,98,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  *     POSIX Standard: 2.9.2 Minimum Values    Added to <limits.h>
@@ -73,7 +73,7 @@
 #define        _POSIX_NAME_MAX         14
 
 /* Number of bytes in a pathname.  */
-#define        _POSIX_PATH_MAX         255
+#define        _POSIX_PATH_MAX         256
 
 /* Number of bytes than can be written atomically to a pipe.  */
 #define        _POSIX_PIPE_BUF         512
@@ -97,7 +97,7 @@
 #define        _POSIX_STREAM_MAX       8
 
 /* Maximum length of a timezone name (element of `tzname').  */
-#define        _POSIX_TZNAME_MAX       3
+#define        _POSIX_TZNAME_MAX       6
 
 /* Maximum number of connections that can be queued on a socket.  */
 #define        _POSIX_QLIMIT           1
index eaaf671..24483a0 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991, 1996, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1996, 1999, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  * Never include this file directly; include <limits.h> instead.
 #define        _POSIX2_BC_STRING_MAX           1000
 
 /* The maximum number of weights that can be assigned to an entry of
-   the LC_COLLATE `order' keyword in the locale definition file.
-   We have no fixed limit, 255 is very high.  */
-#define        _POSIX2_COLL_WEIGHTS_MAX        255
-
-/* The maximum number of weights that can be assigned to an entry of
-   the LC_COLLATE category `order' keyword in a locale definition.
-   We have no fixed limit, 255 is a high number.  */
-#define        _POSIX2_EQUIV_CLASS_MAX         255
+   the LC_COLLATE `order' keyword in the locale definition file.  */
+#define        _POSIX2_COLL_WEIGHTS_MAX        2
 
 /* The maximum number of expressions that can be nested
    within parentheses by the `expr' utility.  */
@@ -59,7 +53,7 @@
 
 /* The maximum number of bytes in a character class name.  We have no
    fixed limit, 2048 is a high number.  */
-#define        _POSIX2_CHARCLASS_NAME_MAX      2048
+#define        _POSIX2_CHARCLASS_NAME_MAX      14
 
 
 /* These values are implementation-specific,
 #define        BC_STRING_MAX           _POSIX2_BC_STRING_MAX
 #endif
 #ifndef        COLL_WEIGHTS_MAX
-#define        COLL_WEIGHTS_MAX        _POSIX2_COLL_WEIGHTS_MAX
-#endif
-#ifndef        EQUIV_CLASS_MAX
-#define        EQUIV_CLASS_MAX         _POSIX2_EQUIV_CLASS_MAX
+#define        COLL_WEIGHTS_MAX        255
 #endif
 #ifndef        EXPR_NEST_MAX
 #define        EXPR_NEST_MAX           _POSIX2_EXPR_NEST_MAX
@@ -91,7 +82,7 @@
 #define        LINE_MAX                _POSIX2_LINE_MAX
 #endif
 #ifndef        CHARCLASS_NAME_MAX
-#define        CHARCLASS_NAME_MAX      _POSIX2_CHARCLASS_NAME_MAX
+#define        CHARCLASS_NAME_MAX      2048
 #endif
 
 /* This value is defined like this in regex.h.  */
index 15683b7..54640bb 100644 (file)
@@ -1,5 +1,5 @@
 /* Define POSIX options for Linux.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996,1997,1998,1999,2000,2001 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
 #define _POSIX_THREAD_ATTR_STACKADDR   1
 
 /* We support POSIX.1b semaphores, but only the non-shared form for now.  */
-/*#define _POSIX_SEMAPHORES    1       XXX We are not quite there now.  */
+#define _POSIX_SEMAPHORES      1
 
 /* Real-time signals are supported.  */
 #define _POSIX_REALTIME_SIGNALS        1
 
 /* We support asynchronous I/O.  */
 #define _POSIX_ASYNCHRONOUS_IO 1
+#define _POSIX_ASYNC_IO                1
 /* Alternative name for Unix98.  */
 #define _LFS_ASYNCHRONOUS_IO   1
 
 #define _LFS64_LARGEFILE       1
 #define _LFS64_STDIO           1
 
+/* POSIX shared memory objects are implemented.  */
+#define _POSIX_SHARED_MEMORY_OBJECTS   1
+
+/* GNU libc provides regular expression handling.  */
+#define _POSIX_REGEXP  1
+
+/* Reader/Writer locks are available.  */
+#define _POSIX_READER_WRITER_LOCKS     200912L
+
+/* We have a POSIX shell.  */
+#define _POSIX_SHELL   1
+
+/* We support the Timeouts option.  */
+#define _POSIX_TIMEOUTS        200912L
+
+/* We support spinlocks.  */
+#define _POSIX_SPIN_LOCKS      200912L
+
+/* The `spawn' function family is supported.  */
+#define _POSIX_SPAWN   200912L
+
+/* We have POSIX timers.  */
+#define _POSIX_TIMERS  1
+
+/* The barrier functions are available.  */
+#define _POSIX_BARRIERS        200912L
+
+/* POSIX message queues are not yet supported.  */
+#undef _POSIX_MESSAGE_PASSING
+
 #endif /* posix_opt.h */
index db4c379..3ee5c48 100644 (file)
@@ -25,8 +25,9 @@
 /* Fast locks (not abstract because mutexes and conditions aren't abstract). */
 struct _pthread_fastlock
 {
-  long int __status;            /* "Free" or "taken" or head of waiting list */
-  int __spinlock;               /* For compare-and-swap emulation */
+  long int __status;   /* "Free" or "taken" or head of waiting list */
+  int __spinlock;      /* Used by compare_and_swap emulation. Also,
+                         adaptive SMP lock stores spin count here. */
 };
 
 #ifndef _PTHREAD_DESCR_DEFINED
@@ -37,7 +38,7 @@ typedef struct _pthread_descr_struct *_pthread_descr;
 
 
 /* Attributes for threads.  */
-typedef struct
+typedef struct __pthread_attr_s
 {
   int __detachstate;
   int __schedpolicy;
@@ -115,6 +116,25 @@ typedef struct
 } pthread_rwlockattr_t;
 #endif
 
+#ifdef __USE_XOPEN2K
+/* POSIX spinlock data type.  */
+typedef volatile int pthread_spinlock_t;
+
+/* POSIX barrier. */
+typedef struct {
+  struct _pthread_fastlock __ba_lock; /* Lock to guarantee mutual exclusion */
+  int __ba_required;                  /* Threads needed for completion */
+  int __ba_present;                   /* Threads waiting */
+  _pthread_descr __ba_waiting;        /* Queue of waiting threads */
+} pthread_barrier_t;
+
+/* barrier attribute */
+typedef struct {
+  int __pshared;
+} pthread_barrierattr_t;
+
+#endif
+
 
 /* Thread identifiers */
 typedef unsigned long int pthread_t;
index 50c6593..30825c2 100644 (file)
@@ -1,21 +1,21 @@
 /* Bit values & structures for resource limits.  Linux version.
-   Copyright (C) 1994, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1994,1996,1997,1998,1999,2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_RESOURCE_H
 # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
@@ -76,7 +76,11 @@ enum __rlimit_resource
   RLIMIT_MEMLOCK = 8,
 #define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
 
-  RLIM_NLIMITS = 10
+  /* Maximum number of file locks.  */
+  RLIMIT_LOCKS = 10,
+#define RLIMIT_LOCKS RLIMIT_LOCKS
+
+  RLIM_NLIMITS = 11
 #define RLIMIT_NLIMITS RLIMIT_NLIMITS
 #define RLIM_NLIMITS RLIM_NLIMITS
 };
index 7e3c40e..5c10d85 100644 (file)
@@ -1,22 +1,22 @@
 /* Definitions of constants and data structure for POSIX 1003.1b-1993
    scheduling interface.
-   Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1998, 1999, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef __need_schedparam
 
 /* The official definition.  */
 struct sched_param
   {
-    int sched_priority;
+    int __sched_priority;
   };
 
 __BEGIN_DECLS
 
 /* Clone current process.  */
 #ifdef __USE_MISC
-extern int clone __P ((int (*__fn) (void *__arg), void *__child_stack,
-                      int __flags, void *__arg));
+extern int clone (int (*__fn) (void *__arg), void *__child_stack,
+                 int __flags, void *__arg) __THROW;
 #endif
 
 __END_DECLS
@@ -67,7 +67,7 @@ __END_DECLS
 /* Data structure to describe a process' schedulability.  */
 struct __sched_param
   {
-    int sched_priority;
+    int __sched_priority;
   };
 # undef __need_schedparam
 #endif
index 4513135..47e7ded 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_SELECT_H
 # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
@@ -26,8 +26,8 @@
 #define __FD_ZERO(s) \
   do {                                                                       \
     unsigned int __i;                                                        \
-    __fd_set *__arr = (s);                                                   \
-    for (__i = 0; __i < sizeof (__fd_set) / sizeof (__fd_mask); ++__i)       \
+    fd_set *__arr = (s);                                                     \
+    for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)         \
       __FDS_BITS (__arr)[__i] = 0;                                           \
   } while (0)
 #define __FD_SET(d, s)     (__FDS_BITS (s)[__FDELT(d)] |= __FDMASK(d))
index 3d113a7..6193501 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_SEM_H
 # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
@@ -40,15 +40,14 @@ struct semid_ds
 {
   struct ipc_perm sem_perm;            /* operation permission struct */
   __time_t sem_otime;                  /* last semop() time */
+  unsigned long int __unused1;
   __time_t sem_ctime;                  /* last time changed by semctl() */
-  struct sem *__sembase;               /* ptr to first semaphore in array */
-  struct sem_queue *__sem_pending;     /* pending operations */
-  struct sem_queue *__sem_pending_last; /* last pending operation */
-  struct sem_undo *__undo;             /* ondo requests on this array */
-  unsigned short int sem_nsems;                /* number of semaphores in set */
+  unsigned long int __unused2;
+  unsigned long int sem_nsems;         /* number of semaphores in set */
+  unsigned long int __unused3;
+  unsigned long int __unused4;
 };
 
-
 /* The user should define a union like the following to use it for arguments
    for `semctl'.
 
index 08b2d25..2c2b3ee 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* Define the machine-dependent type `jmp_buf'.  m68k version.  */
 
@@ -22,8 +22,6 @@
 # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
 #endif
 
-#include <signal.h>
-
 typedef struct
   {
     /* There are eight 4-byte data registers, but D0 is not saved.  */
@@ -46,21 +44,3 @@ typedef struct
    containing a local variable at ADDRESS.  */
 #define _JMPBUF_UNWINDS(jmpbuf, address) \
   ((void *) (address) < (void *) (jmpbuf)->__sp)
-
-/* Simple version of sigsetjmp and siglongjmp */
-
-__BEGIN_DECLS
-extern int __setjmp(__jmp_buf __buf);
-extern int __longjmp(__jmp_buf __buf, int __val);
-__END_DECLS
-
-#define longjmp(buf, val) __longjmp(buf, val)
-
-#define __sigsetjmp(env, savesigs) ((env)->__mask_was_saved = (savesigs), \
-                       sigprocmask(SIG_SETMASK, 0, &(env)->__saved_mask), \
-                       __setjmp((env)->__jmpbuf))
-
-#define siglongjmp(env, val) (((env)->__mask_was_saved ? \
-                       sigprocmask(SIG_SETMASK, &(env)->__saved_mask, 0) : 0), \
-                       __longjmp((env)->__jmpbuf, val))
-
index c707059..18246c3 100644 (file)
@@ -1,26 +1,26 @@
-/* Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_SHM_H
 # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
 
 /* Permission flag for shmget.  */
 #define SHM_R          0400            /* or S_IRUGO from <linux/stat.h> */
 #define SHM_UNLOCK     12              /* unlock segment (root only) */
 
 
+/* Type to count number of attaches.  */
+typedef unsigned long int shmatt_t;
+
 /* Data structure describing a set of semaphores.  */
 struct shmid_ds
   {
     struct ipc_perm shm_perm;          /* operation permission struct */
-    int shm_segsz;                     /* size of segment in bytes */
+    size_t shm_segsz;                  /* size of segment in bytes */
     __time_t shm_atime;                        /* time of last shmat() */
+    unsigned long int __unused1;
     __time_t shm_dtime;                        /* time of last shmdt() */
+    unsigned long int __unused2;
     __time_t shm_ctime;                        /* time of last change by shmctl() */
-    __ipc_pid_t shm_cpid;              /* pid of creator */
-    __ipc_pid_t shm_lpid;              /* pid of last shmop */
-    unsigned short int shm_nattch;     /* number of current attaches */
-    unsigned short int __shm_npages;   /* size of segment (pages) */
-    unsigned long int *__shm_pages;    /* array of ptrs to frames -> SHMMAX */
-    struct vm_area_struct *__attaches; /* descriptors for attaches */
+    unsigned long int __unused3;
+    __pid_t shm_cpid;                  /* pid of creator */
+    __pid_t shm_lpid;                  /* pid of last shmop */
+    shmatt_t shm_nattch;               /* number of current attaches */
+    unsigned long int __unused4;
+    unsigned long int __unused5;
   };
 
 #ifdef __USE_MISC
@@ -64,11 +69,15 @@ struct shmid_ds
 
 struct shminfo
   {
-    int shmmax;
-    int shmmin;
-    int shmmni;
-    int shmseg;
-    int shmall;
+    unsigned long int shmmax;
+    unsigned long int shmmin;
+    unsigned long int shmmni;
+    unsigned long int shmseg;
+    unsigned long int shmall;
+    unsigned long int __unused1;
+    unsigned long int __unused2;
+    unsigned long int __unused3;
+    unsigned long int __unused4;
   };
 
 struct shm_info
index e74eac2..48cc531 100644 (file)
@@ -1,21 +1,21 @@
 /* The proper definitions for Linux's sigaction.
-   Copyright (C) 1993, 94, 95, 96, 97, 98, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1993-1999, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SIGNAL_H
 # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
@@ -31,7 +31,7 @@ struct sigaction
        /* Used if SA_SIGINFO is not set.  */
        __sighandler_t sa_handler;
        /* Used if SA_SIGINFO is set.  */
-       void (*sa_sigaction) __PMT ((int, siginfo_t *, void *));
+       void (*sa_sigaction) (int, siginfo_t *, void *);
       }
     __sigaction_handler;
 # define sa_handler    __sigaction_handler.sa_handler
@@ -47,7 +47,7 @@ struct sigaction
     int sa_flags;
 
     /* Restore handler.  */
-    void (*sa_restorer) __PMT ((void));
+    void (*sa_restorer) (void);
   };
 
 /* Bits in `sa_flags'.  */
index 97cbf4b..67dcf94 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
 # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
index 66e6261..70a8c21 100644 (file)
@@ -1,29 +1,33 @@
-/* siginfo_t, sigevent and constants.  Linux version.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* siginfo_t, sigevent and constants.  Linux/SPARC version.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; 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
+#if !defined _SIGNAL_H && !defined __need_siginfo_t \
+    && !defined __need_sigevent_t
 # error "Never include this file directly.  Use <signal.h> instead"
 #endif
 
-#if (!defined __have_siginfo_t \
-     && (defined _SIGNAL_H || defined __need_siginfo_t))
-# define __have_siginfo_t      1
+#include <bits/wordsize.h>
+
+#if (!defined __have_sigval_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t \
+        || defined __need_sigevent_t))
+# define __have_sigval_t       1
 
 /* Type for data associated with a signal.  */
 typedef union sigval
@@ -31,9 +35,18 @@ typedef union sigval
     int sival_int;
     void *sival_ptr;
   } sigval_t;
+#endif
+
+#if (!defined __have_siginfo_t \
+     && (defined _SIGNAL_H || defined __need_siginfo_t))
+# define __have_siginfo_t      1
 
 # define __SI_MAX_SIZE     128
-# define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 3)
+# 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
   {
@@ -87,7 +100,7 @@ typedef struct siginfo
        /* SIGPOLL.  */
        struct
          {
-           int si_band;        /* Band event for SIGPOLL.  */
+           long int si_band;   /* Band event for SIGPOLL.  */
            int si_fd;
          } _sigpoll;
       } _sifields;
@@ -97,6 +110,8 @@ typedef struct siginfo
 /* X/Open requires some more fields with fixed names.  */
 # define si_pid                _sifields._kill.si_pid
 # define si_uid                _sifields._kill.si_uid
+# define si_timer1     _sifields._timer._timer1
+# define si_timer2     _sifields._timer._timer2
 # define si_status     _sifields._sigchld.si_status
 # define si_utime      _sifields._sigchld.si_utime
 # define si_stime      _sifields._sigchld.si_stime
@@ -112,7 +127,9 @@ typedef struct siginfo
    signals.  */
 enum
 {
-  SI_SIGIO = -5,               /* Sent by queued SIGIO. */
+  SI_ASYNCNL = -6,             /* Sent by asynch name lookup completion.  */
+# define SI_ASYNCNL    SI_ASYNCNL
+  SI_SIGIO,                    /* Sent by queued SIGIO. */
 # define SI_SIGIO      SI_SIGIO
   SI_ASYNCIO,                  /* Sent by AIO completion.  */
 # define SI_ASYNCIO    SI_ASYNCIO
@@ -122,8 +139,10 @@ enum
 # define SI_TIMER      SI_TIMER
   SI_QUEUE,                    /* Sent by sigqueue.  */
 # define SI_QUEUE      SI_QUEUE
-  SI_USER                      /* Sent by kill, sigsend, raise.  */
+  SI_USER,                     /* Sent by kill, sigsend, raise.  */
 # define SI_USER       SI_USER
+  SI_KERNEL = 0x80             /* Send by kernel.  */
+#define SI_KERNEL      SI_KERNEL
 };
 
 
@@ -236,12 +255,20 @@ enum
 #endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t).  */
 
 
-#if defined _SIGNAL_H && !defined __have_sigevent_t
+#if (defined _SIGNAL_H || defined __need_sigevent_t) \
+    && !defined __have_sigevent_t
 # define __have_sigevent_t     1
 
 /* Structure to transport application-defined values with signals.  */
 # define __SIGEV_MAX_SIZE      64
-# define __SIGEV_PAD_SIZE      ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
+# 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
+
+/* Forward declaration of the `pthread_attr_t' type.  */
+struct __pthread_attr_s;
 
 typedef struct sigevent
   {
@@ -255,8 +282,8 @@ typedef struct sigevent
 
        struct
          {
-           void (*_function) __PMT ((sigval_t)); /* Function to start.  */
-           void *_attribute;                     /* Really pthread_attr_t.  */
+           void (*_function) (sigval_t);         /* Function to start.  */
+           struct __pthread_attr_s *_attribute;  /* Really pthread_attr_t.  */
          } _sigev_thread;
       } _sigev_un;
   } sigevent_t;
index fb26703..74259b4 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifdef _SIGNAL_H
 
index ccc6431..7ccadda 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef        _SIGSET_H_types
 # define _SIGSET_H_types       1
@@ -24,7 +24,11 @@ typedef int __sig_atomic_t;
 
 /* A `sigset_t' has a bit for each signal.  */
 
-typedef unsigned long __sigset_t;
+# define _SIGSET_NWORDS        (1024 / (8 * sizeof (unsigned long int)))
+typedef struct
+  {
+    unsigned long int __val[_SIGSET_NWORDS];
+  } __sigset_t;
 
 #endif
 
@@ -43,27 +47,79 @@ typedef unsigned long __sigset_t;
 # endif
 
 /* Return a mask that includes the bit for SIG only.  */
-# define __sigmask(sig) (1L << ((sig) - 1))
+# define __sigmask(sig) \
+  (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
+
+/* Return the word index for SIG.  */
+# define __sigword(sig)        (((sig) - 1) / (8 * sizeof (unsigned long int)))
 
 # if defined __GNUC__ && __GNUC__ >= 2
-#  define __sigemptyset(set) (*((sigset_t *) set) = 0)
-#  define __sigfillset(set) (*((sigset_t *) set) = ~0)
+#  define __sigemptyset(set) \
+  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                                      \
+                   sigset_t *__set = (set);                                  \
+                   while (--__cnt >= 0) __set->__val[__cnt] = 0;             \
+                   0; }))
+#  define __sigfillset(set) \
+  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                                      \
+                   sigset_t *__set = (set);                                  \
+                   while (--__cnt >= 0) __set->__val[__cnt] = ~0UL;          \
+                   0; }))
 
 #  ifdef __USE_GNU
 /* The POSIX does not specify for handling the whole signal set in one
    command.  This is often wanted and so we define three more functions
    here.  */
-#   define __sigisemptyset(set) (*((sigset_t *) set) == 0)
-#   define __sigandset(dest, left, right) (*(dest) = *(left) & *(right))
-#   define __sigorset(dest, left, right) (*(dest) = *(left) | *(right))
+#   define __sigisemptyset(set) \
+  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                                      \
+                   const sigset_t *__set = (set);                            \
+                   int __ret = __set->__val[--__cnt];                        \
+                   while (!__ret && --__cnt >= 0)                            \
+                       __ret = __set->__val[__cnt];                          \
+                   __ret == 0; }))
+#   define __sigandset(dest, left, right) \
+  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                                      \
+                   sigset_t *__dest = (dest);                                \
+                   const sigset_t *__left = (left);                          \
+                   const sigset_t *__right = (right);                        \
+                   while (--__cnt >= 0)                                      \
+                     __dest->__val[__cnt] = (__left->__val[__cnt]            \
+                                             & __right->__val[__cnt]);       \
+                   0; }))
+#   define __sigorset(dest, left, right) \
+  (__extension__ ({ int __cnt = _SIGSET_NWORDS;                                      \
+                   sigset_t *__dest = (dest);                                \
+                   const sigset_t *__left = (left);                          \
+                   const sigset_t *__right = (right);                        \
+                   while (--__cnt >= 0)                                      \
+                     __dest->__val[__cnt] = (__left->__val[__cnt]            \
+                                             | __right->__val[__cnt]);       \
+                   0; }))
 #  endif
 # endif
 
 /* These functions needn't check for a bogus signal number -- error
    checking is done in the non __ versions.  */
 
-# define __sigismember(set, sig) (*((sigset_t *) set) & (1L << ((sig)-1)))
-# define __sigaddset(set, sig) (*((sigset_t *) set) |= (1L << ((sig)-1)))
-# define __sigdelset(set, sig) (*((sigset_t *) set) &= ~(1L << ((sig)-1)))
+extern int __sigismember (__const __sigset_t *, int);
+extern int __sigaddset (__sigset_t *, int);
+extern int __sigdelset (__sigset_t *, int);
+
+# ifdef __USE_EXTERN_INLINES
+#  define __SIGSETFN(NAME, BODY, CONST)                                              \
+  _EXTERN_INLINE int                                                         \
+  NAME (CONST __sigset_t *__set, int __sig)                                  \
+  {                                                                          \
+    unsigned long int __mask = __sigmask (__sig);                            \
+    unsigned long int __word = __sigword (__sig);                            \
+    return BODY;                                                             \
+  }
+
+__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
+__SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
+__SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
+
+#  undef __SIGSETFN
+# endif
+
 
 #endif /* ! _SIGSET_H_fns.  */
index 905e87f..7f26036 100644 (file)
@@ -1,21 +1,21 @@
 /* sigstack, sigaltstack definitions.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 1999 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SIGNAL_H
 # error "Never include this file directly.  Use <signal.h> instead"
@@ -25,7 +25,7 @@
 /* Structure describing a signal stack (obsolete).  */
 struct sigstack
   {
-    __ptr_t ss_sp;             /* Signal stack pointer.  */
+    void *ss_sp;               /* Signal stack pointer.  */
     int ss_onstack;            /* Nonzero if executing on this stack.  */
   };
 
@@ -49,7 +49,7 @@ enum
 /* Alternate, preferred interface.  */
 typedef struct sigaltstack
   {
-    __ptr_t ss_sp;
+    void *ss_sp;
     int ss_flags;
     size_t ss_size;
   } stack_t;
index c213614..b86e75f 100644 (file)
@@ -1,5 +1,5 @@
 /* Signal handling function for threaded programs.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 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
    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
    Boston, MA 02111-1307, USA.  */
 
-#ifndef _BITS_SIGTHREAD_H 
+#ifndef _BITS_SIGTHREAD_H
 #define _BITS_SIGTHREAD_H      1
 
 #if !defined _SIGNAL_H && !defined _PTHREAD_H
 # error "Never include this file directly.  Use <pthread.h> instead"
 #endif
 
-__BEGIN_DECLS
-
 /* Functions for handling signals. */
 
 /* Modify the signal mask for the calling thread.  The arguments have
    the same meaning as for sigprocmask(2). */
-extern int pthread_sigmask __P ((int __how, __const __sigset_t *__newmask,
-                                __sigset_t *__oldmask));
+extern int pthread_sigmask (int __how,
+                           __const __sigset_t *__restrict __newmask,
+                           __sigset_t *__restrict __oldmask)__THROW;
 
 /* Send signal SIGNO to the given thread. */
-extern int pthread_kill __P ((pthread_t __thread, int __signo));
-
-__END_DECLS
+extern int pthread_kill (pthread_t __thread, int __signo) __THROW;
 
 #endif /* bits/sigthread.h */
index 8078963..3e1d131 100644 (file)
@@ -1,21 +1,21 @@
 /* Definition of `struct sockaddr_*' common members.  Generic/4.2 BSD version.
-   Copyright (C) 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+   Copyright (C) 1995,1996,1997,1998,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  * Never include this file directly; use <sys/socket.h> instead.
@@ -24,7 +24,6 @@
 #ifndef _BITS_SOCKADDR_H
 #define _BITS_SOCKADDR_H       1
 
-__BEGIN_DECLS
 
 /* POSIX.1g specifies this type name for the `sa_family' member.  */
 typedef unsigned short int sa_family_t;
@@ -38,10 +37,4 @@ typedef unsigned short int sa_family_t;
 
 #define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
 
-/* Return the length of a `sockaddr' structure.  */
-#define SA_LEN(_x)     __libc_sa_len((_x)->sa_family)
-extern int __libc_sa_len __P ((sa_family_t __af));
-
-__END_DECLS
-
 #endif /* bits/sockaddr.h */
index a4b090e..6164407 100644 (file)
@@ -1,21 +1,21 @@
 /* System-specific socket constants and types.  Linux version.
-   Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+   Copyright (C) 1991,1992,1994-1999,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef __BITS_SOCKET_H
 #define __BITS_SOCKET_H
 #include <sys/types.h>
 
 /* Type for length arguments in socket calls.  */
-typedef unsigned int socklen_t;
+#ifndef __socklen_t_defined
+typedef __socklen_t socklen_t;
+# define __socklen_t_defined
+#endif
 
 /* Types of sockets.  */
 enum __socket_type
@@ -82,7 +85,10 @@ enum __socket_type
 #define        PF_ECONET       19      /* Acorn Econet.  */
 #define        PF_ATMSVC       20      /* ATM SVCs.  */
 #define        PF_SNA          22      /* Linux SNA Project */
-#define PF_IRDA                23      /* IRDA sockets.  */
+#define        PF_IRDA         23      /* IRDA sockets.  */
+#define        PF_PPPOX        24      /* PPPoX sockets.  */
+#define        PF_WANPIPE      25      /* Wanpipe API sockets.  */
+#define        PF_BLUETOOTH    31      /* Bluetooth sockets.  */
 #define        PF_MAX          32      /* For now..  */
 
 /* Address families.  */
@@ -111,7 +117,10 @@ enum __socket_type
 #define        AF_ECONET       PF_ECONET
 #define        AF_ATMSVC       PF_ATMSVC
 #define        AF_SNA          PF_SNA
-#define AF_IRDA                PF_IRDA
+#define        AF_IRDA         PF_IRDA
+#define        AF_PPPOX        PF_PPPOX
+#define        AF_WANPIPE      PF_WANPIPE
+#define        AF_BLUETOOTH    PF_BLUETOOTH
 #define        AF_MAX          PF_MAX
 
 /* Socket level values.  Others are defined in the appropriate headers.
@@ -152,7 +161,7 @@ struct sockaddr
 
 struct sockaddr_storage
   {
-    __SOCKADDR_COMMON (__ss_); /* Address family, etc.  */
+    __SOCKADDR_COMMON (ss_);   /* Address family, etc.  */
     __ss_aligntype __ss_align; /* Force desired alignment.  */
     char __ss_padding[_SS_PADSIZE];
   };
@@ -188,14 +197,16 @@ enum
 #define        MSG_FIN         MSG_FIN
     MSG_SYN            = 0x400,
 #define        MSG_SYN         MSG_SYN
-    MSG_URG            = 0x800,
-#define        MSG_URG         MSG_URG
+    MSG_CONFIRM                = 0x800, /* Confirm path validity.  */
+#define        MSG_CONFIRM     MSG_CONFIRM
     MSG_RST            = 0x1000,
 #define        MSG_RST         MSG_RST
     MSG_ERRQUEUE       = 0x2000, /* Fetch message from error queue.  */
 #define        MSG_ERRQUEUE    MSG_ERRQUEUE
-    MSG_NOSIGNAL       = 0x4000  /* Do not generate SIGPIPE.  */
+    MSG_NOSIGNAL       = 0x4000, /* Do not generate SIGPIPE.  */
 #define        MSG_NOSIGNAL    MSG_NOSIGNAL
+    MSG_MORE           = 0x8000  /* Sender will send more.  */
+#define        MSG_MORE        MSG_MORE
   };
 
 
@@ -203,14 +214,14 @@ enum
    `sendmsg' and received by `recvmsg'.  */
 struct msghdr
   {
-    __ptr_t msg_name;          /* Address to send to/receive from.  */
+    void *msg_name;            /* Address to send to/receive from.  */
     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_control;       /* Ancillary data (eg BSD filedesc passing). */
-    size_t msg_controllen;     /* Ancillary data buffer length.  */
+    void *msg_control;         /* Ancillary data (eg BSD filedesc passing). */
+    socklen_t msg_controllen;  /* Ancillary data buffer length.  */
 
     int msg_flags;             /* Flags on received message.  */
   };
@@ -222,14 +233,13 @@ struct cmsghdr
                                   of cmsghdr structure.  */
     int cmsg_level;            /* Originating protocol.  */
     int cmsg_type;             /* Protocol specific type.  */
-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
-    unsigned char __cmsg_data[0]; /* Ancillary data.  */
-    /* XXX Perhaps this should be removed.  */
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
+    __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data.  */
 #endif
   };
 
 /* Ancillary data object manipulation macros.  */
-#if !defined __STRICT_ANSI__ && defined __GNUC__ && __GNUC__ >= 2
+#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
 # define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
 #else
 # define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
@@ -239,21 +249,19 @@ struct cmsghdr
   ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr)                \
    ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
 #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
-                        & ~(sizeof (size_t) - 1))
+                        & (size_t) ~(sizeof (size_t) - 1))
 #define CMSG_SPACE(len) (CMSG_ALIGN (len) \
                         + CMSG_ALIGN (sizeof (struct cmsghdr)))
 #define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
 
-__BEGIN_DECLS
-extern struct cmsghdr *__cmsg_nxthdr __P ((struct msghdr *__mhdr,
-                                          struct cmsghdr *__cmsg));
-__END_DECLS
+extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
+                                     struct cmsghdr *__cmsg) __THROW;
 #ifdef __USE_EXTERN_INLINES
 # ifndef _EXTERN_INLINE
 #  define _EXTERN_INLINE extern __inline
 # endif
 _EXTERN_INLINE struct cmsghdr *
-__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
+__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
 {
   if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
     /* The kernel header does this so there may be a reason.  */
@@ -261,10 +269,10 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
 
   __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
                               + CMSG_ALIGN (__cmsg->cmsg_len));
-  if ((unsigned char *) (__cmsg + 1) >= ((unsigned char *) __mhdr->msg_control
-                                        + __mhdr->msg_controllen)
+  if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
+                                       + __mhdr->msg_controllen)
       || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
-         >= ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
+         > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
     /* No more entries.  */
     return 0;
   return __cmsg;
index 48ea231..3d54774 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* This contains contribution from Cygnus Support.  */
 \f
index c175668..213dbe2 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1992, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1992,95,96,97,98,99,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_STAT_H
 # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
@@ -40,7 +40,7 @@ struct stat
 #ifndef __USE_FILE_OFFSET64
     __ino_t st_ino;                    /* File serial number.  */
 #else
-    __ino64_t st_ino;                  /* File serial number.  */
+    __ino_t __st_ino;                  /* 32bit file serial number.    */
 #endif
     __mode_t st_mode;                  /* File mode.  */
     __nlink_t st_nlink;                        /* Link count.  */
@@ -53,7 +53,7 @@ struct stat
 #else
     __off64_t st_size;                 /* Size of file, in bytes.  */
 #endif
-    unsigned long int st_blksize;      /* Optimal block size for I/O.  */
+    __blksize_t st_blksize;            /* Optimal block size for I/O.  */
 
 #ifndef __USE_FILE_OFFSET64
     __blkcnt_t st_blocks;              /* Number 512-byte blocks allocated. */
@@ -66,8 +66,12 @@ struct stat
     unsigned long int __unused2;
     __time_t st_ctime;                 /* Time of last status change.  */
     unsigned long int __unused3;
+#ifndef __USE_FILE_OFFSET64
     unsigned long int __unused4;
     unsigned long int __unused5;
+#else
+    __ino64_t st_ino;                  /* File serial number.  */
+#endif
   };
 
 #ifdef __USE_LARGEFILE64
@@ -76,7 +80,7 @@ struct stat64
     __dev_t st_dev;                    /* Device.  */
     unsigned short int __pad1;
 
-    __ino64_t st_ino;                  /* File serial number.  */
+    __ino_t __st_ino;                  /* 32bit file serial number.    */
     __mode_t st_mode;                  /* File mode.  */
     __nlink_t st_nlink;                        /* Link count.  */
     __uid_t st_uid;                    /* User ID of the file's owner. */
@@ -84,7 +88,7 @@ struct stat64
     __dev_t st_rdev;                   /* Device number, if device.  */
     unsigned short int __pad2;
     __off64_t st_size;                 /* Size of file, in bytes.  */
-    unsigned long int st_blksize;      /* Optimal block size for I/O.  */
+    __blksize_t st_blksize;            /* Optimal block size for I/O.  */
 
     __blkcnt64_t st_blocks;            /* Number 512-byte blocks allocated. */
     __time_t st_atime;                 /* Time of last access.  */
@@ -93,8 +97,7 @@ struct stat64
     unsigned long int __unused2;
     __time_t st_ctime;                 /* Time of last status change.  */
     unsigned long int __unused3;
-    unsigned long int __unused4;
-    unsigned long int __unused5;
+    __ino64_t st_ino;                  /* File serial number.          */
   };
 #endif
 
@@ -112,11 +115,15 @@ struct stat64
 #define        __S_IFBLK       0060000 /* Block device.  */
 #define        __S_IFREG       0100000 /* Regular file.  */
 #define        __S_IFIFO       0010000 /* FIFO.  */
-
-/* These don't actually exist on System V, but having them doesn't hurt.  */
 #define        __S_IFLNK       0120000 /* Symbolic link.  */
 #define        __S_IFSOCK      0140000 /* Socket.  */
 
+/* POSIX.1b objects.  Note that these macros always evaluate to zero.  But
+   they do it by enforcing the correct use of the macros.  */
+#define __S_TYPEISMQ(buf)  ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
+
 /* Protection bits.  */
 
 #define        __S_ISUID       04000   /* Set user ID on execution.  */
index 31ae564..78c9bdb 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_STATFS_H
 # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
@@ -59,3 +59,6 @@ struct statfs64
     int f_spare[6];
   };
 #endif
+
+/* Tell code we have this member.  */
+#define _STATFS_F_NAMELEN
index fc63806..32e03f3 100644 (file)
@@ -1,26 +1,26 @@
-/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1997, 1998, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_STATVFS_H
 # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
 #endif
 
-#include <bits/types.h>  /* For __fsid_t, __fsblkcnt_t and __fsfilcnt_t.  */
+#include <bits/types.h>  /* For __fsblkcnt_t and __fsfilcnt_t.  */
 
 struct statvfs
   {
@@ -41,11 +41,13 @@ struct statvfs
     __fsfilcnt64_t f_ffree;
     __fsfilcnt64_t f_favail;
 #endif
-    __fsid_t f_fsid;
+    unsigned long int f_fsid;
+    int __f_unused;
     unsigned long int f_flag;
     unsigned long int f_namemax;
-    int f_spare[6];
+    int __f_spare[6];
   };
+#define _STATVFSBUF_F_UNUSED
 
 #ifdef __USE_LARGEFILE64
 struct statvfs64
@@ -58,10 +60,11 @@ struct statvfs64
     __fsfilcnt64_t f_files;
     __fsfilcnt64_t f_ffree;
     __fsfilcnt64_t f_favail;
-    __fsid_t f_fsid;
+    unsigned long int f_fsid;
+    int __f_unused;
     unsigned long int f_flag;
     unsigned long int f_namemax;
-    int f_spare[6];
+    int __f_spare[6];
   };
 #endif
 
@@ -73,22 +76,24 @@ enum
 #define ST_RDONLY      ST_RDONLY
   ST_NOSUID = 2,               /* Ignore suid and sgid bits.  */
 #define ST_NOSUID      ST_NOSUID
+#ifdef __USE_GNU
   ST_NODEV = 4,                        /* Disallow access to device special files.  */
-#define ST_NODEV       ST_NODEV
+# define ST_NODEV      ST_NODEV
   ST_NOEXEC = 8,               /* Disallow program execution.  */
-#define ST_NOEXEC      ST_NOEXEC
+# define ST_NOEXEC     ST_NOEXEC
   ST_SYNCHRONOUS = 16,         /* Writes are synced at once.  */
-#define ST_SYNCHRONOUS ST_SYNCHRONOUS
+# define ST_SYNCHRONOUS        ST_SYNCHRONOUS
   ST_MANDLOCK = 64,            /* Allow mandatory locks on an FS.  */
-#define ST_MANDLOCK    ST_MANDLOCK
+# define ST_MANDLOCK   ST_MANDLOCK
   ST_WRITE = 128,              /* Write on file/directory/symlink.  */
-#define ST_WRITE       ST_WRITE
+# define ST_WRITE      ST_WRITE
   ST_APPEND = 256,             /* Append-only file.  */
-#define ST_APPEND      ST_APPEND
+# define ST_APPEND     ST_APPEND
   ST_IMMUTABLE = 512,          /* Immutable file.  */
-#define ST_IMMUTABLE   ST_IMMUTABLE
+# define ST_IMMUTABLE  ST_IMMUTABLE
   ST_NOATIME = 1024,           /* Do not update access times.  */
-#define ST_NOATIME     ST_NOATIME
+# define ST_NOATIME    ST_NOATIME
   ST_NODIRATIME                        /* Do not update directory access times.  */
-#define ST_NODIRATIME  ST_NODIRATIME
+# define ST_NODIRATIME ST_NODIRATIME
+#endif /* Use GNU.  */
 };
index edc69f6..5b1c1b0 100644 (file)
@@ -1,39 +1,48 @@
-/* Thread package specific definitions of stream lock type.
-   Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
+/* Thread package specific definitions of stream lock type.  Generic version.
+   Copyright (C) 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
-#include <pthread.h>
+#ifndef _BITS_STDIO_LOCK_H
+#define _BITS_STDIO_LOCK_H 1
 
-typedef pthread_mutex_t _IO_lock_t;
+#include <bits/libc-lock.h>
+
+__libc_lock_define_recursive (typedef, _IO_lock_t)
 
 /* We need recursive (counting) mutexes.  */
-#define _IO_lock_initializer PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
+#ifdef _LIBC_LOCK_RECURSIVE_INITIALIZER
+# define _IO_lock_initializer _LIBC_LOCK_RECURSIVE_INITIALIZER
+#elif _IO_MTSAFE_IO
+ #error libio needs recursive mutexes for _IO_MTSAFE_IO
+#endif
+
+#define _IO_lock_init(_name)   __libc_lock_init_recursive (_name)
+#define _IO_lock_fini(_name)   __libc_lock_fini_recursive (_name)
+#define _IO_lock_lock(_name)   __libc_lock_lock_recursive (_name)
+#define _IO_lock_unlock(_name) __libc_lock_unlock_recursive (_name)
 
 
 #define _IO_cleanup_region_start(_fct, _fp) \
-     __libc_cleanup_region_start (_fct, _fp)
+  __libc_cleanup_region_start (((_fp)->_flags & _IO_USER_LOCK) == 0, _fct, _fp)
+#define _IO_cleanup_region_start_noarg(_fct) \
+  __libc_cleanup_region_start (1, _fct, NULL)
 #define _IO_cleanup_region_end(_doit) \
-     __libc_cleanup_region_end (_doit)
-#define _IO_lock_init(_name) \
-     __libc_lock_init_recursive (_name)
-#define _IO_lock_fini(_name) \
-     __libc_lock_fini_recursive (_name)
-#define _IO_lock_lock(_name) \
-     __libc_lock_lock (_name)
-#define _IO_lock_unlock(_name) \
-     __libc_lock_unlock (_name)
+  __libc_cleanup_region_end (_doit)
+
+
+#endif /* bits/stdio-lock.h */
index c586434..118118a 100644 (file)
@@ -1,20 +1,21 @@
 /* Optimizing macros and inline functions for stdio functions.
-   Copyright (C) 198 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _STDIO_H
 # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
 #ifdef __USE_EXTERN_INLINES
 /* Write formatted output to stdout from argument list ARG.  */
 __STDIO_INLINE int
-vprintf (__const char *__restrict __fmt, _G_va_list __arg)
+vprintf (__const char *__restrict __fmt, _G_va_list __arg) __THROW
 {
   return vfprintf (stdout, __fmt, __arg);
 }
 
 /* Read a character from stdin.  */
 __STDIO_INLINE int
-getchar (void)
+getchar (void) __THROW
 {
   return _IO_getc (stdin);
 }
@@ -46,14 +47,14 @@ getchar (void)
 # if defined __USE_POSIX || defined __USE_MISC
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-getc_unlocked (FILE *__fp)
+getc_unlocked (FILE *__fp) __THROW
 {
   return _IO_getc_unlocked (__fp);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-getchar_unlocked (void)
+getchar_unlocked (void) __THROW
 {
   return _IO_getc_unlocked (stdin);
 }
@@ -62,7 +63,7 @@ getchar_unlocked (void)
 
 /* Write a character to stdout.  */
 __STDIO_INLINE int
-putchar (int __c)
+putchar (int __c) __THROW
 {
   return _IO_putc (__c, stdout);
 }
@@ -71,7 +72,7 @@ putchar (int __c)
 # ifdef __USE_MISC
 /* Faster version when locking is not necessary.  */
 __STDIO_INLINE int
-fputc_unlocked (int __c, FILE *__stream)
+fputc_unlocked (int __c, FILE *__stream) __THROW
 {
   return _IO_putc_unlocked (__c, __stream);
 }
@@ -81,14 +82,14 @@ fputc_unlocked (int __c, FILE *__stream)
 # if defined __USE_POSIX || defined __USE_MISC
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-putc_unlocked (int __c, FILE *__stream)
+putc_unlocked (int __c, FILE *__stream) __THROW
 {
   return _IO_putc_unlocked (__c, __stream);
 }
 
 /* This is defined in POSIX.1:1996.  */
 __STDIO_INLINE int
-putchar_unlocked (int __c)
+putchar_unlocked (int __c) __THROW
 {
   return _IO_putc_unlocked (__c, stdout);
 }
@@ -98,7 +99,7 @@ putchar_unlocked (int __c)
 # ifdef        __USE_GNU
 /* Like `getdelim', but reads up to a newline.  */
 __STDIO_INLINE _IO_ssize_t
-getline (char **__lineptr, size_t *__n, FILE *__stream)
+getline (char **__lineptr, size_t *__n, FILE *__stream) __THROW
 {
   return __getdelim (__lineptr, __n, '\n', __stream);
 }
@@ -108,14 +109,14 @@ getline (char **__lineptr, size_t *__n, FILE *__stream)
 # ifdef __USE_MISC
 /* Faster versions when locking is not required.  */
 __STDIO_INLINE int
-feof_unlocked (FILE *__stream)
+feof_unlocked (FILE *__stream) __THROW
 {
   return _IO_feof_unlocked (__stream);
 }
 
 /* Faster versions when locking is not required.  */
 __STDIO_INLINE int
-ferror_unlocked (FILE *__stream)
+ferror_unlocked (FILE *__stream) __THROW
 {
   return _IO_ferror_unlocked (__stream);
 }
index 9787b43..ea6d693 100644 (file)
@@ -1,29 +1,29 @@
-/* Copyright (C) 1994, 1997, 1998 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1997, 1998, 1999 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
-#if !defined _STDIO_H && !defined __need_FOPEN_MAX
+#if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
 # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
 #endif
 
 #ifdef _STDIO_H
 # define L_tmpnam 20
 # define TMP_MAX 238328
-# define FILENAME_MAX 255
+# define FILENAME_MAX 4095 
 
 # ifdef __USE_POSIX
 #  define L_ctermid 9
@@ -33,5 +33,9 @@
 
 #if defined __need_FOPEN_MAX || defined _STDIO_H
 # undef  FOPEN_MAX
-# define FOPEN_MAX 256 
+# define FOPEN_MAX 16
+#endif
+
+#if defined __need_IOV_MAX && !defined IOV_MAX
+# define IOV_MAX 1024 
 #endif
index 6462ef0..84be224 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _STRING_H
 # error "Never use <bits/string.h> directly; include <string.h> instead."
index 734f5b0..9e522ce 100644 (file)
@@ -1,28 +1,28 @@
 /* Machine-independant string function optimizations.
-   Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
 
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _STRING_H
 # error "Never use <bits/string2.h> directly; include <string.h> instead."
 #endif
 
-#ifndef __NO_STRING_INLINES
+#if !defined __NO_STRING_INLINES && !defined __BOUNDED_POINTERS__
 
 /* Unlike the definitions in the header <bits/string.h> the
    definitions contained here are not optimized down to assembler
@@ -186,8 +186,7 @@ __STRING2_COPY_TYPE (8);
 
 /* GCC optimizes memset(s, 0, n) but not bzero(s, n).
    The optimization is broken before EGCS 1.1.  */
-# if defined __GNUC__ \
-     && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 90))
+# if __GNUC_PREREQ (2, 91)
 #  define __bzero(s, n) __builtin_memset (s, '\0', n)
 # endif
 
@@ -197,24 +196,28 @@ __STRING2_COPY_TYPE (8);
 /* Copy N bytes from SRC to DEST, returning pointer to byte following the
    last copied.  */
 #ifdef __USE_GNU
-# ifndef _HAVE_STRING_ARCH_mempcpy
-#  define __mempcpy(dest, src, n) \
+# if !defined _HAVE_STRING_ARCH_mempcpy || defined _FORCE_INLINES
+#  ifndef _HAVE_STRING_ARCH_mempcpy
+#   define __mempcpy(dest, src, n) \
   (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n)      \
                  && __string2_1bptr_p (src) && n <= 8                        \
                  ? __mempcpy_small (dest, __mempcpy_args (src), n)           \
                  : __mempcpy (dest, src, n)))
 /* In glibc we use this function frequently but for namespace reasons
    we have to use the name `__mempcpy'.  */
-#  define mempcpy(dest, src, n) __mempcpy (dest, src, n)
+#   define mempcpy(dest, src, n) __mempcpy (dest, src, n)
+#  endif
 
 #  if _STRING_ARCH_unaligned
-#   define __mempcpy_args(src) \
-     ((char *) (src))[0], ((char *) (src))[2], ((char *) (src))[4],          \
-     ((char *) (src))[6],                                                    \
+#   ifndef _FORCE_INLINES
+#    define __mempcpy_args(src) \
+     ((__const char *) (src))[0], ((__const char *) (src))[2],               \
+     ((__const char *) (src))[4], ((__const char *) (src))[6],               \
      __extension__ __STRING2_SMALL_GET16 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET16 (src, 4),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 4)
+#   endif
 __STRING_INLINE void *__mempcpy_small (void *, char, char, char, char,
                                       __uint16_t, __uint16_t, __uint32_t,
                                       __uint32_t, size_t);
@@ -281,7 +284,8 @@ __mempcpy_small (void *__dest1,
   return (void *) __u;
 }
 #  else
-#   define __mempcpy_args(src) \
+#   ifndef _FORCE_INLINES
+#    define __mempcpy_args(src) \
      ((__const char *) (src))[0],                                            \
      __extension__ ((__STRING2_COPY_ARR2)                                    \
       { { ((__const char *) (src))[0], ((__const char *) (src))[1] } }),      \
@@ -309,6 +313,7 @@ __mempcpy_small (void *__dest1,
          ((__const char *) (src))[2], ((__const char *) (src))[3],           \
          ((__const char *) (src))[4], ((__const char *) (src))[5],           \
          ((__const char *) (src))[6], ((__const char *) (src))[7] } })
+#   endif
 __STRING_INLINE void *__mempcpy_small (void *, char, __STRING2_COPY_ARR2,
                                       __STRING2_COPY_ARR3,
                                       __STRING2_COPY_ARR4,
@@ -369,7 +374,7 @@ __mempcpy_small (void *__dest, char __src1,
 
 /* Return pointer to C in S.  */
 #ifndef _HAVE_STRING_ARCH_strchr
-extern __ptr_t __rawmemchr (const __ptr_t __s, int __c);
+extern void *__rawmemchr (const void *__s, int __c);
 # define strchr(s, c) \
   (__extension__ (__builtin_constant_p (c) && (c) == '\0'                    \
                  ? (char *) __rawmemchr (s, c)                               \
@@ -378,21 +383,25 @@ extern __ptr_t __rawmemchr (const __ptr_t __s, int __c);
 
 
 /* Copy SRC to DEST.  */
-#ifndef _HAVE_STRING_ARCH_strcpy
-# define strcpy(dest, src) \
+#if !defined _HAVE_STRING_ARCH_strcpy || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strcpy
+#  define strcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)                                 \
                  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8         \
                     ? __strcpy_small (dest, __strcpy_args (src),             \
                                       strlen (src) + 1)                      \
                     : (char *) memcpy (dest, src, strlen (src) + 1))         \
                  : strcpy (dest, src)))
+# endif
 
 # if _STRING_ARCH_unaligned
-#  define __strcpy_args(src) \
+#  ifndef _FORCE_INLINES
+#   define __strcpy_args(src) \
      __extension__ __STRING2_SMALL_GET16 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET16 (src, 4),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 4)
+#  endif
 __STRING_INLINE char *__strcpy_small (char *, __uint16_t, __uint16_t,
                                      __uint32_t, __uint32_t, size_t);
 __STRING_INLINE char *
@@ -448,7 +457,8 @@ __strcpy_small (char *__dest,
   return __dest;
 }
 # else
-#  define __strcpy_args(src) \
+#  ifndef _FORCE_INLINES
+#   define __strcpy_args(src) \
      __extension__ ((__STRING2_COPY_ARR2)                                    \
       { { ((__const char *) (src))[0], '\0' } }),                            \
      __extension__ ((__STRING2_COPY_ARR3)                                    \
@@ -475,6 +485,7 @@ __strcpy_small (char *__dest,
          ((__const char *) (src))[2], ((__const char *) (src))[3],           \
          ((__const char *) (src))[4], ((__const char *) (src))[5],           \
          ((__const char *) (src))[6], '\0' } })
+#  endif
 __STRING_INLINE char *__strcpy_small (char *, __STRING2_COPY_ARR2,
                                      __STRING2_COPY_ARR3,
                                      __STRING2_COPY_ARR4,
@@ -534,8 +545,9 @@ __strcpy_small (char *__dest,
 
 /* Copy SRC to DEST, returning pointer to final NUL byte.  */
 #ifdef __USE_GNU
-# ifndef _HAVE_STRING_ARCH_stpcpy
-#  define __stpcpy(dest, src) \
+# if !defined _HAVE_STRING_ARCH_stpcpy || defined _FORCE_INLINES
+#  ifndef _HAVE_STRING_ARCH_stpcpy
+#   define __stpcpy(dest, src) \
   (__extension__ (__builtin_constant_p (src)                                 \
                  ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8         \
                     ? __stpcpy_small (dest, __stpcpy_args (src),             \
@@ -544,14 +556,17 @@ __strcpy_small (char *__dest,
                  : __stpcpy (dest, src)))
 /* In glibc we use this function frequently but for namespace reasons
    we have to use the name `__stpcpy'.  */
-#  define stpcpy(dest, src) __stpcpy (dest, src)
+#   define stpcpy(dest, src) __stpcpy (dest, src)
+#  endif
 
 #  if _STRING_ARCH_unaligned
-#   define __stpcpy_args(src) \
+#   ifndef _FORCE_INLINES
+#    define __stpcpy_args(src) \
      __extension__ __STRING2_SMALL_GET16 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET16 (src, 4),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 0),                           \
      __extension__ __STRING2_SMALL_GET32 (src, 4)
+#   endif
 __STRING_INLINE char *__stpcpy_small (char *, __uint16_t, __uint16_t,
                                      __uint32_t, __uint32_t, size_t);
 __STRING_INLINE char *
@@ -612,7 +627,8 @@ __stpcpy_small (char *__dest,
   return &__u->__c;
 }
 #  else
-#  define __stpcpy_args(src) \
+#   ifndef _FORCE_INLINES
+#    define __stpcpy_args(src) \
      __extension__ ((__STRING2_COPY_ARR2)                                    \
       { { ((__const char *) (src))[0], '\0' } }),                            \
      __extension__ ((__STRING2_COPY_ARR3)                                    \
@@ -639,6 +655,7 @@ __stpcpy_small (char *__dest,
          ((__const char *) (src))[2], ((__const char *) (src))[3],           \
          ((__const char *) (src))[4], ((__const char *) (src))[5],           \
          ((__const char *) (src))[6], '\0' } })
+#   endif
 __STRING_INLINE char *__stpcpy_small (char *, __STRING2_COPY_ARR2,
                                      __STRING2_COPY_ARR3,
                                      __STRING2_COPY_ARR4,
@@ -699,7 +716,7 @@ __stpcpy_small (char *__dest,
 
 /* Copy no more than N characters of SRC to DEST.  */
 #ifndef _HAVE_STRING_ARCH_strncpy
-# if defined _HAVE_STRING_ARCH_memset && defined _HAVE_STRING_ARCH_mempcpy
+# if defined _USE_STRING_ARCH_memset && defined _USE_STRING_ARCH_mempcpy
 #  define strncpy(dest, src, n) \
   (__extension__ ({ char *__dest = (dest);                                   \
                    __builtin_constant_p (src) && __builtin_constant_p (n)    \
@@ -722,13 +739,14 @@ __stpcpy_small (char *__dest,
 
 /* Append no more than N characters from SRC onto DEST.  */
 #ifndef _HAVE_STRING_ARCH_strncat
-# ifdef _HAVE_STRING_ARCH_strchr
+# ifdef _USE_STRING_ARCH_strchr
 #  define strncat(dest, src, n) \
   (__extension__ ({ char *__dest = (dest);                                   \
                    __builtin_constant_p (src) && __builtin_constant_p (n)    \
                    ? (strlen (src) < ((size_t) (n))                          \
                       ? strcat (__dest, src)                                 \
-                      : (memcpy (strchr (__dest, '\0'), src, n), __dest))    \
+                      : (*((char *) __mempcpy (strchr (__dest, '\0'),        \
+                                               src, n)) = '\0', __dest))     \
                    : strncat (dest, src, n); }))
 # else
 #  define strncat(dest, src, n) \
@@ -854,8 +872,9 @@ __stpcpy_small (char *__dest,
 
 /* Return the length of the initial segment of S which
    consists entirely of characters not in REJECT.  */
-#ifndef _HAVE_STRING_ARCH_strcspn
-# define strcspn(s, reject) \
+#if !defined _HAVE_STRING_ARCH_strcspn || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strcspn
+#  define strcspn(s, reject) \
   __extension__                                                                      \
   ({ char __r0, __r1, __r2;                                                  \
      (__builtin_constant_p (reject) && __string2_1bptr_p (reject)            \
@@ -869,10 +888,11 @@ __stpcpy_small (char *__dest,
                  ? __strcspn_c3 (s, __r0, __r1, __r2)                        \
                  : strcspn (s, reject)))))                                   \
                  : strcspn (s, reject)); })
+# endif
 
-__STRING_INLINE size_t __strcspn_c1 (__const char *__s, char __reject);
+__STRING_INLINE size_t __strcspn_c1 (__const char *__s, int __reject);
 __STRING_INLINE size_t
-__strcspn_c1 (__const char *__s, char __reject)
+__strcspn_c1 (__const char *__s, int __reject)
 {
   register size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject)
@@ -880,10 +900,10 @@ __strcspn_c1 (__const char *__s, char __reject)
   return __result;
 }
 
-__STRING_INLINE size_t __strcspn_c2 (__const char *__s, char __reject1,
-                                    char __reject2);
+__STRING_INLINE size_t __strcspn_c2 (__const char *__s, int __reject1,
+                                    int __reject2);
 __STRING_INLINE size_t
-__strcspn_c2 (__const char *__s, char __reject1, char __reject2)
+__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
 {
   register size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
@@ -892,11 +912,11 @@ __strcspn_c2 (__const char *__s, char __reject1, char __reject2)
   return __result;
 }
 
-__STRING_INLINE size_t __strcspn_c3 (__const char *__s, char __reject1,
-                                    char __reject2, char __reject3);
+__STRING_INLINE size_t __strcspn_c3 (__const char *__s, int __reject1,
+                                    int __reject2, int __reject3);
 __STRING_INLINE size_t
-__strcspn_c3 (__const char *__s, char __reject1, char __reject2,
-             char __reject3)
+__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
+             int __reject3)
 {
   register size_t __result = 0;
   while (__s[__result] != '\0' && __s[__result] != __reject1
@@ -909,13 +929,14 @@ __strcspn_c3 (__const char *__s, char __reject1, char __reject2,
 
 /* Return the length of the initial segment of S which
    consists entirely of characters in ACCEPT.  */
-#ifndef _HAVE_STRING_ARCH_strspn
-# define strspn(s, accept) \
+#if !defined _HAVE_STRING_ARCH_strspn || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strspn
+#  define strspn(s, accept) \
   __extension__                                                                      \
   ({ char __a0, __a1, __a2;                                                  \
      (__builtin_constant_p (accept) && __string2_1bptr_p (accept)            \
       ? ((__a0 = ((__const char *) (accept))[0], __a0 == '\0')               \
-        ? 0                                                                  \
+        ? ((void) (s), 0)                                                    \
         : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0')             \
            ? __strspn_c1 (s, __a0)                                           \
            : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0')          \
@@ -924,10 +945,11 @@ __strcspn_c3 (__const char *__s, char __reject1, char __reject2,
                  ? __strspn_c3 (s, __a0, __a1, __a2)                         \
                  : strspn (s, accept)))))                                    \
       : strspn (s, accept)); })
+# endif
 
-__STRING_INLINE size_t __strspn_c1 (__const char *__s, char __accept);
+__STRING_INLINE size_t __strspn_c1 (__const char *__s, int __accept);
 __STRING_INLINE size_t
-__strspn_c1 (__const char *__s, char __accept)
+__strspn_c1 (__const char *__s, int __accept)
 {
   register size_t __result = 0;
   /* Please note that __accept never can be '\0'.  */
@@ -936,10 +958,10 @@ __strspn_c1 (__const char *__s, char __accept)
   return __result;
 }
 
-__STRING_INLINE size_t __strspn_c2 (__const char *__s, char __accept1,
-                                   char __accept2);
+__STRING_INLINE size_t __strspn_c2 (__const char *__s, int __accept1,
+                                   int __accept2);
 __STRING_INLINE size_t
-__strspn_c2 (__const char *__s, char __accept1, char __accept2)
+__strspn_c2 (__const char *__s, int __accept1, int __accept2)
 {
   register size_t __result = 0;
   /* Please note that __accept1 and __accept2 never can be '\0'.  */
@@ -948,10 +970,10 @@ __strspn_c2 (__const char *__s, char __accept1, char __accept2)
   return __result;
 }
 
-__STRING_INLINE size_t __strspn_c3 (__const char *__s, char __accept1,
-                                   char __accept2, char __accept3);
+__STRING_INLINE size_t __strspn_c3 (__const char *__s, int __accept1,
+                                   int __accept2, int __accept3);
 __STRING_INLINE size_t
-__strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
+__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
 {
   register size_t __result = 0;
   /* Please note that __accept1 to __accept3 never can be '\0'.  */
@@ -964,13 +986,14 @@ __strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
 
 
 /* Find the first occurrence in S of any character in ACCEPT.  */
-#ifndef _HAVE_STRING_ARCH_strpbrk
-# define strpbrk(s, accept) \
+#if !defined _HAVE_STRING_ARCH_strpbrk || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strpbrk
+#  define strpbrk(s, accept) \
   __extension__                                                                      \
   ({ char __a0, __a1, __a2;                                                  \
      (__builtin_constant_p (accept) && __string2_1bptr_p (accept)            \
       ? ((__a0 = ((__const char  *) (accept))[0], __a0 == '\0')                      \
-        ? NULL                                                               \
+        ? ((void) (s), NULL)                                                 \
         : ((__a1 = ((__const char *) (accept))[1], __a1 == '\0')             \
            ? strchr (s, __a0)                                                \
            : ((__a2 = ((__const char *) (accept))[2], __a2 == '\0')          \
@@ -979,11 +1002,12 @@ __strspn_c3 (__const char *__s, char __accept1, char __accept2, char __accept3)
                  ? __strpbrk_c3 (s, __a0, __a1, __a2)                        \
                  : strpbrk (s, accept)))))                                   \
       : strpbrk (s, accept)); })
+# endif
 
-__STRING_INLINE char *__strpbrk_c2 (__const char *__s, char __accept1,
-                                    char __accept2);
+__STRING_INLINE char *__strpbrk_c2 (__const char *__s, int __accept1,
+                                    int __accept2);
 __STRING_INLINE char *
-__strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
+__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
 {
   /* Please note that __accept1 and __accept2 never can be '\0'.  */
   while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
@@ -991,11 +1015,11 @@ __strpbrk_c2 (__const char *__s, char __accept1, char __accept2)
   return *__s == '\0' ? NULL : (char *) (size_t) __s;
 }
 
-__STRING_INLINE char *__strpbrk_c3 (__const char *__s, char __accept1,
-                                    char __accept2, char __accept3);
+__STRING_INLINE char *__strpbrk_c3 (__const char *__s, int __accept1,
+                                    int __accept2, int __accept3);
 __STRING_INLINE char *
-__strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
-             char __accept3)
+__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
+             int __accept3)
 {
   /* Please note that __accept1 to __accept3 never can be '\0'.  */
   while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
@@ -1006,8 +1030,9 @@ __strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
 #endif
 
 
-/* Find the first occurrence of NEEDLE in HAYSTACK.  */
-#ifndef _HAVE_STRING_ARCH_strstr
+/* Find the first occurrence of NEEDLE in HAYSTACK.  Newer gcc versions
+   do this itself.  */
+#if !defined _HAVE_STRING_ARCH_strstr && !__GNUC_PREREQ (2, 97)
 # define strstr(haystack, needle) \
   (__extension__ (__builtin_constant_p (needle) && __string2_1bptr_p (needle) \
                  ? (((__const char *) (needle))[0] == '\0'                   \
@@ -1020,26 +1045,16 @@ __strpbrk_c3 (__const char *__s, char __accept1, char __accept2,
 #endif
 
 
-#if defined __USE_GNU && !defined _FORCE_INLINES
-# ifndef _HAVE_STRING_ARCH_strnlen
-__STRING_INLINE size_t
-strnlen (__const char *__string, size_t __maxlen)
-{
-  __const char *__end = (__const char *) memchr (__string, '\0', __maxlen);
-  return __end ? (size_t) (__end - __string) : __maxlen;
-}
-# endif
-#endif
-
-
-#ifndef _HAVE_STRING_ARCH_strtok_r
-# define __strtok_r(s, sep, nextp) \
+#if !defined _HAVE_STRING_ARCH_strtok_r || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strtok_r
+#  define __strtok_r(s, sep, nextp) \
   (__extension__ (__builtin_constant_p (sep) && __string2_1bptr_p (sep)              \
                  ? (((__const char *) (sep))[0] != '\0'                      \
                     && ((__const char *) (sep))[1] == '\0'                   \
                     ? __strtok_r_1c (s, ((__const char *) (sep))[0], nextp)  \
                     : __strtok_r (s, sep, nextp))                            \
                  : __strtok_r (s, sep, nextp)))
+# endif
 
 __STRING_INLINE char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
 __STRING_INLINE char *
@@ -1050,32 +1065,31 @@ __strtok_r_1c (char *__s, char __sep, char **__nextp)
     __s = *__nextp;
   while (*__s == __sep)
     ++__s;
-  if (*__s == '\0')
-    __result = NULL;
-  else
+  __result = NULL;
+  if (*__s != '\0')
     {
-      __result = __s;
-      while (*__s != '\0' && *__s != __sep)
-       ++__s;
-      if (*__s == '\0')
-       *__nextp = __s;
-      else
-       {
-         *__s = '\0';
-         *__nextp = __s + 1;
-       }
+      __result = __s++;
+      while (*__s != '\0')
+       if (*__s++ == __sep)
+         {
+           __s[-1] = '\0';
+           break;
+         }
+      *__nextp = __s;
     }
   return __result;
 }
 # if defined __USE_POSIX || defined __USE_MISC
-#  define strtok_r(s, sep, nextp) __strtok_r ((s), (sep), (nextp))
+#  define strtok_r(s, sep, nextp) __strtok_r (s, sep, nextp)
 # endif
 #endif
 
 
-#ifndef _HAVE_STRING_ARCH_strsep
+#if !defined _HAVE_STRING_ARCH_strsep || defined _FORCE_INLINES
+# ifndef _HAVE_STRING_ARCH_strsep
 
-# define __strsep(s, reject) \
+extern char *__strsep_g (char **__stringp, __const char *__delim);
+#  define __strsep(s, reject) \
   __extension__                                                                      \
   ({ char __r0, __r1, __r2;                                                  \
      (__builtin_constant_p (reject) && __string2_1bptr_p (reject)            \
@@ -1090,21 +1104,15 @@ __strtok_r_1c (char *__s, char __sep, char **__nextp)
               ? __strsep_3c (s, __r0, __r1, __r2)                            \
               : __strsep_g (s, reject))))                                    \
       : __strsep_g (s, reject)); })
+# endif
 
 __STRING_INLINE char *__strsep_1c (char **__s, char __reject);
 __STRING_INLINE char *
 __strsep_1c (char **__s, char __reject)
 {
   register char *__retval = *__s;
-  if (__retval == NULL)
-    return *__s = NULL;
-  if (*__retval == __reject)
+  if (__retval != NULL && (*__s = strchr (__retval, __reject)) != NULL)
     *(*__s)++ = '\0';
-  else
-    if ((*__s = strchr (__retval, __reject)) != NULL)
-      *(*__s)++ = '\0';
-    else
-      *__s = NULL;
   return __retval;
 }
 
@@ -1113,22 +1121,24 @@ __STRING_INLINE char *
 __strsep_2c (char **__s, char __reject1, char __reject2)
 {
   register char *__retval = *__s;
-  if (__retval == NULL)
-    return *__s = NULL;
-  if (*__retval == __reject1 || *__retval == __reject2)
-    *(*__s)++ = '\0';
-  else
+  if (__retval != NULL)
     {
       register char *__cp = __retval;
-      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2)
-       ++__cp;
-      if (*__cp != '\0')
+      while (1)
        {
-         *__s = __cp;
-         *(*__s)++ = '\0';
+         if (*__cp == '\0')
+           {
+             __cp = NULL;
+         break;
+           }
+         if (*__cp == __reject1 || *__cp == __reject2)
+           {
+             *__cp++ = '\0';
+             break;
+           }
+         ++__cp;
        }
-      else
-       *__s = NULL;
+      *__s = __cp;
     }
   return __retval;
 }
@@ -1139,41 +1149,29 @@ __STRING_INLINE char *
 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
 {
   register char *__retval = *__s;
-  if (__retval == NULL)
-    return *__s = NULL;
-  if (*__retval == __reject1 || *__retval == __reject2
-      || *__retval == __reject3)
-    *(*__s)++ = '\0';
-  else
+  if (__retval != NULL)
     {
       register char *__cp = __retval;
-      while (*__cp != '\0' && *__cp != __reject1 && *__cp != __reject2
-            && *__cp != __reject3)
-       ++__cp;
-      if (*__cp != '\0')
+      while (1)
        {
-         *__s = __cp;
-         *(*__s)++ = '\0';
+         if (*__cp == '\0')
+           {
+             __cp = NULL;
+         break;
+           }
+         if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
+           {
+             *__cp++ = '\0';
+             break;
+           }
+         ++__cp;
        }
-      else
-       *__s = NULL;
+      *__s = __cp;
     }
   return __retval;
 }
-
-__STRING_INLINE char *__strsep_g (char **__s, __const char *__reject);
-__STRING_INLINE char *
-__strsep_g (char **__s, __const char *__reject)
-{
-  register char *__retval = *__s;
-  if (__retval == NULL)
-    return NULL;
-  if ((*__s = strpbrk (__retval, __reject)) != NULL)
-    *(*__s)++ = '\0';
-  return __retval;
-}
 # ifdef __USE_BSD
-#  define strsep(s, reject) __strsep ((s), (reject))
+#  define strsep(s, reject) __strsep (s, reject)
 # endif
 #endif
 
@@ -1189,6 +1187,7 @@ __strsep_g (char **__s, __const char *__reject)
 
 # ifndef _HAVE_STRING_ARCH_strdup
 
+extern char *__strdup (__const char *__string) __THROW __attribute_malloc__;
 #  define __strdup(s) \
   (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)          \
                  ? (((__const char *) (s))[0] == '\0'                        \
@@ -1205,6 +1204,34 @@ __strsep_g (char **__s, __const char *__reject)
 #  endif
 # endif
 
+# ifndef _HAVE_STRING_ARCH_strndup
+
+extern char *__strndup (__const char *__string, size_t __n)
+     __THROW __attribute_malloc__;
+#  define __strndup(s, n) \
+  (__extension__ (__builtin_constant_p (s) && __string2_1bptr_p (s)          \
+                 ? (((__const char *) (s))[0] == '\0'                        \
+                    ? (char *) calloc (1, 1)                                 \
+                    : ({ size_t __len = strlen (s) + 1;                      \
+                         size_t __n = (n);                                   \
+                         char *__retval;                                     \
+                         if (__n < __len)                                    \
+                           __len = __n;                                      \
+                         __retval = (char *) malloc (__len);                 \
+                         if (__retval != NULL)                               \
+                           {                                                 \
+                             __retval[__len - 1] = '\0';                     \
+                             __retval = (char *) memcpy (__retval, s,        \
+                                                         __len - 1);         \
+                           }                                                 \
+                         __retval; }))                                       \
+                 : __strndup (s, n)))
+
+#  ifdef __USE_GNU
+#   define strndup(s, n) __strndup (s, n)
+#  endif
+# endif
+
 #endif /* Use misc. or use GNU.  */
 
 #ifndef _FORCE_INLINES
index ed80747..21538c3 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1998, 1999 Free Software Foundation, Inc.
+/* Copyright (C) 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _BITS_STROPTS_H
 #define _BITS_STROPTS_H        1
@@ -61,7 +61,7 @@
                                   of a STREAMS pipe.  */
 #define I_RECVFD    (__SID |14) /* Non-EFT definition.  */
 #define I_SWROPT    (__SID |19) /* Set the write mode.  */
-#define I_GWRSET    (__SID |20) /* Return the current write mode setting.  */
+#define I_GWROPT    (__SID |20) /* Return the current write mode setting.  */
 #define I_LIST     (__SID |21) /* List all the module names on the STREAM, up
                                   to and including the topmost driver name. */
 #define I_PLINK            (__SID |22) /* Connect two STREAMs with a persistent
@@ -91,7 +91,9 @@
 #define FLUSHR         0x01    /* Flush read queues.  */
 #define FLUSHW         0x02    /* Flush write queues.  */
 #define FLUSHRW                0x03    /* Flush read and write queues.  */
-#define FLUSHBAND      0x04    /* Flush only specified band.  */
+#ifdef __USE_GNU
+# define FLUSHBAND     0x04    /* Flush only specified band.  */
+#endif
 
 /* Possible arguments for `I_SETSIG'.  */
 #define S_INPUT                0x0001  /* A message, other than a high-priority
 #define RPROTNORM      0x0010  /* Fail `read' with EBADMSG if a message
                                   containing a control part is at the front
                                   of the STREAM head read queue.  */
-#define RPROTMASK      0x001C  /* The RPROT bits */
+#ifdef __USE_GNU
+# define RPROTMASK     0x001C  /* The RPROT bits */
+#endif
 
 /* Possible mode for `I_SWROPT'.  */
 #define SNDZERO                0x001   /* Send a zero-length message downstream when a
                                   `write' of 0 bytes occurs.  */
-#define        SNDPIPE         0x002   /* Send SIGPIPE on write and putmsg if
+#ifdef __USE_GNU
+# define SNDPIPE       0x002   /* Send SIGPIPE on write and putmsg if
                                   sd_werror is set.  */
+#endif
 
 /* Arguments for `I_ATMARK'.  */
 #define ANYMARK                0x01    /* Check if the message is marked.  */
                                   on the queue.  */
 
 /* Argument for `I_UNLINK'.  */
-#define MUXID_ALL      (-1)    /* Unlink all STREAMs linked to the STREAM
+#ifdef __USE_GNU
+# define MUXID_ALL     (-1)    /* Unlink all STREAMs linked to the STREAM
                                   associated with `fildes'.  */
+#endif
 
 
 /* Macros for `getmsg', `getpmsg', `putmsg' and `putpmsg'.  */
@@ -176,14 +184,14 @@ struct strpeek
   {
     struct strbuf ctlbuf;
     struct strbuf databuf;
-    __t_uscalar_t flags;               /* UnixWare/Solaris compatibility.  */
+    t_uscalar_t flags;                 /* UnixWare/Solaris compatibility.  */
   };
 
 struct strfdinsert
   {
     struct strbuf ctlbuf;
     struct strbuf databuf;
-    __t_uscalar_t flags;               /* UnixWare/Solaris compatibility.  */
+    t_uscalar_t flags;                 /* UnixWare/Solaris compatibility.  */
     int fildes;
     int offset;
   };
@@ -199,9 +207,9 @@ struct strioctl
 struct strrecvfd
   {
     int fd;
-    __uid_t uid;
-    __gid_t gid;
-    char fill[8];                      /* UnixWare/Solaris compatibility */
+    uid_t uid;
+    gid_t gid;
+    char __fill[8];                    /* UnixWare/Solaris compatibility */
   };
 
 
index a5ba1d2..887b309 100644 (file)
@@ -3,19 +3,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _TERMIOS_H
 # error "Never include <bits/termios.h> directly; use <termios.h> instead."
@@ -165,6 +165,7 @@ struct termios
 #define  B3000000 0010015
 #define  B3500000 0010016
 #define  B4000000 0010017
+#define __MAX_BAUD B4000000
 #ifdef __USE_MISC
 # define CIBAUD          002003600000          /* input baud rate (not used) */
 # define CRTSCTS  020000000000         /* flow control */
index 274d616..2a6873f 100644 (file)
@@ -1,21 +1,21 @@
 /* System-dependent timing definitions.  Linux version.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1997, 1999, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  * Never include this file directly; use <time.h> instead.
 /* CAE XSH, Issue 4, Version 2: <time.h>
    The value of CLOCKS_PER_SEC is required to be 1 million on all
    XSI-conformant systems. */
-#  define CLOCKS_PER_SEC  1000000
+#  define CLOCKS_PER_SEC  1000000l
 
-#  ifndef __STRICT_ANSI__
+#  if !defined __STRICT_ANSI__ && !defined __USE_XOPEN2K
 /* Even though CLOCKS_PER_SEC has such a strange value CLK_TCK
    presents the real value for clock ticks per second for the system.  */
-#   define CLK_TCK 100
+#   include <bits/types.h>
+extern long int __sysconf (int);
+#   define CLK_TCK ((__clock_t) __sysconf (2)) /* 2 is _SC_CLK_TCK */
+#  endif
+
+#  ifdef __USE_POSIX199309
+/* Identifier for system-wide realtime clock.  */
+#   define CLOCK_REALTIME      0
+
+/* Flag to indicate time is absolute.  */
+#   define TIMER_ABSTIME       1
 #  endif
 
 # endif        /* bits/time.h */
 #endif
 
-#ifdef __need_timeval 
+#ifdef __need_timeval
 # undef __need_timeval
 # ifndef _STRUCT_TIMEVAL
 #  define _STRUCT_TIMEVAL      1
@@ -53,7 +63,7 @@
 struct timeval
   {
     __time_t tv_sec;           /* Seconds.  */
-    __time_t tv_usec;          /* Microseconds.  */
+    __suseconds_t tv_usec;     /* Microseconds.  */
   };
 # endif        /* struct timeval */
-#endif /* need timeval */ 
+#endif /* need timeval */
index 682f912..bdda938 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1991,92,94,95,96,97,98,99 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,1994-1999,2000,2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  * Never include this file directly; use <sys/types.h> instead.
@@ -34,8 +34,8 @@ typedef unsigned short __u_short;
 typedef unsigned int __u_int;
 typedef unsigned long __u_long;
 #ifdef __GNUC__
-typedef unsigned long long int __u_quad_t;
-typedef long long int __quad_t;
+__extension__ typedef unsigned long long int __u_quad_t;
+__extension__ typedef long long int __quad_t;
 #else
 typedef struct
   {
@@ -53,17 +53,17 @@ typedef unsigned short int __uint16_t;
 typedef signed int __int32_t;
 typedef unsigned int __uint32_t;
 #ifdef __GNUC__
-typedef signed long long int __int64_t;
-typedef unsigned long long int __uint64_t;
+__extension__ typedef signed long long int __int64_t;
+__extension__ typedef unsigned long long int __uint64_t;
 #endif
 typedef __quad_t *__qaddr_t;
 
-typedef __u_short __dev_t;             /* Type of device numbers.  */
-typedef __u_short __uid_t;             /* Type of user identifications.  */
-typedef __u_short __gid_t;             /* Type of group identifications.  */
+typedef __u_quad_t __dev_t;            /* Type of device numbers.  */
+typedef __u_int __uid_t;               /* Type of user identifications.  */
+typedef __u_int __gid_t;               /* Type of group identifications.  */
 typedef __u_long __ino_t;              /* Type of file serial numbers.  */
-typedef __u_short __mode_t;            /* Type of file attribute bitmasks.  */
-typedef __u_short __nlink_t;           /* Type of file link counts.  */
+typedef __u_int __mode_t;              /* Type of file attribute bitmasks.  */
+typedef __u_int __nlink_t;             /* Type of file link counts.  */
 typedef long int __off_t;              /* Type of file sizes and offsets.  */
 typedef __quad_t __loff_t;             /* Type of file sizes and offsets.  */
 typedef int __pid_t;                   /* Type of process identifications.  */
@@ -81,34 +81,21 @@ typedef struct
 typedef int __daddr_t;                 /* The type of a disk address.  */
 typedef char *__caddr_t;
 typedef long int __time_t;
+typedef unsigned int __useconds_t;
+typedef long int __suseconds_t;
 typedef long int __swblk_t;            /* Type of a swap block maybe?  */
 \f
 typedef long int __clock_t;
 
-/* One element in the file descriptor mask array.  */
-typedef unsigned long int __fd_mask;
+/* Clock ID used in clock and timer functions.  */
+typedef int __clockid_t;
 
-/* Number of descriptors that can fit in an `fd_set'.  */
-#define __FD_SETSIZE   1024
+/* Timer ID returned by `timer_create'.  */
+typedef int __timer_t;
 
-/* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
-#define __NFDBITS      (8 * sizeof (__fd_mask))
-#define        __FDELT(d)      ((d) / __NFDBITS)
-#define        __FDMASK(d)     ((__fd_mask) 1 << ((d) % __NFDBITS))
 
-/* fd_set for select and pselect.  */
-typedef struct
-  {
-    /* XPG4.2 requires this member name.  Otherwise avoid the name
-       from the global namespace.  */
-#ifdef __USE_XOPEN
-    __fd_mask fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->fds_bits)
-#else
-    __fd_mask __fds_bits[__FD_SETSIZE / __NFDBITS];
-# define __FDS_BITS(set) ((set)->__fds_bits)
-#endif
-  } __fd_set;
+/* Number of descriptors that can fit in an `fd_set'.  */
+#define __FD_SETSIZE   1024
 
 
 typedef int __key_t;
@@ -117,6 +104,9 @@ typedef int __key_t;
 typedef unsigned short int __ipc_pid_t;
 
 
+/* Type to represent block size.  */
+typedef long int __blksize_t;
+
 /* Types from the Large File Support interface.  */
 
 /* Type to count number os disk blocks.  */
@@ -132,7 +122,7 @@ typedef __u_long __fsfilcnt_t;
 typedef __u_quad_t __fsfilcnt64_t;
 
 /* Type of file serial numbers.  */
-typedef __u_long __ino64_t;
+typedef __u_quad_t __ino64_t;
 
 /* Type of file sizes and offsets.  */
 typedef __loff_t __off64_t;
@@ -144,9 +134,12 @@ typedef unsigned long int __t_uscalar_t;
 /* Duplicates info from stdint.h but this is used in unistd.h.  */
 typedef int __intptr_t;
 
+/* Duplicate info from sys/socket.h.  */
+typedef unsigned int __socklen_t;
+
 
 /* Now add the thread types.  */
-#ifdef __USE_UNIX98
+#if defined __USE_POSIX199506 || defined __USE_UNIX98
 # include <bits/pthreadtypes.h>
 #endif
 
index 38ac17b..84b4805 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_UIO_H
 # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
index 526069a..aeafc22 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #include <sys/types.h>
 
index d07486e..2ed29bb 100644 (file)
@@ -1,20 +1,21 @@
 /* The `struct utmp' type, describing entries in the utmp file.  GNU version.
    Copyright (C) 1993, 1996, 1997, 1998, 1999 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _UTMP_H
 # error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
index 74befe5..9973537 100644 (file)
@@ -1,20 +1,21 @@
-/* Structures and defenitions for the user accounting database.  GNU version.
-   Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+/* Structures and definitions for the user accounting database.  GNU version.
+   Copyright (C) 1997, 1998, 2000, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _UTMPX_H
 # error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
@@ -71,7 +72,9 @@ struct utmpx
 /* Values for the `ut_type' field of a `struct utmpx'.  */
 #define EMPTY          0       /* No valid user accounting information.  */
 
-#define RUN_LVL                1       /* The system's runlevel.  */
+#ifdef __USE_GNU
+# define RUN_LVL       1       /* The system's runlevel.  */
+#endif
 #define BOOT_TIME      2       /* Time of system boot.  */
 #define NEW_TIME       3       /* Time after system clock changed.  */
 #define OLD_TIME       4       /* Time when system clock changed.  */
index 8f4bf16..35e71e3 100644 (file)
@@ -2,19 +2,19 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #ifndef _SYS_UTSNAME_H
 # error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
index afc8b22..1303c6c 100644 (file)
@@ -3,21 +3,21 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
-#ifndef _SYS_WAIT_H
+#if !defined _SYS_WAIT_H && !defined _STDLIB_H
 # error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
 #endif
 
index 1ec5510..982c9db 100644 (file)
@@ -1,23 +1,23 @@
 /* Definitions of status bits for `wait' et al.
-   Copyright (C) 1992, 1994, 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1992, 1994, 1996, 1997, 2000 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
-   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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
-#ifndef _SYS_WAIT_H
+#if !defined _SYS_WAIT_H && !defined _STDLIB_H
 # error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
 #endif
 
diff --git a/libc/sysdeps/linux/m68k/bits/wchar.h b/libc/sysdeps/linux/m68k/bits/wchar.h
new file mode 100644 (file)
index 0000000..ef1f563
--- /dev/null
@@ -0,0 +1,26 @@
+/* wchar_t type related definitions.
+   Copyright (C) 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 Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#ifndef _BITS_WCHAR_H
+#define _BITS_WCHAR_H  1
+
+#define __WCHAR_MIN    (-2147483647 - 1)
+#define __WCHAR_MAX    (2147483647)
+
+#endif /* bits/wchar.h */
index 62dad0c..ba643b6 100644 (file)
@@ -2,18 +2,18 @@
    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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 #define __WORDSIZE     32
index 9f22e44..7f36118 100644 (file)
@@ -1,20 +1,20 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1999, 2001 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.
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 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.
+   Lesser 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 Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /*
  * Never include this file directly; use <limits.h> instead.
@@ -30,7 +30,7 @@
 #ifndef _XOPEN_LIM_H
 #define _XOPEN_LIM_H   1
 
-#define __need_FOPEN_MAX
+#define __need_IOV_MAX
 #include <bits/stdio_lim.h>
 
 /* We do not provide fixed values for
    PAGE_SIZE   Size of bytes of a page.
 
    PASS_MAX    Maximum number of significant bytes in a password.
-*/
-
 
-/* Maximum number of `iovec' structures that one process has available
-   for use with `readv' or writev'.  */
-#define IOV_MAX                _XOPEN_IOV_MAX
+   We only provide a fixed limit for
 
-/* The number of streams that one process can have open at one time.  */
-#define STREAM_MAX     FOPEN_MAX
+   IOV_MAX     Maximum number of `iovec' structures that one process has
+               available for use with `readv' or writev'.
 
-/* Maximum number of bytes supported for the name of a time zone.  */
-#define TZNAME_MAX     _POSIX_TZNAME_MAX
+   if this is indeed fixed by the underlying system.
+*/
 
 
 /* Maximum number of `iovec' structures that one process has available
 /* Default process priority.  */
 #define NZERO          20
 
+
+/* Number of bits in a word of type `int'.  */
+#ifdef INT_MAX
+# if INT_MAX == 32767
+#  define WORD_BIT     16
+# else
+#  if INT_MAX == 2147483647
+#   define WORD_BIT    32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT    64
+#  endif
+# endif
+#elif defined __INT_MAX__
+# if __INT_MAX__ == 32767
+#  define WORD_BIT     16
+# else
+#  if __INT_MAX__ == 2147483647
+#   define WORD_BIT    32
+#  else
+/* Safe assumption.  */
+#   define WORD_BIT    64
+#  endif
+# endif
+#else
+# define WORD_BIT      32
+#endif
+
+/* Number of bits in a word of type `long int'.  */
+#ifdef LONG_MAX
+# if LONG_MAX == 2147483647
+#  define LONG_BIT     32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT     64
+# endif
+#elif defined __LONG_MAX__
+# if __LONG_MAX__ == 2147483647
+#  define LONG_BIT     32
+# else
+/* Safe assumption.  */
+#  define LONG_BIT     64
+# endif
+#else
+# include <bits/wordsize.h>
+# if __WORDSIZE == 64
+#  define LONG_BIT     64
+# else
+#  define LONG_BIT     32
+# endif
+#endif
+
 #endif /* bits/xopen_lim.h */