~ubuntu-branches/ubuntu/precise/eglibc/precise-201308281639

« back to all changes in this revision

Viewing changes to ports/sysdeps/unix/bsd/ultrix4/sysconf.c

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2012-02-08 01:58:09 UTC
  • mfrom: (1.5.3) (288.1.12 precise)
  • Revision ID: package-import@ubuntu.com-20120208015809-ulscst7uteq3e22z
Tags: 2.15~pre6-0ubuntu10
Merge from Debian (r5151, 2.13-26).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Copyright (C) 1992, 1995, 1996, 1997, 2004 Free Software Foundation, Inc.
2
 
   This file is part of the GNU C Library.
3
 
   Contributed by Ian Lance Taylor (ian@airs.com).
4
 
 
5
 
   The GNU C Library is free software; you can redistribute it and/or
6
 
   modify it under the terms of the GNU Lesser General Public
7
 
   License as published by the Free Software Foundation; either
8
 
   version 2.1 of the License, or (at your option) any later version.
9
 
 
10
 
   The GNU C Library is distributed in the hope that it will be useful,
11
 
   but WITHOUT ANY WARRANTY; without even the implied warranty of
12
 
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
 
   Lesser General Public License for more details.
14
 
 
15
 
   You should have received a copy of the GNU Lesser General Public
16
 
   License along with the GNU C Library; if not, write to the Free
17
 
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18
 
   02111-1307 USA.  */
19
 
 
20
 
/* On Ultrix we can use the getsysinfo call to get the right return
21
 
   value for _SC_CHILD_MAX.  Everything else is from <sys/param.h>,
22
 
   which the default sysconf already knows how to handle.  */
23
 
 
24
 
#include <unistd.h>
25
 
#include <errno.h>
26
 
 
27
 
/* This is an Ultrix header file.  */
28
 
#include <sys/sysinfo.h>
29
 
 
30
 
extern int __getsysinfo (unsigned int op, void *buffer,
31
 
                         size_t nbytes, int *start, void *arg);
32
 
extern long int __default_sysconf (int name);
33
 
 
34
 
long int
35
 
__sysconf (name)
36
 
     int name;
37
 
{
38
 
  if (name == _SC_CHILD_MAX)
39
 
    {
40
 
      int save = errno;
41
 
      int start = 0;
42
 
      int ret;
43
 
 
44
 
      /* getsysinfo returns the number of values it put into the
45
 
         buffer, or 0 if not available, or -1 on error.  */
46
 
      if (__getsysinfo (GSI_MAX_UPROCS, &ret, sizeof (ret), &start,
47
 
                        (void *) 0) > 0)
48
 
        {
49
 
          __set_errno (save);
50
 
          return ret;
51
 
        }
52
 
 
53
 
      __set_errno (save);
54
 
    }
55
 
 
56
 
  return __default_sysconf (name);
57
 
}
58
 
 
59
 
#define __sysconf __default_sysconf
60
 
 
61
 
#include <sysdeps/posix/sysconf.c>