]> sourceware.org Git - glibc.git/commitdiff
Update.
authorUlrich Drepper <drepper@redhat.com>
Sun, 28 Mar 2004 10:55:26 +0000 (10:55 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sun, 28 Mar 2004 10:55:26 +0000 (10:55 +0000)
2004-03-28  Ulrich Drepper  <drepper@redhat.com>

* sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Handle
_SC_SIGQUEUE_MAX.

ChangeLog
sysdeps/unix/sysv/linux/sysconf.c

index c5a8c575078d880a7005405fec4d2ffc09995607..d249c8fe03529bbdb109829cbc04284f009c0ee5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-03-28  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sysconf.c (__sysconf): Handle
+       _SC_SIGQUEUE_MAX.
+
 2004-03-26  Ulrich Drepper  <drepper@redhat.com>
 
        * elf/dl-caller.c: New file.
index 6fae5590f590bc19a7d1a0405a797b67599803e7..de07e8062f9fc6637876fea3703169f3044cda40 100644 (file)
@@ -32,6 +32,8 @@ static long int posix_sysconf (int name);
 long int
 __sysconf (int name)
 {
+  const char *procfname = NULL;
+
   switch (name)
     {
 #ifdef __NR_clock_getres
@@ -47,37 +49,44 @@ __sysconf (int name)
 #endif
 
     case _SC_NGROUPS_MAX:
-      {
-       /* Try to read the information from the /proc/sys/kernel/ngroups_max
-          file.  */
-       int fd = open_not_cancel_2 ("/proc/sys/kernel/ngroups_max", O_RDONLY);
-       if (fd != -1)
-         {
-           /* This is more than enough, the file contains a single
-              integer.  */
-           char buf[32];
-           ssize_t n;
-           n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf,
-                                                    sizeof (buf) - 1));
-           close_not_cancel_no_status (fd);
-
-           if (n > 0)
-             {
-               /* Terminate the string.  */
-               buf[n] = '\0';
-
-               char *endp;
-               long int res = strtol (buf, &endp, 10);
-               if (endp != buf && (*endp == '\0' || *endp == '\n'))
-                 return res;
-             }
-         }
-      }
+      /* Try to read the information from the /proc/sys/kernel/ngroups_max
+        file.  */
+      procfname = "/proc/sys/kernel/ngroups_max";
+      break;
+
+    case _SC_SIGQUEUE_MAX:
+      /* The /proc/sys/kernel/rtsig-max file contains the answer.  */
+      procfname = "/proc/sys/kernel/rtsig-max";
       break;
 
     default:
       break;
     }
+
+  if (procfname != NULL)
+    {
+      int fd = open_not_cancel_2 (procfname, O_RDONLY);
+      if (fd != -1)
+       {
+         /* This is more than enough, the file contains a single integer.  */
+         char buf[32];
+         ssize_t n;
+         n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, sizeof (buf) - 1));
+         close_not_cancel_no_status (fd);
+
+         if (n > 0)
+           {
+             /* Terminate the string.  */
+             buf[n] = '\0';
+
+             char *endp;
+             long int res = strtol (buf, &endp, 10);
+             if (endp != buf && (*endp == '\0' || *endp == '\n'))
+               return res;
+           }
+       }
+    }
+
   return posix_sysconf (name);
 }
 
This page took 0.060836 seconds and 5 git commands to generate.