sysconf.c revision 2
4495N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4495N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4495N/A#include <nss_dbdefs.h>
4495N/A/* from nss_common.c */
4495N/A static int _stackprot = 0;
4495N/A static int _ngroups_max;
4495N/A case _SC_ARG_MAX:
4495N/A case _SC_CLK_TCK:
4495N/A case _SC_JOB_CONTROL:
4495N/A return ((long)_POSIX_JOB_CONTROL);
4495N/A case _SC_SAVED_IDS:
4495N/A return ((long)_POSIX_SAVED_IDS);
4495N/A case _SC_CHILD_MAX:
case _SC_NGROUPS_MAX:
if (_ngroups_max <= 0)
return (_ngroups_max);
case _SC_OPEN_MAX:
case _SC_VERSION:
case _SC_PAGESIZE:
if (_pagesize <= 0)
return (_pagesize);
case _SC_XOPEN_VERSION:
else if (__xpg4 == 0)
case _SC_XOPEN_XCU_VERSION:
case _SC_PASS_MAX:
return ((long)_PASS_MAX_XPG);
return ((long)_PASS_MAX);
case _SC_LOGNAME_MAX:
return ((long)LOGNAME_MAX);
case _SC_STREAM_MAX:
case _SC_TZNAME_MAX:
case _SC_NPROCESSORS_CONF:
case _SC_NPROCESSORS_ONLN:
case _SC_NPROCESSORS_MAX:
case _SC_STACK_PROT:
if (_stackprot == 0)
return (_stackprot);
* defined in <unistd.h>. Values here should align
case _SC_ASYNCHRONOUS_IO:
case _SC_FSYNC:
case _SC_MAPPED_FILES:
case _SC_MEMLOCK:
case _SC_MEMLOCK_RANGE:
case _SC_MEMORY_PROTECTION:
case _SC_MESSAGE_PASSING:
case _SC_PRIORITY_SCHEDULING:
case _SC_REALTIME_SIGNALS:
case _SC_SEMAPHORES:
case _SC_SYNCHRONIZED_IO:
case _SC_TIMERS:
case _SC_PRIORITIZED_IO:
#ifdef _POSIX_PRIORITIZED_IO
case _SC_AIO_LISTIO_MAX:
case _SC_AIO_MAX:
case _SC_AIO_PRIO_DELTA_MAX:
case _SC_DELAYTIMER_MAX:
case _SC_MQ_OPEN_MAX:
case _SC_MQ_PRIO_MAX:
case _SC_RTSIG_MAX:
case _SC_SEM_NSEMS_MAX:
case _SC_SEM_VALUE_MAX:
case _SC_SIGQUEUE_MAX:
case _SC_SIGRT_MAX:
case _SC_SIGRT_MIN:
case _SC_TIMER_MAX:
case _SC_PHYS_PAGES:
case _SC_AVPHYS_PAGES:
/* XPG4/POSIX.1-1990/POSIX.2-1992 names */
case _SC_2_C_BIND:
case _SC_2_CHAR_TERM:
return ((long)_POSIX2_CHAR_TERM);
case _SC_2_C_DEV:
case _SC_2_C_VERSION:
case _SC_2_FORT_DEV:
case _SC_2_FORT_RUN:
case _SC_2_LOCALEDEF:
case _SC_2_SW_DEV:
case _SC_2_UPE:
case _SC_2_VERSION:
case _SC_BC_BASE_MAX:
return ((long)BC_BASE_MAX);
case _SC_BC_DIM_MAX:
return ((long)BC_DIM_MAX);
case _SC_BC_SCALE_MAX:
return ((long)BC_SCALE_MAX);
case _SC_BC_STRING_MAX:
return ((long)BC_STRING_MAX);
case _SC_COLL_WEIGHTS_MAX:
return ((long)COLL_WEIGHTS_MAX);
case _SC_EXPR_NEST_MAX:
return ((long)EXPR_NEST_MAX);
case _SC_LINE_MAX:
return ((long)LINE_MAX);
case _SC_RE_DUP_MAX:
return ((long)RE_DUP_MAX);
case _SC_XOPEN_CRYPT:
case _SC_XOPEN_ENH_I18N:
return ((long)_XOPEN_ENH_I18N);
case _SC_XOPEN_SHM:
return ((long)_XOPEN_SHM);
case _SC_XOPEN_UNIX:
case _SC_XOPEN_LEGACY:
case _SC_ATEXIT_MAX:
case _SC_IOV_MAX:
return ((long)IOV_MAX);
case _SC_T_IOV_MAX:
return ((long)T_IOV_MAX);
case _SC_XOPEN_REALTIME:
#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && \
defined(_POSIX_THREAD_PRIO_INHERIT) && \
defined(_POSIX_THREAD_PRIO_PROTECT)
case _SC_XBS5_ILP32_OFF32:
case _SC_XBS5_ILP32_OFFBIG:
case _SC_XBS5_LP64_OFF64:
case _SC_XBS5_LPBIG_OFFBIG:
case _SC_GETGR_R_SIZE_MAX:
case _SC_GETPW_R_SIZE_MAX:
return ((long)NSS_BUFLEN_PASSWD);
case _SC_LOGIN_NAME_MAX:
case _SC_THREAD_KEYS_MAX:
case _SC_THREAD_STACK_MIN:
return ((long)thr_min_stack());
case _SC_THREAD_THREADS_MAX:
case _SC_TTY_NAME_MAX:
return ((long)TTYNAME_MAX);
case _SC_BARRIERS:
return ((long)_POSIX_BARRIERS);
case _SC_CLOCK_SELECTION:
return ((long)_POSIX_CLOCK_SELECTION);
case _SC_MONOTONIC_CLOCK:
return ((long)_POSIX_MONOTONIC_CLOCK);
case _SC_SPAWN:
return ((long)_POSIX_SPAWN);
case _SC_SPIN_LOCKS:
return ((long)_POSIX_SPIN_LOCKS);
case _SC_THREADS:
case _SC_THREAD_PRIO_INHERIT:
case _SC_THREAD_PRIO_PROTECT:
case _SC_TIMEOUTS:
return ((long)_POSIX_TIMEOUTS);
case _SC_COHER_BLKSZ:
case _SC_SPLIT_CACHE:
case _SC_ICACHE_SZ:
case _SC_DCACHE_SZ:
case _SC_ICACHE_LINESZ:
case _SC_DCACHE_LINESZ:
case _SC_ICACHE_BLKSZ:
case _SC_DCACHE_BLKSZ:
case _SC_DCACHE_TBLKSZ:
case _SC_ICACHE_ASSOC:
case _SC_DCACHE_ASSOC:
case _SC_MAXPID:
if (_maxpid <= 0)
return (_maxpid);
case _SC_CPUID_MAX:
case _SC_EPHID_MAX:
/* UNIX 03 names - XPG6/SUSv3/POSIX.1-2001 */
case _SC_REGEXP:
return ((long)_POSIX_REGEXP);
case _SC_SHELL:
return ((long)_POSIX_SHELL);
case _SC_ADVISORY_INFO:
return ((long)_POSIX_ADVISORY_INFO);
case _SC_HOST_NAME_MAX:
return ((long)_POSIX_HOST_NAME_MAX);
case _SC_READER_WRITER_LOCKS:
return ((long)_POSIX_READER_WRITER_LOCKS);
case _SC_IPV6:
return ((long)_POSIX_IPV6);
case _SC_RAW_SOCKETS:
return ((long)_POSIX_RAW_SOCKETS);
case _SC_XOPEN_STREAMS:
return ((long)_XOPEN_STREAMS);
case _SC_SYMLOOP_MAX:
case _SC_V6_ILP32_OFF32:
case _SC_V6_ILP32_OFFBIG:
case _SC_V6_LP64_OFF64:
case _SC_V6_LPBIG_OFFBIG:
case _SC_OSM_PAGESIZE_MIN:
case _SC_2_PBS:
case _SC_2_PBS_ACCOUNTING:
case _SC_2_PBS_CHECKPOINT:
case _SC_2_PBS_LOCATE:
case _SC_2_PBS_MESSAGE:
case _SC_2_PBS_TRACK:
case _SC_CPUTIME:
case _SC_SPORADIC_SERVER:
case _SC_SS_REPL_MAX:
case _SC_THREAD_CPUTIME:
case _SC_TRACE:
case _SC_TRACE_EVENT_FILTER:
case _SC_TRACE_EVENT_NAME_MAX:
case _SC_TRACE_INHERIT:
case _SC_TRACE_LOG:
case _SC_TRACE_NAME_MAX:
case _SC_TRACE_SYS_MAX:
case _SC_TRACE_USER_EVENT_MAX:
case _SC_TYPED_MEMORY_OBJECTS:
switch (name) {
case _SC_XOPEN_VERSION:
case _SC_PASS_MAX:
return ((long)_PASS_MAX_XPG);