17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 58ef5f9c7Schin * Common Development and Distribution License (the "License"). 68ef5f9c7Schin * You may not use this file except in compliance with the License. 77c478bd9Sstevel@tonic-gate * 87c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 97c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 107c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 117c478bd9Sstevel@tonic-gate * and limitations under the License. 127c478bd9Sstevel@tonic-gate * 137c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 147c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 157c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 167c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 177c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 187c478bd9Sstevel@tonic-gate * 197c478bd9Sstevel@tonic-gate * CDDL HEADER END 207c478bd9Sstevel@tonic-gate */ 21*019c3c43Sraf 227c478bd9Sstevel@tonic-gate /* 23*019c3c43Sraf * Copyright 2008 Sun Microsystems, Inc. All rights reserved. 247c478bd9Sstevel@tonic-gate * Use is subject to license terms. 257c478bd9Sstevel@tonic-gate */ 267c478bd9Sstevel@tonic-gate 277c478bd9Sstevel@tonic-gate /* 287c478bd9Sstevel@tonic-gate * Copyright 1985, 1993 by Mortice Kern Systems Inc. All rights reserved. 297c478bd9Sstevel@tonic-gate * 307c478bd9Sstevel@tonic-gate */ 317c478bd9Sstevel@tonic-gate 327c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 337c478bd9Sstevel@tonic-gate 347c478bd9Sstevel@tonic-gate /* 357c478bd9Sstevel@tonic-gate * getconf -- POSIX.2 compatible utility to query configuration specific 367c478bd9Sstevel@tonic-gate * parameters. 377c478bd9Sstevel@tonic-gate * -- XPG4 support added June/93 387c478bd9Sstevel@tonic-gate * 397c478bd9Sstevel@tonic-gate * -- XPG5 support added Dec/97 407c478bd9Sstevel@tonic-gate * 417c478bd9Sstevel@tonic-gate * -- XPG6 support added May/2003 427c478bd9Sstevel@tonic-gate */ 437c478bd9Sstevel@tonic-gate 447c478bd9Sstevel@tonic-gate #include <stdio.h> 457c478bd9Sstevel@tonic-gate #include <stdlib.h> 467c478bd9Sstevel@tonic-gate #include <string.h> 477c478bd9Sstevel@tonic-gate #include <errno.h> 487c478bd9Sstevel@tonic-gate #include <unistd.h> 497c478bd9Sstevel@tonic-gate #include <limits.h> 507c478bd9Sstevel@tonic-gate #include <locale.h> 517c478bd9Sstevel@tonic-gate #include <libintl.h> 527c478bd9Sstevel@tonic-gate #include <assert.h> 537c478bd9Sstevel@tonic-gate 547c478bd9Sstevel@tonic-gate extern size_t confstr(int, char *, size_t); 557c478bd9Sstevel@tonic-gate 567c478bd9Sstevel@tonic-gate static int aflag = 0; 577c478bd9Sstevel@tonic-gate 587c478bd9Sstevel@tonic-gate #define INVAL_ARG "getconf: Invalid argument (%s)\n" 597c478bd9Sstevel@tonic-gate #define INVAL_PATHARG "getconf: Invalid argument (%s or %s)\n" 607c478bd9Sstevel@tonic-gate 617c478bd9Sstevel@tonic-gate /* 627c478bd9Sstevel@tonic-gate * Notes: 637c478bd9Sstevel@tonic-gate * The sctab.value field is defined to be a long. 647c478bd9Sstevel@tonic-gate * There are some values that are "unsigned long"; these values 657c478bd9Sstevel@tonic-gate * can be stored in a "long" field but when output, must be printed 667c478bd9Sstevel@tonic-gate * as an unsigned value. Thus, these values must have UNSIGNED_VALUE bit 677c478bd9Sstevel@tonic-gate * set in sctab.flag field. 687c478bd9Sstevel@tonic-gate * 697c478bd9Sstevel@tonic-gate * There are 2 different ways to indicate a symbol is undefined: 707c478bd9Sstevel@tonic-gate * 1) sctab.flag = UNDEFINED 717c478bd9Sstevel@tonic-gate * 2) or sctab.value = -1 (and if !UNDEFINED and !UNSIGNED_VALUE) 727c478bd9Sstevel@tonic-gate * 737c478bd9Sstevel@tonic-gate * There are a group of symbols (e.g CHAR_MIN, INT_MAX, INT_MIN, LONG_BIT ...) 747c478bd9Sstevel@tonic-gate * which we may set to -1 if they are not pre-defined in a system header file. 757c478bd9Sstevel@tonic-gate * This is used to indicate that these symbols are "undefined". 767c478bd9Sstevel@tonic-gate * We are assuming that these symbols cannot reasonably have a value of -1 777c478bd9Sstevel@tonic-gate * if they were defined in a system header file. 787c478bd9Sstevel@tonic-gate * (Unless of course -1 can be used to indicate "undefined" for that symbol) 797c478bd9Sstevel@tonic-gate */ 807c478bd9Sstevel@tonic-gate 817c478bd9Sstevel@tonic-gate static struct sctab { 827c478bd9Sstevel@tonic-gate long value; 837c478bd9Sstevel@tonic-gate char *name; 847c478bd9Sstevel@tonic-gate enum { SELFCONF, SYSCONF, PATHCONF, CONFSTR } type; 857c478bd9Sstevel@tonic-gate int flag; 867c478bd9Sstevel@tonic-gate /* bit fields for sctab.flag member */ 877c478bd9Sstevel@tonic-gate #define NOFLAGS 0 /* no special indicators */ 887c478bd9Sstevel@tonic-gate #define UNDEFINED 1 /* value is known undefined at compile time */ 897c478bd9Sstevel@tonic-gate #define UNSIGNED_VALUE 2 /* value is an unsigned */ 907c478bd9Sstevel@tonic-gate } sctab[] = { 917c478bd9Sstevel@tonic-gate /* 927c478bd9Sstevel@tonic-gate * Some entries in this structure have both leading _ and non leading _ 937c478bd9Sstevel@tonic-gate * versions for compatibility with various versions of the specifications. 947c478bd9Sstevel@tonic-gate * It is not expected that both forms will be required for new entries. 957c478bd9Sstevel@tonic-gate */ 967c478bd9Sstevel@tonic-gate 977c478bd9Sstevel@tonic-gate /* POSIX.2-1992 table 2-17 */ 987c478bd9Sstevel@tonic-gate _POSIX2_BC_BASE_MAX, "POSIX2_BC_BASE_MAX", SELFCONF, NOFLAGS, 997c478bd9Sstevel@tonic-gate _POSIX2_BC_BASE_MAX, "_POSIX2_BC_BASE_MAX", SELFCONF, NOFLAGS, 1007c478bd9Sstevel@tonic-gate _POSIX2_BC_DIM_MAX, "POSIX2_BC_DIM_MAX", SELFCONF, NOFLAGS, 1017c478bd9Sstevel@tonic-gate _POSIX2_BC_DIM_MAX, "_POSIX2_BC_DIM_MAX", SELFCONF, NOFLAGS, 1027c478bd9Sstevel@tonic-gate _POSIX2_BC_SCALE_MAX, "POSIX2_BC_SCALE_MAX", SELFCONF, NOFLAGS, 1037c478bd9Sstevel@tonic-gate _POSIX2_BC_SCALE_MAX, "_POSIX2_BC_SCALE_MAX", SELFCONF, NOFLAGS, 1047c478bd9Sstevel@tonic-gate _POSIX2_BC_STRING_MAX, "POSIX2_BC_STRING_MAX", SELFCONF, NOFLAGS, 1057c478bd9Sstevel@tonic-gate _POSIX2_BC_STRING_MAX, "_POSIX2_BC_STRING_MAX", SELFCONF, NOFLAGS, 1067c478bd9Sstevel@tonic-gate _POSIX2_COLL_WEIGHTS_MAX, "POSIX2_COLL_WEIGHTS_MAX", SELFCONF, NOFLAGS, 1077c478bd9Sstevel@tonic-gate _POSIX2_COLL_WEIGHTS_MAX, "_POSIX2_COLL_WEIGHTS_MAX", SELFCONF, NOFLAGS, 1087c478bd9Sstevel@tonic-gate _POSIX2_EXPR_NEST_MAX, "POSIX2_EXPR_NEST_MAX", SELFCONF, NOFLAGS, 1097c478bd9Sstevel@tonic-gate _POSIX2_EXPR_NEST_MAX, "_POSIX2_EXPR_NEST_MAX", SELFCONF, NOFLAGS, 1107c478bd9Sstevel@tonic-gate _POSIX2_LINE_MAX, "POSIX2_LINE_MAX", SELFCONF, NOFLAGS, 1117c478bd9Sstevel@tonic-gate _POSIX2_LINE_MAX, "_POSIX2_LINE_MAX", SELFCONF, NOFLAGS, 1127c478bd9Sstevel@tonic-gate _POSIX2_RE_DUP_MAX, "POSIX2_RE_DUP_MAX", SELFCONF, NOFLAGS, 1137c478bd9Sstevel@tonic-gate _POSIX2_RE_DUP_MAX, "_POSIX2_RE_DUP_MAX", SELFCONF, NOFLAGS, 1147c478bd9Sstevel@tonic-gate /* See limits.h section below for _POSIX_RE_DUP_MAX */ 1157c478bd9Sstevel@tonic-gate 1167c478bd9Sstevel@tonic-gate /* UNIX 98 */ 1177c478bd9Sstevel@tonic-gate _POSIX_AIO_LISTIO_MAX, "_POSIX_AIO_LISTIO_MAX", SELFCONF, NOFLAGS, 1187c478bd9Sstevel@tonic-gate _POSIX_AIO_MAX, "_POSIX_AIO_MAX", SELFCONF, NOFLAGS, 1197c478bd9Sstevel@tonic-gate _POSIX_DELAYTIMER_MAX, "_POSIX_DELAYTIMER_MAX", SELFCONF, NOFLAGS, 1207c478bd9Sstevel@tonic-gate _POSIX_LOGIN_NAME_MAX, "_POSIX_LOGIN_NAME_MAX", SELFCONF, NOFLAGS, 1217c478bd9Sstevel@tonic-gate _POSIX_MQ_OPEN_MAX, "_POSIX_MQ_OPEN_MAX", SELFCONF, NOFLAGS, 1227c478bd9Sstevel@tonic-gate _POSIX_MQ_PRIO_MAX, "_POSIX_MQ_PRIO_MAX", SELFCONF, NOFLAGS, 1237c478bd9Sstevel@tonic-gate _POSIX_RTSIG_MAX, "_POSIX_RTSIG_MAX", SELFCONF, NOFLAGS, 1247c478bd9Sstevel@tonic-gate _POSIX_SEM_NSEMS_MAX, "_POSIX_SEM_NSEMS_MAX", SELFCONF, NOFLAGS, 1257c478bd9Sstevel@tonic-gate _POSIX_SEM_VALUE_MAX, "_POSIX_SEM_VALUE_MAX", SELFCONF, NOFLAGS, 1267c478bd9Sstevel@tonic-gate _POSIX_SIGQUEUE_MAX, "_POSIX_SIGQUEUE_MAX", SELFCONF, NOFLAGS, 1277c478bd9Sstevel@tonic-gate _POSIX_TTY_NAME_MAX, "_POSIX_TTY_NAME_MAX", SELFCONF, NOFLAGS, 1287c478bd9Sstevel@tonic-gate 1297c478bd9Sstevel@tonic-gate /* UNIX 03 */ 1307c478bd9Sstevel@tonic-gate _POSIX_HOST_NAME_MAX, "_POSIX_HOST_NAME_MAX", SELFCONF, NOFLAGS, 1317c478bd9Sstevel@tonic-gate _POSIX_RE_DUP_MAX, "_POSIX_RE_DUP_MAX", SELFCONF, NOFLAGS, 1327c478bd9Sstevel@tonic-gate _POSIX_CLOCKRES_MIN, "_POSIX_CLOCKRES_MIN", SELFCONF, NOFLAGS, 1337c478bd9Sstevel@tonic-gate _POSIX_SYMLINK_MAX, "_POSIX_SYMLINK_MAX", SELFCONF, NOFLAGS, 1347c478bd9Sstevel@tonic-gate _POSIX_SYMLOOP_MAX, "_POSIX_SYMLOOP_MAX", SELFCONF, NOFLAGS, 1357c478bd9Sstevel@tonic-gate CHARCLASS_NAME_MAX, "_POSIX2_CHARCLASS_NAME_MAX", SELFCONF, NOFLAGS, 1367c478bd9Sstevel@tonic-gate 1377c478bd9Sstevel@tonic-gate /* POSIX.2-1992 table 2-17 */ 1387c478bd9Sstevel@tonic-gate _SC_2_VERSION, "POSIX2_VERSION", SYSCONF, NOFLAGS, 1397c478bd9Sstevel@tonic-gate _SC_2_VERSION, "_POSIX2_VERSION", SYSCONF, NOFLAGS, 1407c478bd9Sstevel@tonic-gate 1417c478bd9Sstevel@tonic-gate /* POSIX.2-1992 table 2-18 */ 1427c478bd9Sstevel@tonic-gate _SC_BC_BASE_MAX, "BC_BASE_MAX", SYSCONF, NOFLAGS, 1437c478bd9Sstevel@tonic-gate _SC_BC_DIM_MAX, "BC_DIM_MAX", SYSCONF, NOFLAGS, 1447c478bd9Sstevel@tonic-gate _SC_BC_SCALE_MAX, "BC_SCALE_MAX", SYSCONF, NOFLAGS, 1457c478bd9Sstevel@tonic-gate _SC_BC_STRING_MAX, "BC_STRING_MAX", SYSCONF, NOFLAGS, 1467c478bd9Sstevel@tonic-gate _SC_COLL_WEIGHTS_MAX, "COLL_WEIGHTS_MAX", SYSCONF, NOFLAGS, 1477c478bd9Sstevel@tonic-gate _SC_EXPR_NEST_MAX, "EXPR_NEST_MAX", SYSCONF, NOFLAGS, 1487c478bd9Sstevel@tonic-gate _SC_LINE_MAX, "LINE_MAX", SYSCONF, NOFLAGS, 1497c478bd9Sstevel@tonic-gate _SC_RE_DUP_MAX, "RE_DUP_MAX", SYSCONF, NOFLAGS, 1507c478bd9Sstevel@tonic-gate 1517c478bd9Sstevel@tonic-gate /* POSIX.2-1992 table 2-19 */ 1527c478bd9Sstevel@tonic-gate _SC_2_C_BIND, "POSIX2_C_BIND", SYSCONF, NOFLAGS, 1537c478bd9Sstevel@tonic-gate _SC_2_C_BIND, "_POSIX2_C_BIND", SYSCONF, NOFLAGS, 1547c478bd9Sstevel@tonic-gate _SC_2_C_DEV, "POSIX2_C_DEV", SYSCONF, NOFLAGS, 1557c478bd9Sstevel@tonic-gate _SC_2_C_DEV, "_POSIX2_C_DEV", SYSCONF, NOFLAGS, 1567c478bd9Sstevel@tonic-gate _SC_2_CHAR_TERM, "POSIX2_CHAR_TERM", SYSCONF, NOFLAGS, 1577c478bd9Sstevel@tonic-gate _SC_2_CHAR_TERM, "_POSIX2_CHAR_TERM", SYSCONF, NOFLAGS, 1587c478bd9Sstevel@tonic-gate _SC_2_FORT_DEV, "POSIX2_FORT_DEV", SYSCONF, NOFLAGS, 1597c478bd9Sstevel@tonic-gate _SC_2_FORT_DEV, "_POSIX2_FORT_DEV", SYSCONF, NOFLAGS, 1607c478bd9Sstevel@tonic-gate _SC_2_FORT_RUN, "POSIX2_FORT_RUN", SYSCONF, NOFLAGS, 1617c478bd9Sstevel@tonic-gate _SC_2_FORT_RUN, "_POSIX2_FORT_RUN", SYSCONF, NOFLAGS, 1627c478bd9Sstevel@tonic-gate _SC_2_LOCALEDEF, "POSIX2_LOCALEDEF", SYSCONF, NOFLAGS, 1637c478bd9Sstevel@tonic-gate _SC_2_LOCALEDEF, "_POSIX2_LOCALEDEF", SYSCONF, NOFLAGS, 1647c478bd9Sstevel@tonic-gate _SC_2_SW_DEV, "POSIX2_SW_DEV", SYSCONF, NOFLAGS, 1657c478bd9Sstevel@tonic-gate _SC_2_SW_DEV, "_POSIX2_SW_DEV", SYSCONF, NOFLAGS, 1667c478bd9Sstevel@tonic-gate _SC_2_UPE, "POSIX2_UPE", SYSCONF, NOFLAGS, 1677c478bd9Sstevel@tonic-gate _SC_2_UPE, "_POSIX2_UPE", SYSCONF, NOFLAGS, 1687c478bd9Sstevel@tonic-gate 1697c478bd9Sstevel@tonic-gate /* POSIX.1-1990 table 2-3 */ 1707c478bd9Sstevel@tonic-gate _POSIX_ARG_MAX, "_POSIX_ARG_MAX", SELFCONF, NOFLAGS, 1717c478bd9Sstevel@tonic-gate _POSIX_CHILD_MAX, "_POSIX_CHILD_MAX", SELFCONF, NOFLAGS, 1727c478bd9Sstevel@tonic-gate _POSIX_LINK_MAX, "_POSIX_LINK_MAX", SELFCONF, NOFLAGS, 1737c478bd9Sstevel@tonic-gate _POSIX_MAX_CANON, "_POSIX_MAX_CANON", SELFCONF, NOFLAGS, 1747c478bd9Sstevel@tonic-gate _POSIX_MAX_INPUT, "_POSIX_MAX_INPUT", SELFCONF, NOFLAGS, 1757c478bd9Sstevel@tonic-gate _POSIX_NAME_MAX, "_POSIX_NAME_MAX", SELFCONF, NOFLAGS, 1767c478bd9Sstevel@tonic-gate _POSIX_NGROUPS_MAX, "_POSIX_NGROUPS_MAX", SELFCONF, NOFLAGS, 1777c478bd9Sstevel@tonic-gate _POSIX_OPEN_MAX, "_POSIX_OPEN_MAX", SELFCONF, NOFLAGS, 1787c478bd9Sstevel@tonic-gate _POSIX_PATH_MAX, "_POSIX_PATH_MAX", SELFCONF, NOFLAGS, 1797c478bd9Sstevel@tonic-gate _POSIX_PIPE_BUF, "_POSIX_PIPE_BUF", SELFCONF, NOFLAGS, 1807c478bd9Sstevel@tonic-gate _POSIX_SSIZE_MAX, "_POSIX_SSIZE_MAX", SELFCONF, NOFLAGS, 1817c478bd9Sstevel@tonic-gate _POSIX_STREAM_MAX, "_POSIX_STREAM_MAX", SELFCONF, NOFLAGS, 1827c478bd9Sstevel@tonic-gate _POSIX_TIMER_MAX, "_POSIX_TIMER_MAX", SELFCONF, NOFLAGS, 1837c478bd9Sstevel@tonic-gate _POSIX_THREAD_DESTRUCTOR_ITERATIONS, 1847c478bd9Sstevel@tonic-gate "_POSIX_THREAD_DESTRUCTOR_ITERATIONS", SELFCONF, NOFLAGS, 1857c478bd9Sstevel@tonic-gate _POSIX_THREAD_KEYS_MAX, 1867c478bd9Sstevel@tonic-gate "_POSIX_THREAD_KEYS_MAX", SELFCONF, NOFLAGS, 1877c478bd9Sstevel@tonic-gate _POSIX_THREAD_THREADS_MAX, 1887c478bd9Sstevel@tonic-gate "_POSIX_THREAD_THREADS_MAX", SELFCONF, NOFLAGS, 1897c478bd9Sstevel@tonic-gate _POSIX_TZNAME_MAX, "_POSIX_TZNAME_MAX", SELFCONF, NOFLAGS, 1907c478bd9Sstevel@tonic-gate 1917c478bd9Sstevel@tonic-gate /* POSIX.1-1990 table 4-2 */ 1927c478bd9Sstevel@tonic-gate _SC_ARG_MAX, "ARG_MAX", SYSCONF, NOFLAGS, 1937c478bd9Sstevel@tonic-gate _SC_CHILD_MAX, "CHILD_MAX", SYSCONF, NOFLAGS, 1947c478bd9Sstevel@tonic-gate _SC_CLK_TCK, "CLK_TCK", SYSCONF, NOFLAGS, 1957c478bd9Sstevel@tonic-gate _SC_JOB_CONTROL, "_POSIX_JOB_CONTROL", SYSCONF, NOFLAGS, 1967c478bd9Sstevel@tonic-gate _SC_NGROUPS_MAX, "NGROUPS_MAX", SYSCONF, NOFLAGS, 1977c478bd9Sstevel@tonic-gate _SC_OPEN_MAX, "OPEN_MAX", SYSCONF, NOFLAGS, 1987c478bd9Sstevel@tonic-gate _SC_SAVED_IDS, "_POSIX_SAVED_IDS", SYSCONF, NOFLAGS, 1997c478bd9Sstevel@tonic-gate _SC_STREAM_MAX, "STREAM_MAX", SYSCONF, NOFLAGS, 2007c478bd9Sstevel@tonic-gate _SC_TZNAME_MAX, "TZNAME_MAX", SYSCONF, NOFLAGS, 2017c478bd9Sstevel@tonic-gate _SC_VERSION, "_POSIX_VERSION", SYSCONF, NOFLAGS, 2027c478bd9Sstevel@tonic-gate 2037c478bd9Sstevel@tonic-gate /* pathconf() variables */ 2047c478bd9Sstevel@tonic-gate 2057c478bd9Sstevel@tonic-gate /* POSIX.1-1990 table 5-2 */ 2067c478bd9Sstevel@tonic-gate 2077c478bd9Sstevel@tonic-gate _PC_LINK_MAX, "LINK_MAX", PATHCONF, NOFLAGS, 2087c478bd9Sstevel@tonic-gate _PC_MAX_CANON, "MAX_CANON", PATHCONF, NOFLAGS, 2097c478bd9Sstevel@tonic-gate _PC_MAX_INPUT, "MAX_INPUT", PATHCONF, NOFLAGS, 2107c478bd9Sstevel@tonic-gate _PC_NAME_MAX, "NAME_MAX", PATHCONF, NOFLAGS, 2117c478bd9Sstevel@tonic-gate _PC_PATH_MAX, "PATH_MAX", PATHCONF, NOFLAGS, 2127c478bd9Sstevel@tonic-gate _PC_PIPE_BUF, "PIPE_BUF", PATHCONF, NOFLAGS, 2137c478bd9Sstevel@tonic-gate _PC_CHOWN_RESTRICTED, "_POSIX_CHOWN_RESTRICTED", PATHCONF, NOFLAGS, 2147c478bd9Sstevel@tonic-gate _PC_NO_TRUNC, "_POSIX_NO_TRUNC", PATHCONF, NOFLAGS, 2157c478bd9Sstevel@tonic-gate _PC_VDISABLE, "_POSIX_VDISABLE", PATHCONF, NOFLAGS, 2167c478bd9Sstevel@tonic-gate 2177c478bd9Sstevel@tonic-gate /* UNIX 98 additions */ 2187c478bd9Sstevel@tonic-gate 2197c478bd9Sstevel@tonic-gate _PC_ASYNC_IO, "_POSIX_ASYNC_IO", PATHCONF, NOFLAGS, 2207c478bd9Sstevel@tonic-gate _PC_PRIO_IO, "_POSIX_PRIO_IO", PATHCONF, NOFLAGS, 2217c478bd9Sstevel@tonic-gate _PC_SYNC_IO, "_POSIX_SYNC_IO", PATHCONF, NOFLAGS, 2227c478bd9Sstevel@tonic-gate 2237c478bd9Sstevel@tonic-gate /* Large File Summit name (UNIX 98) */ 2247c478bd9Sstevel@tonic-gate 2257c478bd9Sstevel@tonic-gate _PC_FILESIZEBITS, "FILESIZEBITS", PATHCONF, NOFLAGS, 2267c478bd9Sstevel@tonic-gate 2277c478bd9Sstevel@tonic-gate /* UNIX 03 Additions */ 2287c478bd9Sstevel@tonic-gate 229*019c3c43Sraf /* Advisory Information (ADV) */ 2307c478bd9Sstevel@tonic-gate _PC_ALLOC_SIZE_MIN, "POSIX_ALLOC_SIZE_MIN", PATHCONF, NOFLAGS, 2317c478bd9Sstevel@tonic-gate _PC_REC_INCR_XFER_SIZE, "POSIX_REC_INCR_XFER_SIZE", PATHCONF, NOFLAGS, 2327c478bd9Sstevel@tonic-gate _PC_REC_MAX_XFER_SIZE, "POSIX_REC_MAX_XFER_SIZE", PATHCONF, NOFLAGS, 2337c478bd9Sstevel@tonic-gate _PC_REC_MIN_XFER_SIZE, "POSIX_REC_MIN_XFER_SIZE", PATHCONF, NOFLAGS, 2347c478bd9Sstevel@tonic-gate _PC_REC_XFER_ALIGN, "POSIX_REC_XFER_ALIGN", PATHCONF, NOFLAGS, 2357c478bd9Sstevel@tonic-gate 2367c478bd9Sstevel@tonic-gate _PC_2_SYMLINKS, "POSIX2_SYMLINKS", PATHCONF, NOFLAGS, 2377c478bd9Sstevel@tonic-gate _PC_SYMLINK_MAX, "SYMLINK_MAX", PATHCONF, NOFLAGS, 2387c478bd9Sstevel@tonic-gate 2397c478bd9Sstevel@tonic-gate /* confstr() variables */ 2407c478bd9Sstevel@tonic-gate 2417c478bd9Sstevel@tonic-gate /* POSIX.2-1992 description of getconf utility */ 2427c478bd9Sstevel@tonic-gate _CS_PATH, "PATH", CONFSTR, NOFLAGS, 2437c478bd9Sstevel@tonic-gate 2447c478bd9Sstevel@tonic-gate /* POSIX.2-1992 table B-18 */ 2457c478bd9Sstevel@tonic-gate _CS_PATH, "CS_PATH", CONFSTR, NOFLAGS, 2467c478bd9Sstevel@tonic-gate _CS_PATH, "_CS_PATH", CONFSTR, NOFLAGS, 2477c478bd9Sstevel@tonic-gate 2487c478bd9Sstevel@tonic-gate /* command names for large file configuration information */ 2497c478bd9Sstevel@tonic-gate /* large file compilation environment configuration */ 2507c478bd9Sstevel@tonic-gate 2517c478bd9Sstevel@tonic-gate _CS_LFS_CFLAGS, "LFS_CFLAGS", CONFSTR, NOFLAGS, 2527c478bd9Sstevel@tonic-gate _CS_LFS_LDFLAGS, "LFS_LDFLAGS", CONFSTR, NOFLAGS, 2537c478bd9Sstevel@tonic-gate _CS_LFS_LIBS, "LFS_LIBS", CONFSTR, NOFLAGS, 2547c478bd9Sstevel@tonic-gate _CS_LFS_LINTFLAGS, "LFS_LINTFLAGS", CONFSTR, NOFLAGS, 2557c478bd9Sstevel@tonic-gate 2567c478bd9Sstevel@tonic-gate /* transitional large file interface configuration */ 2577c478bd9Sstevel@tonic-gate 2587c478bd9Sstevel@tonic-gate _CS_LFS64_CFLAGS, "LFS64_CFLAGS", CONFSTR, NOFLAGS, 2597c478bd9Sstevel@tonic-gate _CS_LFS64_LDFLAGS, "LFS64_LDFLAGS", CONFSTR, NOFLAGS, 2607c478bd9Sstevel@tonic-gate _CS_LFS64_LIBS, "LFS64_LIBS", CONFSTR, NOFLAGS, 2617c478bd9Sstevel@tonic-gate _CS_LFS64_LINTFLAGS, "LFS64_LINTFLAGS", CONFSTR, NOFLAGS, 2627c478bd9Sstevel@tonic-gate 2637c478bd9Sstevel@tonic-gate /* 2647c478bd9Sstevel@tonic-gate * UNIX 98: 2657c478bd9Sstevel@tonic-gate * confstr additions, these support 2667c478bd9Sstevel@tonic-gate * programming specifications/environments. 2677c478bd9Sstevel@tonic-gate * 2687c478bd9Sstevel@tonic-gate * Unfortunately there is some uncertainty with 2697c478bd9Sstevel@tonic-gate * the standard at this point about the constant 2707c478bd9Sstevel@tonic-gate * name, thus we need to recognize BOTH with and 2717c478bd9Sstevel@tonic-gate * without the initial underscore. 2727c478bd9Sstevel@tonic-gate */ 2737c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_CFLAGS, "XBS5_ILP32_OFF32_CFLAGS", 2747c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2757c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_CFLAGS, "_XBS5_ILP32_OFF32_CFLAGS", 2767c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2777c478bd9Sstevel@tonic-gate 2787c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LDFLAGS, "XBS5_ILP32_OFF32_LDFLAGS", 2797c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2807c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LDFLAGS, "_XBS5_ILP32_OFF32_LDFLAGS", 2817c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2827c478bd9Sstevel@tonic-gate 2837c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LIBS, "XBS5_ILP32_OFF32_LIBS", 2847c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2857c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LIBS, "_XBS5_ILP32_OFF32_LIBS", 2867c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2877c478bd9Sstevel@tonic-gate 2887c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LINTFLAGS, "XBS5_ILP32_OFF32_LINTFLAGS", 2897c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2907c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFF32_LINTFLAGS, "_XBS5_ILP32_OFF32_LINTFLAGS", 2917c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2927c478bd9Sstevel@tonic-gate 2937c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_CFLAGS, "XBS5_ILP32_OFFBIG_CFLAGS", 2947c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2957c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_CFLAGS, "_XBS5_ILP32_OFFBIG_CFLAGS", 2967c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 2977c478bd9Sstevel@tonic-gate 2987c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LDFLAGS, "XBS5_ILP32_OFFBIG_LDFLAGS", 2997c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3007c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LDFLAGS, "_XBS5_ILP32_OFFBIG_LDFLAGS", 3017c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3027c478bd9Sstevel@tonic-gate 3037c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LIBS, "XBS5_ILP32_OFFBIG_LIBS", 3047c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3057c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LIBS, "_XBS5_ILP32_OFFBIG_LIBS", 3067c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3077c478bd9Sstevel@tonic-gate 3087c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, "XBS5_ILP32_OFFBIG_LINTFLAGS", 3097c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3107c478bd9Sstevel@tonic-gate _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, "_XBS5_ILP32_OFFBIG_LINTFLAGS", 3117c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3127c478bd9Sstevel@tonic-gate 3137c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_CFLAGS, "XBS5_LP64_OFF64_CFLAGS", 3147c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3157c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_CFLAGS, "_XBS5_LP64_OFF64_CFLAGS", 3167c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3177c478bd9Sstevel@tonic-gate 3187c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LDFLAGS, "XBS5_LP64_OFF64_LDFLAGS", 3197c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3207c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LDFLAGS, "_XBS5_LP64_OFF64_LDFLAGS", 3217c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3227c478bd9Sstevel@tonic-gate 3237c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LIBS, "XBS5_LP64_OFF64_LIBS", 3247c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3257c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LIBS, "_XBS5_LP64_OFF64_LIBS", 3267c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3277c478bd9Sstevel@tonic-gate 3287c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LINTFLAGS, "XBS5_LP64_OFF64_LINTFLAGS", 3297c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3307c478bd9Sstevel@tonic-gate _CS_XBS5_LP64_OFF64_LINTFLAGS, "_XBS5_LP64_OFF64_LINTFLAGS", 3317c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3327c478bd9Sstevel@tonic-gate 3337c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_CFLAGS, "XBS5_LPBIG_OFFBIG_CFLAGS", 3347c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3357c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_CFLAGS, "_XBS5_LPBIG_OFFBIG_CFLAGS", 3367c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3377c478bd9Sstevel@tonic-gate 3387c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, "XBS5_LPBIG_OFFBIG_LDFLAGS", 3397c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3407c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, "_XBS5_LPBIG_OFFBIG_LDFLAGS", 3417c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3427c478bd9Sstevel@tonic-gate 3437c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LIBS, "XBS5_LPBIG_OFFBIG_LIBS", 3447c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3457c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LIBS, "_XBS5_LPBIG_OFFBIG_LIBS", 3467c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3477c478bd9Sstevel@tonic-gate 3487c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, "XBS5_LPBIG_OFFBIG_LINTFLAGS", 3497c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3507c478bd9Sstevel@tonic-gate _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, "_XBS5_LPBIG_OFFBIG_LINTFLAGS", 3517c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3527c478bd9Sstevel@tonic-gate 3537c478bd9Sstevel@tonic-gate /* 3547c478bd9Sstevel@tonic-gate * UNIX 03 confstr() additions for compilation environments 3557c478bd9Sstevel@tonic-gate */ 3567c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFF32_CFLAGS, "POSIX_V6_ILP32_OFF32_CFLAGS", 3577c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3587c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, "POSIX_V6_ILP32_OFF32_LDFLAGS", 3597c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3607c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFF32_LIBS, "POSIX_V6_ILP32_OFF32_LIBS", 3617c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3627c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, "POSIX_V6_ILP32_OFFBIG_CFLAGS", 3637c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3647c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, "POSIX_V6_ILP32_OFFBIG_LDFLAGS", 3657c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3667c478bd9Sstevel@tonic-gate _CS_POSIX_V6_ILP32_OFFBIG_LIBS, "POSIX_V6_ILP32_OFFBIG_LIBS", 3677c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3687c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LP64_OFF64_CFLAGS, "POSIX_V6_LP64_OFF64_CFLAGS", 3697c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3707c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LP64_OFF64_LDFLAGS, "POSIX_V6_LP64_OFF64_LDFLAGS", 3717c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3727c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LP64_OFF64_LIBS, "POSIX_V6_LP64_OFF64_LIBS", 3737c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3747c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, "POSIX_V6_LPBIG_OFFBIG_CFLAGS", 3757c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3767c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, "POSIX_V6_LPBIG_OFFBIG_LDFLAGS", 3777c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3787c478bd9Sstevel@tonic-gate _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, "POSIX_V6_LPBIG_OFFBIG_LIBS", 3797c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3807c478bd9Sstevel@tonic-gate _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS, "POSIX_V6_WIDTH_RESTRICTED_ENVS", 3817c478bd9Sstevel@tonic-gate CONFSTR, NOFLAGS, 3827c478bd9Sstevel@tonic-gate /* End of UNIX 03 compilation environments */ 3837c478bd9Sstevel@tonic-gate 3847c478bd9Sstevel@tonic-gate #ifdef _SC_2_C_VERSION /* POSIX.2 table B-4 */ 3857c478bd9Sstevel@tonic-gate _SC_2_C_VERSION, "_POSIX2_C_VERSION", SYSCONF, NOFLAGS, 3867c478bd9Sstevel@tonic-gate #else 3877c478bd9Sstevel@tonic-gate _POSIX2_C_VERSION, "_POSIX2_C_VERSION", SELFCONF, NOFLAGS, 3887c478bd9Sstevel@tonic-gate #endif 3897c478bd9Sstevel@tonic-gate 3907c478bd9Sstevel@tonic-gate /* 3917c478bd9Sstevel@tonic-gate * XPG4 support BEGINS 3927c478bd9Sstevel@tonic-gate */ 3937c478bd9Sstevel@tonic-gate 3947c478bd9Sstevel@tonic-gate #ifndef CHARCLASS_NAME_MAX 3957c478bd9Sstevel@tonic-gate #define CHARCLASS_NAME_MAX -1 3967c478bd9Sstevel@tonic-gate #endif 3977c478bd9Sstevel@tonic-gate #ifndef CHAR_BIT 3987c478bd9Sstevel@tonic-gate #define CHAR_BIT -1 3997c478bd9Sstevel@tonic-gate #endif 4007c478bd9Sstevel@tonic-gate #ifndef CHAR_MAX 4017c478bd9Sstevel@tonic-gate #define CHAR_MAX -1 4027c478bd9Sstevel@tonic-gate #endif 4037c478bd9Sstevel@tonic-gate #ifndef CHAR_MIN 4047c478bd9Sstevel@tonic-gate #define CHAR_MIN -1 4057c478bd9Sstevel@tonic-gate #endif 4067c478bd9Sstevel@tonic-gate #ifndef INT_MAX 4077c478bd9Sstevel@tonic-gate #define INT_MAX -1 4087c478bd9Sstevel@tonic-gate #endif 4097c478bd9Sstevel@tonic-gate #ifndef INT_MIN 4107c478bd9Sstevel@tonic-gate #define INT_MIN -1 4117c478bd9Sstevel@tonic-gate #endif 4127c478bd9Sstevel@tonic-gate #ifndef LONG_BIT 4137c478bd9Sstevel@tonic-gate #define LONG_BIT -1 4147c478bd9Sstevel@tonic-gate #endif 4157c478bd9Sstevel@tonic-gate #ifndef LONG_MAX 4167c478bd9Sstevel@tonic-gate #define LONG_MAX -1 4177c478bd9Sstevel@tonic-gate #endif 4187c478bd9Sstevel@tonic-gate #ifndef LONG_MIN 4197c478bd9Sstevel@tonic-gate #define LONG_MIN -1 4207c478bd9Sstevel@tonic-gate #endif 4217c478bd9Sstevel@tonic-gate #ifndef MB_LEN_MAX 4227c478bd9Sstevel@tonic-gate #define MB_LEN_MAX -1 4237c478bd9Sstevel@tonic-gate #endif 4247c478bd9Sstevel@tonic-gate #ifndef NL_NMAX 4257c478bd9Sstevel@tonic-gate #define NL_NMAX -1 4267c478bd9Sstevel@tonic-gate #endif 4277c478bd9Sstevel@tonic-gate #ifndef NL_ARGMAX 4287c478bd9Sstevel@tonic-gate #define NL_ARGMAX -1 4297c478bd9Sstevel@tonic-gate #endif 4307c478bd9Sstevel@tonic-gate #ifndef NL_LANGMAX 4317c478bd9Sstevel@tonic-gate #define NL_LANGMAX -1 4327c478bd9Sstevel@tonic-gate #endif 4337c478bd9Sstevel@tonic-gate #ifndef NL_MSGMAX 4347c478bd9Sstevel@tonic-gate #define NL_MSGMAX -1 4357c478bd9Sstevel@tonic-gate #endif 4367c478bd9Sstevel@tonic-gate #ifndef NL_SETMAX 4377c478bd9Sstevel@tonic-gate #define NL_SETMAX -1 4387c478bd9Sstevel@tonic-gate #endif 4397c478bd9Sstevel@tonic-gate #ifndef NL_TEXTMAX 4407c478bd9Sstevel@tonic-gate #define NL_TEXTMAX -1 4417c478bd9Sstevel@tonic-gate #endif 4427c478bd9Sstevel@tonic-gate #ifndef NZERO 4437c478bd9Sstevel@tonic-gate #define NZERO -1 4447c478bd9Sstevel@tonic-gate #endif 4457c478bd9Sstevel@tonic-gate #ifndef SCHAR_MAX 4467c478bd9Sstevel@tonic-gate #define SCHAR_MAX -1 4477c478bd9Sstevel@tonic-gate #endif 4487c478bd9Sstevel@tonic-gate #ifndef SCHAR_MIN 4497c478bd9Sstevel@tonic-gate #define SCHAR_MIN -1 4507c478bd9Sstevel@tonic-gate #endif 4517c478bd9Sstevel@tonic-gate #ifndef SHRT_MAX 4527c478bd9Sstevel@tonic-gate #define SHRT_MAX -1 4537c478bd9Sstevel@tonic-gate #endif 4547c478bd9Sstevel@tonic-gate #ifndef SHRT_MIN 4557c478bd9Sstevel@tonic-gate #define SHRT_MIN -1 4567c478bd9Sstevel@tonic-gate #endif 4577c478bd9Sstevel@tonic-gate #ifndef TMP_MAX 4587c478bd9Sstevel@tonic-gate #define TMP_MAX -1 4597c478bd9Sstevel@tonic-gate #endif 4607c478bd9Sstevel@tonic-gate #ifndef WORD_BIT 4617c478bd9Sstevel@tonic-gate #define WORD_BIT -1 4627c478bd9Sstevel@tonic-gate #endif 4637c478bd9Sstevel@tonic-gate 4647c478bd9Sstevel@tonic-gate 4657c478bd9Sstevel@tonic-gate #ifndef _XOPEN_XPG2 4667c478bd9Sstevel@tonic-gate #define _XOPEN_XPG2 -1 4677c478bd9Sstevel@tonic-gate #endif 4687c478bd9Sstevel@tonic-gate #ifndef _XOPEN_XPG3 4697c478bd9Sstevel@tonic-gate #define _XOPEN_XPG3 -1 4707c478bd9Sstevel@tonic-gate #endif 4717c478bd9Sstevel@tonic-gate #ifndef _XOPEN_XPG4 4727c478bd9Sstevel@tonic-gate #define _XOPEN_XPG4 -1 4737c478bd9Sstevel@tonic-gate #endif 4747c478bd9Sstevel@tonic-gate 4757c478bd9Sstevel@tonic-gate /* 4767c478bd9Sstevel@tonic-gate * the following are values that we should find in <limits.h> 4777c478bd9Sstevel@tonic-gate * so we use SELFCONF here. 4787c478bd9Sstevel@tonic-gate * 4797c478bd9Sstevel@tonic-gate */ 4807c478bd9Sstevel@tonic-gate 4817c478bd9Sstevel@tonic-gate /* POSIX.1-1990 */ 4827c478bd9Sstevel@tonic-gate CHARCLASS_NAME_MAX, "CHARCLASS_NAME_MAX", SELFCONF, NOFLAGS, 4838ef5f9c7Schin SSIZE_MAX, "SSIZE_MAX", SELFCONF, NOFLAGS, 4847c478bd9Sstevel@tonic-gate 4857c478bd9Sstevel@tonic-gate /* POSIX.1-1988 */ 4867c478bd9Sstevel@tonic-gate CHAR_BIT, "CHAR_BIT", SELFCONF, NOFLAGS, 4877c478bd9Sstevel@tonic-gate CHAR_MAX, "CHAR_MAX", SELFCONF, NOFLAGS, 4887c478bd9Sstevel@tonic-gate CHAR_MIN, "CHAR_MIN", SELFCONF, NOFLAGS, 4897c478bd9Sstevel@tonic-gate INT_MAX, "INT_MAX", SELFCONF, NOFLAGS, 4907c478bd9Sstevel@tonic-gate INT_MIN, "INT_MIN", SELFCONF, NOFLAGS, 4917c478bd9Sstevel@tonic-gate LONG_BIT, "LONG_BIT", SELFCONF, NOFLAGS, 4927c478bd9Sstevel@tonic-gate LONG_MAX, "LONG_MAX", SELFCONF, NOFLAGS, 4937c478bd9Sstevel@tonic-gate LONG_MIN, "LONG_MIN", SELFCONF, NOFLAGS, 4947c478bd9Sstevel@tonic-gate MB_LEN_MAX, "MB_LEN_MAX", SELFCONF, NOFLAGS, 4957c478bd9Sstevel@tonic-gate NL_NMAX, "NL_NMAX", SELFCONF, NOFLAGS, 4967c478bd9Sstevel@tonic-gate NL_ARGMAX, "NL_ARGMAX", SELFCONF, NOFLAGS, 4977c478bd9Sstevel@tonic-gate NL_LANGMAX, "NL_LANGMAX", SELFCONF, NOFLAGS, 4987c478bd9Sstevel@tonic-gate NL_MSGMAX, "NL_MSGMAX", SELFCONF, NOFLAGS, 4997c478bd9Sstevel@tonic-gate NL_SETMAX, "NL_SETMAX", SELFCONF, NOFLAGS, 5007c478bd9Sstevel@tonic-gate NL_TEXTMAX, "NL_TEXTMAX", SELFCONF, NOFLAGS, 5017c478bd9Sstevel@tonic-gate NZERO, "NZERO", SELFCONF, NOFLAGS, 5027c478bd9Sstevel@tonic-gate SCHAR_MAX, "SCHAR_MAX", SELFCONF, NOFLAGS, 5037c478bd9Sstevel@tonic-gate SCHAR_MIN, "SCHAR_MIN", SELFCONF, NOFLAGS, 5047c478bd9Sstevel@tonic-gate SHRT_MAX, "SHRT_MAX", SELFCONF, NOFLAGS, 5057c478bd9Sstevel@tonic-gate SHRT_MIN, "SHRT_MIN", SELFCONF, NOFLAGS, 5067c478bd9Sstevel@tonic-gate TMP_MAX, "TMP_MAX", SELFCONF, NOFLAGS, 5077c478bd9Sstevel@tonic-gate 5087c478bd9Sstevel@tonic-gate /* 5097c478bd9Sstevel@tonic-gate * for the unsigned maximums, we cannot rely on the value -1 5107c478bd9Sstevel@tonic-gate * to indicate "undefined". 5117c478bd9Sstevel@tonic-gate */ 5127c478bd9Sstevel@tonic-gate #ifndef UCHAR_MAX 5137c478bd9Sstevel@tonic-gate 0, "UCHAR_MAX", SELFCONF, UNDEFINED, 5147c478bd9Sstevel@tonic-gate #else 5157c478bd9Sstevel@tonic-gate (long)UCHAR_MAX, "UCHAR_MAX", SELFCONF, UNSIGNED_VALUE, 5167c478bd9Sstevel@tonic-gate #endif /* UCHAR_MAX */ 5177c478bd9Sstevel@tonic-gate #ifndef UINT_MAX 5187c478bd9Sstevel@tonic-gate 0, "UINT_MAX", SELFCONF, UNDEFINED, 5197c478bd9Sstevel@tonic-gate #else 5207c478bd9Sstevel@tonic-gate (long)UINT_MAX, "UINT_MAX", SELFCONF, UNSIGNED_VALUE, 5217c478bd9Sstevel@tonic-gate #endif /* UINT_MAX */ 5227c478bd9Sstevel@tonic-gate #ifndef ULONG_MAX 5237c478bd9Sstevel@tonic-gate 0, "ULONG_MAX", SELFCONF, UNDEFINED, 5247c478bd9Sstevel@tonic-gate #else 5257c478bd9Sstevel@tonic-gate (long)ULONG_MAX, "ULONG_MAX", SELFCONF, UNSIGNED_VALUE, 5267c478bd9Sstevel@tonic-gate #endif /* ULONG_MAX */ 5277c478bd9Sstevel@tonic-gate #ifndef USHRT_MAX 5287c478bd9Sstevel@tonic-gate 0, "USHRT_MAX", SELFCONF, UNDEFINED, 5297c478bd9Sstevel@tonic-gate #else 5307c478bd9Sstevel@tonic-gate (long)USHRT_MAX, "USHRT_MAX", SELFCONF, UNSIGNED_VALUE, 5317c478bd9Sstevel@tonic-gate #endif /* USHRT_MAX */ 5327c478bd9Sstevel@tonic-gate #ifndef SIZE_MAX 5337c478bd9Sstevel@tonic-gate 0, "SIZE_MAX", SELFCONF, UNDEFINED, 5347c478bd9Sstevel@tonic-gate #else 5357c478bd9Sstevel@tonic-gate (long)SIZE_MAX, "SIZE_MAX", SELFCONF, UNSIGNED_VALUE, 5367c478bd9Sstevel@tonic-gate #endif /* SIZE_MAX */ 5377c478bd9Sstevel@tonic-gate 5387c478bd9Sstevel@tonic-gate WORD_BIT, "WORD_BIT", SELFCONF, NOFLAGS, 5397c478bd9Sstevel@tonic-gate 5407c478bd9Sstevel@tonic-gate /* XPG4 Version 2 */ 5417c478bd9Sstevel@tonic-gate _XOPEN_IOV_MAX, "_XOPEN_IOV_MAX", SELFCONF, NOFLAGS, 5427c478bd9Sstevel@tonic-gate 5437c478bd9Sstevel@tonic-gate /* UNIX 03 */ 5447c478bd9Sstevel@tonic-gate _XOPEN_NAME_MAX, "_XOPEN_NAME_MAX", SELFCONF, NOFLAGS, 5457c478bd9Sstevel@tonic-gate _XOPEN_PATH_MAX, "_XOPEN_PATH_MAX", SELFCONF, NOFLAGS, 5467c478bd9Sstevel@tonic-gate 5477c478bd9Sstevel@tonic-gate /* 5487c478bd9Sstevel@tonic-gate * The following are defined via sysconf(). These are considered 5497c478bd9Sstevel@tonic-gate * an extension to sysconf(). 5507c478bd9Sstevel@tonic-gate * The -0 is needed if _XOPEN_XPG? is defined to be an empty string. 5517c478bd9Sstevel@tonic-gate */ 5527c478bd9Sstevel@tonic-gate _XOPEN_XPG2-0, "_XOPEN_XPG2", SELFCONF, NOFLAGS, 5537c478bd9Sstevel@tonic-gate _XOPEN_XPG3-0, "_XOPEN_XPG3", SELFCONF, NOFLAGS, 5547c478bd9Sstevel@tonic-gate _XOPEN_XPG4-0, "_XOPEN_XPG4", SELFCONF, NOFLAGS, 5557c478bd9Sstevel@tonic-gate 5567c478bd9Sstevel@tonic-gate /* 5577c478bd9Sstevel@tonic-gate * The following should be provided by sysconf() (e.g use SYSCONF), 5587c478bd9Sstevel@tonic-gate * so we look for the appropriate _SC_* symbol in <unistd.h>. 5597c478bd9Sstevel@tonic-gate * If it is not defined, then we use SELFCONF with the value of -1. 5607c478bd9Sstevel@tonic-gate */ 5617c478bd9Sstevel@tonic-gate _SC_XOPEN_VERSION, "_XOPEN_VERSION", SYSCONF, NOFLAGS, 5627c478bd9Sstevel@tonic-gate _SC_XOPEN_XCU_VERSION, "_XOPEN_XCU_VERSION", SYSCONF, NOFLAGS, 5637c478bd9Sstevel@tonic-gate _SC_XOPEN_CRYPT, "_XOPEN_CRYPT", SYSCONF, NOFLAGS, 5647c478bd9Sstevel@tonic-gate _SC_XOPEN_ENH_I18N, "_XOPEN_ENH_I18N", SYSCONF, NOFLAGS, 5657c478bd9Sstevel@tonic-gate _SC_XOPEN_SHM, "_XOPEN_SHM", SYSCONF, NOFLAGS, 5667c478bd9Sstevel@tonic-gate 5677c478bd9Sstevel@tonic-gate /* 5687c478bd9Sstevel@tonic-gate * XPG4 support ends 5697c478bd9Sstevel@tonic-gate */ 5707c478bd9Sstevel@tonic-gate 5717c478bd9Sstevel@tonic-gate /* XPG4, Version 2 support */ 5727c478bd9Sstevel@tonic-gate 5737c478bd9Sstevel@tonic-gate _SC_ATEXIT_MAX, "ATEXIT_MAX", SYSCONF, NOFLAGS, 5747c478bd9Sstevel@tonic-gate _SC_PAGESIZE, "PAGESIZE", SYSCONF, NOFLAGS, 5757c478bd9Sstevel@tonic-gate _SC_PAGE_SIZE, "PAGE_SIZE", SYSCONF, NOFLAGS, 5767c478bd9Sstevel@tonic-gate _SC_XOPEN_UNIX, "_XOPEN_UNIX", SYSCONF, NOFLAGS, 5777c478bd9Sstevel@tonic-gate _SC_IOV_MAX, "IOV_MAX", SYSCONF, NOFLAGS, 5787c478bd9Sstevel@tonic-gate 5797c478bd9Sstevel@tonic-gate /* 5807c478bd9Sstevel@tonic-gate * UNIX 98 - XPG5 additions 5817c478bd9Sstevel@tonic-gate */ 5827c478bd9Sstevel@tonic-gate _SC_XOPEN_LEGACY, "_XOPEN_LEGACY", SYSCONF, NOFLAGS, 5837c478bd9Sstevel@tonic-gate _SC_PASS_MAX, "PASS_MAX", SYSCONF, NOFLAGS, 5847c478bd9Sstevel@tonic-gate _SC_AIO_LISTIO_MAX, "AIO_LISTIO_MAX", SYSCONF, NOFLAGS, 5857c478bd9Sstevel@tonic-gate _SC_AIO_MAX, "AIO_MAX", SYSCONF, NOFLAGS, 5867c478bd9Sstevel@tonic-gate _SC_AIO_PRIO_DELTA_MAX, "AIO_PRIO_DELTA_MAX", SYSCONF, NOFLAGS, 5877c478bd9Sstevel@tonic-gate _SC_DELAYTIMER_MAX, "DELAYTIMER_MAX", SYSCONF, NOFLAGS, 5887c478bd9Sstevel@tonic-gate _SC_MQ_OPEN_MAX, "MQ_OPEN_MAX", SYSCONF, NOFLAGS, 5897c478bd9Sstevel@tonic-gate _SC_MQ_PRIO_MAX, "MQ_PRIO_MAX", SYSCONF, NOFLAGS, 5907c478bd9Sstevel@tonic-gate _SC_RTSIG_MAX, "RTSIG_MAX", SYSCONF, NOFLAGS, 5917c478bd9Sstevel@tonic-gate _SC_SEM_NSEMS_MAX, "SEM_NSEMS_MAX", SYSCONF, NOFLAGS, 5927c478bd9Sstevel@tonic-gate _SC_SEM_VALUE_MAX, "SEM_VALUE_MAX", SYSCONF, NOFLAGS, 5937c478bd9Sstevel@tonic-gate _SC_SIGQUEUE_MAX, "SIGQUEUE_MAX", SYSCONF, NOFLAGS, 5947c478bd9Sstevel@tonic-gate _SC_TIMER_MAX, "TIMER_MAX", SYSCONF, NOFLAGS, 5957c478bd9Sstevel@tonic-gate 5967c478bd9Sstevel@tonic-gate _SC_ASYNCHRONOUS_IO, "_POSIX_ASYNCHRONOUS_IO", SYSCONF, NOFLAGS, 5977c478bd9Sstevel@tonic-gate _SC_FSYNC, "_POSIX_FSYNC", SYSCONF, NOFLAGS, 5987c478bd9Sstevel@tonic-gate _SC_MAPPED_FILES, "_POSIX_MAPPED_FILES", SYSCONF, NOFLAGS, 5997c478bd9Sstevel@tonic-gate _SC_MEMLOCK, "_POSIX_MEMLOCK", SYSCONF, NOFLAGS, 6007c478bd9Sstevel@tonic-gate _SC_MEMLOCK_RANGE, "_POSIX_MEMLOCK_RANGE", SYSCONF, NOFLAGS, 6017c478bd9Sstevel@tonic-gate _SC_MEMORY_PROTECTION, "_POSIX_MEMORY_PROTECTION", SYSCONF, NOFLAGS, 6027c478bd9Sstevel@tonic-gate _SC_MESSAGE_PASSING, "_POSIX_MESSAGE_PASSING", SYSCONF, NOFLAGS, 6037c478bd9Sstevel@tonic-gate _SC_PRIORITIZED_IO, "_POSIX_PRIORITIZED_IO", SYSCONF, NOFLAGS, 6047c478bd9Sstevel@tonic-gate _SC_PRIORITY_SCHEDULING, "_POSIX_PRIORITY_SCHEDULING", SYSCONF, NOFLAGS, 6057c478bd9Sstevel@tonic-gate _SC_REALTIME_SIGNALS, "_POSIX_REALTIME_SIGNALS", SYSCONF, NOFLAGS, 6067c478bd9Sstevel@tonic-gate _SC_SEMAPHORES, "_POSIX_SEMAPHORES", SYSCONF, NOFLAGS, 6077c478bd9Sstevel@tonic-gate 6087c478bd9Sstevel@tonic-gate _SC_SHARED_MEMORY_OBJECTS, "_POSIX_SHARED_MEMORY_OBJECTS", 6097c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6107c478bd9Sstevel@tonic-gate 6117c478bd9Sstevel@tonic-gate _SC_SYNCHRONIZED_IO, "_POSIX_SYNCHRONIZED_IO", SYSCONF, NOFLAGS, 6127c478bd9Sstevel@tonic-gate _SC_TIMERS, "_POSIX_TIMERS", SYSCONF, NOFLAGS, 6137c478bd9Sstevel@tonic-gate 6147c478bd9Sstevel@tonic-gate _SC_LOGIN_NAME_MAX, "LOGIN_NAME_MAX", SYSCONF, NOFLAGS, 6157c478bd9Sstevel@tonic-gate 6167c478bd9Sstevel@tonic-gate _SC_THREAD_DESTRUCTOR_ITERATIONS, "PTHREAD_DESTRUCTOR_ITERATIONS", 6177c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6187c478bd9Sstevel@tonic-gate 6197c478bd9Sstevel@tonic-gate _SC_THREAD_KEYS_MAX, "PTHREAD_KEYS_MAX", SYSCONF, NOFLAGS, 6207c478bd9Sstevel@tonic-gate _SC_THREAD_STACK_MIN, "PTHREAD_STACK_MIN", SYSCONF, NOFLAGS, 6217c478bd9Sstevel@tonic-gate _SC_THREAD_THREADS_MAX, "PTHREAD_THREADS_MAX", SYSCONF, NOFLAGS, 6227c478bd9Sstevel@tonic-gate 6237c478bd9Sstevel@tonic-gate _SC_THREADS, "_POSIX_THREADS", SYSCONF, NOFLAGS, 6247c478bd9Sstevel@tonic-gate 6257c478bd9Sstevel@tonic-gate _SC_THREAD_ATTR_STACKADDR, "POSIX_THREAD_ATTR_STACKADDR", 6267c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6277c478bd9Sstevel@tonic-gate _SC_THREAD_ATTR_STACKADDR, "_POSIX_THREAD_ATTR_STACKADDR", 6287c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6297c478bd9Sstevel@tonic-gate 6307c478bd9Sstevel@tonic-gate _SC_THREAD_ATTR_STACKSIZE, "POSIX_THREAD_ATTR_STACKSIZE", 6317c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6327c478bd9Sstevel@tonic-gate _SC_THREAD_ATTR_STACKSIZE, "_POSIX_THREAD_ATTR_STACKSIZE", 6337c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6347c478bd9Sstevel@tonic-gate 6357c478bd9Sstevel@tonic-gate _SC_THREAD_PRIORITY_SCHEDULING, "POSIX_THREAD_PRIORITY_SCHEDULING", 6367c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6377c478bd9Sstevel@tonic-gate _SC_THREAD_PRIORITY_SCHEDULING, "_POSIX_THREAD_PRIORITY_SCHEDULING", 6387c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6397c478bd9Sstevel@tonic-gate 6407c478bd9Sstevel@tonic-gate _SC_THREAD_PRIO_INHERIT, "POSIX_THREAD_PRIO_INHERIT", 6417c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6427c478bd9Sstevel@tonic-gate _SC_THREAD_PRIO_INHERIT, "_POSIX_THREAD_PRIO_INHERIT", 6437c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6447c478bd9Sstevel@tonic-gate 6457c478bd9Sstevel@tonic-gate _SC_THREAD_PRIO_PROTECT, "POSIX_THREAD_PRIO_PROTECT", 6467c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6477c478bd9Sstevel@tonic-gate _SC_THREAD_PRIO_PROTECT, "_POSIX_THREAD_PRIO_PROTECT", 6487c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6497c478bd9Sstevel@tonic-gate 6507c478bd9Sstevel@tonic-gate _SC_THREAD_PROCESS_SHARED, "POSIX_THREAD_PROCESS_SHARED", 6517c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6527c478bd9Sstevel@tonic-gate _SC_THREAD_PROCESS_SHARED, "_POSIX_THREAD_PROCESS_SHARED", 6537c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6547c478bd9Sstevel@tonic-gate 6557c478bd9Sstevel@tonic-gate _SC_THREAD_SAFE_FUNCTIONS, "POSIX_THREAD_SAFE_FUNCTIONS", 6567c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6577c478bd9Sstevel@tonic-gate _SC_THREAD_SAFE_FUNCTIONS, "_POSIX_THREAD_SAFE_FUNCTIONS", 6587c478bd9Sstevel@tonic-gate SYSCONF, NOFLAGS, 6597c478bd9Sstevel@tonic-gate 6607c478bd9Sstevel@tonic-gate _SC_TTY_NAME_MAX, "TTY_NAME_MAX", SYSCONF, NOFLAGS, 6617c478bd9Sstevel@tonic-gate _SC_XOPEN_REALTIME, "_XOPEN_REALTIME", SYSCONF, NOFLAGS, 6627c478bd9Sstevel@tonic-gate _SC_XOPEN_REALTIME_THREADS, "_XOPEN_REALTIME_THREADS", SYSCONF, NOFLAGS, 6637c478bd9Sstevel@tonic-gate 6647c478bd9Sstevel@tonic-gate /* 6657c478bd9Sstevel@tonic-gate * Due to ambiguity in the standard we need 6667c478bd9Sstevel@tonic-gate * to recognize both the underscored name 6677c478bd9Sstevel@tonic-gate * and the non-underscored version in the 6687c478bd9Sstevel@tonic-gate * following variables. 6697c478bd9Sstevel@tonic-gate */ 6707c478bd9Sstevel@tonic-gate _SC_XBS5_ILP32_OFF32, "XBS5_ILP32_OFF32", SYSCONF, NOFLAGS, 6717c478bd9Sstevel@tonic-gate _SC_XBS5_ILP32_OFF32, "_XBS5_ILP32_OFF32", SYSCONF, NOFLAGS, 6727c478bd9Sstevel@tonic-gate 6737c478bd9Sstevel@tonic-gate _SC_XBS5_ILP32_OFFBIG, "XBS5_ILP32_OFFBIG", SYSCONF, NOFLAGS, 6747c478bd9Sstevel@tonic-gate _SC_XBS5_ILP32_OFFBIG, "_XBS5_ILP32_OFFBIG", SYSCONF, NOFLAGS, 6757c478bd9Sstevel@tonic-gate 6767c478bd9Sstevel@tonic-gate _SC_XBS5_LP64_OFF64, "XBS5_LP64_OFF64", SYSCONF, NOFLAGS, 6777c478bd9Sstevel@tonic-gate _SC_XBS5_LP64_OFF64, "_XBS5_LP64_OFF64", SYSCONF, NOFLAGS, 6787c478bd9Sstevel@tonic-gate 6797c478bd9Sstevel@tonic-gate _SC_XBS5_LPBIG_OFFBIG, "XBS5_LPBIG_OFFBIG", SYSCONF, NOFLAGS, 6807c478bd9Sstevel@tonic-gate _SC_XBS5_LPBIG_OFFBIG, "_XBS5_LPBIG_OFFBIG", SYSCONF, NOFLAGS, 6817c478bd9Sstevel@tonic-gate 6827c478bd9Sstevel@tonic-gate /* 6837c478bd9Sstevel@tonic-gate * UNIX 03 additions for sysconf() names, and names that are not in interfaces 6847c478bd9Sstevel@tonic-gate */ 6857c478bd9Sstevel@tonic-gate _SC_REGEXP, "_POSIX_REGEXP", SYSCONF, NOFLAGS, 6867c478bd9Sstevel@tonic-gate _SC_SHELL, "_POSIX_SHELL", SYSCONF, NOFLAGS, 6877c478bd9Sstevel@tonic-gate _SC_HOST_NAME_MAX, "HOST_NAME_MAX", SYSCONF, NOFLAGS, 6887c478bd9Sstevel@tonic-gate _SC_READER_WRITER_LOCKS, "_POSIX_READER_WRITER_LOCKS", SYSCONF, NOFLAGS, 6897c478bd9Sstevel@tonic-gate _SC_IPV6, "_POSIX_IPV6", SYSCONF, NOFLAGS, 6907c478bd9Sstevel@tonic-gate _SC_RAW_SOCKETS, "_POSIX_RAW_SOCKETS", SYSCONF, NOFLAGS, 6917c478bd9Sstevel@tonic-gate _SC_XOPEN_STREAMS, "_XOPEN_STREAMS", SYSCONF, NOFLAGS, 6927c478bd9Sstevel@tonic-gate _SC_SYMLOOP_MAX, "SYMLOOP_MAX", SYSCONF, NOFLAGS, 6937c478bd9Sstevel@tonic-gate _SC_2_PBS, "_POSIX2_PBS", SYSCONF, NOFLAGS, 6947c478bd9Sstevel@tonic-gate _SC_2_PBS_ACCOUNTING, "_POSIX2_PBS_ACCOUNTING", SYSCONF, NOFLAGS, 6957c478bd9Sstevel@tonic-gate _SC_2_PBS_CHECKPOINT, "_POSIX2_PBS_CHECKPOINT", SYSCONF, NOFLAGS, 6967c478bd9Sstevel@tonic-gate _SC_2_PBS_LOCATE, "_POSIX2_PBS_LOCATE", SYSCONF, NOFLAGS, 6977c478bd9Sstevel@tonic-gate _SC_2_PBS_MESSAGE, "_POSIX2_PBS_MESSAGE", SYSCONF, NOFLAGS, 6987c478bd9Sstevel@tonic-gate _SC_2_PBS_TRACK, "_POSIX2_PBS_TRACK", SYSCONF, NOFLAGS, 6997c478bd9Sstevel@tonic-gate 7007c478bd9Sstevel@tonic-gate _SC_ADVISORY_INFO, "_POSIX_ADVISORY_INFO", SYSCONF, NOFLAGS, 7017c478bd9Sstevel@tonic-gate _SC_BARRIERS, "_POSIX_BARRIERS", SYSCONF, NOFLAGS, 7027c478bd9Sstevel@tonic-gate _SC_CLOCK_SELECTION, "_POSIX_CLOCK_SELECTION", SYSCONF, NOFLAGS, 7037c478bd9Sstevel@tonic-gate _SC_CPUTIME, "_POSIX_CPUTIME", SYSCONF, NOFLAGS, 7047c478bd9Sstevel@tonic-gate _SC_MONOTONIC_CLOCK, "_POSIX_MONOTONIC_CLOCK", SYSCONF, NOFLAGS, 7057c478bd9Sstevel@tonic-gate _SC_SPAWN, "_POSIX_SPAWN", SYSCONF, NOFLAGS, 7067c478bd9Sstevel@tonic-gate _SC_SPIN_LOCKS, "_POSIX_SPIN_LOCKS", SYSCONF, NOFLAGS, 7077c478bd9Sstevel@tonic-gate _SC_SPORADIC_SERVER, "_POSIX_SPORADIC_SERVER", SYSCONF, NOFLAGS, 7087c478bd9Sstevel@tonic-gate _SC_SS_REPL_MAX, "_POSIX_SS_REPL_MAX", SYSCONF, NOFLAGS, 7097c478bd9Sstevel@tonic-gate _SC_THREAD_CPUTIME, "_POSIX_THREAD_CPUTIME", SYSCONF, NOFLAGS, 7107c478bd9Sstevel@tonic-gate _SC_THREAD_SPORADIC_SERVER, "_POSIX_THREAD_SPORADIC_SERVER", SYSCONF, 7117c478bd9Sstevel@tonic-gate NOFLAGS, 7127c478bd9Sstevel@tonic-gate _SC_TIMEOUTS, "_POSIX_TIMEOUTS", SYSCONF, NOFLAGS, 7137c478bd9Sstevel@tonic-gate _SC_TRACE, "_POSIX_TRACE", SYSCONF, NOFLAGS, 7147c478bd9Sstevel@tonic-gate _SC_TRACE_EVENT_FILTER, "_POSIX_TRACE_EVENT_FILTER", SYSCONF, NOFLAGS, 7157c478bd9Sstevel@tonic-gate _SC_TRACE_EVENT_NAME_MAX, "_POSIX_TRACE_EVENT_NAME_MAX", SYSCONF, 7167c478bd9Sstevel@tonic-gate NOFLAGS, 7177c478bd9Sstevel@tonic-gate _SC_TRACE_INHERIT, "_POSIX_TRACE_INHERIT", SYSCONF, NOFLAGS, 7187c478bd9Sstevel@tonic-gate _SC_TRACE_LOG, "_POSIX_TRACE_LOG", SYSCONF, NOFLAGS, 7197c478bd9Sstevel@tonic-gate _SC_TRACE_NAME_MAX, "_POSIX_TRACE_NAME_MAX", SYSCONF, NOFLAGS, 7207c478bd9Sstevel@tonic-gate _SC_TRACE_SYS_MAX, "_POSIX_TRACE_SYS_MAX", SYSCONF, NOFLAGS, 7217c478bd9Sstevel@tonic-gate _SC_TRACE_USER_EVENT_MAX, "_POSIX_TRACE_USER_EVENT_MAX", SYSCONF, 7227c478bd9Sstevel@tonic-gate NOFLAGS, 7237c478bd9Sstevel@tonic-gate _SC_TYPED_MEMORY_OBJECTS, "_POSIX_TYPED_MEMORY_OBJECTS", SYSCONF, 7247c478bd9Sstevel@tonic-gate NOFLAGS, 7257c478bd9Sstevel@tonic-gate 7267c478bd9Sstevel@tonic-gate /* 7277c478bd9Sstevel@tonic-gate * Due to an ambiguity in the specification, we need to recognize both 7287c478bd9Sstevel@tonic-gate * the underscored POSIX name and the non-underscored name. In addition, 7297c478bd9Sstevel@tonic-gate * we need to permit the use of the _V6_* environment names specified 7307c478bd9Sstevel@tonic-gate * in unistd.h. 7317c478bd9Sstevel@tonic-gate */ 7327c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFF32, "_V6_ILP32_OFF32", SYSCONF, NOFLAGS, 7337c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFF32, "_POSIX_V6_ILP32_OFF32", SYSCONF, NOFLAGS, 7347c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFF32, "POSIX_V6_ILP32_OFF32", SYSCONF, NOFLAGS, 7357c478bd9Sstevel@tonic-gate 7367c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFFBIG, "_V6_ILP32_OFFBIG", SYSCONF, NOFLAGS, 7377c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFFBIG, "_POSIX_V6_ILP32_OFFBIG", SYSCONF, NOFLAGS, 7387c478bd9Sstevel@tonic-gate _SC_V6_ILP32_OFFBIG, "POSIX_V6_ILP32_OFFBIG", SYSCONF, NOFLAGS, 7397c478bd9Sstevel@tonic-gate 7407c478bd9Sstevel@tonic-gate _SC_V6_LP64_OFF64, "_V6_LP64_OFF64", SYSCONF, NOFLAGS, 7417c478bd9Sstevel@tonic-gate _SC_V6_LP64_OFF64, "_POSIX_V6_LP64_OFF64", SYSCONF, NOFLAGS, 7427c478bd9Sstevel@tonic-gate _SC_V6_LP64_OFF64, "POSIX_V6_LP64_OFF64", SYSCONF, NOFLAGS, 7437c478bd9Sstevel@tonic-gate 7447c478bd9Sstevel@tonic-gate _SC_V6_LPBIG_OFFBIG, "_V6_LPBIG_OFFBIG", SYSCONF, NOFLAGS, 7457c478bd9Sstevel@tonic-gate _SC_V6_LPBIG_OFFBIG, "_POSIX_V6_LPBIG_OFFBIG", SYSCONF, NOFLAGS, 7467c478bd9Sstevel@tonic-gate _SC_V6_LPBIG_OFFBIG, "POSIX_V6_LPBIG_OFFBIG", SYSCONF, NOFLAGS, 7477c478bd9Sstevel@tonic-gate 0, NULL, 0, 0 /* end of table */ 7487c478bd9Sstevel@tonic-gate }; 7497c478bd9Sstevel@tonic-gate 7507c478bd9Sstevel@tonic-gate 7517c478bd9Sstevel@tonic-gate /* 7527c478bd9Sstevel@tonic-gate * Print usage message. 7537c478bd9Sstevel@tonic-gate */ 7547c478bd9Sstevel@tonic-gate static int 7557c478bd9Sstevel@tonic-gate usage() 7567c478bd9Sstevel@tonic-gate { 7577c478bd9Sstevel@tonic-gate 7587c478bd9Sstevel@tonic-gate (void) fputs(gettext( 7597c478bd9Sstevel@tonic-gate "usage:\tgetconf [-v specification] system_var\n" 7607c478bd9Sstevel@tonic-gate "\tgetconf [-v specification] path_var pathname\n" 7617c478bd9Sstevel@tonic-gate "\tgetconf -a\n"), stderr); 7627c478bd9Sstevel@tonic-gate return (2); 7637c478bd9Sstevel@tonic-gate } 7647c478bd9Sstevel@tonic-gate 7657c478bd9Sstevel@tonic-gate 7667c478bd9Sstevel@tonic-gate static int 7677c478bd9Sstevel@tonic-gate namecmp(const void *a, const void *b) 7687c478bd9Sstevel@tonic-gate { 7697c478bd9Sstevel@tonic-gate return (strcoll(((const struct sctab *)a)->name, 7707c478bd9Sstevel@tonic-gate ((const struct sctab *)b)->name)); 7717c478bd9Sstevel@tonic-gate } 7727c478bd9Sstevel@tonic-gate 7737c478bd9Sstevel@tonic-gate 7747c478bd9Sstevel@tonic-gate static int 7757c478bd9Sstevel@tonic-gate getconf(struct sctab *scp, int argc, char *name, char *file) 7767c478bd9Sstevel@tonic-gate { 7777c478bd9Sstevel@tonic-gate register size_t len; 7787c478bd9Sstevel@tonic-gate register char *buffer; 7797c478bd9Sstevel@tonic-gate long value; 7807c478bd9Sstevel@tonic-gate 7817c478bd9Sstevel@tonic-gate switch (scp->type) { 7827c478bd9Sstevel@tonic-gate case SELFCONF: 7837c478bd9Sstevel@tonic-gate if (argc > 2) 7847c478bd9Sstevel@tonic-gate return (usage()); 7857c478bd9Sstevel@tonic-gate if (scp->flag & UNDEFINED || 7867c478bd9Sstevel@tonic-gate (!(scp->flag&UNSIGNED_VALUE) && scp->value == -1)) { 7877c478bd9Sstevel@tonic-gate /* DO NOT TRANSLATE */ 7887c478bd9Sstevel@tonic-gate (void) printf("undefined\n"); 7897c478bd9Sstevel@tonic-gate } else 7907c478bd9Sstevel@tonic-gate if (scp->flag & UNSIGNED_VALUE) 7917c478bd9Sstevel@tonic-gate (void) printf("%lu\n", scp->value); 7927c478bd9Sstevel@tonic-gate else 7937c478bd9Sstevel@tonic-gate (void) printf("%ld\n", scp->value); 7947c478bd9Sstevel@tonic-gate break; 7957c478bd9Sstevel@tonic-gate 7967c478bd9Sstevel@tonic-gate case SYSCONF: 7977c478bd9Sstevel@tonic-gate if (argc > 2) 7987c478bd9Sstevel@tonic-gate return (usage()); 7997c478bd9Sstevel@tonic-gate errno = 0; 8007c478bd9Sstevel@tonic-gate if (scp->flag & UNDEFINED || 8017c478bd9Sstevel@tonic-gate (value = sysconf((int)scp->value)) == -1) { 8027c478bd9Sstevel@tonic-gate if (errno == EINVAL) { 8037c478bd9Sstevel@tonic-gate (void) fprintf(stderr, 8047c478bd9Sstevel@tonic-gate gettext(INVAL_ARG), name); 8057c478bd9Sstevel@tonic-gate return (1); 8067c478bd9Sstevel@tonic-gate } else { 8077c478bd9Sstevel@tonic-gate /* DO NOT TRANSLATE */ 8087c478bd9Sstevel@tonic-gate (void) printf("undefined\n"); 8097c478bd9Sstevel@tonic-gate return (0); 8107c478bd9Sstevel@tonic-gate } 8117c478bd9Sstevel@tonic-gate } else 8127c478bd9Sstevel@tonic-gate (void) printf("%ld\n", value); 8137c478bd9Sstevel@tonic-gate break; 8147c478bd9Sstevel@tonic-gate 8157c478bd9Sstevel@tonic-gate case CONFSTR: 8167c478bd9Sstevel@tonic-gate if (argc > 2) 8177c478bd9Sstevel@tonic-gate return (usage()); 8187c478bd9Sstevel@tonic-gate errno = 0; 8197c478bd9Sstevel@tonic-gate len = confstr((int)scp->value, NULL, (size_t)0); 8207c478bd9Sstevel@tonic-gate if (len == 0) 8217c478bd9Sstevel@tonic-gate if (errno == EINVAL) { 8227c478bd9Sstevel@tonic-gate (void) fprintf(stderr, gettext(INVAL_ARG), 8237c478bd9Sstevel@tonic-gate name); 8247c478bd9Sstevel@tonic-gate return (1); 8257c478bd9Sstevel@tonic-gate } else { 8267c478bd9Sstevel@tonic-gate /* DO NOT TRANSLATE */ 8277c478bd9Sstevel@tonic-gate (void) printf("undefined\n"); 8287c478bd9Sstevel@tonic-gate return (0); 8297c478bd9Sstevel@tonic-gate } 8307c478bd9Sstevel@tonic-gate /* 8317c478bd9Sstevel@tonic-gate * allocate space to store result of constr() into 8327c478bd9Sstevel@tonic-gate */ 8337c478bd9Sstevel@tonic-gate if ((buffer = malloc(len)) == NULL) { 8347c478bd9Sstevel@tonic-gate (void) fprintf(stderr, 8357c478bd9Sstevel@tonic-gate gettext("insufficient memory available")); 8367c478bd9Sstevel@tonic-gate return (1); 8377c478bd9Sstevel@tonic-gate } 8387c478bd9Sstevel@tonic-gate 8397c478bd9Sstevel@tonic-gate assert(confstr((int)scp->value, buffer, len) != 0); 8407c478bd9Sstevel@tonic-gate 8417c478bd9Sstevel@tonic-gate (void) printf("%s\n", buffer); 8427c478bd9Sstevel@tonic-gate free(buffer); 8437c478bd9Sstevel@tonic-gate break; 8447c478bd9Sstevel@tonic-gate 8457c478bd9Sstevel@tonic-gate case PATHCONF: 8467c478bd9Sstevel@tonic-gate if (argc != 3) 8477c478bd9Sstevel@tonic-gate return (usage()); 8487c478bd9Sstevel@tonic-gate errno = 0; 8497c478bd9Sstevel@tonic-gate if ((value = pathconf(file, (int)scp->value)) == -1) { 8507c478bd9Sstevel@tonic-gate if (errno == EINVAL || errno == 0) { 8517c478bd9Sstevel@tonic-gate /* Does not support the association */ 8527c478bd9Sstevel@tonic-gate /* DO NOT TRANSLATE */ 8537c478bd9Sstevel@tonic-gate (void) printf("undefined\n"); 8547c478bd9Sstevel@tonic-gate return (0); 8557c478bd9Sstevel@tonic-gate } else { 8567c478bd9Sstevel@tonic-gate /* Probably problems with the pathname itself */ 8577c478bd9Sstevel@tonic-gate if (aflag) { 8587c478bd9Sstevel@tonic-gate (void) printf("%s\n", file); 8597c478bd9Sstevel@tonic-gate } else { 8607c478bd9Sstevel@tonic-gate (void) printf("%s", file); 8617c478bd9Sstevel@tonic-gate } 8627c478bd9Sstevel@tonic-gate return (1); 8637c478bd9Sstevel@tonic-gate } 8647c478bd9Sstevel@tonic-gate } 8657c478bd9Sstevel@tonic-gate (void) printf("%ld\n", value); 8667c478bd9Sstevel@tonic-gate break; 8677c478bd9Sstevel@tonic-gate } 8687c478bd9Sstevel@tonic-gate return (0); 8697c478bd9Sstevel@tonic-gate } 8707c478bd9Sstevel@tonic-gate 8717c478bd9Sstevel@tonic-gate int 8727c478bd9Sstevel@tonic-gate main(int argc, char **argv) 8737c478bd9Sstevel@tonic-gate { 8747c478bd9Sstevel@tonic-gate register struct sctab *scp; 8757c478bd9Sstevel@tonic-gate int c; 8767c478bd9Sstevel@tonic-gate int exstat = 0; 8777c478bd9Sstevel@tonic-gate 8787c478bd9Sstevel@tonic-gate (void) setlocale(LC_ALL, ""); 8797c478bd9Sstevel@tonic-gate #if !defined(TEXT_DOMAIN) /* Should be defined by cc -D */ 8807c478bd9Sstevel@tonic-gate #define TEXT_DOMAIN "SYS_TEST" 8817c478bd9Sstevel@tonic-gate #endif 8827c478bd9Sstevel@tonic-gate (void) textdomain(TEXT_DOMAIN); 8837c478bd9Sstevel@tonic-gate 8847c478bd9Sstevel@tonic-gate while ((c = getopt(argc, argv, "av:")) != -1) 8857c478bd9Sstevel@tonic-gate switch (c) { 8867c478bd9Sstevel@tonic-gate case 'a': 8877c478bd9Sstevel@tonic-gate aflag = 1; 8887c478bd9Sstevel@tonic-gate break; 8897c478bd9Sstevel@tonic-gate case 'v': 8907c478bd9Sstevel@tonic-gate /* 8917c478bd9Sstevel@tonic-gate * Unix98 adds the -v option to allow 8927c478bd9Sstevel@tonic-gate * programming 'specifications' to be 8937c478bd9Sstevel@tonic-gate * indicated, for present purposes 8947c478bd9Sstevel@tonic-gate * the specification isn't really 8957c478bd9Sstevel@tonic-gate * doing anything of value, so for 8967c478bd9Sstevel@tonic-gate * the moment getopt just processes the 8977c478bd9Sstevel@tonic-gate * option value and argv[1] is adjusted. 8987c478bd9Sstevel@tonic-gate * 8997c478bd9Sstevel@tonic-gate * At some later date we might want to 9007c478bd9Sstevel@tonic-gate * do specification processing at this 9017c478bd9Sstevel@tonic-gate * point. 9027c478bd9Sstevel@tonic-gate */ 9037c478bd9Sstevel@tonic-gate break; 9047c478bd9Sstevel@tonic-gate case '?': 9057c478bd9Sstevel@tonic-gate return (usage()); 9067c478bd9Sstevel@tonic-gate } 9077c478bd9Sstevel@tonic-gate argc -= optind-1; 9087c478bd9Sstevel@tonic-gate argv += optind-1; 9097c478bd9Sstevel@tonic-gate 9107c478bd9Sstevel@tonic-gate if ((aflag && argc >= 2) || (!aflag && argc < 2)) 9117c478bd9Sstevel@tonic-gate return (usage()); 9127c478bd9Sstevel@tonic-gate if (aflag) { 9137c478bd9Sstevel@tonic-gate 9147c478bd9Sstevel@tonic-gate #define TabStop 8 9157c478bd9Sstevel@tonic-gate #define RightColumn 32 9167c478bd9Sstevel@tonic-gate #define DefPathName "." 9177c478bd9Sstevel@tonic-gate 9187c478bd9Sstevel@tonic-gate /* 9197c478bd9Sstevel@tonic-gate * sort the table by the "name" field 9207c478bd9Sstevel@tonic-gate * so we print it in sorted order 9217c478bd9Sstevel@tonic-gate */ 9227c478bd9Sstevel@tonic-gate qsort(&sctab[0], (sizeof (sctab)/sizeof (struct sctab))-1, 9237c478bd9Sstevel@tonic-gate sizeof (struct sctab), namecmp); 9247c478bd9Sstevel@tonic-gate 9257c478bd9Sstevel@tonic-gate /* 9267c478bd9Sstevel@tonic-gate * print all the known symbols and their values 9277c478bd9Sstevel@tonic-gate */ 9287c478bd9Sstevel@tonic-gate for (scp = &sctab[0]; scp->name != NULL; ++scp) { 9297c478bd9Sstevel@tonic-gate int stat; 9307c478bd9Sstevel@tonic-gate 9317c478bd9Sstevel@tonic-gate /* 9327c478bd9Sstevel@tonic-gate * create 2 columns: 9337c478bd9Sstevel@tonic-gate * variable name in the left column, 9347c478bd9Sstevel@tonic-gate * value in the right column. 9357c478bd9Sstevel@tonic-gate * The right column starts at a tab stop. 9367c478bd9Sstevel@tonic-gate */ 9377c478bd9Sstevel@tonic-gate (void) printf("%s:\t", scp->name); 9387c478bd9Sstevel@tonic-gate 9397c478bd9Sstevel@tonic-gate c = strlen(scp->name) + 1; 9407c478bd9Sstevel@tonic-gate c = (c+TabStop) / TabStop, c *= TabStop; 9417c478bd9Sstevel@tonic-gate for (; c < RightColumn; c += TabStop) 9427c478bd9Sstevel@tonic-gate (void) putchar('\t'); 9437c478bd9Sstevel@tonic-gate 9447c478bd9Sstevel@tonic-gate /* 9457c478bd9Sstevel@tonic-gate * for pathconf() related variables that require 9467c478bd9Sstevel@tonic-gate * a pathname, use "." 9477c478bd9Sstevel@tonic-gate */ 9487c478bd9Sstevel@tonic-gate stat = getconf(scp, scp->type == PATHCONF ? 3 : 2, 9497c478bd9Sstevel@tonic-gate scp->name, DefPathName); 9507c478bd9Sstevel@tonic-gate 9517c478bd9Sstevel@tonic-gate exstat |= stat; 9527c478bd9Sstevel@tonic-gate 9537c478bd9Sstevel@tonic-gate /* 9547c478bd9Sstevel@tonic-gate * if stat != 0, then an error message was already 9557c478bd9Sstevel@tonic-gate * printed in getconf(), 9567c478bd9Sstevel@tonic-gate * so don't need to print one here 9577c478bd9Sstevel@tonic-gate */ 9587c478bd9Sstevel@tonic-gate } 9597c478bd9Sstevel@tonic-gate } else { 9607c478bd9Sstevel@tonic-gate 9617c478bd9Sstevel@tonic-gate /* 9627c478bd9Sstevel@tonic-gate * find the name of the specified variable (argv[1]) 9637c478bd9Sstevel@tonic-gate * and print its value. 9647c478bd9Sstevel@tonic-gate */ 9657c478bd9Sstevel@tonic-gate for (scp = &sctab[0]; scp->name != NULL; ++scp) 9667c478bd9Sstevel@tonic-gate if (strcmp(argv[1], scp->name) == 0) { 9677c478bd9Sstevel@tonic-gate exstat = getconf(scp, argc, argv[1], argv[2]); 9687c478bd9Sstevel@tonic-gate break; 9697c478bd9Sstevel@tonic-gate } 9707c478bd9Sstevel@tonic-gate 9717c478bd9Sstevel@tonic-gate /* 9727c478bd9Sstevel@tonic-gate * if at last entry in table, then the user specified 9737c478bd9Sstevel@tonic-gate * variable is invalid 9747c478bd9Sstevel@tonic-gate */ 9757c478bd9Sstevel@tonic-gate if (scp->name == NULL) { 9767c478bd9Sstevel@tonic-gate errno = EINVAL; 9777c478bd9Sstevel@tonic-gate (void) fprintf(stderr, gettext(INVAL_ARG), argv[1]); 9787c478bd9Sstevel@tonic-gate return (1); 9797c478bd9Sstevel@tonic-gate } 9807c478bd9Sstevel@tonic-gate } 9817c478bd9Sstevel@tonic-gate return (exstat); 9827c478bd9Sstevel@tonic-gate } 983