update from main archive 961030
authordrepper <drepper>
Thu, 31 Oct 1996 02:53:40 +0000 (02:53 +0000)
committerdrepper <drepper>
Thu, 31 Oct 1996 02:53:40 +0000 (02:53 +0000)
resource/sys/resource.h
setjmp/setjmp.h
shadow/fgetspent.c
shadow/fgetspent_r.c
shadow/sgetspent.c
shadow/sgetspent_r.c
shadow/shadow.h
signal/Makefile
signal/signal.h

index 3d0e5a9..aa8e665 100644 (file)
@@ -23,20 +23,9 @@ Cambridge, MA 02139, USA.  */
 
 __BEGIN_DECLS
 
-/* Get the system-dependent definitions of RLIM_*.  */
+/* Get the system-dependent definitions of structures and bit values.  */
 #include <resourcebits.h>
 
-struct rlimit
-  {
-    /* The current (soft) limit.  */
-    int rlim_cur;
-    /* The hard limit.  */
-    int rlim_max;
-  };
-
-/* Value used to indicate that there is no limit.  */
-#define RLIM_INFINITY 0x7fffffff
-
 /* Put the soft and hard limits for RESOURCE in *RLIMITS.
    Returns 0 if successful, -1 if not (and sets errno).  */
 extern int __getrlimit __P ((enum __rlimit_resource __resource,
@@ -50,66 +39,6 @@ extern int getrlimit __P ((enum __rlimit_resource __resource,
 extern int setrlimit __P ((enum __rlimit_resource __resource,
                           struct rlimit *__rlimits));
 
-
-/* Whose usage statistics do you want?  */
-enum __rusage_who
-/* The macro definitions are necessary because some programs want
-   to test for operating system features with #ifdef RUSAGE_SELF.
-   In ANSI C the reflexive definition is a no-op.  */
-  {
-    /* 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
-  };
-
-#include <sys/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 ru_maxrss;
-    /* Amount of sharing of text segment memory
-       with other processes (kilobyte-seconds).  */
-    long ru_ixrss;
-    /* Amount of data segment memory used (kilobyte-seconds).  */
-    long ru_idrss;
-    /* Amount of stack memory used (kilobyte-seconds).  */
-    long ru_isrss;
-    /* Number of soft page faults (i.e. those serviced by reclaiming
-       a page from the list of pages awaiting reallocation.  */
-    long ru_minflt;
-    /* Number of hard page faults (i.e. those that required I/O).  */
-    long ru_majflt;
-    /* Number of times a process was swapped out of physical memory.  */
-    long ru_nswap;
-    /* Number of input operations via the file system.  Note: This
-       and `ru_oublock' do not include operations with the cache.  */
-    long ru_inblock;
-    /* Number of output operations via the file system.  */
-    long ru_oublock;
-    /* Number of IPC messages sent.  */
-    long ru_msgsnd;
-    /* Number of IPC messages received.  */
-    long ru_msgrcv;
-    /* Number of signals delivered.  */
-    long 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 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 ru_nivcsw;
-  };
-
 /* Return resource usage information on process indicated by WHO
    and put it in *USAGE.  Returns 0 for success, -1 for failure.  */
 extern int __getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
@@ -125,20 +54,6 @@ extern int getrusage __P ((enum __rusage_who __who, struct rusage *__usage));
 extern long int __ulimit __P ((int __cmd, long int __newlimit));
 extern long int ulimit __P ((int __cmd, long int __newlimit));
 
-
-/* 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.  */
-    PRIO_PGRP = 1,             /* WHO is a process group ID.  */
-    PRIO_USER = 2              /* WHO is a user ID.  */
-  };
-
 /* Return the highest priority of any process specified by WHICH and WHO
    (see above); if WHO is zero, the current process, process group, or user
    (as specified by WHO) is used.  A lower priority number means higher
index 8207cdf..75abb18 100644 (file)
@@ -1,23 +1,23 @@
 /* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-This file is part of the GNU C Library.
+   This file is part of the GNU C Library.
 
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public License as
+   published by the Free Software Foundation; either version 2 of the
+   License, or (at your option) any later version.
 
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-Library General Public License for more details.
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
 
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB.  If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA.  */
+   You should have received a copy of the GNU Library General Public
+   License along with the GNU C Library; see the file COPYING.LIB.  If not,
+   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /*
- *     ANSI Standard: 4.6 NON-LOCAL JUMPS <setjmp.h>
+ *     ISO C Standard: 4.6 NON-LOCAL JUMPS     <setjmp.h>
  */
 
 #ifndef        _SETJMP_H
index d6c4e4f..8782b6b 100644 (file)
@@ -25,7 +25,9 @@ struct spwd *
 fgetspent (FILE *stream)
 {
   static char buffer[BUFSIZ];
-  static struct spwd result;
+  static struct spwd resbuf;
+  struct spwd *result;
 
-  return __fgetspent_r (stream, &result, buffer, sizeof buffer);
+  return __fgetspent_r (stream, &resbuf, buffer, sizeof buffer, &result)
+    ? NULL : result;
 }
index 6521517..0cdcc76 100644 (file)
@@ -32,8 +32,9 @@ struct spent_data {};
 
 
 /* Read one shadow entry from the given stream.  */
-struct spwd *
-__fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
+int
+__fgetspent_r (FILE *stream, struct spwd *resbuf, char *buffer, size_t buflen,
+              struct spwd **result)
 {
   char *p;
 
@@ -41,7 +42,7 @@ __fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
     {
       p = fgets (buffer, buflen, stream);
       if (p == NULL)
-       return NULL;
+       return errno;
 
       /* Skip leading blanks.  */
       while (isspace (*p))
@@ -49,8 +50,9 @@ __fgetspent_r (FILE *stream, struct spwd *result, char *buffer, int buflen)
     } while (*p == '\0' || *p == '#' ||        /* Ignore empty and comment lines.  */
             /* Parse the line.  If it is invalid, loop to
                get the next line of the file to parse.  */
-            ! parse_line (buffer, (void *) result, NULL, 0));
+            ! parse_line (buffer, (void *) resbuf, NULL, 0));
 
-  return result;
+  *result = resbuf;
+  return 0;
 }
 weak_alias (__fgetspent_r, fgetspent_r)
index a3c61f9..d18e5d7 100644 (file)
@@ -28,9 +28,10 @@ Cambridge, MA 02139, USA.  */
 struct spwd *
 sgetspent (const char *string)
 {
-  static struct spwd result;
+  static struct spwd resbuf;
   static int max_size = 0;
   static char *buffer = NULL;
+  struct spwd *result;
   int len;
 
   len = strlen (string) + 1;
@@ -42,5 +43,6 @@ sgetspent (const char *string)
        return NULL;
     }
 
-  return __sgetspent_r (string, &result, buffer, max_size);
+  return __sgetspent_r (string, &resbuf, buffer, max_size, &result)
+    ? NULL : result;
 }
index 407886e..5270a2a 100644 (file)
@@ -68,11 +68,13 @@ LINE_PARSER
 
 
 /* Read one shadow entry from the given stream.  */
-struct spwd *
-__sgetspent_r (const char *string, struct spwd *result, char *buffer,
-              int buflen)
+int
+__sgetspent_r (const char *string, struct spwd *resbuf, char *buffer,
+              size_t buflen, struct spwd **result)
 {
-  return parse_line (strncpy (buffer, string, buflen), result, NULL, 0)
-    ? result : NULL;
+  *result = parse_line (strncpy (buffer, string, buflen), resbuf, NULL, 0)
+    ? resbuf : NULL;
+
+  return *result == NULL ? errno : 0;
 }
 weak_alias (__sgetspent_r, sgetspent_r)
index 133cfd6..c27cc9a 100644 (file)
@@ -74,31 +74,31 @@ extern int putspent __P ((__const struct spwd *__p, FILE *__stream));
 
 #ifdef __USE_REENTRANT
 /* Reentrant versions of some of the functions above.  */
-extern struct spwd *__getspent_r __P ((struct spwd *__result_buf,
-                                      char *__buffer, int __buflen));
-extern struct spwd *getspent_r __P ((struct spwd *__result_buf,
-                                    char *__buffer, int __buflen));
-
-extern struct spwd *__getspnam_r __P ((__const char *__name,
-                                      struct spwd *__result_buf,
-                                      char *__buffer, int __buflen));
-extern struct spwd *getspnam_r __P ((__const char *__name,
-                                    struct spwd *__result_buf,
-                                    char *__buffer, int __buflen));
-
-extern struct spwd *__sgetspent_r __P ((__const char *__string,
-                                       struct spwd *__result_buf,
-                                       char *__buffer, int __buflen));
-extern struct spwd *sgetspent_r __P ((__const char *__string,
-                                     struct spwd *__result_buf,
-                                     char *__buffer, int __buflen));
-
-extern struct spwd *__fgetspent_r __P ((FILE *__stream,
-                                       struct spwd *__result_buf,
-                                       char *__buffer, int __buflen));
-extern struct spwd *fgetspent_r __P ((FILE *__stream,
-                                     struct spwd *__result_buf,
-                                     char *__buffer, int __buflen));
+extern int __getspent_r __P ((struct spwd *__result_buf, char *__buffer,
+                             size_t __buflen, struct spwd **__result));
+extern int getspent_r __P ((struct spwd *__result_buf, char *__buffer,
+                           size_t __buflen, struct spwd **__result));
+
+extern int __getspnam_r __P ((__const char *__name, struct spwd *__result_buf,
+                             char *__buffer, size_t __buflen,
+                             struct spwd **__result));
+extern int getspnam_r __P ((__const char *__name, struct spwd *__result_buf,
+                           char *__buffer, size_t __buflen,
+                           struct spwd **__result));
+
+extern int __sgetspent_r __P ((__const char *__string,
+                              struct spwd *__result_buf, char *__buffer,
+                              size_t __buflen, struct spwd **__result));
+extern int sgetspent_r __P ((__const char *__string, struct spwd *__result_buf,
+                            char *__buffer, size_t __buflen,
+                            struct spwd **__result));
+
+extern int __fgetspent_r __P ((FILE *__stream, struct spwd *__result_buf,
+                              char *__buffer, size_t __buflen,
+                              struct spwd **__result));
+extern int fgetspent_r __P ((FILE *__stream, struct spwd *__result_buf,
+                            char *__buffer, size_t __buflen,
+                            struct spwd **__result));
 #endif /* reentrant */
 
 
index 6957953..d333738 100644 (file)
@@ -25,7 +25,7 @@ headers       := signal.h sys/signal.h signum.h sigcontext.h sigaction.h sigset.h
 
 routines       := signal raise killpg \
                   sigaction sigprocmask kill \
-                  sigpending sigsuspend \
+                  sigpending sigsuspend sigwait \
                   sigblock sigsetmask sigpause sigvec \
                   sigstack sigaltstack sigintr \
                   sigsetops sigempty sigfillset sigaddset sigdelset sigismem \
index 402d15e..f7b2d13 100644 (file)
@@ -177,6 +177,11 @@ extern int sigaction __P ((int __sig, __const struct sigaction *__act,
 /* Put in SET all signals that are blocked and waiting to be delivered.  */
 extern int sigpending __P ((sigset_t *__set));
 
+
+/* Select any of pending signals from SET or wait for any to arrive.  */
+extern int __sigwait __P ((__const sigset_t *__set, int *__sig));
+extern int sigwait __P ((__const sigset_t *__set, int *__sig));
+
 #endif /* <signal.h> included.  */
 
 #endif /* Use POSIX.  */