2005-03-15 Jakub Jelinek <jakub@redhat.com>
[glibc-ports.git] / sysdeps / unix / bsd / ultrix4 / sysconf.c
blob0982fc832db657cf052487402b0d1ca29feb35a0
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).
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.
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.
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. */
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. */
24 #include <unistd.h>
25 #include <errno.h>
27 /* This is an Ultrix header file. */
28 #include <sys/sysinfo.h>
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);
34 long int
35 __sysconf (name)
36 int name;
38 if (name == _SC_CHILD_MAX)
40 int save = errno;
41 int start = 0;
42 int ret;
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)
49 __set_errno (save);
50 return ret;
53 __set_errno (save);
56 return __default_sysconf (name);
59 #define __sysconf __default_sysconf
61 #include <sysdeps/posix/sysconf.c>