Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
glibc/sysdeps/unix/sysv/sysv4/sysconf.c
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
366 lines (310 sloc)
6.21 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* Copyright (C) 1993, 1995, 1996, 1997, 2002 Free Software Foundation, Inc. | |
This file is part of the GNU C Library. | |
Contributed by Brendan Kehoe (brendan@zen.org). | |
The GNU C Library is free software; you can redistribute it and/or | |
modify it under the terms of the GNU Lesser General Public | |
License as published by the Free Software Foundation; either | |
version 2.1 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 | |
Lesser General Public License for more details. | |
You should have received a copy of the GNU Lesser General Public | |
License along with the GNU C Library; if not, write to the Free | |
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA | |
02111-1307 USA. */ | |
#include <errno.h> | |
#include <limits.h> | |
#include <unistd.h> | |
#include <stdio.h> | |
#include <time.h> | |
#include <sysconfig.h> | |
extern int __sysconfig __P ((int)); | |
/* Get the value of the system variable NAME. */ | |
long int | |
__sysconf (name) | |
int name; | |
{ | |
switch (name) | |
{ | |
default: | |
__set_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_REALTIME_SIGNALS: | |
#ifdef _POSIX_REALTIME_SIGNALS | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_PRIORITY_SCHEDULING: | |
#ifdef _POSIX_PRIORITY_SCHEDULING | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_TIMERS: | |
#ifdef _POSIX_TIMERS | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_ASYNCHRONOUS_IO: | |
#ifdef _POSIX_ASYNCHRONOUS_IO | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_PRIORITIZED_IO: | |
#ifdef _POSIX_PRIORITIZED_IO | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_SYNCHRONIZED_IO: | |
#ifdef _POSIX_SYNCHRONIZED_IO | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_FSYNC: | |
#ifdef _POSIX_FSYNC | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_MAPPED_FILES: | |
#ifdef _POSIX_MAPPED_FILES | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_MEMLOCK: | |
#ifdef _POSIX_MEMLOCK | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_MEMLOCK_RANGE: | |
#ifdef _POSIX_MEMLOCK_RANGE | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_MEMORY_PROTECTION: | |
#ifdef _POSIX_MEMORY_PROTECTION | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_MESSAGE_PASSING: | |
#ifdef _POSIX_MESSAGE_PASSING | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_SEMAPHORES: | |
#ifdef _POSIX_SEMAPHORES | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_SHARED_MEMORY_OBJECTS: | |
#ifdef _POSIX_SHARED_MEMORY_OBJECTS | |
return 1; | |
#else | |
return -1; | |
#endif | |
case _SC_VERSION: | |
return _POSIX_VERSION; | |
case _SC_PAGESIZE: | |
return __sysconfig (_CONFIG_PAGESIZE); | |
case _SC_AIO_LISTIO_MAX: | |
#ifdef AIO_LISTIO_MAX | |
return AIO_LISTIO_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_AIO_MAX: | |
#ifdef AIO_MAX | |
return AIO_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_AIO_PRIO_DELTA_MAX: | |
#ifdef AIO_PRIO_DELTA_MAX | |
return AIO_PRIO_DELTA_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_DELAYTIMER_MAX: | |
#ifdef DELAYTIMER_MAX | |
return DELAYTIMER_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_MQ_OPEN_MAX: | |
#ifdef MQ_OPEN_MAX | |
return MQ_OPEN_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_MQ_PRIO_MAX: | |
#ifdef MQ_PRIO_MAX | |
return MQ_PRIO_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_RTSIG_MAX: | |
#ifdef RTSIG_MAX | |
return RTSIG_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_SEM_NSEMS_MAX: | |
#ifdef SEM_NSEMS_MAX | |
return SEM_NSEMS_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_SEM_VALUE_MAX: | |
#ifdef SEM_VALUE_MAX | |
return SEM_VALUE_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_SIGQUEUE_MAX: | |
#ifdef SIGQUEUE_MAX | |
return SIGQUEUE_MAX; | |
#else | |
return -1; | |
#endif | |
case _SC_TIMER_MAX: | |
#ifdef TIMER_MAX | |
return TIMER_MAX; | |
#else | |
return -1; | |
#endif | |
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_CHARCLASS_NAME_MAX: | |
#ifdef CHARCLASS_NAME_MAX | |
return CHARCLASS_NAME_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 | |
} | |
} | |
weak_alias (__sysconf, sysconf) | |
libc_hidden_def (__sysconf) |