mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
Initial revision
This commit is contained in:
parent
abf73d69f8
commit
9ad31f91ba
179
sysdeps/unix/sysv/sysv4/sysconf.c
Normal file
179
sysdeps/unix/sysv/sysv4/sysconf.c
Normal file
@ -0,0 +1,179 @@
|
||||
/* Copyright (C) 1993 Free Software Foundation, Inc.
|
||||
Contributed by Brendan Kehoe (brendan@cygnus.com).
|
||||
|
||||
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., 675 Mass Ave,
|
||||
Cambridge, MA 02139, USA. */
|
||||
|
||||
#include <ansidecl.h>
|
||||
#include <errno.h>
|
||||
#include <limits.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <time.h>
|
||||
#include <sysconfig.h>
|
||||
|
||||
extern int EXFUN(__sysconfig, (int));
|
||||
|
||||
/* Get the value of the system variable NAME. */
|
||||
long int
|
||||
DEFUN(__sysconf, (name), int name)
|
||||
{
|
||||
switch (name)
|
||||
{
|
||||
default:
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
|
||||
case _SC_ARG_MAX:
|
||||
#ifdef ARG_MAX
|
||||
return ARG_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_CHILD_MAX:
|
||||
#ifdef CHILD_MAX
|
||||
return CHILD_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_CLK_TCK:
|
||||
return __sysconfig (_CONFIG_CLK_TCK);
|
||||
|
||||
case _SC_NGROUPS_MAX:
|
||||
#ifdef NGROUPS_MAX
|
||||
return NGROUPS_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
/* Both of these are looking for _CONFIG_OPEN_FILES. */
|
||||
case _SC_OPEN_MAX:
|
||||
case _SC_STREAM_MAX:
|
||||
return __sysconfig (_CONFIG_OPEN_FILES);
|
||||
|
||||
case _SC_TZNAME_MAX:
|
||||
return __tzname_max ();
|
||||
|
||||
case _SC_JOB_CONTROL:
|
||||
#ifdef _POSIX_JOB_CONTROL
|
||||
return 1;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
case _SC_SAVED_IDS:
|
||||
#ifdef _POSIX_SAVED_IDS
|
||||
return 1;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
case _SC_VERSION:
|
||||
return _POSIX_VERSION;
|
||||
|
||||
case _SC_PAGESIZE:
|
||||
return __sysconfig (_CONFIG_PAGESIZE);
|
||||
|
||||
case _SC_BC_BASE_MAX:
|
||||
#ifdef BC_BASE_MAX
|
||||
return BC_BASE_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_BC_DIM_MAX:
|
||||
#ifdef BC_DIM_MAX
|
||||
return BC_DIM_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_BC_SCALE_MAX:
|
||||
#ifdef BC_SCALE_MAX
|
||||
return BC_SCALE_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_BC_STRING_MAX:
|
||||
#ifdef BC_STRING_MAX
|
||||
return BC_STRING_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_EQUIV_CLASS_MAX:
|
||||
#ifdef EQUIV_CLASS_MAX
|
||||
return EQUIV_CLASS_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_EXPR_NEST_MAX:
|
||||
#ifdef EXPR_NEST_MAX
|
||||
return EXPR_NEST_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_LINE_MAX:
|
||||
#ifdef LINE_MAX
|
||||
return LINE_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_RE_DUP_MAX:
|
||||
#ifdef RE_DUP_MAX
|
||||
return RE_DUP_MAX;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
|
||||
case _SC_2_VERSION:
|
||||
/* This is actually supposed to return the version
|
||||
of the 1003.2 utilities on the system {POSIX2_VERSION}. */
|
||||
return _POSIX2_C_VERSION;
|
||||
|
||||
case _SC_2_C_BIND:
|
||||
#ifdef _POSIX2_C_BIND
|
||||
return _POSIX2_C_BIND;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_2_C_DEV:
|
||||
#ifdef _POSIX2_C_DEV
|
||||
return _POSIX2_C_DEV;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_2_FORT_DEV:
|
||||
#ifdef _POSIX2_FORT_DEV
|
||||
return _POSIX2_FORT_DEV;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
|
||||
case _SC_2_SW_DEV:
|
||||
#ifdef _POSIX2_SW_DEV
|
||||
return _POSIX2_SW_DEV;
|
||||
#else
|
||||
return -1;
|
||||
#endif
|
||||
}
|
||||
}
|
0
sysdeps/unix/sysv/sysv4/sysconfig.h
Normal file
0
sysdeps/unix/sysv/sysv4/sysconfig.h
Normal file
Loading…
Reference in New Issue
Block a user