summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog131
-rw-r--r--io/sys/stat.h24
-rw-r--r--linuxthreads/semaphore.h1
-rw-r--r--malloc/obstack.c9
-rw-r--r--malloc/obstack.h5
-rw-r--r--misc/sgtty.h4
-rw-r--r--misc/sys/cdefs.h10
-rw-r--r--sysdeps/arm/bits/huge_val.h88
-rw-r--r--sysdeps/arm/dl-machine.h2
-rw-r--r--sysdeps/posix/getcwd.c10
-rw-r--r--sysdeps/unix/sysv/linux/sys/acct.h49
-rw-r--r--sysdeps/unix/sysv/linux/sys/ptrace.h3
-rw-r--r--sysdeps/unix/sysv/linux/sys/quota.h1
-rw-r--r--sysdeps/unix/sysv/linux/sys/reboot.h7
-rw-r--r--sysdeps/unix/sysv/linux/sys/swap.h10
15 files changed, 270 insertions, 84 deletions
diff --git a/ChangeLog b/ChangeLog
index 2bc762c7ee..de6027ea4e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,17 +1,74 @@
-1998-10-01  Philip Blundell  <pb@nexus.co.uk> 
- 
-	* sysdeps/arm/machine-gmon.h: Correct args to mcount().  Patch 
-	from Scott Bambrough. 
- 
-	* sysdeps/unix/sysv/linux/arm/register-dump.h: New file. 
- 
-	* libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't 
-	include the lock member. 
- 
-1998-09-03  Philip Blundell  <pb@nexus.co.uk> 
- 
-	* sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler. 
- 
+1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* sysdeps/unix/sysv/linux/sys/swap.h (SWAP_FLAG_PREFER,
+	SWAP_FLAG_PRIO_MASK,SWAP_FLAG_PRIO_SHIFT): Added.
+	Remove inclusion of <linux/swap.h>.
+
+1998-10-05  Ulrich Drepper  <drepper@cygnus.com>
+
+	* io/sys/stat.h: Use __P in definitions of inline stat functions
+	so that they match the declaration.
+
+1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* sysdeps/unix/sysv/linux/sys/quota.h (Q_RSQUASH): Added.
+
+1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* sysdeps/unix/sysv/linux/sys/acct.h: Bring in sync with current
+	linux 2.1 version.
+
+1998-10-02  Philip Blundell  <pb@nexus.co.uk>
+
+	* sysdeps/arm/dl-machine.h: Fix typo in last change.
+
+	* sysdeps/arm/bits/huge_val.h: New file.
+
+1998-10-02  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* sysdeps/unix/sysv/linux/sys/reboot.h (RB_POWER_OFF): Added.
+
+	* sysdeps/unix/sysv/linux/sys/ptrace.h (PTRACE_SYSCALL): Add
+	define.
+
+1998-10-05  Ulrich Drepper  <drepper@cygnus.com>
+
+	* sysdeps/posix/getcwd.c (__getcwd): Use temporary variable to
+	store result of realloc instead of using BUF.
+
+1998-10-04  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* misc/sgtty.h (_SGTTY_H): Correct spelling.
+	Reported by Rouben Rostamian <rostamian@umbc.edu> [PR libc/817].
+
+1998-10-04  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
+
+	* manual/memory.texi (Obstacks): Document
+	obstack_alloc_failed_handler usage.
+
+	* malloc/obstack.h: Enhance comment about
+	obstack_alloc_failed_handler usage.
+	* malloc/obstack.c: Likewise.
+
+1998-10-05  Ulrich Drepper  <drepper@cygnus.com>
+
+	* misc/sys/cdefs.h (__extension__): Define as empty if no gcc or
+	gcc before 2.8 is used.
+
+1998-10-01  Philip Blundell  <pb@nexus.co.uk>
+
+	* sysdeps/arm/machine-gmon.h: Correct args to mcount().  Patch
+	from Scott Bambrough.
+
+	* sysdeps/unix/sysv/linux/arm/register-dump.h: New file.
+
+	* libio/libioP.h (FILEBUF_LITERAL) [! _IO_MTSAFE_IO]: Don't
+	include the lock member.
+
+1998-09-03  Philip Blundell  <pb@nexus.co.uk>
+
+	* sysdeps/arm/fpu/__longjmp.S: Cope with fussy assembler.
+
 1998-10-01  Ulrich Drepper  <drepper@cygnus.com>
 
 	* timezone/zic.c: Update from tzcode1998h.
@@ -30,31 +87,31 @@
 	* sysdeps/wordsize-32/stdint.h: Likewise.
 	* wcsmbs/wchar.h: Likewise.
 
-1998-09-29  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de> 
- 
-	* string/bits/string2.h (__string2_1bptr_p): Don't use a statement 
-	expression. 
-	(__mempcpy, strcpy, __stpcpy, strcmp, strcspn, strspn, strpbrk, 
-	__strsep): Greatly reduce size of expansion by combining common 
-	expressions. 
-	(__mempcpy_small, __strcpy_small, __stpcpy_small): Convert to 
-	inline function. 
-	(__mempcpy_args, __strcpy_args, __stpcpy_args): New macros, used 
-	by the above definitions. 
- 
-1998-09-27  Geoff Keating  <geoffk@ozemail.com.au> 
- 
-	* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: New file, use 
-	correct struct ipc_perm definition.  
- 
-1998-09-29  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de> 
- 
-	* nis/ypclnt.c (yp_all): Close UDP socket und give CLIENT handle free. 
- 
+1998-09-29  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* string/bits/string2.h (__string2_1bptr_p): Don't use a statement
+	expression.
+	(__mempcpy, strcpy, __stpcpy, strcmp, strcspn, strspn, strpbrk,
+	__strsep): Greatly reduce size of expansion by combining common
+	expressions.
+	(__mempcpy_small, __strcpy_small, __stpcpy_small): Convert to
+	inline function.
+	(__mempcpy_args, __strcpy_args, __stpcpy_args): New macros, used
+	by the above definitions.
+
+1998-09-27  Geoff Keating  <geoffk@ozemail.com.au>
+
+	* sysdeps/unix/sysv/linux/powerpc/bits/ipc.h: New file, use
+	correct struct ipc_perm definition.
+
+1998-09-29  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>
+
+	* nis/ypclnt.c (yp_all): Close UDP socket und give CLIENT handle free.
+
 1998-09-29  Cristian Gafton  <gafton@redhat.com>
 
-	* sysdeps/unix/sysv/linux/alpha/ioperm.c: List Ruffian in platforms[]. 
-	* sysdeps/unix/sysv/linux/net/if_shaper.h: New file. 
+	* sysdeps/unix/sysv/linux/alpha/ioperm.c: List Ruffian in platforms[].
+	* sysdeps/unix/sysv/linux/net/if_shaper.h: New file.
 	* sysdeps/unix/sysv/linux/Dist: Add net/if_shaper.h.
 	* sysdeps/unix/sysv/linux/Makefile [subdirs=inet] (sysdep_headers):
 	Add net/if_shaper.h.
diff --git a/io/sys/stat.h b/io/sys/stat.h
index 7c3043095c..54d5fc709d 100644
--- a/io/sys/stat.h
+++ b/io/sys/stat.h
@@ -310,47 +310,53 @@ extern int __xmknod __P ((int __ver, __const char *__path,
 			  __mode_t __mode, __dev_t *__dev));
 
 #if defined __GNUC__ && __GNUC__ >= 2
-/* Inlined versions of the real stat and mknod functions.  */
+/* Inlined versions of the real stat and mknod functions.
 
-extern __inline__ int stat (__const char *__path, struct stat *__statbuf)
+   We have to use __P here since we need definitions matching the
+   declarations above.  */
+
+extern __inline__ int stat __P ((__const char *__path, struct stat *__statbuf))
 {
   return __xstat (_STAT_VER, __path, __statbuf);
 }
 
 # if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-extern __inline__ int lstat (__const char *__path, struct stat *__statbuf)
+extern __inline__ int lstat __P ((__const char *__path,
+				  struct stat *__statbuf))
 {
   return __lxstat (_STAT_VER, __path, __statbuf);
 }
 # endif
 
-extern __inline__ int fstat (int __fd, struct stat *__statbuf)
+extern __inline__ int fstat __P ((int __fd, struct stat *__statbuf))
 {
   return __fxstat (_STAT_VER, __fd, __statbuf);
 }
 
 # if defined __USE_MISC || defined __USE_BSD
-extern __inline__ int mknod (__const char *__path, __mode_t __mode,
-			     __dev_t __dev)
+extern __inline__ int mknod __P ((__const char *__path, __mode_t __mode,
+				  __dev_t __dev))
 {
   return __xmknod (_MKNOD_VER, __path, __mode, &__dev);
 }
 # endif
 
 # ifdef __USE_LARGEFILE64
-extern __inline__ int stat64 (__const char *__path, struct stat64 *__statbuf)
+extern __inline__ int stat64 __P ((__const char *__path,
+				   struct stat64 *__statbuf))
 {
   return __xstat64 (_STAT_VER, __path, __statbuf);
 }
 
 #  if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
-extern __inline__ int lstat64 (__const char *__path, struct stat64 *__statbuf)
+extern __inline__ int lstat64 __P ((__const char *__path,
+				    struct stat64 *__statbuf))
 {
   return __lxstat64 (_STAT_VER, __path, __statbuf);
 }
 #  endif
 
-extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf)
+extern __inline__ int fstat64 __P ((int __fd, struct stat64 *__statbuf))
 {
   return __fxstat64 (_STAT_VER, __fd, __statbuf);
 }
diff --git a/linuxthreads/semaphore.h b/linuxthreads/semaphore.h
index 0740962902..fe2b451e07 100644
--- a/linuxthreads/semaphore.h
+++ b/linuxthreads/semaphore.h
@@ -16,6 +16,7 @@
 #define _SEMAPHORE_H    1
 
 #include <features.h>
+#include <sys/types.h>
 
 #include <limits.h>
 
diff --git a/malloc/obstack.c b/malloc/obstack.c
index a192441a49..76b7a95cd4 100644
--- a/malloc/obstack.c
+++ b/malloc/obstack.c
@@ -78,7 +78,9 @@ union fooround {long x; double d;};
 
 /* The functions allocating more room by calling `obstack_chunk_alloc'
    jump to the handler pointed to by `obstack_alloc_failed_handler'.
-   This variable by default points to the internal function
+   This can be set to a user defined function which should either
+   abort gracefully or use longjump - but shouldn't return.  This
+   variable by default points to the internal function
    `print_and_abort'.  */
 #if defined (__STDC__) && __STDC__
 static void print_and_abort (void);
@@ -142,9 +144,8 @@ struct obstack *_obstack;
    CHUNKFUN is the function to use to allocate chunks,
    and FREEFUN the function to free them.
 
-   Return nonzero if successful, zero if out of memory.
-   To recover from an out of memory error,
-   free up some memory, then call this again.  */
+   Return nonzero if successful, calls obstack_alloc_failed_handler if
+   allocation fails.  */
 
 int
 _obstack_begin (h, size, alignment, chunkfun, freefun)
diff --git a/malloc/obstack.h b/malloc/obstack.h
index edbcd264df..beb548ecd2 100644
--- a/malloc/obstack.h
+++ b/malloc/obstack.h
@@ -254,8 +254,9 @@ int obstack_memory_used (struct obstack *obstack);
    so we do not declare them.  */
 
 /* Error handler called when `obstack_chunk_alloc' failed to allocate
-   more memory.  This can be set to a user defined function.  The
-   default action is to print a message and abort.  */
+   more memory.  This can be set to a user defined function which
+   should either abort gracefully or use longjump - but shouldn't
+   return.  The default action is to print a message and abort.  */
 #if defined __STDC__ && __STDC__
 extern void (*obstack_alloc_failed_handler) (void);
 #else
diff --git a/misc/sgtty.h b/misc/sgtty.h
index 86e15b0afc..02bbb18665 100644
--- a/misc/sgtty.h
+++ b/misc/sgtty.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1996 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1992, 1996, 1998 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,7 +17,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #ifndef	_SGTTY_H
-#define	_SGTYY_H	1
+#define	_SGTTY_H	1
 
 #include <features.h>
 
diff --git a/misc/sys/cdefs.h b/misc/sys/cdefs.h
index 12dfffb431..964b9dfeb9 100644
--- a/misc/sys/cdefs.h
+++ b/misc/sys/cdefs.h
@@ -141,6 +141,16 @@
 
 #endif
 
+/* It is possible to compile containing GCC extensions even if GCC is
+   run in pedantic mode if the uses are carefully marked using the
+   `__extension__' keyword.  But this is not generally available before
+   version 2.8.  */
+#if !defined __GNUC__ || __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
+
+# define __extension__		/* Ignore */
+
+#endif
+
 /* No current version of gcc knows the `restrict' keyword.  Define it
    for now unconditionally to the empty string.  */
 #define __restrict
diff --git a/sysdeps/arm/bits/huge_val.h b/sysdeps/arm/bits/huge_val.h
new file mode 100644
index 0000000000..0e07bd56cc
--- /dev/null
+++ b/sysdeps/arm/bits/huge_val.h
@@ -0,0 +1,88 @@
+/* `HUGE_VAL' constants for IEEE 754 machines (where it is infinity).
+   Used by <stdlib.h> and <math.h> functions for overflow.
+   ARM version.
+   Copyright (C) 1992, 1995, 1996, 1997, 1998 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 _MATH_H
+# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
+#endif
+
+#include <features.h>
+
+/* IEEE positive infinity (-HUGE_VAL is negative infinity).  */
+
+#ifdef	__GNUC__
+
+# define HUGE_VAL \
+  (__extension__							      \
+   ((union { unsigned __l __attribute__((__mode__(__DI__))); double __d; })   \
+    { __l: 0x000000007ff00000ULL }).__d)
+
+#else /* not GCC */
+
+# include <endian.h>
+
+typedef union { unsigned char __c[8]; double __d; } __huge_val_t;
+
+# if __BYTE_ORDER == __BIG_ENDIAN
+#  define __HUGE_VAL_bytes	{ 0, 0, 0, 0, 0x7f, 0xf0, 0, 0 }
+# endif
+# if __BYTE_ORDER == __LITTLE_ENDIAN
+#  define __HUGE_VAL_bytes	{ 0, 0, 0xf0, 0x7f, 0, 0, 0, 0 }
+# endif
+
+static __huge_val_t __huge_val = { __HUGE_VAL_bytes };
+# define HUGE_VAL	(__huge_val.__d)
+
+#endif	/* GCC.  */
+
+
+/* ISO C 9X extensions: (float) HUGE_VALF and (long double) HUGE_VALL.  */
+
+#ifdef __USE_ISOC9X
+
+# ifdef __GNUC__
+
+#  define HUGE_VALF \
+  (__extension__							      \
+   ((union { unsigned __l __attribute__((__mode__(__SI__))); float __d; })    \
+    { __l: 0x7f800000UL }).__d)
+
+# else /* not GCC */
+
+typedef union { unsigned char __c[4]; float __f; } __huge_valf_t;
+
+#  if __BYTE_ORDER == __BIG_ENDIAN
+#   define __HUGE_VALF_bytes	{ 0x7f, 0x80, 0, 0 }
+#  endif
+#  if __BYTE_ORDER == __LITTLE_ENDIAN
+#   define __HUGE_VALF_bytes	{ 0, 0, 0x80, 0x7f }
+#  endif
+
+static __huge_valf_t __huge_valf = { __HUGE_VALF_bytes };
+#  define HUGE_VALF	(__huge_valf.__f)
+
+# endif	/* GCC.  */
+
+
+/* Generally there is no separate `long double' format and it is the
+   same as `double'.  */
+# define HUGE_VALL HUGE_VAL
+
+#endif /* __USE_ISOC9X.  */
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index b0f364f8ff..66ab4c6de2 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -315,7 +315,7 @@ _dl_start_user:
 	.word	_dl_fini(GOT)
 .L_STACK_END:
 	.word	__libc_stack_end(GOT)
-.L_MAIN_SEARCHLIST
+.L_MAIN_SEARCHLIST:
 	.word	_dl_main_searchlist(GOT)
 .previous\n\
 ");
diff --git a/sysdeps/posix/getcwd.c b/sysdeps/posix/getcwd.c
index 551fa7241e..7de5fd3a75 100644
--- a/sysdeps/posix/getcwd.c
+++ b/sysdeps/posix/getcwd.c
@@ -369,17 +369,19 @@ __getcwd (buf, size)
 		}
 	      else
 		{
+		  char *tmp;
+
 		  size *= 2;
-		  buf = realloc (path, size);
-		  if (buf == NULL)
+		  tmp = realloc (path, size);
+		  if (tmp == NULL)
 		    {
 		      (void) __closedir (dirstream);
 		      free (path);
 		      __set_errno (ENOMEM);/* closedir might have changed it.*/
 		      goto lose;
 		    }
-		  pathp = &buf[pathp - path + size / 2];
-		  path = buf;
+		  pathp = &tmp[pathp - path + size / 2];
+		  path = tmp;
 		  /* Move current contents up to the end of the buffer.
 		     This is guaranteed to be non-overlapping.  */
 		  memcpy (pathp, pathp - size / 2, path + size - pathp);
diff --git a/sysdeps/unix/sysv/linux/sys/acct.h b/sysdeps/unix/sysv/linux/sys/acct.h
index 0b16d249af..bc203a2d11 100644
--- a/sysdeps/unix/sysv/linux/sys/acct.h
+++ b/sysdeps/unix/sysv/linux/sys/acct.h
@@ -23,36 +23,47 @@
 
 #define	__need_time_t
 #include <time.h>
-
+#include <sys/types.h>
 
 __BEGIN_DECLS
 
 #define ACCT_COMM 16
 
+/*
+  comp_t is a 16-bit "floating" point number with a 3-bit base 8
+  exponent and a 13-bit fraction. See linux/kernel/acct.c for the
+  specific encoding system used.
+*/
+
+typedef u_int16_t comp_t;
+
 struct acct
   {
-    char ac_comm[ACCT_COMM];		/* Accounting command name.  */
-    time_t ac_utime;			/* Accounting user time.  */
-    time_t ac_stime;			/* Accounting system time.  */
-    time_t ac_etime;			/* Accounting elapsed time.  */
-    time_t ac_btime;			/* Beginning time.  */
-    unsigned short int ac_uid;		/* Accounting user ID.  */
-    unsigned short int ac_gid;		/* Accounting group ID.  */
-    unsigned short int ac_tty;		/* Controlling tty.  */
-    /* Please note that the value of the `ac_tty' field, a device number,
-       is encoded differently in the kernel and for the libc dev_t type.  */
-    char ac_flag;			/* Accounting flag.  */
-    long int ac_minflt;			/* Accounting minor pagefaults.  */
-    long int ac_majflt;			/* Accounting major pagefaults.  */
-    long int ac_exitcode;		/* Accounting process exitcode.  */
+    char ac_flag;			/* Accounting flags.  */
+    u_int16_t ac_uid;			/* Accounting user ID.  */
+    u_int16_t ac_gid;			/* Accounting group ID.  */
+    u_int16_t ac_tty;			/* Controlling tty.  */
+    u_int32_t ac_btime;			/* Beginning time.  */
+    comp_t ac_utime;			/* Accounting user time.  */
+    comp_t ac_stime;			/* Accounting system time.  */
+    comp_t ac_etime;			/* Accounting elapsed time.  */
+    comp_t ac_mem;			/* Accounting average memory usage.  */
+    comp_t ac_io;			/* Accounting chars transferred.  */
+    comp_t ac_rw;			/* Accounting blocks read or written.  */
+    comp_t ac_minflt;			/* Accounting minor pagefaults.  */
+    comp_t ac_majflt;			/* Accounting major pagefaults.  */
+    comp_t ac_swaps;			/* Accounting number of swaps.  */
+    u_int32_t ac_exitcode;		/* Accounting process exitcode.  */
+    char ac_comm[ACCT_COMM+1];		/* Accounting command name.  */
+    char ac_pad[10];			/* Accounting padding bytes.  */
   };
 
 enum
   {
-    AFORK = 0001,		/* Has executed fork, but no exec.  */
-    ASU = 0002,			/* Used super-user privileges.  */
-    ACORE = 0004,		/* Dumped core.  */
-    AXSIG = 0010		/* Killed by a signal.  */
+    AFORK = 0x01,		/* Has executed fork, but no exec.  */
+    ASU = 0x02,			/* Used super-user privileges.  */
+    ACORE = 0x08,		/* Dumped core.  */
+    AXSIG = 0x10		/* Killed by a signal.  */
   };
 
 #define AHZ     100
diff --git a/sysdeps/unix/sysv/linux/sys/ptrace.h b/sysdeps/unix/sysv/linux/sys/ptrace.h
index 33beb50b72..6c5d580d7b 100644
--- a/sysdeps/unix/sysv/linux/sys/ptrace.h
+++ b/sysdeps/unix/sysv/linux/sys/ptrace.h
@@ -18,8 +18,8 @@
    Boston, MA 02111-1307, USA.  */
 
 #ifndef _SYS_PTRACE_H
-
 #define _SYS_PTRACE_H	1
+
 #include <features.h>
 
 __BEGIN_DECLS
@@ -100,6 +100,7 @@ enum __ptrace_request
 
   /* Continue and stop at the next (return from) syscall.  */
   PTRACE_SYSCALL = 24,
+#define PTRACE_SYSCALL PTRACE_SYSCALL
 };
 
 /* Perform process tracing functions.  REQUEST is one of the values
diff --git a/sysdeps/unix/sysv/linux/sys/quota.h b/sysdeps/unix/sysv/linux/sys/quota.h
index bcbbfa5ddb..3ea52b0393 100644
--- a/sysdeps/unix/sysv/linux/sys/quota.h
+++ b/sysdeps/unix/sysv/linux/sys/quota.h
@@ -106,6 +106,7 @@
 #define Q_SYNC     0x0600	/* sync disk copy of a filesystems quotas */
 #define Q_SETQLIM  0x0700	/* set limits */
 #define Q_GETSTATS 0x0800	/* get collected stats */
+#define Q_RSQUASH  0x1000	/* set root_squash option */
 
 /*
  * The following structure defines the format of the disk quota file
diff --git a/sysdeps/unix/sysv/linux/sys/reboot.h b/sysdeps/unix/sysv/linux/sys/reboot.h
index 4d249aaaaa..dd7a71b4c6 100644
--- a/sysdeps/unix/sysv/linux/sys/reboot.h
+++ b/sysdeps/unix/sysv/linux/sys/reboot.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998 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,8 +20,8 @@
    bits in the argument to the `reboot' system call.  */
 
 #ifndef _SYS_REBOOT_H
-
 #define _SYS_REBOOT_H	1
+
 #include <features.h>
 
 /* Perform a hard reset now.  */
@@ -36,6 +36,9 @@
 /* Disable reboot using Ctrl-Alt-Delete keystroke.  */
 #define RB_DISABLE_CAD	0
 
+/* Stop system and switch power off if possible.  */
+#define RB_POWER_OFF	0x4321fedc
+
 __BEGIN_DECLS
 
 /* Reboot or halt the system.  */
diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h
index 13921eadc6..e84c365206 100644
--- a/sysdeps/unix/sysv/linux/sys/swap.h
+++ b/sysdeps/unix/sysv/linux/sys/swap.h
@@ -1,5 +1,5 @@
 /* Calls to enable and disable swapping on specified locations.  Linux version.
-   Copyright (C) 1996 Free Software Foundation, Inc.
+   Copyright (C) 1996, 1998 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,8 +22,12 @@
 #define _SYS_SWAP_H	1
 #include <features.h>
 
-/* Get constants from kernel headers.  */
-#include <linux/swap.h>
+/* The swap priority is encoded as:
+   (prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK
+*/
+#define	SWAP_FLAG_PREFER	0x8000	/* Set if swap priority is specified. */
+#define	SWAP_FLAG_PRIO_MASK	0x7fff
+#define	SWAP_FLAG_PRIO_SHIFT	0
 
 __BEGIN_DECLS