Sun Apr 28 14:14:35 1996 Roland McGrath <roland@delasyd.gnu.ai.mit.edu>
authorRoland McGrath <roland@gnu.org>
Sun, 28 Apr 1996 18:25:22 +0000 (18:25 +0000)
committerRoland McGrath <roland@gnu.org>
Sun, 28 Apr 1996 18:25:22 +0000 (18:25 +0000)
* sysdeps/unix/sysv/linux/i386/Makefile: New file.

Wed Apr 24 17:35:30  Ulrich Drepper  <drepper@cygnus.com>

* inet/netinet/in.h, socket/sys/socket.h: Move to
sysdeps/generic/netinet/in.h, sysdeps/generic/sys/socket.h.
* netinet/in.h, sys/socket.h: Remove file.

* misc/Makefile (routines): Add fdatasync.

* posix/Makefile (headers): Add sched.h.
(routines): Add nanosleep, sched_setp, sched_getp, sched_sets,
sched_gets, sched_yield, sched_primax, sched_primin, sched_rr_gi.

* posix/getconf.c (vars): Add entries for _POSIX_REALTIME_SIGNALS,
_POSIX_PRIORITY_SCHEDULING, _POSIX_TIMERS, _POSIX_ASYNCHRONOUS_IO,
_POSIX_PRIORITIZED_IO, _POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC,
_POSIX_MAPPED_FILES, _POSIX_MEMLOCK, _POSIX_MEMLOCK_RANGE,
_POSIX_MEMORY_PROTECTION, _POSIX_MESSAGE_PASSING,
_POSIX_SEMAPHORES, _POSIX_SHARED_MEMORY_OBJECTS.

* posix/sched.h: New file.  Header for POSIX scheduling interface.

* posix/unistd.h: Describe options from POSIX.4.
Add declaration of fdatasync.

* sysdeps/generic/confname.h: Add definition for
 _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS,
_SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO,
_SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
_SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING,
_SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS.

* sysdeps/generic/fdatasync.c: New file.  Default implementation
simply uses fsync.

* sysdeps/generic/netinit/in.h: Moved to here from inet/netinet/in.h.

* sysdeps/generic/schedbits.h: New file.  System dependent
defintion for POSIX.4 scheduling interface.

* sysdeps/generic/sys/socket.h: Moved to here from socket/sys/socket.h.

* sysdeps/stub/nanosleep.c, sysdeps/stub/sched_getp.c,
sysdeps/stub/sched_gets.c, sysdeps/stub/sched_primax.c,
sysdeps/stub/sched_primin.c, sysdeps/stub/sched_rr_gi.c,
sysdeps/stub/sched_setp.c, sysdeps/stub/sched_sets.c,
sysdeps/stub/sched_yield.c: New file:  Stub implementation
for systems missing these POSIX.4 system calls.

* sysdeps/unix/sysv/linux/gnu/types.h,
sysdeps/unix/sysv/linux/ioctls.h: Use kernel header for
data type definitions.

* sysdeps/unix/sysv/linux/netinet/in.h: New file.  Linux
specific version.

* sysdeps/unix/sysv/linux/posix_opt.h: New file.  Define POSIX
options applicable for Linux.

* sysdeps/unix/sysv/linux/syscalls.list: Add definitions for
fdatasync, nanosleep, sched_setparam, sched_getparam,
sched_setscheduler, sched_getscheduler, sched_yield,
sched_get_priority_max, sched_get_priority_min, and
sched_rr_get_interval.

* sysdeps/unix/sysv/linux/sysconf.c: Add handling of POSIX.4
options.

* sysdeps/unix/sysv/linux/termbits.h: Use kernel headers.

* time/sys/time.h: Remove definition of `struct timespec'.

* time/time.h (struct timespec): Move definition to here.

  variable, LUCKY, to use instead of setting D to -1 (which fouls

32 files changed:
ChangeLog
misc/Makefile
netinet/in.h [deleted file]
posix/Makefile
posix/getconf.c
posix/sched.h [new file with mode: 0644]
posix/unistd.h
sys/socket.h [deleted file]
sysdeps/generic/confname.h
sysdeps/generic/fdatasync.c [new file with mode: 0644]
sysdeps/generic/netinet/in.h [moved from inet/netinet/in.h with 100% similarity]
sysdeps/generic/schedbits.h [new file with mode: 0644]
sysdeps/generic/sys/socket.h [moved from socket/sys/socket.h with 98% similarity]
sysdeps/stub/nanosleep.c [new file with mode: 0644]
sysdeps/stub/sched_getp.c [new file with mode: 0644]
sysdeps/stub/sched_gets.c [new file with mode: 0644]
sysdeps/stub/sched_primax.c [new file with mode: 0644]
sysdeps/stub/sched_primin.c [new file with mode: 0644]
sysdeps/stub/sched_rr_gi.c [new file with mode: 0644]
sysdeps/stub/sched_setp.c [new file with mode: 0644]
sysdeps/stub/sched_sets.c [new file with mode: 0644]
sysdeps/stub/sched_yield.c [new file with mode: 0644]
sysdeps/unix/sysv/linux/gnu/types.h
sysdeps/unix/sysv/linux/i386/Makefile [new file with mode: 0644]
sysdeps/unix/sysv/linux/ioctls.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/netinet/in.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/posix_opt.h [new file with mode: 0644]
sysdeps/unix/sysv/linux/syscalls.list
sysdeps/unix/sysv/linux/sysconf.c
sysdeps/unix/sysv/linux/termbits.h
time/sys/time.h
time/time.h

index de77e98..9d7458c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,80 @@
+Sun Apr 28 14:14:35 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+
+       * sysdeps/unix/sysv/linux/i386/Makefile: New file.
+
+Wed Apr 24 17:35:30  Ulrich Drepper  <drepper@cygnus.com>
+
+       * inet/netinet/in.h, socket/sys/socket.h: Move to
+       sysdeps/generic/netinet/in.h, sysdeps/generic/sys/socket.h.
+       * netinet/in.h, sys/socket.h: Remove file.
+
+       * misc/Makefile (routines): Add fdatasync.
+
+       * posix/Makefile (headers): Add sched.h.
+       (routines): Add nanosleep, sched_setp, sched_getp, sched_sets,
+       sched_gets, sched_yield, sched_primax, sched_primin, sched_rr_gi.
+
+       * posix/getconf.c (vars): Add entries for _POSIX_REALTIME_SIGNALS,
+       _POSIX_PRIORITY_SCHEDULING, _POSIX_TIMERS, _POSIX_ASYNCHRONOUS_IO,
+       _POSIX_PRIORITIZED_IO, _POSIX_SYNCHRONIZED_IO, _POSIX_FSYNC,
+       _POSIX_MAPPED_FILES, _POSIX_MEMLOCK, _POSIX_MEMLOCK_RANGE,
+       _POSIX_MEMORY_PROTECTION, _POSIX_MESSAGE_PASSING,
+       _POSIX_SEMAPHORES, _POSIX_SHARED_MEMORY_OBJECTS.
+
+       * posix/sched.h: New file.  Header for POSIX scheduling interface.
+
+       * posix/unistd.h: Describe options from POSIX.4.
+       Add declaration of fdatasync.
+
+       * sysdeps/generic/confname.h: Add definition for
+        _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS,
+       _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO,
+       _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE,
+       _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING,
+       _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS.
+
+       * sysdeps/generic/fdatasync.c: New file.  Default implementation
+       simply uses fsync.
+
+       * sysdeps/generic/netinit/in.h: Moved to here from inet/netinet/in.h.
+
+       * sysdeps/generic/schedbits.h: New file.  System dependent
+       defintion for POSIX.4 scheduling interface.
+
+       * sysdeps/generic/sys/socket.h: Moved to here from socket/sys/socket.h.
+
+       * sysdeps/stub/nanosleep.c, sysdeps/stub/sched_getp.c,
+       sysdeps/stub/sched_gets.c, sysdeps/stub/sched_primax.c,
+       sysdeps/stub/sched_primin.c, sysdeps/stub/sched_rr_gi.c,
+       sysdeps/stub/sched_setp.c, sysdeps/stub/sched_sets.c,
+       sysdeps/stub/sched_yield.c: New file:  Stub implementation
+       for systems missing these POSIX.4 system calls.
+
+       * sysdeps/unix/sysv/linux/gnu/types.h,
+       sysdeps/unix/sysv/linux/ioctls.h: Use kernel header for
+       data type definitions.
+
+       * sysdeps/unix/sysv/linux/netinet/in.h: New file.  Linux
+       specific version.
+
+       * sysdeps/unix/sysv/linux/posix_opt.h: New file.  Define POSIX
+       options applicable for Linux.
+
+       * sysdeps/unix/sysv/linux/syscalls.list: Add definitions for
+       fdatasync, nanosleep, sched_setparam, sched_getparam,
+       sched_setscheduler, sched_getscheduler, sched_yield,
+       sched_get_priority_max, sched_get_priority_min, and
+       sched_rr_get_interval.
+
+       * sysdeps/unix/sysv/linux/sysconf.c: Add handling of POSIX.4
+       options.
+
+       * sysdeps/unix/sysv/linux/termbits.h: Use kernel headers.
+
+       * time/sys/time.h: Remove definition of `struct timespec'.
+
+       * time/time.h (struct timespec): Move definition to here.
+
 Fri Apr 26 01:55:07 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 
        * malloc/mcheck.c (mabort): Use __libc_fatal only #ifdef _LIBC.
@@ -23,7 +100,7 @@ Wed Apr 24 00:22:42 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
 Tue Apr 23 21:09:14 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
        * hurd/hurdsig.c (signal_allowed): For SIGIO/SIGURG, add a new
-       variable, LUCKY, to use instead of setting D to -1 (which fucks
+       variable, LUCKY, to use instead of setting D to -1 (which fouls
        things up).
 
 Tue Apr 23 15:56:56 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
index 2189cea..bad2e1b 100644 (file)
@@ -36,7 +36,7 @@ routines := brk sbrk sstk ioctl \
            getdtsz \
            gethostname sethostname getdomain setdomain \
            select \
-           acct chroot fsync sync reboot \
+           acct chroot fsync sync fdatasync reboot \
            gethostid sethostid \
            revoke vhangup \
            swapon mktemp mkstemp \
diff --git a/netinet/in.h b/netinet/in.h
deleted file mode 100644 (file)
index 9139cfa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <inet/netinet/in.h>
index 052c17c..8c7ac92 100644 (file)
 #
 subdir := posix
 
-headers        := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h    \
-          glob.h regex.h wordexp.h fnmatch.h gnu/types.h getopt.h      \
-          posix1_lim.h posix2_lim.h posix_opt.h local_lim.h tar.h      \
-          utsnamelen.h confname.h waitflags.h waitstatus.h sys/unistd.h
+headers        := sys/utsname.h sys/times.h sys/wait.h sys/types.h unistd.h          \
+          glob.h regex.h wordexp.h fnmatch.h gnu/types.h getopt.h            \
+          posix1_lim.h posix2_lim.h posix_opt.h local_lim.h tar.h            \
+          utsnamelen.h confname.h waitflags.h waitstatus.h sys/unistd.h      \
+          sched.h
 
 distribute := confstr.h
 
@@ -32,7 +33,7 @@ routines :=                                                                 \
        uname                                                                 \
        times                                                                 \
        wait waitpid wait3 wait4                                              \
-       alarm sleep pause                                                     \
+       alarm sleep pause nanosleep                                           \
        fork vfork _exit                                                      \
        execve fexecve execv execle execl execvp execlp                       \
        getpid getppid                                                        \
@@ -42,7 +43,10 @@ routines :=                                                                \
        pathconf sysconf fpathconf                                            \
        glob fnmatch regex                                                    \
        confstr                                                               \
-       getopt getopt1
+       getopt getopt1                                                        \
+       sched_setp sched_getp sched_sets sched_gets sched_yield sched_primax  \
+       sched_primin sched_rr_gi
+
 aux            := init-posix environ
 tests          := tstgetopt testfnm
 others         := getconf
index 7423a77..bf13fb4 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -49,6 +49,20 @@ static struct conf vars[] =
     { "OPEN_MAX", _SC_OPEN_MAX, SYSCONF },
     { "_POSIX_JOB_CONTROL", _SC_JOB_CONTROL, SYSCONF },
     { "_POSIX_SAVED_IDS", _SC_SAVED_IDS, SYSCONF },
+    { "_POSIX_REALTIME_SIGNALS", _SC_REALTIME_SIGNALS, SYSCONF },
+    { "_POSIX_PRIORITY_SCHEDULING", _SC_PRIORITY_SCHEDULING, SYSCONF },
+    { "_POSIX_TIMERS", _SC_TIMERS, SYSCONF },
+    { "_POSIX_ASYNCHRONOUS_IO", _SC_ASYNCHRONOUS_IO, SYSCONF },
+    { "_POSIX_PRIORITIZED_IO", _SC_PRIORITIZED_IO, SYSCONF },
+    { "_POSIX_SYNCHRONIZED_IO", _SC_SYNCHRONIZED_IO, SYSCONF },
+    { "_POSIX_FSYNC", _SC_FSYNC, SYSCONF },
+    { "_POSIX_MAPPED_FILES", _SC_MAPPED_FILES, SYSCONF },
+    { "_POSIX_MEMLOCK", _SC_MEMLOCK, SYSCONF },
+    { "_POSIX_MEMLOCK_RANGE", _SC_MEMLOCK_RANGE, SYSCONF },
+    { "_POSIX_MEMORY_PROTECTION", _SC_MEMORY_PROTECTION, SYSCONF },
+    { "_POSIX_MESSAGE_PASSING", _SC_MESSAGE_PASSING, SYSCONF },
+    { "_POSIX_SEMAPHORES", _SC_SEMAPHORES, SYSCONF },
+    { "_POSIX_SHARED_MEMORY_OBJECTS", _SC_SHARED_MEMORY_OBJECTS, SYSCONF },
     { "_POSIX_VERSION", _SC_VERSION, SYSCONF },
 
     { "PATH", _CS_PATH, CONFSTR },
diff --git a/posix/sched.h b/posix/sched.h
new file mode 100644 (file)
index 0000000..026a5e2
--- /dev/null
@@ -0,0 +1,72 @@
+/* Definitions for POSIX 1003.1b-1993 (aka POSIX.4) scheduling interface.
+Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef        _SCHED_H
+#define        _SCHED_H        1
+
+#include <features.h>
+
+/* Get type definitions.  */
+#include <gnu/types.h>
+#include <sys/time.h>          /* for struct timespec */
+
+/* Get system specific constant and data structure definitions.  */
+#include <schedbits.h>
+
+__BEGIN_DECLS
+
+/* Set scheduling parameters for a process.  */
+extern int __sched_setparam __P ((__pid_t __pid,
+                                 __const struct sched_param *__param));
+extern int sched_setparam __P ((__pid_t __pid,
+                               __const struct sched_param *__param));
+
+/* Retrieve scheduling parameters for a particular process.  */
+extern int __sched_getparam __P ((__pid_t __pid, struct sched_param *__param));
+extern int sched_getparam __P ((__pid_t __pid, struct sched_param *__param));
+
+/* Set scheduling algorithm and/or parameters for a process.  */
+extern int __sched_setscheduler __P ((__pid_t __pid, int __policy,
+                                     __const struct sched_param *__param));
+extern int sched_setscheduler __P ((__pid_t __pid, int __policy,
+                                   __const struct sched_param *__param));
+
+/* Retrieve scheduling algorithm for a particular purpose.  */
+extern int __sched_getscheduler __P ((__pid_t __pid));
+extern int sched_getscheduler __P ((__pid_t __pid));
+
+/* Yield the processor.  */
+extern int __sched_yield __P ((void));
+extern int sched_yield __P ((void));
+
+/* Get maximum priority value for a scheduler.  */
+extern int __sched_get_priority_max __P ((int __algorithm));
+extern int sched_get_priority_max __P ((int __algorithm));
+
+/* Get minimum priority value for a scheduler.  */
+extern int __sched_get_priority_min __P ((int __algorithm));
+extern int sched_get_priority_min __P ((int __algorithm));
+
+/* Get the SCHED_RR interval for the named process.  */
+extern int __sched_rr_get_interval __P ((__pid_t __pid, struct timespec *__t));
+extern int sched_rr_get_interval __P ((__pid_t __pid, struct timespec *__t));
+
+__END_DECLS
+
+#endif /* sched.h */
index 0fc3d7b..6818699 100644 (file)
@@ -61,9 +61,23 @@ __BEGIN_DECLS
    always available.  If not, they may be available sometimes.
    The current values can be obtained with `sysconf'.
 
-   _POSIX_JOB_CONTROL  Job control is supported.
-   _POSIX_SAVED_IDS    Processes have a saved set-user-ID
-                       and a saved set-group-ID.
+   _POSIX_JOB_CONTROL          Job control is supported.
+   _POSIX_SAVED_IDS            Processes have a saved set-user-ID
+                               and a saved set-group-ID.
+   _POSIX_REALTIME_SIGNALS     Real-time, queued signals are supported.
+   _POSIX_PRIORITY_SCHEDULING  Priority scheduling is supported.
+   _POSIX_TIMERS               POSIX.4 clocks and timers are supported.
+   _POSIX_ASYNCHRONOUS_IO      Asynchronous I/O is supported.
+   _POSIX_PRIORITIZED_IO       Prioritized asynchronous I/O is supported.
+   _POSIX_SYNCHRONIZED_IO      Synchronizing file data is supported.
+   _POSIX_FSYNC                        The fsync function is present.
+   _POSIX_MAPPED_FILES         Mapping of files to memory is supported.
+   _POSIX_MEMLOCK              Locking of all memory is supported.
+   _POSIX_MEMLOCK_RANGE                Locking of ranges of memory is supported.
+   _POSIX_MEMORY_PROTECTION    Setting of memory protections is supported.
+   _POSIX_MESSAGE_PASSING      POSIX.4 message queues are supported.
+   _POSIX_SEMAPHORES           POSIX.4 counting semaphores are supported.
+   _POSIX_SHARED_MEMORY_OBJECTS        POSIX.4 shared memory objects are supported.
 
    If any of these symbols is defined as -1, the corresponding option is not
    true for any file.  If any is defined as other than -1, the corresponding
@@ -732,6 +746,12 @@ extern int lockf __P ((int __fd, int __cmd, __off_t __len));
 
 #endif
 
+#ifdef __USE_POSIX
+/* Synchronize at least the data part of a file with the underlying
+   media.  */
+extern int fdatasync __P ((int __fildes));
+#endif /* Use POSIX */
+
 __END_DECLS
 
 #endif /* unistd.h  */
diff --git a/sys/socket.h b/sys/socket.h
deleted file mode 100644 (file)
index 999a683..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <socket/sys/socket.h>
index df4800e..da189fb 100644 (file)
@@ -1,5 +1,5 @@
 /* `sysconf', `pathconf', and `confstr' NAME values.  Generic version.
-Copyright (C) 1993, 1995 Free Software Foundation, Inc.
+Copyright (C) 1993, 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -60,6 +60,34 @@ enum
 #define        _SC_JOB_CONTROL         _SC_JOB_CONTROL
     _SC_SAVED_IDS,
 #define        _SC_SAVED_IDS           _SC_SAVED_IDS
+    _SC_REALTIME_SIGNALS,
+#define        _SC_REALTIME_SIGNALS    _SC_REALTIME_SIGNALS
+    _SC_PRIORITY_SCHEDULING,
+#define        _SC_PRIORITY_SCHEDULING _SC_PRIORITY_SCHEDULING
+    _SC_TIMERS,
+#define        _SC_TIMERS              _SC_TIMERS
+    _SC_ASYNCHRONOUS_IO,
+#define        _SC_ASYNCHRONOUS_IO     _SC_ASYNCHRONOUS_IO
+    _SC_PRIORITIZED_IO,
+#define        _SC_PRIORITIZED_IO      _SC_PRIORITIZED_IO
+    _SC_SYNCHRONIZED_IO,
+#define        _SC_SYNCHRONIZED_IO     _SC_SYNCHRONIZED_IO
+    _SC_FSYNC,
+#define        _SC_FSYNC               _SC_FSYNC
+    _SC_MAPPED_FILES,
+#define        _SC_MAPPED_FILES        _SC_MAPPED_FILES
+    _SC_MEMLOCK,
+#define        _SC_MEMLOCK             _SC_MEMLOCK
+    _SC_MEMLOCK_RANGE,
+#define        _SC_MEMLOCK_RANGE       _SC_MEMLOCK_RANGE
+    _SC_MEMORY_PROTECTION,
+#define        _SC_MEMORY_PROTECTION   _SC_MEMORY_PROTECTION
+    _SC_MESSAGE_PASSING,
+#define        _SC_MESSAGE_PASSING     _SC_MESSAGE_PASSING
+    _SC_SEMAPHORES,
+#define        _SC_SEMAPHORES          _SC_SEMAPHORES
+    _SC_SHARED_MEMORY_OBJECTS,
+#define        _SC_SHARED_MEMORY_OBJECTS       _SC_SHARED_MEMORY_OBJECTS
     _SC_VERSION,
 #define        _SC_VERSION             _SC_VERSION
     _SC_PAGESIZE,
diff --git a/sysdeps/generic/fdatasync.c b/sysdeps/generic/fdatasync.c
new file mode 100644 (file)
index 0000000..f664d01
--- /dev/null
@@ -0,0 +1,28 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <unistd.h>
+
+
+/* Synchronize at least the data part of a file with the underlying
+   media.  */
+int
+fdatasync (int fildes)
+{
+  return fsync (fildes);
+}
diff --git a/sysdeps/generic/schedbits.h b/sysdeps/generic/schedbits.h
new file mode 100644 (file)
index 0000000..21ea377
--- /dev/null
@@ -0,0 +1,35 @@
+/* Definitions of constants and data structure for POSIX 1003.1b-1993
+   scheduling interface.
+Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef        _SCHEDBITS_H
+#define        _SCHEDBITS_H    1
+
+/* Scheduling algorithms.  */
+#define SCHED_OTHER    0
+#define SCHED_FIFO     1
+#define SCHED_RR       2
+
+/* Data structure to describe a process' schedulability.  */
+struct sched_params
+{
+  int sched_priority;
+};
+
+#endif /* schedbits.h */
similarity index 98%
rename from socket/sys/socket.h
rename to sysdeps/generic/sys/socket.h
index 9b88e64..43a2a64 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 94, 95, 96 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
@@ -13,7 +13,7 @@ Library General Public License for more details.
 
 You should have received a copy of the GNU Library General Public
 License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
+not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #ifndef        _SYS_SOCKET_H
diff --git a/sysdeps/stub/nanosleep.c b/sysdeps/stub/nanosleep.c
new file mode 100644 (file)
index 0000000..7728bf2
--- /dev/null
@@ -0,0 +1,30 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <time.h>
+
+
+/* Pause execution for a number of nanoseconds.  */
+int
+nanosleep (const struct timespec *requested_time, struct time_spec *remaining)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (nanosleep)
diff --git a/sysdeps/stub/sched_getp.c b/sysdeps/stub/sched_getp.c
new file mode 100644 (file)
index 0000000..081458a
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Retrieve scheduling parameters for a particular process.  */
+int
+__sched_getparam (pid_t pid, struct sched_param *param)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_getparam)
+
+weak_alias (__sched_getparam, sched_getparam)
diff --git a/sysdeps/stub/sched_gets.c b/sysdeps/stub/sched_gets.c
new file mode 100644 (file)
index 0000000..4cbfb0e
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Retrieve scheduling algorithm for a particular purpose.  */
+int
+__sched_getscheduler (pid_t pid)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_getscheduler)
+
+weak_alias (__sched_getscheduler, sched_getscheduler)
diff --git a/sysdeps/stub/sched_primax.c b/sysdeps/stub/sched_primax.c
new file mode 100644 (file)
index 0000000..7ff5af3
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Get maximum priority value for a scheduler.  */
+int
+__sched_get_priority_max (int algorithm)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_get_priority_max)
+
+weak_alias (__sched_get_priority_max, sched_get_priority_max)
diff --git a/sysdeps/stub/sched_primin.c b/sysdeps/stub/sched_primin.c
new file mode 100644 (file)
index 0000000..370f10c
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Get minimum priority value for a scheduler.  */
+int
+__sched_get_priority_min (int algorithm)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_get_priority_min)
+
+weak_alias (__sched_get_priority_min, sched_get_priority_min)
diff --git a/sysdeps/stub/sched_rr_gi.c b/sysdeps/stub/sched_rr_gi.c
new file mode 100644 (file)
index 0000000..27344e0
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Get the SCHED_RR interval for the named process.  */
+int
+__sched_rr_get_interval (pid_t pid, struct timespec *t)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_rr_get_interval)
+
+weak_alias (__sched_rr_get_interval, sched_rr_get_interval)
diff --git a/sysdeps/stub/sched_setp.c b/sysdeps/stub/sched_setp.c
new file mode 100644 (file)
index 0000000..2830618
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Set scheduling parameters for a process.  */
+int
+__sched_setparam (pid_t pid, const struct sched_param *param)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_setparam)
+
+weak_alias (__sched_setparam, sched_setparam)
diff --git a/sysdeps/stub/sched_sets.c b/sysdeps/stub/sched_sets.c
new file mode 100644 (file)
index 0000000..e013e7a
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Set scheduling algorithm and/or parameters for a process.  */
+int
+__sched_setscheduler (pid_t pid, int policy, const struct sched_param *param)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_setscheduler)
+
+weak_alias (__sched_setscheduler, sched_setscheduler)
diff --git a/sysdeps/stub/sched_yield.c b/sysdeps/stub/sched_yield.c
new file mode 100644 (file)
index 0000000..244ac15
--- /dev/null
@@ -0,0 +1,32 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#include <errno.h>
+#include <sched.h>
+
+
+/* Yield the processor.  */
+int
+__sched_yield (void)
+{
+  errno = ENOSYS;
+  return -1;
+}
+stub_warning (sched_yield)
+
+weak_alias (__sched_yield, sched_yield)
index 43264b5..7876c40 100644 (file)
@@ -19,6 +19,9 @@ Cambridge, MA 02139, USA.  */
 #ifndef        _GNU_TYPES_H
 #define        _GNU_TYPES_H    1
 
+/* Get actual type definitions for architecture from kernel headers.  */
+#include <linux/posix_types.h>
+
 /* Convenience types.  */
 typedef unsigned char __u_char;
 typedef unsigned short __u_short;
@@ -38,15 +41,15 @@ typedef struct
   __u_long val[2];
 } __u_quad_t;
 #endif
-typedef unsigned short int __dev_t;    /* Type of device numbers.  */
-typedef unsigned short int __uid_t;    /* Type of user identifications.  */
-typedef unsigned short int __gid_t;    /* Type of group identifications.  */
-typedef unsigned long int __ino_t;     /* Type of file serial numbers.  */
-typedef unsigned short int __mode_t;   /* Type of file attribute bitmasks.  */
-typedef unsigned short int __nlink_t;  /* Type of file link counts.  */
-typedef long int __off_t;              /* Type of file sizes and offsets.  */
-typedef int __pid_t;                   /* Type of process identifications.  */
-typedef int __ssize_t;                 /* Type of a byte count, or error.  */
+typedef __kernel_dev_t __dev_t;                /* Type of device numbers.  */
+typedef __kernel_uid_t __uid_t;                /* Type of user identifications.  */
+typedef __kernel_gid_t __gid_t;                /* Type of group identifications.  */
+typedef __kernel_ino_t __ino_t;                /* Type of file serial numbers.  */
+typedef __kernel_mode_t __mode_t;      /* Type of file attribute bitmasks.  */
+typedef __kernel_nlink_t __nlink_t;    /* Type of file link counts.  */
+typedef __kernel_off_t __off_t;                /* Type of file sizes and offsets.  */
+typedef __kernel_pid_t __pid_t;                /* Type of process identifications.  */
+typedef __kernel_ssize_t __ssize_t;    /* Type of a byte count, or error.  */
 #ifdef __GNUC__
 typedef long long int __fsid_t;                /* Type of file system IDs.  */
 #else
@@ -56,33 +59,12 @@ typedef struct {                    /* Type of file system IDs.  */
 #endif
 
 /* Everythin' else.  */
-typedef int __daddr_t;                 /* The type of a disk address.  */
-typedef char *__caddr_t;
-typedef long int __time_t;
+typedef __kernel_daddr_t __daddr_t;    /* The type of a disk address.  */
+typedef __kernel_caddr_t __caddr_t;
+typedef __kernel_time_t __time_t;
 typedef long int __swblk_t;            /* Type of a swap block maybe?  */
 \f
 /* fd_set for select.  */
-
-/* Number of descriptors that can fit in an `fd_set'.  */
-#define        __FD_SETSIZE    256
-
-/* It's easier to assume 8-bit bytes than to get CHAR_BIT.  */
-#define        __NFDBITS       (sizeof (unsigned long int) * 8)
-#define        __FDELT(d)      ((d) / __NFDBITS)
-#define        __FDMASK(d)     (1 << ((d) % __NFDBITS))
-
-typedef struct
-  {
-    /* Some braindead old software uses this member name.  */
-    unsigned long int fds_bits[(__FD_SETSIZE + (__NFDBITS - 1)) / __NFDBITS];
-  } __fd_set;
-
-/* This line MUST be split!  Otherwise m4 will not change it.  */
-#define        __FD_ZERO(set)  \
-  ((void) memset ((__ptr_t) (set), 0, sizeof (fd_set)))
-#define        __FD_SET(d, set)        ((set)->fds_bits[__FDELT(d)] |= __FDMASK(d))
-#define        __FD_CLR(d, set)        ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
-#define        __FD_ISSET(d, set)      ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
-
+typedef __kernel_fd_set __fd_set;
 
 #endif /* gnu/types.h */
diff --git a/sysdeps/unix/sysv/linux/i386/Makefile b/sysdeps/unix/sysv/linux/i386/Makefile
new file mode 100644 (file)
index 0000000..19eb60f
--- /dev/null
@@ -0,0 +1,4 @@
+# Set the shared library version numbers for Linux/i386.
+
+libc.so-version = .6
+libm.so-version = .6
diff --git a/sysdeps/unix/sysv/linux/ioctls.h b/sysdeps/unix/sysv/linux/ioctls.h
new file mode 100644 (file)
index 0000000..f7a3467
--- /dev/null
@@ -0,0 +1,26 @@
+/* Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef _IOCTLS_H
+#define _IOCTLS_H 1
+
+/* Use the definitions from the kernel header files.  */
+#include <asm/ioctls.h>
+#include <linux/sockios.h>
+
+#endif /* ioctls.h  */
diff --git a/sysdeps/unix/sysv/linux/netinet/in.h b/sysdeps/unix/sysv/linux/netinet/in.h
new file mode 100644 (file)
index 0000000..2ce224c
--- /dev/null
@@ -0,0 +1,191 @@
+/* Copyright (C) 1991, 1992, 1993, 1994, 1995 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 General Public License as published by
+the Free Software Foundation; either version 2, 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 General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with the GNU C Library; see the file COPYING.  If not, write to
+the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
+
+#ifndef        _NETINET_IN_H
+
+#define        _NETINET_IN_H   1
+#include <features.h>
+
+#include <sys/socket.h>
+
+
+/* Standard well-defined IP protocols.  */
+enum
+  {
+    IPPROTO_IP = 0,    /* Dummy protocol for TCP.  */
+    IPPROTO_ICMP = 1,  /* Internet Control Message Protocol.  */
+    IPPROTO_IGMP = 2,  /* Internet Group Management Protocol. */
+    IPPROTO_TCP = 6,   /* Transmission Control Protocol.  */
+    IPPROTO_EGP = 8,   /* Exterior Gateway Protocol.  */
+    IPPROTO_PUP = 12,  /* PUP protocol.  */
+    IPPROTO_UDP = 17,  /* User Datagram Protocol.  */
+    IPPROTO_IDP = 22,  /* XNS IDP protocol.  */
+
+    IPPROTO_RAW = 255, /* Raw IP packets.  */
+    IPPROTO_MAX,
+  };
+
+/* Standard well-known ports.  */
+enum
+  {
+    IPPORT_ECHO = 7,           /* Echo service.  */
+    IPPORT_DISCARD = 9,                /* Discard transmissions service.  */
+    IPPORT_SYSTAT = 11,                /* System status service.  */
+    IPPORT_DAYTIME = 13,       /* Time of day service.  */
+    IPPORT_NETSTAT = 15,       /* Network status service.  */
+    IPPORT_FTP = 21,           /* File Transfer Protocol.  */
+    IPPORT_TELNET = 23,                /* Telnet protocol.  */
+    IPPORT_SMTP = 25,          /* Simple Mail Transfer Protocol.  */
+    IPPORT_TIMESERVER = 37,    /* Timeserver service.  */
+    IPPORT_NAMESERVER = 42,    /* Domain Name Service.  */
+    IPPORT_WHOIS = 43,         /* Internet Whois service.  */
+    IPPORT_MTP = 57,
+
+    IPPORT_TFTP = 69,          /* Trivial File Transfer Protocol.  */
+    IPPORT_RJE = 77,
+    IPPORT_FINGER = 79,                /* Finger service.  */
+    IPPORT_TTYLINK = 87,
+    IPPORT_SUPDUP = 95,                /* SUPDUP protocol.  */
+
+
+    IPPORT_EXECSERVER = 512,   /* execd service.  */
+    IPPORT_LOGINSERVER = 513,  /* rlogind service.  */
+    IPPORT_CMDSERVER = 514,
+    IPPORT_EFSSERVER = 520,
+
+    /* UDP ports.  */
+    IPPORT_BIFFUDP = 512,
+    IPPORT_WHOSERVER = 513,
+    IPPORT_ROUTESERVER = 520,
+
+    /* Ports less than this value are reserved for privileged processes.  */
+    IPPORT_RESERVED = 1024,
+
+    /* Ports greater this value are reserved for (non-privileged) servers.  */
+    IPPORT_USERRESERVED = 5000,
+  };
+
+
+/* Link numbers.  */
+#define        IMPLINK_IP              155
+#define        IMPLINK_LOWEXPER        156
+#define        IMPLINK_HIGHEXPER       158
+
+
+/* Internet address.  */
+struct in_addr
+  {
+    unsigned int s_addr;
+  };
+
+
+/* Definitions of the bits in an Internet address integer.
+
+   On subnets, host and network parts are found according to
+   the subnet mask, not these masks.  */
+
+#define        IN_CLASSA(a)            ((((unsigned) (a)) & 0x80000000) == 0)
+#define        IN_CLASSA_NET           0xff000000
+#define        IN_CLASSA_NSHIFT        24
+#define        IN_CLASSA_HOST          (0xffffffff & ~IN_CLASSA_NET)
+#define        IN_CLASSA_MAX           128
+
+#define        IN_CLASSB(a)            ((((unsigned) (a)) & 0xc0000000) == 0x80000000)
+#define        IN_CLASSB_NET           0xffff0000
+#define        IN_CLASSB_NSHIFT        16
+#define        IN_CLASSB_HOST          (0xffffffff & ~IN_CLASSB_NET)
+#define        IN_CLASSB_MAX           65536
+
+#define        IN_CLASSC(a)            ((((unsigned) (a)) & 0xc0000000) == 0xc0000000)
+#define        IN_CLASSC_NET           0xffffff00
+#define        IN_CLASSC_NSHIFT        8
+#define        IN_CLASSC_HOST          (0xffffffff & ~IN_CLASSC_NET)
+
+#define        IN_CLASSD(a)            ((((unsigned) (a)) & 0xf0000000) == 0xe0000000)
+#define        IN_MULTICAST(a)         IN_CLASSD(a)
+
+#define        IN_EXPERIMENTAL(a)      ((((unsigned) (a)) & 0xe0000000) == 0xe0000000)
+#define        IN_BADCLASS(a)          ((((unsigned) (a)) & 0xf0000000) == 0xf0000000)
+
+/* Address to accept any incoming messages.  */
+#define        INADDR_ANY              ((unsigned) 0x00000000)
+/* Address to send to all hosts.  */
+#define        INADDR_BROADCAST        ((unsigned) 0xffffffff)
+/* Address indicating an error return.  */
+#define        INADDR_NONE             0xffffffff
+
+/* Network number for local host loopback.  */
+#define        IN_LOOPBACKNET  127
+/* Address to loopback in software to local host.  */
+#ifndef INADDR_LOOPBACK
+#define        INADDR_LOOPBACK 0x7f000001      /* Internet address 127.0.0.1.  */
+#endif
+
+
+/* Get the definition of the macro to define the common sockaddr members.  */
+#include <sockaddrcom.h>
+
+
+/* Structure describing an Internet socket address.  */
+struct sockaddr_in
+  {
+    __SOCKADDR_COMMON (sin_);
+    unsigned short int sin_port;       /* Port number.  */
+    struct in_addr sin_addr;           /* Internet address.  */
+
+    /* Pad to size of `struct sockaddr'.  */
+    unsigned char sin_zero[sizeof(struct sockaddr) -
+                          __SOCKADDR_COMMON_SIZE -
+                          sizeof(unsigned short int) -
+                          sizeof(struct in_addr)];
+  };
+
+/* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
+   The `ip_dst' field is used for the first-hop gateway when using a
+   source route (this gets put into the header proper).  */
+struct ip_opts
+  {
+    struct in_addr ip_dst;     /* First hop; zero without source route.  */
+    char ip_opts[40];          /* Actually variable in size.  */
+  };
+
+/* Structure used for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */
+struct ip_mreq
+{
+  struct in_addr imr_multiaddr;        /* IP multicast address of group */
+  struct in_addr imr_interface;        /* local IP address of interface */
+};
+
+/* Functions to convert between host and network byte order.  */
+
+extern unsigned long int ntohl __P ((unsigned long int));
+extern unsigned short int ntohs __P ((unsigned short int));
+extern unsigned long int htonl __P ((unsigned long int));
+extern unsigned short int htons __P ((unsigned short int));
+
+#include <endian.h>
+
+#if __BYTE_ORDER == __BIG_ENDIAN
+/* The host byte order is the same as network byte order,
+   so these functions are all just identity.  */
+#define        ntohl(x)        (x)
+#define        ntohs(x)        (x)
+#define        htonl(x)        (x)
+#define        htons(x)        (x)
+#endif
+
+#endif /* netinet/in.h */
diff --git a/sysdeps/unix/sysv/linux/posix_opt.h b/sysdeps/unix/sysv/linux/posix_opt.h
new file mode 100644 (file)
index 0000000..d336335
--- /dev/null
@@ -0,0 +1,57 @@
+/* Define POSIX options for Linux.
+Copyright (C) 1996 Free Software Foundation, Inc.
+This file is part of the GNU C Library.
+
+The GNU C Library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License as
+published by the Free Software Foundation; either version 2 of the
+License, or (at your option) any later version.
+
+The GNU C Library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Library General Public
+License along with the GNU C Library; see the file COPYING.LIB.  If
+not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.  */
+
+#ifndef        _POSIX_OPT_H
+#define        _POSIX_OPT_H    1
+
+/* Job control is supported.  */
+#define        _POSIX_JOB_CONTROL      1
+
+/* Processes have a saved set-user-ID and a saved set-group-ID.  */
+#define        _POSIX_SAVED_IDS        1
+
+/* Priority scheduling is supported.  */
+#define        _POSIX_PRIORITY_SCHEDULING      1
+
+/* Synchronizing file data is supported.  */
+#define        _POSIX_SYNCHRONIZED_IO  1
+
+/* The fsync function is present.  */
+#define        _POSIX_FSYNC    1
+
+/* Mapping of files to memory is supported.  */
+#define        _POSIX_MAPPED_FILES     1
+
+/* Locking of all memory is supported.  */
+#define        _POSIX_MEMLOCK  1
+
+/* Locking of ranges of memory is supported.  */
+#define        _POSIX_MEMLOCK_RANGE    1
+
+/* Setting of memory protections is supported.  */
+#define        _POSIX_MEMORY_PROTECTION        1
+
+/* Only root can change owner of file.  */
+#define        _POSIX_CHOWN_RESTRICTED 1
+
+/* `c_cc' member of 'struct termios' structure can be disabled by
+   using the value _POSIX_VDISABLE.  */
+#define        _POSIX_VDISABLE '\0'
+
+#endif /* posix_opt.h */
index 8bec38d..42d3e7e 100644 (file)
@@ -1,6 +1,7 @@
 # File name    Caller  Syscall name    # args  Strong name     Weak names
 
 adjtimex       adjtime adjtimex        1       __adjtimex
+fdatasync      -       fdatasync       1       fdatasync
 fork           -       fork            0       __fork          fork
 getegid                -       getegid         0       __getegid       getegid
 geteuid                -       geteuid         0       __geteuid       geteuid
@@ -14,11 +15,20 @@ mlockall    -       mlockall        1       __mlockall      mlockall
 mount          -       mount           5       __mount mount
 munlock                -       munlock         2       __munlock       munlock
 munlockall     -       munlockall      0       __munlockall    munlockall
+nanosleep      -       nanosleep       2       nanosleep
 personality    init-first personality  1       __personality   personality
 pipe           -       pipe            1       __pipe  pipe
 reboot         -       reboot          3       reboot
 s_ptrace       ptrace  ptrace          4       __syscall_ptrace
 s_sigsuspend   sigsuspend sigsuspend   3       __syscall_sigsuspend
+sched_setp     -       sched_setparam  2       __sched_setparam        sched_setparam
+sched_getp     -       sched_getparam  2       __sched_getparam        sched_getparam
+sched_sets     -       sched_setscheduler      3       __sched_setscheduler    sched_setscheduler
+sched_gets     -       sched_getscheduler      1       __sched_getscheduler    sched_getscheduler
+sched_yield    -       sched_yield     0       __sched_yield   sched_yield
+sched_primax   -       sched_get_priority_max  1       __sched_get_priority_max        sched_get_priority_max
+sched_primin   -       sched_get_priority_min  1       __sched_get_priority_min        sched_get_priority_min
+sched_rr_gi    -       sched_rr_get_interval   2       __sched_rr_get_interval sched_rr_get_interval
 setpgid                -       setpgid         2       setpgid
 sigpending     -       sigpending      1       sigpending
 sigprocmask    -       sigprocmask     3       __sigprocmask   sigprocmask
index 447cfd4..33640c5 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1993, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1993, 1995, 1996 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
@@ -83,12 +83,112 @@ DEFUN(__sysconf, (name), int name)
 #else
       return -1;
 #endif
+
     case _SC_SAVED_IDS:
 #ifdef _POSIX_SAVED_IDS
       return 1;
 #else
       return -1;
 #endif
+
+    case _SC_REALTIME_SIGNALS:
+#ifdef _POSIX_REALTIME_SIGNALS
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_PRIORITY_SCHEDULING:
+#ifdef _POSIX_PRIORITY_SCHEDULING
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_TIMERS:
+#ifdef _POSIX_TIMERS
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_ASYNCHRONOUS_IO:
+#ifdef _POSIX_ASYNCHRONOUS_IO
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_PRIORITIZED_IO:
+#ifdef _POSIX_PRIORITIZED_IO
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_SYNCHRONIZED_IO:
+#ifdef _POSIX_SYNCHRONIZED_IO
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_FSYNC:
+#ifdef _POSIX_FSYNC
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_MAPPED_FILES:
+#ifdef _POSIX_MAPPED_FILES
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_MEMLOCK:
+#ifdef _POSIX_MEMLOCK
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_MEMLOCK_RANGE:
+#ifdef _POSIX_MEMLOCK_RANGE
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_MEMORY_PROTECTION:
+#ifdef _POSIX_MEMORY_PROTECTION
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_MESSAGE_PASSING:
+#ifdef _POSIX_MESSAGE_PASSING
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_SEMAPHORES:
+#ifdef _POSIX_SEMAPHORES
+      return 1;
+#else
+      return -1;
+#endif
+
+    case _SC_SHARED_MEMORY_OBJECTS:
+#ifdef _POSIX_SHARED_MEMORY_OBJECTS
+      return 1;
+#else
+      return -1;
+#endif
+
     case _SC_VERSION:
       return _POSIX_VERSION;
 
index fa537ab..66d763c 100644 (file)
@@ -1,5 +1,5 @@
 /* termios type and macro definitions.  Linux version.
-Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
+Copyright (C) 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -17,163 +17,8 @@ License along with the GNU C Library; see the file COPYING.LIB.  If
 not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
-/* Type of terminal control flag masks.  */
-typedef unsigned int tcflag_t;
-
-/* Type of control characters.  */
-typedef unsigned char cc_t;
-
-/* Type of baud rate specifiers.  */
-typedef unsigned int speed_t;
-
-/* Terminal control structure.  */
-struct termios
-{
-  /* Input modes.  */
-  tcflag_t c_iflag;
-#define        IGNBRK  0x0001          /* Ignore break condition.  */
-#define        BRKINT  0x0002          /* Signal interrupt on break.  */
-#define        IGNPAR  0x0004          /* Ignore characters with parity errors.  */
-#define        PARMRK  0x0008          /* Mark parity and framing errors.  */
-#define        INPCK   0x0010          /* Enable input parity check.  */
-#define        ISTRIP  0x0020          /* Strip 8th bit off characters.  */
-#define        INLCR   0x0040          /* Map NL to CR on input.  */
-#define        IGNCR   0x0080          /* Ignore CR.  */
-#define        ICRNL   0x0100          /* Map CR to NL on input.  */
-#ifdef __USE_BSD
-#define        IUCLC   0x0200          /* Map upper case to lower case on input.  */
-#endif
-#define        IXON    0x0400          /* Enable start/stop output control.  */
-#define        IXOFF   0x1000          /* Enable start/stop input control.  */
-#ifdef __USE_BSD
-#define        IXANY   0x0800          /* Any character will restart after stop.  */
-#define        IMAXBEL 0x2000          /* Ring bell when input queue is full.  */
-#endif
-
-  /* Output modes.  */
-  tcflag_t c_oflag;
-#define        OPOST   0x0001          /* Perform output processing.  */
-#ifdef __USE_BSD
-#define        OLCUC   0x00000002      /* Map lower case to upper case on output.  */
-#define        ONLCR   0x00000004      /* Map NL to CR-NL on output.  */
-#define        OCRNL   0x00000008
-#define        ONOCR   0x00000010
-#define        ONLRET  0x00000020
-#define        OFILL   0x00000040
-#define        OFDEL   0x00000080
-#define        NLDLY   0x00000100
-#define        NL0     0
-#define        NL1     0x00000100
-#define        CRDLY   0x00000600
-#define        CR0     0
-#define        CR1     0x00000200
-#define        CR2     0x00000400
-#define        CR3     0x00000600
-#define        TABDLY  0x00001800
-#define        TAB0    0
-#define        TAB1    0x00000800
-#define        TAB2    0x00001000
-#define        XTABS   0x00001800
-#define        TAB3    XTABS
-#define        BSDLY   0x00002000
-#define        BS0     0
-#define        BS1     0x00002000
-#define        VTDLY   0x00004000
-#define        VT0     0
-#define        VT1     0x00004000
-#define        FFDLY   0x00008000
-#define        FF0     0
-#define        FF1     0x00008000
-#endif
-
-  /* Control modes.  */
-  tcflag_t c_cflag;
-#define        CSIZE   (CS5|CS6|CS7|CS8) /* Number of bits per byte (mask).  */
-#define        CS5     0               /* 5 bits per byte.  */
-#define        CS6     0x00000010      /* 6 bits per byte.  */
-#define        CS7     0x00000020      /* 7 bits per byte.  */
-#define        CS8     0x00000030      /* 8 bits per byte.  */
-#define        CSTOPB  0x00000040      /* Two stop bits instead of one.  */
-#define        CREAD   0x00000080      /* Enable receiver.  */
-#define        PARENB  0x00000100      /* Parity enable.  */
-#define        PARODD  0x00000200      /* Odd parity instead of even.  */
-#define        HUPCL   0x00000400      /* Hang up on last close.  */
-#define        CLOCAL  0x00000800      /* Ignore modem status lines.  */
-#ifdef __USE_BSD
-#define        CRTSCTS 0x80000000
-#define        CBAUD   0x0000000f      /* Mask for speed from c_cflag.  */
-#define CBAUDEX        0x00001000      /* Mask for extended speed from c_cflag.  */
-#endif
-
-  /* Local modes.  */
-  tcflag_t c_lflag;
-#ifdef __USE_BSD
-#define        ECHOKE  0x00000800      /* Visual erase for KILL.  */
-#endif
-#define        ECHOE   0x00000010      /* Visual erase for ERASE.  */
-#define        ECHOK   0x00000020      /* Echo NL after KILL.  */
-#define        ECHO    0x00000008      /* Enable echo.  */
-#define        ECHONL  0x00000040      /* Echo NL even if ECHO is off.  */
-#ifdef __USE_BSD
-#define        ECHOPRT 0x00000400      /* Hardcopy visual erase.  */
-#define        ECHOCTL 0x00000200      /* Echo control characters as ^X.  */
-#endif
-#define        ISIG    0x00000001      /* Enable signals.  */
-#define        ICANON  0x00000002      /* Do erase and kill processing.  */
-#define        IEXTEN  0x00008000      /* Enable DISCARD and LNEXT.  */
-#define        TOSTOP  0x00000100      /* Send SIGTTOU for background output.  */
-#ifdef __USE_BSD
-#define        PENDIN  0x00004000      /* Retype pending input (state).  */
-#endif
-#define        NOFLSH  0x00000080      /* Disable flush after interrupt.  */
-
-  cc_t c_line;                 /* Line discipline (?) */
-
-  /* Control characters.  */
-#define        VEOF    4               /* End-of-file character [ICANON].  */
-#define        VEOL    11              /* End-of-line character [ICANON].  */
-#ifdef __USE_BSD
-#define        VEOL2   16              /* Second EOL character [ICANON].  */
-#define        VSWTCH  7               /* ??? */
-#endif
-#define        VERASE  2               /* Erase character [ICANON].  */
-#ifdef __USE_BSD
-#define        VWERASE 14              /* Word-erase character [ICANON].  */
-#endif
-#define        VKILL   3               /* Kill-line character [ICANON].  */
-#ifdef __USE_BSD
-#define        VREPRINT 12             /* Reprint-line character [ICANON].  */
-#endif
-#define        VINTR   0               /* Interrupt character [ISIG].  */
-#define        VQUIT   1               /* Quit character [ISIG].  */
-#define        VSUSP   10              /* Suspend character [ISIG].  */
-#define        VSTART  8               /* Start (X-ON) character [IXON, IXOFF].  */
-#define        VSTOP   9               /* Stop (X-OFF) character [IXON, IXOFF].  */
-#ifdef __USE_BSD
-#define        VLNEXT  15              /* Literal-next character [IEXTEN].  */
-#define        VDISCARD 13             /* Discard character [IEXTEN].  */
-#endif
-#define        VMIN    6               /* Minimum number of bytes read at once [!ICANON].  */
-#define        VTIME   5               /* Time-out value (tenths of a second) [!ICANON].  */
-#define        NCCS    19
-  cc_t c_cc[NCCS];
-};
+/* Use the architecture dependend definitions from the kernel.  */
+#include <asm/termbits.h>
 
 #define _IOT_termios /* Hurd ioctl type field.  */ \
   _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)
-
-/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
-#define        TCSANOW         0       /* Change immediately.  */
-#define        TCSADRAIN       1       /* Change when pending output is written.  */
-#define        TCSAFLUSH       2       /* Flush pending input before changing.  */
-
-/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
-#define        TCIFLUSH        0       /* Discard data received but not yet read.  */
-#define        TCOFLUSH        1       /* Discard data written but not yet sent.  */
-#define        TCIOFLUSH       2       /* Discard all pending data.  */
-
-/* Values for the ACTION argument to `tcflow'.  */
-#define        TCOOFF  0               /* Suspend output.  */
-#define        TCOON   1               /* Restart suspended output.  */
-#define        TCIOFF  2               /* Send a STOP character.  */
-#define        TCION   3               /* Send a START character.  */
index 4c8562f..c075333 100644 (file)
@@ -33,14 +33,6 @@ struct timeval
     int tv_usec;               /* Microseconds.  */
   };
 
-/* POSIX.4 structure for a time value.  This is like a `struct timeval' but
-   has nanoseconds instead of microseconds.  */
-struct timespec
-  {
-    long int ts_sec;           /* Seconds.  */
-    long int ts_nsec;          /* Nanoseconds.  */
-  };
-
 /* Macros for converting between `struct timeval' and `struct timespec'.  */
 #define TIMEVAL_TO_TIMESPEC(tv, ts) {                                   \
         (ts)->ts_sec = (tv)->tv_sec;                                    \
index 514a615..5f95914 100644 (file)
@@ -217,6 +217,21 @@ extern int dysize __P ((int __year));
 #endif
 
 
+/* POSIX.4 structure for a time value.  This is like a `struct timeval' but
+   has nanoseconds instead of microseconds.  */
+struct timespec
+  {
+    long int ts_sec;           /* Seconds.  */
+    long int ts_nsec;          /* Nanoseconds.  */
+  };
+
+#ifdef __USE_POSIX
+/* Pause execution for a number of nanoseconds.  */
+extern int nanosleep __P ((__const struct timespec *__requested_time,
+                          struct timespec *__remaining));
+#endif
+
+
 __END_DECLS
 
 #endif /* <time.h> included.  */