Update.
authorUlrich Drepper <drepper@redhat.com>
Thu, 11 Jul 2002 21:44:15 +0000 (21:44 +0000)
committerUlrich Drepper <drepper@redhat.com>
Thu, 11 Jul 2002 21:44:15 +0000 (21:44 +0000)
2002-07-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>

* sysdeps/s390/bits/byteswap.h: Unified 31/64 bit byteswap.h.
* sysdeps/s390/s390-32/bits/byteswap.h: Remove.
* sysdeps/s390/s390-64/bits/byteswap.h: Remove.
* sysdeps/s390/bits/link.h: Unified 31/64 bit link.h.
* sysdeps/s390/s390-32/bits/link.h: Remove.
* sysdeps/s390/s390-64/bits/link.h: Remove.
* sysdeps/s390/bits/setjmp.h: Unified 31/64 bit setjmp.h.
* sysdeps/s390/s390-32/bits/setjmp.h: Remove.
* sysdeps/s390/s390-64/bits/setjmp.h: Remove.
* sysdeps/s390/bits/wordsize.h: New file.
* sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Unified 31/64 bit
elfclass.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/elfclass.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Unified 31/64 bit fcntl.h.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/fcntl.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/ipc.h: Unified 31/64 bit ipc.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/mman.h: Unified 31/64 bit mman.h.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/msq.h: Unified 31/64 bit msq.h.
* ysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/resource.h: Unified 31/64 bit
resource.h.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/sem.h: Unified 31/64 bit sem.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/shm.h: Unified 31/64 bit shm.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Unified 31/64 bit
sigaction.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Unified 31/64 bit
siginfo.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/siginfo.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/socket.h: Unified 31/64 bit
socket.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/socket.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/stat.h: Unified 31/64 bit stat.h.
* sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h: Remove.
* sysdeps/unix/sysv/linux/s390/bits/types.h: Unified 31/64 bit types.h.
* sysdeps/unix/sysv/linux/s390/s390-64/bits/types.h: Remove.
* sysdeps/unix/sysv/linux/s390/net/route.h: New file.
* sysdeps/unix/sysv/linux/s390/sys/procfs.h: Unified 31/64 bit
procfs.h.
* sysdeps/unix/sysv/linux/s390/s390-32/sys/procfs.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h: Remove.
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Unified 31/64 bit
ucontext.h.
* sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Remove.
* sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Remove.

31 files changed:
ChangeLog
sysdeps/s390/bits/byteswap.h [moved from sysdeps/s390/s390-64/bits/byteswap.h with 61% similarity]
sysdeps/s390/bits/link.h [new file with mode: 0644]
sysdeps/s390/bits/setjmp.h [moved from sysdeps/s390/s390-32/bits/setjmp.h with 88% similarity]
sysdeps/s390/bits/wordsize.h [new file with mode: 0644]
sysdeps/s390/s390-32/bits/byteswap.h [deleted file]
sysdeps/s390/s390-32/bits/link.h [deleted file]
sysdeps/s390/s390-64/bits/link.h [deleted file]
sysdeps/s390/s390-64/bits/setjmp.h [deleted file]
sysdeps/unix/sysv/linux/s390/bits/elfclass.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/elfclass.h with 86% similarity]
sysdeps/unix/sysv/linux/s390/bits/fcntl.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/bits/fcntl.h with 77% similarity]
sysdeps/unix/sysv/linux/s390/bits/ipc.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h with 76% similarity]
sysdeps/unix/sysv/linux/s390/bits/mman.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h with 96% similarity]
sysdeps/unix/sysv/linux/s390/bits/msq.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h with 66% similarity]
sysdeps/unix/sysv/linux/s390/bits/resource.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h with 94% similarity]
sysdeps/unix/sysv/linux/s390/bits/sem.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h with 91% similarity]
sysdeps/unix/sysv/linux/s390/bits/shm.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h with 84% similarity]
sysdeps/unix/sysv/linux/s390/bits/sigaction.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h with 60% similarity]
sysdeps/unix/sysv/linux/s390/bits/siginfo.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/siginfo.h with 94% similarity]
sysdeps/unix/sysv/linux/s390/bits/socket.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/socket.h with 96% similarity]
sysdeps/unix/sysv/linux/s390/bits/stat.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h with 61% similarity]
sysdeps/unix/sysv/linux/s390/bits/types.h [moved from sysdeps/unix/sysv/linux/s390/s390-64/bits/types.h with 51% similarity]
sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h [deleted file]
sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h [deleted file]
sysdeps/unix/sysv/linux/s390/sys/procfs.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/sys/procfs.h with 96% similarity]
sysdeps/unix/sysv/linux/s390/sys/ucontext.h [moved from sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h with 94% similarity]

index c399d99..8a65319 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,61 @@
+2002-07-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+       * sysdeps/s390/bits/byteswap.h: Unified 31/64 bit byteswap.h.
+       * sysdeps/s390/s390-32/bits/byteswap.h: Remove.
+       * sysdeps/s390/s390-64/bits/byteswap.h: Remove.
+       * sysdeps/s390/bits/link.h: Unified 31/64 bit link.h.
+       * sysdeps/s390/s390-32/bits/link.h: Remove.
+       * sysdeps/s390/s390-64/bits/link.h: Remove.
+       * sysdeps/s390/bits/setjmp.h: Unified 31/64 bit setjmp.h.
+       * sysdeps/s390/s390-32/bits/setjmp.h: Remove.
+       * sysdeps/s390/s390-64/bits/setjmp.h: Remove.
+       * sysdeps/s390/bits/wordsize.h: New file.
+       * sysdeps/unix/sysv/linux/s390/bits/elfclass.h: Unified 31/64 bit
+       elfclass.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/elfclass.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/fcntl.h: Unified 31/64 bit fcntl.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/bits/fcntl.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/ipc.h: Unified 31/64 bit ipc.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/mman.h: Unified 31/64 bit mman.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/msq.h: Unified 31/64 bit msq.h.
+       * ysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/resource.h: Unified 31/64 bit
+       resource.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/bits/resource.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/sem.h: Unified 31/64 bit sem.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/shm.h: Unified 31/64 bit shm.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/sigaction.h: Unified 31/64 bit
+       sigaction.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/sigaction.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/siginfo.h: Unified 31/64 bit
+       siginfo.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/siginfo.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/socket.h: Unified 31/64 bit
+       socket.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/socket.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/stat.h: Unified 31/64 bit stat.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/bits/types.h: Unified 31/64 bit types.h.
+       * sysdeps/unix/sysv/linux/s390/s390-64/bits/types.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/net/route.h: New file.
+       * sysdeps/unix/sysv/linux/s390/sys/procfs.h: Unified 31/64 bit
+       procfs.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/sys/procfs.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Unified 31/64 bit
+       ucontext.h.
+       * sysdeps/unix/sysv/linux/s390/s390-32/sys/ucontext.h: Remove.
+       * sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h: Remove.
+
 2002-07-11  Ulrich Drepper  <drepper@redhat.com>
 
        * Versions.def (libc): Add GLIBC_2.3.
similarity index 61%
rename from sysdeps/s390/s390-64/bits/byteswap.h
rename to sysdeps/s390/bits/byteswap.h
index b8cfdb2..6a4b4ae 100644 (file)
@@ -1,5 +1,5 @@
-/* Macros to swap the order of bytes in integer values.  64 bit S/390 version.
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+/* Macros to swap the order of bytes in integer values.  s390 version.
+   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -22,6 +22,8 @@
 # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
 #ifndef _BITS_BYTESWAP_H
 #define _BITS_BYTESWAP_H 1
 
@@ -30,7 +32,8 @@
 
 /* Swap bytes in 16 bit value. */
 #if defined __GNUC__ && __GNUC__ >= 2
-# define __bswap_16(x) \
+# if __WORDSIZE == 64
+#  define __bswap_16(x) \
      (__extension__                                                          \
       ({ unsigned short int __v;                                             \
         if (__builtin_constant_p (x))                                        \
               : "=&d" (__v) : "m" (__tmp) );                                  \
          }                                                                    \
         __v; }))
+# else
+#  define __bswap_16(x) \
+     (__extension__                                                          \
+      ({ unsigned short int __v;                                             \
+        if (__builtin_constant_p (x))                                        \
+          __v = __bswap_constant_16 (x);                                     \
+        else {                                                               \
+           unsigned short int __tmp = (unsigned short int) (x);               \
+           __asm__ __volatile__ (                                             \
+              "sr   %0,%0\n"                                                  \
+              "la   1,%1\n"                                                   \
+              "icm  %0,2,1(1)\n"                                              \
+              "ic   %0,0(1)"                                                  \
+              : "=&d" (__v) : "m" (__tmp) : "1");                             \
+         }                                                                    \
+        __v; }))
+# endif
 #else
 /* This is better than nothing.  */
 #define __bswap_16(x) __bswap_constant_16 (x)
@@ -53,6 +73,7 @@
       (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
 
 #if defined __GNUC__ && __GNUC__ >= 2
+# if __WORDSIZE == 64
 #  define __bswap_32(x) \
      (__extension__                                                          \
       ({ unsigned int __v;                                                   \
               : "=&d" (__v) : "m" (__tmp));                                   \
          }                                                                    \
         __v; }))
+# else
+#  define __bswap_32(x) \
+     (__extension__                                                          \
+      ({ unsigned int __v;                                                   \
+        if (__builtin_constant_p (x))                                        \
+          __v = __bswap_constant_32 (x);                                     \
+        else {                                                               \
+           unsigned int __tmp = (unsigned int) (x);                           \
+           __asm__ __volatile__ (                                             \
+              "la    1,%1\n"                                                  \
+              "icm   %0,8,3(1)\n"                                             \
+              "icm   %0,4,2(1)\n"                                             \
+              "icm   %0,2,1(1)\n"                                             \
+              "ic    %0,0(1)"                                                 \
+              : "=&d" (__v) : "m" (__tmp) : "1");                             \
+         }                                                                    \
+        __v; }))
+# endif
 #else
 # define __bswap_32(x) __bswap_constant_32 (x)
 #endif
       (((x)&0x000000000000ff00) << 40) | (((x)&0x00000000000000ff) << 56))
 
 #if defined __GNUC__ && __GNUC__ >= 2
+# if __WORDSIZE == 64
 #  define __bswap_64(x) \
      (__extension__                                                          \
       ({ unsigned long __w;                                                  \
               : "=&d" (__w) : "m" (__tmp));                                   \
          }                                                                    \
         __w; }))
+# else
+#  define __bswap_64(x) \
+     __extension__                                     \
+       ({ union { unsigned long long int __ll;         \
+                 unsigned long int __l[2]; } __w, __r; \
+          __w.__ll = (x);                              \
+          __r.__l[0] = __bswap_32 (__w.__l[1]);                \
+          __r.__l[1] = __bswap_32 (__w.__l[0]);                \
+          __r.__ll; })
+# endif
 #else
 # define __bswap_64(x) __bswap_constant_64 (x)
 #endif
diff --git a/sysdeps/s390/bits/link.h b/sysdeps/s390/bits/link.h
new file mode 100644 (file)
index 0000000..fc1fba3
--- /dev/null
@@ -0,0 +1,13 @@
+#if __WORDSIZE == 64
+struct link_map_machine
+  {
+    Elf64_Addr plt; /* Address of .plt + 0x2e */
+    Elf64_Addr gotplt; /* Address of .got + 0x18 */
+  };
+#else
+struct link_map_machine
+  {
+    Elf32_Addr plt; /* Address of .plt + 0x2c */
+    Elf32_Addr gotplt; /* Address of .got + 0x0c */
+  };
+#endif
similarity index 88%
rename from sysdeps/s390/s390-32/bits/setjmp.h
rename to sysdeps/s390/bits/setjmp.h
index 607cdaf..35bc9a5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,8 @@
 #ifndef __S390_SETJMP_H__
 #define __S390_SETJMP_H__
 
+#include <bits/wordsize.h>
+
 #define __JB_GPR6      0
 #define __JB_GPR7      1
 #define __JB_GPR8      2
@@ -38,8 +40,13 @@ typedef struct {
     /* We save registers 6-15.  */
     long int __gregs[10];
 
+#if __WORDSIZE == 64
+   /* We save fpu registers 1, 3, 5 and 7.  */
+    long __fpregs[8];
+#else
     /* We save fpu registers 4 and 6.  */
     long __fpregs[4];
+#endif
 } __jmp_buf[1];
 
 #endif
diff --git a/sysdeps/s390/bits/wordsize.h b/sysdeps/s390/bits/wordsize.h
new file mode 100644 (file)
index 0000000..4f50d85
--- /dev/null
@@ -0,0 +1,7 @@
+/* Determine the wordsize from the preprocessor defines.  */
+
+#if defined __s390x__
+# define __WORDSIZE    64
+#else
+# define __WORDSIZE    32
+#endif
diff --git a/sysdeps/s390/s390-32/bits/byteswap.h b/sysdeps/s390/s390-32/bits/byteswap.h
deleted file mode 100644 (file)
index ae12804..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Macros to swap the order of bytes in integer values.  s390 version.
-   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
-   Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
-   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 _BYTESWAP_H && !defined _NETINET_IN_H
-# error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
-#endif
-
-#ifndef _BITS_BYTESWAP_H
-#define _BITS_BYTESWAP_H 1
-
-#define __bswap_constant_16(x) \
-     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
-
-/* Swap bytes in 16 bit value. */
-#if defined __GNUC__ && __GNUC__ >= 2
-# define __bswap_16(x) \
-     (__extension__                                                          \
-      ({ unsigned short int __v;                                             \
-        if (__builtin_constant_p (x))                                        \
-          __v = __bswap_constant_16 (x);                                     \
-        else {                                                               \
-           unsigned short int __tmp = (unsigned short int) (x);               \
-           __asm__ __volatile__ (                                             \
-              "sr   %0,%0\n"                                                  \
-              "la   1,%1\n"                                                   \
-              "icm  %0,2,1(1)\n"                                              \
-              "ic   %0,0(1)"                                                  \
-              : "=&d" (__v) : "m" (__tmp) : "1");                             \
-         }                                                                    \
-        __v; }))
-#else
-/* This is better than nothing.  */
-#define __bswap_16(x) __bswap_constant_16 (x)
-#endif
-
-/* Swap bytes in 32 bit value.  */
-#define __bswap_constant_32(x) \
-     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) |                      \
-      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
-
-#if defined __GNUC__ && __GNUC__ >= 2
-#  define __bswap_32(x) \
-     (__extension__                                                          \
-      ({ unsigned int __v;                                                   \
-        if (__builtin_constant_p (x))                                        \
-          __v = __bswap_constant_32 (x);                                     \
-        else {                                                               \
-           unsigned int __tmp = (unsigned int) (x);                           \
-           __asm__ __volatile__ (                                             \
-              "la    1,%1\n"                                                  \
-              "icm   %0,8,3(1)\n"                                             \
-              "icm   %0,4,2(1)\n"                                             \
-              "icm   %0,2,1(1)\n"                                             \
-              "ic    %0,0(1)"                                                 \
-              : "=&d" (__v) : "m" (__tmp) : "1");                             \
-         }                                                                    \
-        __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]; } __w, __r;      \
-     __w.__ll = (x);                                   \
-     __r.__l[0] = __bswap_32 (__w.__l[1]);             \
-     __r.__l[1] = __bswap_32 (__w.__l[0]);             \
-     __r.__ll; })
-#endif
-
-#endif /* _BITS_BYTESWAP_H */
diff --git a/sysdeps/s390/s390-32/bits/link.h b/sysdeps/s390/s390-32/bits/link.h
deleted file mode 100644 (file)
index 962cf56..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-struct link_map_machine
-  {
-    Elf32_Addr plt; /* Address of .plt + 0x2c */
-    Elf32_Addr gotplt; /* Address of .got + 0x0c */
-  };
diff --git a/sysdeps/s390/s390-64/bits/link.h b/sysdeps/s390/s390-64/bits/link.h
deleted file mode 100644 (file)
index 34add4f..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-struct link_map_machine
-  {
-    Elf64_Addr plt; /* Address of .plt + 0x2e */
-    Elf64_Addr gotplt; /* Address of .got + 0x18 */
-  };
diff --git a/sysdeps/s390/s390-64/bits/setjmp.h b/sysdeps/s390/s390-64/bits/setjmp.h
deleted file mode 100644 (file)
index 1bb3645..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* 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.  */
-
-/* Define the machine-dependent type `jmp_buf'.  64 bit S/390 version.  */
-
-#ifndef __S390_SETJMP_H__
-#define __S390_SETJMP_H__
-
-#define        __JB_GPR6       0
-#define __JB_GPR7      1
-#define __JB_GPR8      2
-#define __JB_GPR9      3
-#define __JB_GPR10     4
-#define __JB_GPR11     5
-#define __JB_GPR12     6
-#define __JB_GPR13     7
-#define __JB_GPR14     8
-#define __JB_GPR15     9
-
-#ifndef        _ASM
-
-typedef struct {
-    /* We save registers 6-15.  */
-    long int __gregs[10];
-
-    /* We save fpu registers 4 and 6.  */
-    long __fpregs[8];
-} __jmp_buf[1];
-
-#endif
-
-/* Test if longjmp to JMPBUF would unwind the frame
-   containing a local variable at ADDRESS.  */
-#define _JMPBUF_UNWINDS(jmpbuf, address) \
-  ((void *) (address) < (void *) (jmpbuf)->__gregs[__JB_GPR15])
-
-#endif /* __S390_SETJMP_H__ */
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.
    Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
    This file is part of the GNU C Library.
 
 
 #define __ELF_NATIVE_CLASS __WORDSIZE
 
+#if __WORDSIZE == 64
 /* 64 bit Linux for S/390 is exceptional as it has .hash section with
    64 bit entries.  */
 typedef uint64_t Elf_Symndx;
+#else
+/* 32 bit Linux for S/390 has normal .hash section entries with 32 bits.  */
+typedef uint32_t Elf_Symndx;
+#endif
@@ -1,5 +1,5 @@
 /* O_*, F_*, FD_* bit values for Linux.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,8 +21,8 @@
 # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
 #endif
 
-
 #include <sys/types.h>
+#include <bits/wordsize.h>
 
 /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
    located on an ext2 file system */
 # define O_NOFOLLOW    0400000 /* Do not follow links.  */
 #endif
 
+#ifdef __USE_LARGEFILE64
+# if __WORDSIZE == 64
+/* Not necessary, files are always with 64bit off_t.  */
+#  define O_LARGEFILE  0
+# else
+#  define O_LARGEFILE  0100000
+# endif
+#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. */
 # define O_RSYNC       O_SYNC  /* Synchronize read operations.  */
 #endif
 
-#ifdef __USE_LARGEFILE64
-# define O_LARGEFILE   0100000
-#endif
-
 /* Values for the second argument to `fcntl'.  */
 #define F_DUPFD                0       /* Duplicate file descriptor.  */
 #define F_GETFD                1       /* Get file descriptor flags.  */
 #define F_SETFD                2       /* Set file descriptor flags.  */
 #define F_GETFL                3       /* Get file status flags.  */
 #define F_SETFL                4       /* Set file status flags.  */
-#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).  */
+#if __WORDSIZE == 64
+# 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).  */
+/* Not necessary, we always have 64-bit offsets.  */
+# 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).  */
 #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).  */
+# 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).  */
 #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).  */
 
 #if defined __USE_BSD || defined __USE_XOPEN2K
 # define F_SETOWN      8       /* Get owner of socket (receiver of SIGIO).  */
 #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
@@ -137,7 +152,7 @@ struct flock
   {
     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
+#if __WORDSIZE == 64 || !defined __USE_FILE_OFFSET64
     __off_t l_start;   /* Offset where the lock begins.  */
     __off_t l_len;     /* Size of the locked area; zero means until EOF.  */
 #else
@@ -174,6 +189,11 @@ struct flock64
 # 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.  */
+# if __WORDSIZE == 64
+#  define POSIX_FADV_DONTNEED  6 /* Don't need these pages.  */
+#  define POSIX_FADV_NOREUSE   7 /* Data will be accessed once.  */
+# else
+#  define POSIX_FADV_DONTNEED  4 /* Don't need these pages.  */
+#  define POSIX_FADV_NOREUSE   5 /* Data will be accessed once.  */
+# endif
 #endif
similarity index 76%
rename from sysdeps/unix/sysv/linux/s390/s390-64/bits/ipc.h
rename to sysdeps/unix/sysv/linux/s390/bits/ipc.h
index 0b1bc7e..e3a82d0 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
@@ -20,7 +20,8 @@
 # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
+#include <bits/wordsize.h>
 
 /* Mode bits for `msgget', `semget', and `shmget'.  */
 #define IPC_CREAT      01000           /* Create key if key does not exist. */
@@ -47,32 +48,14 @@ struct ipc_perm
     __gid_t gid;                       /* Owner's group ID.  */
     __uid_t cuid;                      /* Creator's user ID.  */
     __gid_t cgid;                      /* Creator's group ID.  */
+#if __WORDSIZE == 64
     __mode_t mode;                     /* Read/write permission.  */
-    unsigned short int __seq;          /* Sequence number.  */
+#else
+    unsigned short int mode;           /* Read/write permission.  */
     unsigned short int __pad1;
+#endif
+    unsigned short int __seq;          /* Sequence number.  */
+    unsigned short int __pad2;
     unsigned long int __unused1;
     unsigned long int __unused2;
   };
-
-
-
-__BEGIN_DECLS
-
-/* The actual system call: all functions are multiplexed by this.  */
-extern int __ipc __P ((int __call, int __first, int __second, int __third,
-                      void *__ptr));
-
-__END_DECLS
-
-/* The codes for the functions to use the multiplexer `__ipc'. */
-#define IPCOP_semop     1
-#define IPCOP_semget    2
-#define IPCOP_semctl    3
-#define IPCOP_msgsnd   11
-#define IPCOP_msgrcv   12
-#define IPCOP_msgget   13
-#define IPCOP_msgctl   14
-#define IPCOP_shmat    21
-#define IPCOP_shmdt    22
-#define IPCOP_shmget   23
-#define IPCOP_shmctl   24
similarity index 96%
rename from sysdeps/unix/sysv/linux/s390/s390-32/bits/mman.h
rename to sysdeps/unix/sysv/linux/s390/bits/mman.h
index 2926b04..35a8d18 100644 (file)
@@ -1,5 +1,5 @@
 /* Definitions for POSIX memory map interface.  Linux/s390 version.
-   Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -53,6 +53,7 @@
 /* These are Linux-specific.  */
 #ifdef __USE_MISC
 # define MAP_GROWSDOWN 0x0100          /* Stack-like segment.  */
+# define MAP_GROWSUP   0x0200          /* Register stack-like segment */
 # define MAP_DENYWRITE 0x0800          /* ETXTBSY */
 # define MAP_EXECUTABLE        0x1000          /* Mark it as an executable.  */
 # define MAP_LOCKED    0x2000          /* Lock the mapping.  */
similarity index 66%
rename from sysdeps/unix/sysv/linux/s390/s390-64/bits/msq.h
rename to sysdeps/unix/sysv/linux/s390/bits/msq.h
index 6643c83..ecdd03e 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
    02111-1307 USA.  */
 
 #ifndef _SYS_MSG_H
-#error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
+# error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
+#include <bits/wordsize.h>
 
-/* Define options for message queue functions. */
+/* 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.
-   The type `struct __msg' is opaque.  */
+   The type `struct msg' is opaque.  */
 struct msqid_ds
 {
   struct ipc_perm msg_perm;    /* structure describing operation permission */
   __time_t msg_stime;          /* time of last msgsnd command */
+#if __WORDSIZE != 64
+  unsigned long int __unused1;
+#endif
   __time_t msg_rtime;          /* time of last msgrcv command */
+#if __WORDSIZE != 64
+  unsigned long int __unused2;
+#endif
   __time_t msg_ctime;          /* time of last change */
-  unsigned long int __msg_cbytes;      /* current number of bytes on queue */
-  unsigned long int msg_qnum;  /* number of messages currently on queue */
-  unsigned long int msg_qbytes;        /* max number of bytes allowed on queue */
+#if __WORDSIZE != 64
+  unsigned long int __unused3;
+#endif
+  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 __unused1;
-  unsigned long int __unused2;
+  unsigned long int __unused4;
+  unsigned long int __unused5;
 };
 
 #ifdef __USE_MISC
@@ -22,6 +22,7 @@
 #endif
 
 #include <bits/types.h>
+#include <bits/wordsize.h>
 
 /* Transmute defines to enumerations.  The macro re-definitions are
    necessary because some programs want to test for operating system
@@ -58,24 +59,24 @@ enum __rlimit_resource
   RLIMIT_RSS = 5,
 #define        RLIMIT_RSS RLIMIT_RSS
 
+  /* Number of processes.  */
+  RLIMIT_NPROC = 6,
+#define RLIMIT_NPROC RLIMIT_NPROC
+
   /* Number of open files.  */
   RLIMIT_NOFILE = 7,
   RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
 #define RLIMIT_NOFILE RLIMIT_NOFILE
 #define RLIMIT_OFILE RLIMIT_OFILE
 
-  /* Address space limit.  */
-  RLIMIT_AS = 9,
-#define RLIMIT_AS RLIMIT_AS
-
-  /* Number of processes.  */
-  RLIMIT_NPROC = 6,
-#define RLIMIT_NPROC RLIMIT_NPROC
-
   /* Locked-in-memory address space.  */
   RLIMIT_MEMLOCK = 8,
 #define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
 
+  /* Address space limit.  */
+  RLIMIT_AS = 9,
+#define RLIMIT_AS RLIMIT_AS
+
   /* Maximum number of file locks.  */
   RLIMIT_LOCKS = 10,
 #define RLIMIT_LOCKS RLIMIT_LOCKS
@@ -87,14 +88,22 @@ enum __rlimit_resource
 };
 
 /* Value to indicate that there is no limit.  */
-#ifndef __USE_FILE_OFFSET64
-# define RLIM_INFINITY ((unsigned long int) (~0UL))
+#if __WORDSIZE == 64
+# define RLIM_INFINITY ~0UL
 #else
-# define RLIM_INFINITY 0xffffffffffffffffuLL
+# ifndef __USE_FILE_OFFSET64
+#  define RLIM_INFINITY ((unsigned long int) (~0UL))
+# else
+#  define RLIM_INFINITY 0xffffffffffffffffuLL
+# endif
 #endif
 
 #ifdef __USE_LARGEFILE64
-# define RLIM64_INFINITY 0xffffffffffffffffuLL
+# if __WORDSIZE == 64
+#  define RLIM64_INFINITY ~0UL
+# else
+#  define RLIM64_INFINITY 0xffffffffffffffffuLL
+# endif
 #endif
 
 /* We can represent all limits.  */
@@ -103,11 +112,12 @@ enum __rlimit_resource
 
 
 /* Type for resource quantity measurement.  */
-#ifndef __USE_FILE_OFFSET64
+#if __WORDSIZE != 64 && !defined(__USE_FILE_OFFSET64)
 typedef __rlim_t rlim_t;
 #else
 typedef __rlim64_t rlim_t;
 #endif
+
 #ifdef __USE_LARGEFILE64
 typedef __rlim64_t rlim64_t;
 #endif
similarity index 91%
rename from sysdeps/unix/sysv/linux/s390/s390-64/bits/sem.h
rename to sysdeps/unix/sysv/linux/s390/bits/sem.h
index 1ab1c85..1fb152c 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
@@ -20,7 +20,8 @@
 # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
+#include <bits/wordsize.h>
 
 /* Flags for `semop'.  */
 #define SEM_UNDO       0x1000          /* undo the operation on exit */
@@ -40,10 +41,16 @@ struct semid_ds
 {
   struct ipc_perm sem_perm;            /* operation permission struct */
   __time_t sem_otime;                  /* last semop() time */
-  __time_t sem_ctime;                  /* last time changed by semctl() */
-  unsigned long int sem_nsems;         /* number of semaphores in set */
+#if __WORDSIZE != 64
   unsigned long int __unused1;
+#endif
+  __time_t sem_ctime;                  /* last time changed by semctl() */
+#if __WORDSIZE != 64
   unsigned long int __unused2;
+#endif
+  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
similarity index 84%
rename from sysdeps/unix/sysv/linux/s390/s390-64/bits/shm.h
rename to sysdeps/unix/sysv/linux/s390/bits/shm.h
index fa8aa25..38e0e92 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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
@@ -20,7 +20,8 @@
 # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
 #endif
 
-#include <sys/types.h>
+#include <bits/types.h>
+#include <bits/wordsize.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 */
     size_t shm_segsz;                  /* size of segment in bytes */
     __time_t shm_atime;                        /* time of last shmat() */
+#if __WORDSIZE != 64
+  unsigned long int __unused1;
+#endif
     __time_t shm_dtime;                        /* time of last shmdt() */
+#if __WORDSIZE != 64
+  unsigned long int __unused2;
+#endif
     __time_t shm_ctime;                        /* time of last change by shmctl() */
+#if __WORDSIZE != 64
+  unsigned long int __unused3;
+#endif
     __pid_t shm_cpid;                  /* pid of creator */
     __pid_t shm_lpid;                  /* pid of last shmop */
-    unsigned long int shm_nattch;      /* number of current attaches */
-    unsigned long int __unused1;
-    unsigned long int __unused2;
+    shmatt_t shm_nattch;               /* number of current attaches */
+    unsigned long int __unused4;
+    unsigned long int __unused5;
   };
 
 #ifdef __USE_MISC
@@ -1,5 +1,5 @@
-/* Definitions for 64 bit S/390 sigaction.  64 bit S/390 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+/* Definitions for 31 & 64 bit S/390 sigaction.
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -21,6 +21,9 @@
 # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
 /* Structure describing the action to be taken when a signal arrives.  */
 struct sigaction
   {
@@ -49,19 +52,51 @@ struct sigaction
     /* Additional set of signals to be blocked.         */
     __sigset_t sa_mask;
   };
+#else
+/* Structure describing the action to be taken when a signal arrives.  */
+struct sigaction
+  {
+    /* Signal handler.  */
+#ifdef __USE_POSIX199309
+    union
+      {
+       /* Used if SA_SIGINFO is not set.  */
+       __sighandler_t sa_handler;
+       /* Used if SA_SIGINFO is set.  */
+       void (*sa_sigaction) (int, siginfo_t *, void *);
+      }
+    __sigaction_handler;
+# define sa_handler    __sigaction_handler.sa_handler
+# define sa_sigaction  __sigaction_handler.sa_sigaction
+#else
+    __sighandler_t sa_handler;
+#endif
+
+    /* Additional set of signals to be blocked.  */
+    __sigset_t sa_mask;
+
+    /* Special flags.  */
+    int sa_flags;
+
+    /* Restore handler.  */
+    void (*sa_restorer) (void);
+  };
+#endif
 
-/* Bits in `sa_flags'. */
-#define SA_NOCLDSTOP  0x00000001 /* Don't send SIGCHLD when children stop.  */
-#define SA_SIGINFO    0x00000004
+/* Bits in `sa_flags'.  */
+#define        SA_NOCLDSTOP  1          /* Don't send SIGCHLD when children stop.  */
+#define SA_NOCLDWAIT  2                 /* Don't create zombie on child death.  */
+#define SA_SIGINFO    4                 /* Invoke signal-catching function with
+                                   three arguments instead of one.  */
 #if defined __USE_UNIX98 || defined __USE_MISC
 # define SA_ONSTACK   0x08000000 /* Use signal stack by using `sa_restorer'. */
 # define SA_RESTART   0x10000000 /* Restart syscall on signal return.  */
-# define SA_NODEFER   0x40000000 /* Don't automatically block the signal
-                                   when its handler is being executed.  */
+# define SA_NODEFER   0x40000000 /* Don't automatically block the signal when
+                                   its handler is being executed.       */
 # define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler.  */
 #endif
 #ifdef __USE_MISC
-# define SA_INTERRUPT 0x20000000 /* Historic no-op.  */
+# define SA_INTERRUPT 0x20000000 /* Historical no-op.  */
 
 /* Some aliases for the SA_ constants. */
 # define SA_NOMASK    SA_NODEFER
@@ -70,6 +105,6 @@ struct sigaction
 #endif
 
 /* Values for the HOW argument to `sigprocmask'.  */
-#define SIG_BLOCK         0    /* for blocking signals */
-#define SIG_UNBLOCK       1    /* for unblocking signals */
-#define SIG_SETMASK       2    /* for setting the signal mask */
+#define        SIG_BLOCK     0          /* Block signals.  */
+#define        SIG_UNBLOCK   1          /* Unblock signals.  */
+#define        SIG_SETMASK   2          /* Set the set of blocked signals.  */
@@ -1,5 +1,5 @@
-/* siginfo_t, sigevent and constants.  64 bit S/390 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+/* siginfo_t, sigevent and constants.  S/390 version.
+   Copyright (C) 2001, 2002 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
@@ -22,6 +22,8 @@
 # error "Never include this file directly.  Use <signal.h> instead"
 #endif
 
+#include <bits/wordsize.h>
+
 #if (!defined __have_sigval_t \
      && (defined _SIGNAL_H || defined __need_siginfo_t \
          || defined __need_sigevent_t))
@@ -40,7 +42,11 @@ typedef union sigval
 # define __have_siginfo_t      1
 
 # define __SI_MAX_SIZE    128
-# define __SI_PAD_SIZE    ((__SI_MAX_SIZE / sizeof (int)) - 4)
+# 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
   {
@@ -118,6 +124,7 @@ typedef struct siginfo
 # define si_band       _sifields._sigpoll.si_band
 # define si_fd         _sifields._sigpoll.si_fd
 
+
 /* Values for `si_code'.  Positive values are reserved for kernel-generated
    signals.  */
 enum
@@ -256,7 +263,11 @@ enum
 
 /* Structure to transport application-defined values with signals.  */
 # define __SIGEV_MAX_SIZE      64
-# define __SIGEV_PAD_SIZE      ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
+# 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;
@@ -1,5 +1,5 @@
 /* System-specific socket constants and types.  Linux/s390 version.
-   Copyright (C) 2001 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002 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
    02111-1307 USA.  */
 
 #ifndef __BITS_SOCKET_H
-#define __BITS_SOCKET_H        1
+#define __BITS_SOCKET_H
 
 #if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
 # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
 #define        __need_size_t
 #define __need_NULL
 #include <stddef.h>
@@ -218,10 +220,18 @@ struct msghdr
     socklen_t msg_namelen;     /* Length of address data.  */
 
     struct iovec *msg_iov;     /* Vector of data to send/receive into.  */
+#if __WORDSIZE == 64
     size_t msg_iovlen;         /* Number of elements in the vector.  */
+#else
+    int msg_iovlen;            /* Number of elements in the vector.  */
+#endif
 
     void *msg_control;         /* Ancillary data (eg BSD filedesc passing). */
+#if __WORDSIZE == 64
     size_t msg_controllen;     /* Ancillary data buffer length.  */
+#else
+    socklen_t msg_controllen;  /* Ancillary data buffer length.  */
+#endif
 
     int msg_flags;             /* Flags on received message.  */
   };
@@ -269,7 +279,7 @@ __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW
 
   __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
                               + CMSG_ALIGN (__cmsg->cmsg_len));
-  if ((unsigned char *) (__cmsg + 1) >= ((unsigned char *) __mhdr->msg_control
+  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)))
similarity index 61%
rename from sysdeps/unix/sysv/linux/s390/s390-32/bits/stat.h
rename to sysdeps/unix/sysv/linux/s390/bits/stat.h
index 4e06b05..419a415 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992,95,96,97,98,99,2000,2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002 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
 # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
 #endif
 
+#include <bits/wordsize.h>
+
+#if __WORDSIZE == 64
 /* Versions of the `struct stat' data structure.  */
-#define _STAT_VER_LINUX_OLD    1
-#define _STAT_VER_KERNEL       1
-#define _STAT_VER_SVR4         2
-#define _STAT_VER_LINUX                3
-#define _STAT_VER              _STAT_VER_LINUX /* The one defined below.  */
+# define _STAT_VER_KERNEL      0
+# define _STAT_VER_LINUX       1
+# define _STAT_VER             _STAT_VER_LINUX
 
-/* Versions of the `xmknod' interface.  */
-#define _MKNOD_VER_LINUX       1
-#define _MKNOD_VER_SVR4                2
-#define _MKNOD_VER             _MKNOD_VER_LINUX /* The bits defined below.  */
+/* Versions of the `xmknod' interface. */
+#define _MKNOD_VER_LINUX       0
+#else
+/* Versions of the `struct stat' data structure.  */
+# define _STAT_VER_LINUX_OLD   1
+# define _STAT_VER_KERNEL      1
+# define _STAT_VER_SVR4                2
+# define _STAT_VER_LINUX       3
+# define _STAT_VER             _STAT_VER_LINUX
 
+/* Versions of the `xmknod' interface.  */
+# define _MKNOD_VER_LINUX      1
+# define _MKNOD_VER_SVR4       2
+# define _MKNOD_VER            _MKNOD_VER_LINUX
+#endif
 
+#if __WORDSIZE == 64
+struct stat
+  {
+    __dev_t st_dev;            /* Device.  */
+    __ino_t st_ino;            /* File serial number.  */
+    __nlink_t st_nlink;                /* Link count.  */
+    __mode_t st_mode;          /* File mode.  */
+    __uid_t st_uid;            /* User ID of the file's owner. */
+    __gid_t st_gid;            /* Group ID of the file's group.*/
+    int pad0;
+    __dev_t st_rdev;           /* Device number, if device.  */
+    __off_t st_size;           /* Size of file, in bytes.  */
+    __time_t st_atime;         /* Time of last access.  */
+    long int __reserved0;      /* Reserved for atime.nanoseconds.  */
+    __time_t st_mtime;         /* Time of last modification.  */
+    long int __reserved1;      /* Reserved for mtime.nanoseconds.  */
+    __time_t st_ctime;         /* Time of last status change.  */
+    long int __reserved2;      /* Reserved for ctime.nanoseconds.  */
+    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
+    __blkcnt_t st_blocks;      /* Nr. 512-byte blocks allocated.  */
+    long int __unused[3];
+  };
+#else
 struct stat
   {
     __dev_t st_dev;                    /* Device.  */
     unsigned int __pad1;
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
     __ino_t st_ino;                    /* File serial number.  */
-#else
+# else
     __ino_t __st_ino;                  /* 32bit file serial number.    */
-#endif
+# endif
     __mode_t st_mode;                  /* File mode.  */
     __nlink_t st_nlink;                        /* Link count.  */
     __uid_t st_uid;                    /* User ID of the file's owner. */
     __gid_t st_gid;                    /* Group ID of the file's group.*/
     __dev_t st_rdev;                   /* Device number, if device.  */
     unsigned int __pad2;
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
     __off_t st_size;                   /* Size of file, in bytes.  */
-#else
+# else
     __off64_t st_size;                 /* Size of file, in bytes.  */
-#endif
+# endif
     __blksize_t st_blksize;            /* Optimal block size for I/O.  */
 
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
     __blkcnt_t st_blocks;              /* Number 512-byte blocks allocated. */
-#else
+# else
     __blkcnt64_t st_blocks;            /* Number 512-byte blocks allocated. */
-#endif
+# endif
     __time_t st_atime;                 /* Time of last access.  */
     unsigned long int __unused1;
     __time_t st_mtime;                 /* Time of last modification.  */
     unsigned long int __unused2;
     __time_t st_ctime;                 /* Time of last status change.  */
     unsigned long int __unused3;
-#ifndef __USE_FILE_OFFSET64
+# ifndef __USE_FILE_OFFSET64
     unsigned long int __unused4;
     unsigned long int __unused5;
-#else
+# else
     __ino64_t st_ino;                  /* File serial number.  */
-#endif
+# endif
   };
+#endif
 
 #ifdef __USE_LARGEFILE64
+# if __WORDSIZE == 64
+/* Note stat64 is the same shape as stat.  */
+struct stat64
+  {
+    __dev_t st_dev;            /* Device.  */
+    __ino64_t st_ino;          /* File serial number.  */
+    __nlink_t st_nlink;                /* Link count.  */
+    __mode_t st_mode;          /* File mode.  */
+    __uid_t st_uid;            /* User ID of the file's owner. */
+    __gid_t st_gid;            /* Group ID of the file's group.*/
+    int pad0;
+    __dev_t st_rdev;           /* Device number, if device.  */
+    __off_t st_size;           /* Size of file, in bytes.  */
+    __time_t st_atime;         /* Time of last access.  */
+    long int __reserved0;      /* Reserved for atime.nanoseconds.  */
+    __time_t st_mtime;         /* Time of last modification.  */
+    long int __reserved1;      /* Reserved for mtime.nanoseconds.  */
+    __time_t st_ctime;         /* Time of last status change.  */
+    long int __reserved2;      /* Reserved for ctime.nanoseconds.  */
+    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
+    __blkcnt64_t st_blocks;    /* Nr. 512-byte blocks allocated.  */
+    long int __unused[3];
+  };
+# else
 struct stat64
   {
     __dev_t st_dev;                    /* Device.  */
@@ -99,6 +158,7 @@ struct stat64
     unsigned long int __unused3;
     __ino64_t st_ino;                  /* File serial number.          */
   };
+# endif
 #endif
 
 /* Tell code we have these members.  */
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2001, 2002 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 __need_size_t
 #include <stddef.h>
 
+#include <bits/wordsize.h>
+
 /* Convenience types.  */
 typedef unsigned char __u_char;
-typedef unsigned short int __u_short;
+typedef unsigned short __u_short;
 typedef unsigned int __u_int;
-typedef unsigned long int __u_long;
-typedef unsigned long int __u_quad_t;
-typedef long int __quad_t;
+typedef unsigned long __u_long;
+#if __WORDSIZE == 64
+typedef unsigned long __u_quad_t;
+typedef long __quad_t;
+#else
+# ifdef __GLIBC_HAVE_LONG_LONG
+__extension__ typedef unsigned long long int __u_quad_t;
+__extension__ typedef long long int __quad_t;
+# else
+typedef struct
+  {
+    long int __val[2];
+  } __quad_t;
+typedef struct
+  {
+    __u_long __val[2];
+  } __u_quad_t;
+# endif
+#endif
 typedef signed char __int8_t;
 typedef unsigned char __uint8_t;
 typedef signed short int __int16_t;
 typedef unsigned short int __uint16_t;
 typedef signed int __int32_t;
 typedef unsigned int __uint32_t;
+#if __WORDSIZE == 64
 typedef signed long int __int64_t;
 typedef unsigned long int __uint64_t;
+#else
+# ifdef __GLIBC_HAVE_LONG_LONG
+__extension__ typedef signed long long int __int64_t;
+__extension__ typedef unsigned long long int __uint64_t;
+# endif
+#endif
 typedef __quad_t *__qaddr_t;
 
-typedef __uint64_t __dev_t;            /* Type of device numbers.  */
-typedef __uint32_t __uid_t;            /* Type of user identifications.  */
-typedef __uint32_t __gid_t;            /* Type of group identifications.  */
-typedef __uint64_t __ino_t;            /* Type of file serial numbers.  */
-typedef __uint64_t __ino64_t;          /*  "" (LFS) */
-typedef __uint32_t __mode_t;           /* Type of file attribute bitmasks.  */
-typedef __uint64_t __nlink_t;          /* Type of file link counts.  */
-typedef __int64_t  __off_t;            /* Type of file sizes and offsets.  */
-typedef __int64_t  __off64_t;          /*  "" (LFS) */
-typedef __int64_t  __loff_t;           /* Type of file sizes and offsets.  */
-typedef __int32_t  __pid_t;            /* Type of process identifications.  */
-typedef __int64_t  __ssize_t;          /* Type of a byte count, or error.  */
-typedef __uint64_t  __rlim_t;          /* Type of resource counts.  */
-typedef __uint64_t  __rlim64_t;                /*  "" (LFS) */
-typedef __int64_t  __blkcnt_t;         /* Type to count nr disk blocks.  */
-typedef __int64_t  __blkcnt64_t;       /*  "" (LFS) */
-typedef __uint64_t __fsblkcnt_t;       /* Type to count file system blocks.  */
-typedef __uint64_t __fsblkcnt64_t;     /*  "" (LFS) */
-typedef __uint64_t __fsfilcnt_t;       /* Type to count file system inodes.  */
-typedef __uint64_t __fsfilcnt64_t;     /*  "" (LFS) */
-typedef __uint32_t __id_t;             /* General type for IDs.  */
+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_int __mode_t;              /* Type of file attribute bitmasks.  */
+typedef __u_long __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.  */
+typedef long __ssize_t;                        /* Type of a byte count, or error.  */
+typedef __u_long __rlim_t;             /* Type of resource counts.  */
+typedef __u_quad_t __rlim64_t;         /* Type of resource counts (LFS).  */
+typedef __u_int __id_t;                        /* General type for ID.  */
 
 typedef struct
   {
@@ -73,14 +90,14 @@ typedef struct
   } __fsid_t;                          /* Type of file system IDs.  */
 
 /* Everythin' else.  */
-typedef int __daddr_t;                 /* Type of a disk address.  */
-typedef char *__caddr_t;               /* Type of a core address.  */
+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;
-typedef int __key_t;                   /* Type of a SYSV IPC key. */
 
 /* Clock ID used in clock and timer functions. */
 typedef int __clockid_t;
@@ -88,14 +105,42 @@ typedef int __clockid_t;
 /* Timer ID returned by `timer_create'.         */
 typedef int __timer_t;
 
+
+/* Number of descriptors that can fit in an `fd_set'.  */
+#define __FD_SETSIZE   1024
+
+
+typedef int __key_t;
+
 /* Used in `struct shmid_ds'.  */
+#if __WORDSIZE == 64
 typedef int __ipc_pid_t;
+#else
+typedef unsigned short int __ipc_pid_t;
+#endif
 
-/* type to represent block size. */
+/* Type to represent block size. */
 typedef long int __blksize_t;
 
-/* Number of descriptors that can fit in an `fd_set'.  */
-#define __FD_SETSIZE   1024
+/* Types from the Large File Support interface.  */
+
+/* Type to count number os disk blocks.  */
+typedef long int __blkcnt_t;
+typedef __quad_t __blkcnt64_t;
+
+/* Type to count file system blocks.  */
+typedef __u_long __fsblkcnt_t;
+typedef __u_quad_t __fsblkcnt64_t;
+
+/* Type to count file system inodes.  */
+typedef __u_long __fsfilcnt_t;
+typedef __u_quad_t __fsfilcnt64_t;
+
+/* Type of file serial numbers.  */
+typedef __u_quad_t __ino64_t;
+
+/* Type of file sizes and offsets.  */
+typedef __loff_t __off64_t;
 
 /* Used in XTI.         */
 typedef int __t_scalar_t;
@@ -107,6 +152,7 @@ typedef long int __intptr_t;
 /* Duplicate info from sys/socket.h.  */
 typedef unsigned int __socklen_t;
 
+
 /* Now add the thread types.  */
 #if defined __USE_POSIX199506 || defined __USE_UNIX98
 # include <bits/pthreadtypes.h>
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/fcntl.h
deleted file mode 100644 (file)
index 87605f9..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/* O_*, F_*, FD_* bit values for Linux for 64 bit S/390.
-   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.  */
-
-#ifndef        _FCNTL_H
-# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
-#endif
-
-
-#include <sys/types.h>
-
-/* 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_NDELAY       O_NONBLOCK
-#define O_SYNC         010000
-#define O_FSYNC                O_SYNC
-#define O_ASYNC                020000
-#define O_DIRECT       040000
-
-#ifdef __USE_GNU
-# define O_DIRECTORY   0200000 /* must be a directory */
-# define O_NOFOLLOW    0400000 /* don't follow links */
-#endif
-
-#ifdef __USE_LARGEFILE64
-/* Not necessary, files are always with 64bit off_t.  */
-# define O_LARGEFILE   0
-#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. */
-#if defined __USE_POSIX199309 || defined __USE_UNIX98
-# define O_DSYNC       O_SYNC  /* Synchronize data.  */
-# define O_RSYNC       O_SYNC  /* Synchronize read operations.  */
-#endif
-
-/* Values for the second argument to `fcntl'.  */
-#define F_DUPFD                0       /* Duplicate file descriptor.  */
-#define F_GETFD                1       /* Get file descriptor flags.  */
-#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).  */
-
-/* Not necessary, we always have 64-bit offsets.  */
-#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).  */
-
-#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
-
-#ifdef __USE_GNU
-# define F_SETSIG      10      /* Set number of signal to be sent.  */
-# 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.  */
-
-/* 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 */
-# 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
-                                  blocking */
-# 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
-
-/* We don't need to support __USE_FILE_OFFSET64.  */
-struct flock
-  {
-    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').  */
-    __off_t l_start;   /* Offset where the lock begins.  */
-    __off_t l_len;     /* Size of the locked area; zero means until EOF.  */
-    __pid_t l_pid;     /* Process holding the lock.  */
-  };
-
-#ifdef __USE_LARGEFILE64
-struct flock64
-  {
-    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.  */
-    __pid_t l_pid;     /* Process holding the lock.  */
-  };
-#endif
-
-
-/* Define some more compatibility macros to be backward compatible with
-   BSD systems which did not managed to hide these kernel macros.  */
-#ifdef __USE_BSD
-# define FAPPEND       O_APPEND
-# define FFSYNC                O_FSYNC
-# define FASYNC                O_ASYNC
-# 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   6 /* Don't need these pages.  */
-# define POSIX_FADV_NOREUSE    7 /* Data will be accessed once.  */
-#endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/mman.h
deleted file mode 100644 (file)
index 2da4914..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Definitions for POSIX memory map interface.  64 bit S/390 version.
-   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.  */
-
-#ifndef _SYS_MMAN_H
-# error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
-#endif
-
-/* The following definitions basically come from the kernel headers.
-   But the kernel header is not namespace clean.  */
-
-
-/* Protections are chosen from these bits, OR'd together.  The
-   implementation does not necessarily support PROT_EXEC or PROT_WRITE
-   without PROT_READ.  The only guarantees are that no writing will be
-   allowed without PROT_WRITE and no access will be allowed for PROT_NONE. */
-
-#define PROT_READ        0x1           /* Page can be read.  */
-#define PROT_WRITE       0x2           /* Page can be written.  */
-#define PROT_EXEC        0x4           /* Page can be executed.  */
-#define PROT_NONE        0x0           /* Page can not be accessed.  */
-
-/* Sharing types (must choose one and only one of these).  */
-#define MAP_SHARED       0x01          /* Share changes.  */
-#define MAP_PRIVATE      0x02          /* Changes are private.  */
-#ifdef __USE_MISC
-# define MAP_TYPE        0x0f          /* Mask for type of mapping.  */
-#endif
-
-/* Other flags.         */
-#define MAP_FIXED        0x10          /* Interpret addr exactly.  */
-#ifdef __USE_MISC
-# define MAP_FILE        0
-# define MAP_ANONYMOUS   0x20          /* Don't use a file.  */
-# define MAP_ANON        MAP_ANONYMOUS
-#endif
-
-/* These are Linux-specific.  */
-#ifdef __USE_MISC
-# define MAP_GROWSDOWN   0x0100        /* Stack-like segment.  */
-# define MAP_GROWSUP     0x0200        /* Register stack-like segment */
-# define MAP_DENYWRITE   0x0800        /* ETXTBSY */
-# define MAP_EXECUTABLE          0x1000        /* Mark it as an executable.  */
-# define MAP_LOCKED      0x2000        /* Lock the mapping.  */
-# define MAP_NORESERVE   0x4000        /* Don't check for reservations.  */
-#endif
-
-/* Flags to `msync'.  */
-#define MS_ASYNC         0x1           /* Sync memory asynchronously.  */
-#define MS_SYNC                  0x4           /* Synchronous memory sync.  */
-#define MS_INVALIDATE    0x2           /* Invalidate the caches.  */
-
-/* Flags for `mlockall'.  */
-#define MCL_CURRENT      0x1           /* Lock all currently mapped pages.  */
-#define MCL_FUTURE       0x2           /* Lock all additions to address
-                                          space.  */
-
-/* Flags for `mremap'. */
-#ifdef __USE_GNU
-# define MREMAP_MAYMOVE        1
-#endif
-
-/* Advice to `madvise'.         */
-#ifdef __USE_BSD
-# define MADV_NORMAL    0      /* No further special treatment.  */
-# define MADV_RANDOM    1      /* Expect random page references.  */
-# define MADV_SEQUENTIAL 2     /* Expect sequential page references.  */
-# define MADV_WILLNEED  3      /* Will need these pages.  */
-# define MADV_DONTNEED  4      /* Don't need these pages.  */
-#endif
-
-/* The POSIX people had to invent similar names for the same things.  */
-#ifdef __USE_XOPEN2K
-# define POSIX_MADV_NORMAL     0 /* No further special treatment.  */
-# define POSIX_MADV_RANDOM     1 /* Expect random page references.  */
-# define POSIX_MADV_SEQUENTIAL 2 /* Expect sequential page references.  */
-# define POSIX_MADV_WILLNEED   3 /* Will need these pages.  */
-# define POSIX_MADV_DONTNEED   4 /* Don't need these pages.  */
-#endif
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/resource.h
deleted file mode 100644 (file)
index 1df6871..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Bit values & structures for resource limits.  64 bit S/390 version.
-   Copyright (C) 2001, 2002 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 _SYS_RESOURCE_H
-# error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
-#endif
-
-#include <bits/types.h>
-
-/* Transmute defines to enumerations.  The macro re-definitions are
-   necessary because some programs want to test for operating system
-   features with #ifdef RUSAGE_SELF.  In ISO C the reflexive
-   definition is a no-op.  */
-
-/* Kinds of resource limit.  */
-enum __rlimit_resource
-{
-  /* Per-process CPU limit, in seconds.         */
-  RLIMIT_CPU = 0,
-#define RLIMIT_CPU RLIMIT_CPU
-
-  /* Largest file that can be created, in bytes.  */
-  RLIMIT_FSIZE = 1,
-#define        RLIMIT_FSIZE RLIMIT_FSIZE
-
-  /* Maximum size of data segment, in bytes.  */
-  RLIMIT_DATA = 2,
-#define        RLIMIT_DATA RLIMIT_DATA
-
-  /* Maximum size of stack segment, in bytes.  */
-  RLIMIT_STACK = 3,
-#define        RLIMIT_STACK RLIMIT_STACK
-
-  /* Largest core file that can be created, in bytes.  */
-  RLIMIT_CORE = 4,
-#define        RLIMIT_CORE RLIMIT_CORE
-
-  /* Largest resident set size, in bytes.
-     This affects swapping; processes that are exceeding their
-     resident set size will be more likely to have physical memory
-     taken from them.  */
-  RLIMIT_RSS = 5,
-#define        RLIMIT_RSS RLIMIT_RSS
-
-  /* Number of processes.  */
-  RLIMIT_NPROC = 6,
-#define RLIMIT_NPROC RLIMIT_NPROC
-
-  /* Number of open files.  */
-  RLIMIT_NOFILE = 7,
-  RLIMIT_OFILE = RLIMIT_NOFILE, /* BSD name for same.  */
-#define RLIMIT_NOFILE RLIMIT_NOFILE
-#define RLIMIT_OFILE RLIMIT_OFILE
-
-  /* Locked-in-memory address space.  */
-  RLIMIT_MEMLOCK = 8,
-#define RLIMIT_MEMLOCK RLIMIT_MEMLOCK
-
-  /* Address space limit (?) */
-  RLIMIT_AS = 9,
-#define RLIMIT_AS RLIMIT_AS
-
-  /* Maximum number of file locks.  */
-  RLIMIT_LOCKS = 10,
-#define RLIMIT_LOCKS RLIMIT_LOCKS
-
-  RLIMIT_NLIMITS = 11,
-  RLIM_NLIMITS = RLIMIT_NLIMITS
-#define RLIMIT_NLIMITS RLIMIT_NLIMITS
-#define RLIM_NLIMITS RLIM_NLIMITS
-};
-
-/* Value to indicate that there is no limit.  */
-# define RLIM_INFINITY ~0UL
-
-#ifdef __USE_LARGEFILE64
-# define RLIM64_INFINITY ~0UL
-#endif
-
-/* We can represent all limits.         */
-#define RLIM_SAVED_MAX RLIM_INFINITY
-#define RLIM_SAVED_CUR RLIM_INFINITY
-
-
-/* Type for resource quantity measurement.  */
-typedef __rlim64_t rlim_t;
-#ifdef __USE_LARGEFILE64
-typedef __rlim64_t rlim64_t;
-#endif
-
-struct rlimit
-  {
-    /* The current (soft) limit.  */
-    rlim_t rlim_cur;
-    /* The hard limit. */
-    rlim_t rlim_max;
-  };
-
-#ifdef __USE_LARGEFILE64
-struct rlimit64
-  {
-    /* The current (soft) limit.  */
-    rlim64_t rlim_cur;
-    /* The hard limit. */
-    rlim64_t rlim_max;
- };
-#endif
-
-/* Whose usage statistics do you want? */
-enum __rusage_who
-{
-  /* The calling process.  */
-  RUSAGE_SELF = 0,
-#define RUSAGE_SELF RUSAGE_SELF
-
-  /* All of its terminated child processes.  */
-  RUSAGE_CHILDREN = -1,
-#define RUSAGE_CHILDREN RUSAGE_CHILDREN
-
-  /* Both.  */
-  RUSAGE_BOTH = -2
-#define RUSAGE_BOTH RUSAGE_BOTH
-};
-
-#define __need_timeval
-#include <bits/time.h>         /* For `struct timeval'.  */
-
-/* Structure which says how much of each resource has been used.  */
-struct rusage
-  {
-    /* Total amount of user time used. */
-    struct timeval ru_utime;
-    /* Total amount of system time used.  */
-    struct timeval ru_stime;
-    /* Maximum resident set size (in kilobytes).  */
-    long int ru_maxrss;
-    /* Amount of sharing of text segment memory
-       with other processes (kilobyte-seconds).         */
-    long int ru_ixrss;
-    /* Amount of data segment memory used (kilobyte-seconds).  */
-    long int ru_idrss;
-    /* Amount of stack memory used (kilobyte-seconds). */
-    long int ru_isrss;
-    /* Number of soft page faults (i.e. those serviced by reclaiming
-       a page from the list of pages awaiting reallocation.  */
-    long int ru_minflt;
-    /* Number of hard page faults (i.e. those that required I/O).  */
-    long int ru_majflt;
-    /* Number of times a process was swapped out of physical memory.  */
-    long int ru_nswap;
-    /* Number of input operations via the file system. Note: This
-       and `ru_oublock' do not include operations with the cache.  */
-    long int ru_inblock;
-    /* Number of output operations via the file system.         */
-    long int ru_oublock;
-    /* Number of IPC messages sent.  */
-    long int ru_msgsnd;
-    /* Number of IPC messages received.         */
-    long int ru_msgrcv;
-    /* Number of signals delivered.  */
-    long int ru_nsignals;
-    /* Number of voluntary context switches, i.e. because the process
-       gave up the process before it had to (usually to wait for some
-       resource to be available).  */
-    long int ru_nvcsw;
-    /* Number of involuntary context switches, i.e. a higher priority process
-       became runnable or the current process used up its time slice.  */
-    long int ru_nivcsw;
-  };
-
-/* Priority limits.  */
-#define PRIO_MIN       -20     /* Minimum priority a process can have.  */
-#define PRIO_MAX       20      /* Maximum priority a process can have.  */
-
-/* The type of the WHICH argument to `getpriority' and `setpriority',
-   indicating what flavor of entity the WHO argument specifies.         */
-enum __priority_which
-{
-  PRIO_PROCESS = 0,            /* WHO is a process ID.  */
-#define PRIO_PROCESS PRIO_PROCESS
-  PRIO_PGRP = 1,               /* WHO is a process group ID.  */
-#define PRIO_PGRP PRIO_PGRP
-  PRIO_USER = 2                        /* WHO is a user ID.  */
-#define PRIO_USER PRIO_USER
-};
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/sigstack.h
deleted file mode 100644 (file)
index e19549a..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* sigstack, sigaltstack definitions.  64 bit S/390 version.
-   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.  */
-
-#ifndef _SIGNAL_H
-# error "Never include this file directly.  Use <signal.h> instead"
-#endif
-
-#ifndef _SIGSTACK_H
-#define _SIGSTACK_H    1
-
-/* Structure describing a signal stack (obsolete).  */
-struct sigstack
-  {
-    __ptr_t ss_sp;             /* Signal stack pointer.  */
-    int ss_onstack;            /* Nonzero if executing on this stack.  */
-  };
-
-
-/* Possible values for `ss_flags.'.  */
-enum
-{
-  SS_ONSTACK = 1,
-#define SS_ONSTACK     SS_ONSTACK
-  SS_DISABLE
-#define SS_DISABLE     SS_DISABLE
-};
-
-/* Minimum stack size for a signal handler.  */
-#define MINSIGSTKSZ    2048
-
-/* System default stack size.  */
-#define SIGSTKSZ       8192
-
-
-/* Alternate, preferred interface.  */
-typedef struct sigaltstack
-  {
-    __ptr_t ss_sp;
-    int ss_flags;
-    size_t ss_size;
-  } stack_t;
-
-#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h b/sysdeps/unix/sysv/linux/s390/s390-64/bits/stat.h
deleted file mode 100644 (file)
index 50ad1b1..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-/* 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.  */
-
-#ifndef _SYS_STAT_H
-# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
-#endif
-
-/* Versions of the `struct stat' data structure.  */
-#define _STAT_VER_KERNEL       0
-#define _STAT_VER_LINUX                1
-#define _STAT_VER              _STAT_VER_LINUX
-
-/* Versions of the `xmknod' interface. */
-#define _MKNOD_VER_LINUX       0
-
-struct stat
-  {
-    __dev_t st_dev;            /* Device.  */
-    __ino_t st_ino;            /* File serial number.  */
-    __nlink_t st_nlink;                /* Link count.  */
-    __mode_t st_mode;          /* File mode.  */
-    __uid_t st_uid;            /* User ID of the file's owner. */
-    __gid_t st_gid;            /* Group ID of the file's group.*/
-    int pad0;
-    __dev_t st_rdev;           /* Device number, if device.  */
-    __off_t st_size;           /* Size of file, in bytes.  */
-    __time_t st_atime;         /* Time of last access.  */
-    long int __reserved0;      /* Reserved for atime.nanoseconds.  */
-    __time_t st_mtime;         /* Time of last modification.  */
-    long int __reserved1;      /* Reserved for mtime.nanoseconds.  */
-    __time_t st_ctime;         /* Time of last status change.  */
-    long int __reserved2;      /* Reserved for ctime.nanoseconds.  */
-    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
-    __blkcnt_t st_blocks;      /* Nr. 512-byte blocks allocated.  */
-    long int __unused[3];
-  };
-
-#ifdef __USE_LARGEFILE64
-/* Note stat64 is the same shape as stat.  */
-struct stat64
-  {
-    __dev_t st_dev;            /* Device.  */
-    __ino64_t st_ino;          /* File serial number.  */
-    __nlink_t st_nlink;                /* Link count.  */
-    __mode_t st_mode;          /* File mode.  */
-    __uid_t st_uid;            /* User ID of the file's owner. */
-    __gid_t st_gid;            /* Group ID of the file's group.*/
-    int pad0;
-    __dev_t st_rdev;           /* Device number, if device.  */
-    __off_t st_size;           /* Size of file, in bytes.  */
-    __time_t st_atime;         /* Time of last access.  */
-    long int __reserved0;      /* Reserved for atime.nanoseconds.  */
-    __time_t st_mtime;         /* Time of last modification.  */
-    long int __reserved1;      /* Reserved for mtime.nanoseconds.  */
-    __time_t st_ctime;         /* Time of last status change.  */
-    long int __reserved2;      /* Reserved for ctime.nanoseconds.  */
-    __blksize_t st_blksize;    /* Optimal block size for I/O.  */
-    __blkcnt64_t st_blocks;    /* Nr. 512-byte blocks allocated.  */
-    long int __unused[3];
-  };
-#endif
-
-/* Tell code we have these members.  */
-#define        _STATBUF_ST_BLKSIZE
-#define _STATBUF_ST_RDEV
-
-/* Encoding of the file mode.  */
-
-#define        __S_IFMT        0170000 /* These bits determine file type.  */
-
-/* File types. */
-#define        __S_IFDIR       0040000 /* Directory.  */
-#define        __S_IFCHR       0020000 /* Character device.  */
-#define        __S_IFBLK       0060000 /* Block device.  */
-#define        __S_IFREG       0100000 /* Regular file.  */
-#define        __S_IFIFO       0010000 /* FIFO.  */
-#define        __S_IFLNK       0120000 /* Symbolic link.  */
-#define        __S_IFSOCK      0140000 /* Socket.  */
-
-/* POSIX.1b objects.  */
-#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.  */
-#define        __S_ISGID       02000   /* Set group ID on execution.  */
-#define        __S_ISVTX       01000   /* Save swapped text after use (sticky).  */
-#define        __S_IREAD       0400    /* Read by owner.  */
-#define        __S_IWRITE      0200    /* Write by owner.  */
-#define        __S_IEXEC       0100    /* Execute by owner.  */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h b/sysdeps/unix/sysv/linux/s390/s390-64/sys/procfs.h
deleted file mode 100644 (file)
index 492b1aa..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-/* 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.  */
-
-#ifndef _SYS_PROCFS_H
-#define _SYS_PROCFS_H  1
-
-/* This is somewhat modelled after the file of the same name on SVR4
-   systems.  It provides a definition of the core file format for ELF
-   used on Linux.  It doesn't have anything to do with the /proc file
-   system, even though Linux has one.
-
-   Anyway, the whole purpose of this file is for GDB and GDB only.
-   Don't read too much into it.  Don't use it for anything other than
-   GDB unless you know what you are doing.  */
-
-#include <features.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/user.h>
-#include <sys/ucontext.h>
-
-__BEGIN_DECLS
-
-typedef greg_t elf_greg_t;
-#define ELF_NGREG NGREG
-typedef gregset_t elf_gregset_t;
-typedef fpreg_t   elf_fpreg_t;
-typedef fpregset_t elf_fpregset_t;
-
-/* Signal info.  */
-struct elf_siginfo
-  {
-    int si_signo;                      /* Signal number.  */
-    int si_code;                       /* Extra code.  */
-    int si_errno;                      /* Errno.  */
-  };
-
-
-/* Definitions to generate Intel SVR4-like core files.  These mostly
-   have the same names as the SVR4 types with "elf_" tacked on the
-   front to prevent clashes with Linux definitions, and the typedef
-   forms have been avoided.  This is mostly like the SVR4 structure,
-   but more Linuxy, with things that Linux does not support and which
-   GDB doesn't really use excluded.  */
-
-struct elf_prstatus
-  {
-    struct elf_siginfo pr_info;                /* Info associated with signal.  */
-    short int pr_cursig;               /* Current signal.  */
-    unsigned long int pr_sigpend;      /* Set of pending signals.  */
-    unsigned long int pr_sighold;      /* Set of held signals.  */
-    __pid_t pr_pid;
-    __pid_t pr_ppid;
-    __pid_t pr_pgrp;
-    __pid_t pr_sid;
-    struct timeval pr_utime;           /* User time.  */
-    struct timeval pr_stime;           /* System time.  */
-    struct timeval pr_cutime;          /* Cumulative user time.  */
-    struct timeval pr_cstime;          /* Cumulative system time.  */
-    elf_gregset_t pr_reg;              /* GP registers.  */
-    int pr_fpvalid;                    /* True if math copro being used.  */
-  };
-
-
-#define ELF_PRARGSZ     (80)    /* Number of chars for args.  */
-
-struct elf_prpsinfo
-  {
-    char pr_state;                     /* Numeric process state.  */
-    char pr_sname;                     /* Char for pr_state.  */
-    char pr_zomb;                      /* Zombie.  */
-    char pr_nice;                      /* Nice val.  */
-    unsigned long int pr_flag;         /* Flags.  */
-    unsigned int pr_uid;
-    unsigned int pr_gid;
-    int pr_pid, pr_ppid, pr_pgrp, pr_sid;
-    /* Lots missing */
-    char pr_fname[16];                 /* Filename of executable.  */
-    char pr_psargs[ELF_PRARGSZ];       /* Initial part of arg list.  */
-  };
-
-/* The rest of this file provides the types for emulation of the
-   Solaris <proc_service.h> interfaces that should be implemented by
-   users of libthread_db.  */
-
-/* Addresses.  */
-typedef void *psaddr_t;
-
-/* Register sets.  Linux has different names.  */
-typedef elf_gregset_t prgregset_t;
-typedef elf_fpregset_t prfpregset_t;
-
-/* We don't have any differences between processes and threads,
-   therefore have only one PID type.  */
-typedef __pid_t lwpid_t;
-
-/* Process status and info.  In the end we do provide typedefs for them.  */
-typedef struct elf_prstatus prstatus_t;
-typedef struct elf_prpsinfo prpsinfo_t;
-
-__END_DECLS
-
-#endif /* sys/procfs.h */
diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/s390-64/sys/ucontext.h
deleted file mode 100644 (file)
index 336178e..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2001 Free Software Foundation, Inc.
-   Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
-   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 _SYS_UCONTEXT_H
-#define _SYS_UCONTEXT_H        1
-/* Forward definition to avoid parse errors */
-struct ucontext;
-typedef struct ucontext ucontext_t;
-#include <features.h>
-#include <signal.h>
-
-/* We need the signal context definitions even if they are not used
-   included in <signal.h>.  */
-#include <bits/sigcontext.h>
-
-/* Type for a program status word.  */
-typedef struct
-{
-  unsigned long mask;
-  unsigned long addr;
-} __attribute__ ((aligned(8))) __psw_t;
-
-/* Type for a general-purpose register.  */
-typedef unsigned long greg_t;
-
-/* And the whole bunch of them.  We should have used `struct s390_regs',
-   but to avoid name space pollution and since the tradition says that
-   the register set is an array, we make gregset_t a simple array
-   that has the same size as s390_regs.  This is needed for the
-   elf_prstatus structure.  */
-#define NGREG 27
-/* Must match kernels psw_t alignment.  */
-typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));
-
-typedef union
-  {
-    double  d;
-    float   f;
-  } fpreg_t;
-
-/* Register set for the floating-point registers.  */
-typedef struct
-  {
-    unsigned int fpc;
-    fpreg_t fprs[16];
-  } fpregset_t;
-
-/* Context to describe whole processor state.  */
-typedef struct
-  {
-    __psw_t psw;
-    unsigned long gregs[16];
-    unsigned int aregs[16];
-    fpregset_t fpregs;
-  } mcontext_t;
-
-/* Userlevel context.  */
-struct ucontext
-  {
-    unsigned long int uc_flags;
-    struct ucontext *uc_link;
-    stack_t uc_stack;
-    mcontext_t uc_mcontext;
-    __sigset_t uc_sigmask;
-  };
-
-
-#endif /* sys/ucontext.h */
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002 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
@@ -86,8 +86,13 @@ struct elf_prpsinfo
     char pr_zomb;                      /* Zombie.  */
     char pr_nice;                      /* Nice val.  */
     unsigned long int pr_flag;         /* Flags.  */
+#if __WORDSIZE == 64
+    unsigned int pr_uid;
+    unsigned int pr_gid;
+#else
     unsigned short int pr_uid;
     unsigned short int pr_gid;
+#endif
     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
     /* Lots missing */
     char pr_fname[16];                 /* Filename of executable.  */
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+/* Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Denis Joseph Barrow (djbarrow@de.ibm.com).
    This file is part of the GNU C Library.
 
@@ -44,7 +44,11 @@ typedef unsigned long greg_t;
    the register set is an array, we make gregset_t a simple array
    that has the same size as s390_regs.  This is needed for the
    elf_prstatus structure.  */
-#define NGREG 36
+#if __WORDSIZE == 64
+# define NGREG 27
+#else
+# define NGREG 36
+#endif
 /* Must match kernels psw_t alignment.  */
 typedef greg_t gregset_t[NGREG] __attribute__ ((aligned(8)));