diff options
Diffstat (limited to 'examples/loadables')
-rw-r--r-- | examples/loadables/cut.c | 379 | ||||
-rw-r--r-- | examples/loadables/getconf.c | 1490 | ||||
-rw-r--r-- | examples/loadables/getconf.h | 214 |
3 files changed, 0 insertions, 2083 deletions
diff --git a/examples/loadables/cut.c b/examples/loadables/cut.c deleted file mode 100644 index 47d7d3ef..00000000 --- a/examples/loadables/cut.c +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright (c) 1989, 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Adam S. Moskowitz of Menlo Consulting and Marciano Pitargue. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef lint -static const char copyright[] = -"@(#) Copyright (c) 1989, 1993\n\ - The Regents of the University of California. All rights reserved.\n"; -#endif /* not lint */ - -#ifndef lint -static const char sccsid[] = "@(#)cut.c 8.3 (Berkeley) 5/4/95"; -#endif /* not lint */ - -#include <config.h> - -#include <ctype.h> -#include <stdio.h> -#include <errno.h> - -#include "bashansi.h" - -#ifdef HAVE_LIMITS_H -# include <limits.h> -#endif - -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif - -#include "builtins.h" -#include "shell.h" -#include "bashgetopt.h" -#include "common.h" - -#if !defined (errno) -extern int errno; -#endif - -#if !defined (_POSIX2_LINE_MAX) -# define _POSIX2_LINE_MAX 2048 -#endif - -static int cflag; -static char dchar; -static int dflag; -static int fflag; -static int sflag; - -static int autostart, autostop, maxval; -static char positions[_POSIX2_LINE_MAX + 1]; - -static int c_cut __P((FILE *, char *)); -static int f_cut __P((FILE *, char *)); -static int get_list __P((char *)); -static char *_cut_strsep __P((char **, const char *)); - -int -cut_builtin(list) - WORD_LIST *list; -{ - FILE *fp; - int (*fcn) __P((FILE *, char *)) = NULL; - int ch; - - fcn = NULL; - dchar = '\t'; /* default delimiter is \t */ - - /* Since we don't support multi-byte characters, the -c and -b - options are equivalent, and the -n option is meaningless. */ - reset_internal_getopt (); - while ((ch = internal_getopt (list, "b:c:d:f:sn")) != -1) - switch(ch) { - case 'b': - case 'c': - fcn = c_cut; - if (get_list(list_optarg) < 0) - return (EXECUTION_FAILURE); - cflag = 1; - break; - case 'd': - dchar = *list_optarg; - dflag = 1; - break; - case 'f': - fcn = f_cut; - if (get_list(list_optarg) < 0) - return (EXECUTION_FAILURE); - fflag = 1; - break; - case 's': - sflag = 1; - break; - case 'n': - break; - case '?': - default: - builtin_usage(); - return (EX_USAGE); - } - - list = loptend; - - if (fflag) { - if (cflag) { - builtin_usage(); - return (EX_USAGE); - } - } else if (!cflag || dflag || sflag) { - builtin_usage(); - return (EX_USAGE); - } - - if (list) { - while (list) { - fp = fopen(list->word->word, "r"); - if (fp == 0) { - builtin_error("%s", list->word->word); - return (EXECUTION_FAILURE); - } - ch = (*fcn)(fp, list->word->word); - (void)fclose(fp); - if (ch < 0) - return (EXECUTION_FAILURE); - list = list->next; - } - } else { - ch = (*fcn)(stdin, "stdin"); - if (ch < 0) - return (EXECUTION_FAILURE); - } - - return (EXECUTION_SUCCESS); -} - -static int -get_list(list) - char *list; -{ - int setautostart, start, stop; - char *pos; - char *p; - - /* - * set a byte in the positions array to indicate if a field or - * column is to be selected; use +1, it's 1-based, not 0-based. - * This parser is less restrictive than the Draft 9 POSIX spec. - * POSIX doesn't allow lists that aren't in increasing order or - * overlapping lists. We also handle "-3-5" although there's no - * real reason too. - */ - for (; (p = _cut_strsep(&list, ", \t")) != NULL;) { - setautostart = start = stop = 0; - if (*p == '-') { - ++p; - setautostart = 1; - } - if (isdigit((unsigned char)*p)) { - start = stop = strtol(p, &p, 10); - if (setautostart && start > autostart) - autostart = start; - } - if (*p == '-') { - if (isdigit((unsigned char)p[1])) - stop = strtol(p + 1, &p, 10); - if (*p == '-') { - ++p; - if (!autostop || autostop > stop) - autostop = stop; - } - } - if (*p) { - builtin_error("[-cf] list: illegal list value"); - return -1; - } - if (!stop || !start) { - builtin_error("[-cf] list: values may not include zero"); - return -1; - } - if (stop > _POSIX2_LINE_MAX) { - builtin_error("[-cf] list: %d too large (max %d)", - stop, _POSIX2_LINE_MAX); - return -1; - } - if (maxval < stop) - maxval = stop; - for (pos = positions + start; start++ <= stop; *pos++ = 1); - } - - /* overlapping ranges */ - if (autostop && maxval > autostop) - maxval = autostop; - - /* set autostart */ - if (autostart) - memset(positions + 1, '1', autostart); - - return 0; -} - -/* ARGSUSED */ -static int -c_cut(fp, fname) - FILE *fp; - char *fname; -{ - int ch, col; - char *pos; - - ch = 0; - for (;;) { - pos = positions + 1; - for (col = maxval; col; --col) { - if ((ch = getc(fp)) == EOF) - return; - if (ch == '\n') - break; - if (*pos++) - (void)putchar(ch); - } - if (ch != '\n') { - if (autostop) - while ((ch = getc(fp)) != EOF && ch != '\n') - (void)putchar(ch); - else - while ((ch = getc(fp)) != EOF && ch != '\n'); - } - (void)putchar('\n'); - } - return (0); -} - -static int -f_cut(fp, fname) - FILE *fp; - char *fname; -{ - int ch, field, isdelim; - char *pos, *p, sep; - int output; - char lbuf[_POSIX2_LINE_MAX + 1]; - - for (sep = dchar; fgets(lbuf, sizeof(lbuf), fp);) { - output = 0; - for (isdelim = 0, p = lbuf;; ++p) { - if (!(ch = *p)) { - builtin_error("%s: line too long.", fname); - return -1; - } - /* this should work if newline is delimiter */ - if (ch == sep) - isdelim = 1; - if (ch == '\n') { - if (!isdelim && !sflag) - (void)printf("%s", lbuf); - break; - } - } - if (!isdelim) - continue; - - pos = positions + 1; - for (field = maxval, p = lbuf; field; --field, ++pos) { - if (*pos) { - if (output++) - (void)putchar(sep); - while ((ch = *p++) != '\n' && ch != sep) - (void)putchar(ch); - } else { - while ((ch = *p++) != '\n' && ch != sep) - continue; - } - if (ch == '\n') - break; - } - if (ch != '\n') { - if (autostop) { - if (output) - (void)putchar(sep); - for (; (ch = *p) != '\n'; ++p) - (void)putchar(ch); - } else - for (; (ch = *p) != '\n'; ++p); - } - (void)putchar('\n'); - } - return (0); -} - -/* - * Get next token from string *stringp, where tokens are possibly-empty - * strings separated by characters from delim. - * - * Writes NULs into the string at *stringp to end tokens. - * delim need not remain constant from call to call. - * On return, *stringp points past the last NUL written (if there might - * be further tokens), or is NULL (if there are definitely no more tokens). - * - * If *stringp is NULL, strsep returns NULL. - */ -static char * -_cut_strsep(stringp, delim) - register char **stringp; - register const char *delim; -{ - register char *s; - register const char *spanp; - register int c, sc; - char *tok; - - if ((s = *stringp) == NULL) - return (NULL); - for (tok = s;;) { - c = *s++; - spanp = delim; - do { - if ((sc = *spanp++) == c) { - if (c == 0) - s = NULL; - else - s[-1] = 0; - *stringp = s; - return (tok); - } - } while (sc != 0); - } - /* NOTREACHED */ -} - -static char *cut_doc[] = { - "Select portions of lines.", - "", - "Select portions of each line (as specified by LIST) from each FILE", - "(by default, the standard input), and write them to the standard output.", - "Items specified by LIST are either column positions or fields delimited", - "by a special character. Column numbering starts at 1.", - (char *)0 -}; - -struct builtin cut_struct = { - "cut", - cut_builtin, - BUILTIN_ENABLED, - cut_doc, - "cut -b list [-n] [file ...] OR cut -c list [file ...] OR cut -f list [-s] [-d delim] [file ...]", - 0 -}; diff --git a/examples/loadables/getconf.c b/examples/loadables/getconf.c deleted file mode 100644 index d3dec415..00000000 --- a/examples/loadables/getconf.c +++ /dev/null @@ -1,1490 +0,0 @@ -/* - * ORIGINAL COPYRIGHT STATEMENT: - * - * Copyright (c) 1994 Winning Strategies, Inc. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Winning Strategies, Inc. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * POSIX.2 getconf utility - * - * Originally Written by: - * J.T. Conklin (jtc@wimsey.com), Winning Strategies, Inc. - * - * Heavily modified for inclusion in bash by - * Chet Ramey <chet@po.cwru.edu> - */ - -#ifdef HAVE_CONFIG_H -# include <config.h> -#endif - -#ifdef HAVE_SYS_PARAM_H -# include <sys/param.h> -#endif - -#include <stdio.h> -#ifdef HAVE_LIMITS_H -#include <limits.h> -#endif -#ifdef HAVE_LOCALE_H -#include <locale.h> -#endif -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif -#include <errno.h> - -#include "typemax.h" - -#include "bashansi.h" -#include "shell.h" -#include "builtins.h" -#include "stdc.h" -#include "common.h" -#include "bashgetopt.h" - -#include "getconf.h" - -#ifndef errno -extern int errno; -#endif - -struct conf_variable -{ - const char *name; - enum { SYSCONF, CONFSTR, PATHCONF, CONSTANT, LLCONST, G_UNDEF } type; - long value; -}; - -#ifndef HAVE_CONFSTR -static size_t confstr __P((int, char *, size_t)); -#endif - -#ifndef HAVE_SYSCONF -static long sysconf __P((int)); -#endif - -#ifndef HAVE_PATHCONF -static long pathconf __P((const char *, int)); -#endif - -/* Hack to `encode' values wider than long into a conf_variable */ -#define VAL_LLONG_MIN -1000 -#define VAL_LLONG_MAX -1001 -#define VAL_ULLONG_MAX -1002 - -static const struct conf_variable conf_table[] = -{ - /* POSIX.2 Configurable Variable Values */ - { "PATH", CONFSTR, _CS_PATH }, - { "CS_PATH", CONFSTR, _CS_PATH }, - - /* POSIX.1 Configurable Variable Values (only Solaris?) */ -#if defined (_CS_LFS_CFLAGS) - { "LFS_CFLAGS", CONFSTR, _CS_LFS_CFLAGS }, - { "LFS_LDFLAGS", CONFSTR, _CS_LFS_LDFLAGS }, - { "LFS_LIBS", CONFSTR, _CS_LFS_LIBS }, - { "LFS_LINTFLAGS", CONFSTR, _CS_LFS_LINTFLAGS }, -#endif -#if defined (_CS_LFS64_CFLAGS) - { "LFS64_CFLAGS", CONFSTR, _CS_LFS64_CFLAGS }, - { "LFS64_LDFLAGS", CONFSTR, _CS_LFS64_LDFLAGS }, - { "LFS64_LIBS", CONFSTR, _CS_LFS64_LIBS }, - { "LFS64_LINTFLAGS", CONFSTR, _CS_LFS64_LINTFLAGS }, -#endif - - /* Single UNIX Specification version 2 Configurable Variable Values. The - SYSCONF variables say whether or not the appropriate CONFSTR variables - are available. */ -#if defined (_SC_XBS5_ILP32_OFF32) - { "XBS5_ILP32_OFF32", SYSCONF, _SC_XBS5_ILP32_OFF32 }, - { "_XBS5_ILP32_OFF32", SYSCONF, _SC_XBS5_ILP32_OFF32 }, -#endif -#if defined (_CS_XBS5_ILP32_OFF32_CFLAGS) - { "XBS5_ILP32_OFF32_CFLAGS", CONFSTR, _CS_XBS5_ILP32_OFF32_CFLAGS }, - { "XBS5_ILP32_OFF32_LDFLAGS", CONFSTR, _CS_XBS5_ILP32_OFF32_LDFLAGS }, - { "XBS5_ILP32_OFF32_LIBS", CONFSTR, _CS_XBS5_ILP32_OFF32_LIBS }, - { "XBS5_ILP32_OFF32_LINTFLAGS", CONFSTR, _CS_XBS5_ILP32_OFF32_LINTFLAGS }, -#endif -#if defined (_SC_XBS5_ILP32_OFFBIG) - { "XBS5_ILP32_OFFBIG", SYSCONF, _SC_XBS5_ILP32_OFFBIG }, - { "_XBS5_ILP32_OFFBIG", SYSCONF, _SC_XBS5_ILP32_OFFBIG }, -#endif -#if defined (_CS_XBS5_ILP32_OFFBIG_CFLAGS) - { "XBS5_ILP32_OFFBIG_CFLAGS", CONFSTR, _CS_XBS5_ILP32_OFFBIG_CFLAGS }, - { "XBS5_ILP32_OFFBIG_LDFLAGS", CONFSTR, _CS_XBS5_ILP32_OFFBIG_LDFLAGS }, - { "XBS5_ILP32_OFFBIG_LIBS", CONFSTR, _CS_XBS5_ILP32_OFFBIG_LIBS }, - { "XBS5_ILP32_OFFBIG_LINTFLAGS", CONFSTR, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS }, -#endif -#if defined (_SC_XBS5_LP64_OFF64) - { "XBS5_LP64_OFF64", SYSCONF, _SC_XBS5_LP64_OFF64 }, - { "_XBS5_LP64_OFF64", SYSCONF, _SC_XBS5_LP64_OFF64 }, -#endif -#if defined (_CS_XBS5_LP64_OFF64_CFLAGS) - { "XBS5_LP64_OFF64_CFLAGS", CONFSTR, _CS_XBS5_LP64_OFF64_CFLAGS }, - { "XBS5_LP64_OFF64_LDFLAGS", CONFSTR, _CS_XBS5_LP64_OFF64_LDFLAGS }, - { "XBS5_LP64_OFF64_LIBS", CONFSTR, _CS_XBS5_LP64_OFF64_LIBS }, - { "XBS5_LP64_OFF64_LINTFLAGS", CONFSTR, _CS_XBS5_LP64_OFF64_LINTFLAGS }, -#endif -#if defined (_SC_XBS5_LPBIG_OFFBIG) - { "XBS5_LPBIG_OFFBIG", SYSCONF, _SC_XBS5_LPBIG_OFFBIG }, - { "_XBS5_LPBIG_OFFBIG", SYSCONF, _SC_XBS5_LPBIG_OFFBIG }, -#endif -#if defined (_CS_XBS5_LPBIG_OFFBIG_CFLAGS) - { "XBS5_LPBIG_OFFBIG_CFLAGS", CONFSTR, _CS_XBS5_LPBIG_OFFBIG_CFLAGS }, - { "XBS5_LPBIG_OFFBIG_LDFLAGS", CONFSTR, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS }, - { "XBS5_LPBIG_OFFBIG_LIBS", CONFSTR, _CS_XBS5_LPBIG_OFFBIG_LIBS }, - { "XBS5_LPBIG_OFFBIG_LINTFLAGS", CONFSTR, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS }, -#endif - - /* Single UNIX Specification version 3 (POSIX.1-200x) Configurable Variable - Values. The SYSCONF variables say whether or not the appropriate CONFSTR - variables are available. */ - -#if defined (_SC_POSIX_V6_ILP32_OFF32) - { "_POSIX_V6_ILP32_OFF32", SYSCONF, _SC_POSIX_V6_ILP32_OFF32 }, -#endif -#if defined (_CS_POSIX_V6_ILP32_OFF32_CFLAGS) - { "POSIX_V6_ILP32_OFF32_CFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFF32_CFLAGS }, - { "POSIX_V6_ILP32_OFF32_LDFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS }, - { "POSIX_V6_ILP32_OFF32_LIBS", CONFSTR, _CS_POSIX_V6_ILP32_OFF32_LIBS }, -#endif -#if defined (_CS_POSIX_V6_ILP32_OFF32_LINTFLAGS) - { "POSIX_V6_ILP32_OFF32_LINTFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS }, -#endif -#if defined (_SC_POSIX_V6_ILP32_OFFBIG) - { "_POSIX_V6_ILP32_OFFBIG", SYSCONF, _SC_POSIX_V6_ILP32_OFFBIG }, -#endif -#if defined (_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS) - { "POSIX_V6_ILP32_OFFBIG_CFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS }, - { "POSIX_V6_ILP32_OFFBIG_LDFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS }, - { "POSIX_V6_ILP32_OFFBIG_LIBS", CONFSTR, _CS_POSIX_V6_ILP32_OFFBIG_LIBS }, -#endif -#if defined (_CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS) - { "POSIX_V6_ILP32_OFFBIG_LINTFLAGS", CONFSTR, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS }, -#endif -#if defined (_SC_POSIX_V6_LP64_OFF64) - { "_POSIX_V6_LP64_OFF64", SYSCONF, _SC_POSIX_V6_LP64_OFF64 }, -#endif -#if defined (_CS_POSIX_V6_LP64_OFF64_CFLAGS) - { "POSIX_V6_LP64_OFF64_CFLAGS", CONFSTR, _CS_POSIX_V6_LP64_OFF64_CFLAGS }, - { "POSIX_V6_LP64_OFF64_LDFLAGS", CONFSTR, _CS_POSIX_V6_LP64_OFF64_LDFLAGS }, - { "POSIX_V6_LP64_OFF64_LIBS", CONFSTR, _CS_POSIX_V6_LP64_OFF64_LIBS }, -#endif -#if defined (CS_POSIX_V6_LP64_OFF64_LINTFLAGS) - { "POSIX_V6_LP64_OFF64_LINTFLAGS", CONFSTR, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS }, -#endif -#if defined (_SC_POSIX_V6_LPBIG_OFFBIG) - { "_POSIX_V6_LPBIG_OFFBIG", SYSCONF, _SC_POSIX_V6_LPBIG_OFFBIG }, -#endif -#if defined (_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS) - { "POSIX_V6_LPBIG_OFFBIG_CFLAGS", CONFSTR, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS }, - { "POSIX_V6_LPBIG_OFFBIG_LDFLAGS", CONFSTR, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS }, - { "POSIX_V6_LPBIG_OFFBIG_LIBS", CONFSTR, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS }, -#endif -#if defined (_CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS) - { "POSIX_V6_LPBIG_OFFBIG_LINTFLAGS", CONFSTR, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS }, -#endif - -#if defined (_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS) - { "POSIX_6_WIDTH_RESTRICTED_ENVS", CONFSTR, _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS }, -#endif - - /* POSIX.2 Utility Limit Minimum Values */ -#ifdef _POSIX2_BC_BASE_MAX - { "POSIX2_BC_BASE_MAX", CONSTANT, _POSIX2_BC_BASE_MAX }, -#else - { "POSIX2_BC_BASE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_DIM_MAX - { "POSIX2_BC_DIM_MAX", CONSTANT, _POSIX2_BC_DIM_MAX }, -#else - { "POSIX2_BC_DIM_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_SCALE_MAX - { "POSIX2_BC_SCALE_MAX", CONSTANT, _POSIX2_BC_SCALE_MAX }, -#else - { "POSIX2_BC_SCALE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_STRING_MAX - { "POSIX2_BC_STRING_MAX", CONSTANT, _POSIX2_BC_STRING_MAX }, -#else - { "POSIX2_BC_STRING_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_CHARCLASS_NAME_MAX - { "POSIX2_CHARCLASS_NAME_MAX", CONSTANT, _POSIX2_CHARCLASS_NAME_MAX }, -#else - { "POSIX2_CHARCLASS_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_COLL_WEIGHTS_MAX - { "POSIX2_COLL_WEIGHTS_MAX", CONSTANT, _POSIX2_COLL_WEIGHTS_MAX }, -#else - { "POSIX2_COLL_WEIGHTS_MAX", G_UNDEF, -1 }, -#endif -#if defined (_POSIX2_EQUIV_CLASS_MAX) - { "POSIX2_EQUIV_CLASS_MAX", CONSTANT, _POSIX2_EQUIV_CLASS_MAX }, -#endif -#ifdef _POSIX2_EXPR_NEST_MAX - { "POSIX2_EXPR_NEST_MAX", CONSTANT, _POSIX2_EXPR_NEST_MAX }, -#else - { "POSIX2_EXPR_NEST_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_LINE_MAX - { "POSIX2_LINE_MAX", CONSTANT, _POSIX2_LINE_MAX }, -#else - { "POSIX2_LINE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_RE_DUP_MAX - { "POSIX2_RE_DUP_MAX", CONSTANT, _POSIX2_RE_DUP_MAX }, -#else - { "POSIX2_RE_DUP_MAX", G_UNDEF, -1 }, -#endif -#if defined (_POSIX2_VERSION) - { "POSIX2_VERSION", CONSTANT, _POSIX2_VERSION }, -#else -# if !defined (_SC_2_VERSION) - { "POSIX2_VERSION", G_UNDEF, -1 }, -# endif -#endif - -#ifdef _POSIX2_BC_BASE_MAX - { "_POSIX2_BC_BASE_MAX", CONSTANT, _POSIX2_BC_BASE_MAX }, -#else - { "_POSIX2_BC_BASE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_DIM_MAX - { "_POSIX2_BC_DIM_MAX", CONSTANT, _POSIX2_BC_DIM_MAX }, -#else - { "_POSIX2_BC_DIM_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_SCALE_MAX - { "_POSIX2_BC_SCALE_MAX", CONSTANT, _POSIX2_BC_SCALE_MAX }, -#else - { "_POSIX2_BC_SCALE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_BC_STRING_MAX - { "_POSIX2_BC_STRING_MAX", CONSTANT, _POSIX2_BC_STRING_MAX }, -#else - { "_POSIX2_BC_STRING_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_CHARCLASS_NAME_MAX - { "_POSIX2_CHARCLASS_NAME_MAX", CONSTANT, _POSIX2_CHARCLASS_NAME_MAX }, -#else - { "_POSIX2_CHARCLASS_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_COLL_WEIGHTS_MAX - { "_POSIX2_COLL_WEIGHTS_MAX", CONSTANT, _POSIX2_COLL_WEIGHTS_MAX }, -#else - { "_POSIX2_COLL_WEIGHTS_MAX", G_UNDEF, -1 }, -#endif -#if defined (_POSIX2_EQUIV_CLASS_MAX) - { "POSIX2_EQUIV_CLASS_MAX", CONSTANT, _POSIX2_EQUIV_CLASS_MAX }, -#endif -#ifdef _POSIX2_EXPR_NEST_MAX - { "_POSIX2_EXPR_NEST_MAX", CONSTANT, _POSIX2_EXPR_NEST_MAX }, -#else - { "_POSIX2_EXPR_NEST_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_LINE_MAX - { "_POSIX2_LINE_MAX", CONSTANT, _POSIX2_LINE_MAX }, -#else - { "_POSIX2_LINE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX2_RE_DUP_MAX - { "_POSIX2_RE_DUP_MAX", CONSTANT, _POSIX2_RE_DUP_MAX }, -#else - { "_POSIX2_RE_DUP_MAX", G_UNDEF, -1 }, -#endif - - /* X/OPEN Maxmimum Values */ -#ifdef _XOPEN_IOV_MAX - { "_XOPEN_IOV_MAX", CONSTANT, _XOPEN_IOV_MAX }, -#else - { "_XOPEN_IOV_MAX", G_UNDEF, -1 }, -#endif -#ifdef _XOPEN_NAME_MAX - { "_XOPEN_NAME_MAX", CONSTANT, _XOPEN_NAME_MAX }, -#else - { "_XOPEN_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _XOPEN_PATH_MAX - { "_XOPEN_PATH_MAX", CONSTANT, _XOPEN_PATH_MAX }, -#else - { "_XOPEN_PATH_MAX", G_UNDEF, -1 }, -#endif - - /* POSIX.1 Minimum Values */ -#ifdef _POSIX_AIO_LISTIO_MAX - { "_POSIX_AIO_LISTIO_MAX", CONSTANT, _POSIX_AIO_LISTIO_MAX }, -#else - { "_POSIX_AIO_LISTIO_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_AIO_MAX - { "_POSIX_AIO_MAX", CONSTANT, _POSIX_AIO_MAX }, -#else - { "_POSIX_AIO_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_ARG_MAX - { "_POSIX_ARG_MAX", CONSTANT, _POSIX_ARG_MAX }, -#else - { "_POSIX_ARG_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_CHILD_MAX - { "_POSIX_CHILD_MAX", CONSTANT, _POSIX_CHILD_MAX }, -#else - { "_POSIX_CHILD_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_DELAYTIMER_MAX - { "_POSIX_DELAYTIMER_MAX", CONSTANT, _POSIX_DELAYTIMER_MAX }, -#else - { "_POSIX_DELAYTIMER_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_HOST_NAME_MAX - { "_POSIX_HOST_NAME_MAX", CONSTANT, _POSIX_HOST_NAME_MAX }, -#else - { "_POSIX_HOST_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_LINK_MAX - { "_POSIX_LINK_MAX", CONSTANT, _POSIX_LINK_MAX }, -#else - { "_POSIX_LINK_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_LOGIN_NAME_MAX - { "_POSIX_LOGIN_NAME_MAX", CONSTANT, _POSIX_LOGIN_NAME_MAX }, -#else - { "_POSIX_LOGIN_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_MAX_CANON - { "_POSIX_MAX_CANON", CONSTANT, _POSIX_MAX_CANON }, -#else - { "_POSIX_MAX_CANON", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_MAX_INPUT - { "_POSIX_MAX_INPUT", CONSTANT, _POSIX_MAX_INPUT }, -#else - { "_POSIX_MAX_INPUT", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_MQ_OPEN_MAX - { "_POSIX_MQ_OPEN_MAX", CONSTANT, _POSIX_MQ_OPEN_MAX }, -#else - { "_POSIX_MQ_OPEN_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_MQ_PRIO_MAX - { "_POSIX_MQ_PRIO_MAX", CONSTANT, _POSIX_MQ_PRIO_MAX }, -#else - { "_POSIX_MQ_PRIO_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_NAME_MAX - { "_POSIX_NAME_MAX", CONSTANT, _POSIX_NAME_MAX }, -#else - { "_POSIX_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_NGROUPS_MAX - { "_POSIX_NGROUPS_MAX", CONSTANT, _POSIX_NGROUPS_MAX }, -#else - { "_POSIX_NGROUPS_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_OPEN_MAX - { "_POSIX_OPEN_MAX", CONSTANT, _POSIX_OPEN_MAX }, -#else - { "_POSIX_OPEN_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_PATH_MAX - { "_POSIX_PATH_MAX", CONSTANT, _POSIX_PATH_MAX }, -#else - { "_POSIX_PATH_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_PIPE_BUF - { "_POSIX_PIPE_BUF", CONSTANT, _POSIX_PIPE_BUF }, -#else - { "_POSIX_PIPE_BUF", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_RE_DUP_MAX - { "_POSIX_RE_DUP_MAX", CONSTANT, _POSIX_RE_DUP_MAX }, -#else - { "_POSIX_RE_DUP_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_RTSIG_MAX - { "_POSIX_RTSIG_MAX", CONSTANT, _POSIX_RTSIG_MAX }, -#else - { "_POSIX_RTSIG_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SEM_NSEMS_MAX - { "_POSIX_SEM_NSEMS_MAX", CONSTANT, _POSIX_SEM_NSEMS_MAX }, -#else - { "_POSIX_SEM_NSEMS_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SEM_VALUE_MAX - { "_POSIX_SEM_VALUE_MAX", CONSTANT, _POSIX_SEM_VALUE_MAX }, -#else - { "_POSIX_SEM_VALUE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SIGQUEUE_MAX - { "_POSIX_SIGQUEUE_MAX", CONSTANT, _POSIX_SIGQUEUE_MAX }, -#else - { "_POSIX_SIGQUEUE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SSIZE_MAX - { "_POSIX_SSIZE_MAX", CONSTANT, _POSIX_SSIZE_MAX }, -#else - { "_POSIX_SSIZE_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SS_REPL_MAX - { "_POSIX_SS_REPL_MAX", CONSTANT, _POSIX_SS_REPL_MAX }, -#else - { "_POSIX_SS_REPL_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_STREAM_MAX - { "_POSIX_STREAM_MAX", CONSTANT, _POSIX_STREAM_MAX }, -#else - { "_POSIX_STREAM_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SYMLINK_MAX - { "_POSIX_SYMLINK_MAX", CONSTANT, _POSIX_SYMLINK_MAX }, -#else - { "_POSIX_SYMLINK_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_SYMLOOP_MAX - { "_POSIX_SYMLOOP_MAX", CONSTANT, _POSIX_SYMLOOP_MAX }, -#else - { "_POSIX_SYMLOOP_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_THREAD_DESTRUCTOR_ITERATIONS - { "_POSIX_THREAD_DESTRUCTOR_ITERATIONS", CONSTANT, _POSIX_THREAD_DESTRUCTOR_ITERATIONS }, -#else - { "_POSIX_THREAD_DESTRUCTOR_ITERATIONS", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_THREAD_KEYS_MAX - { "_POSIX_THREAD_KEYS_MAX", CONSTANT, _POSIX_THREAD_KEYS_MAX }, -#else - { "_POSIX_THREAD_KEYS_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_THREAD_THREADS_MAX - { "_POSIX_THREAD_THREADS_MAX",CONSTANT, _POSIX_THREAD_THREADS_MAX }, -#else - { "_POSIX_THREAD_THREADS_MAX",G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TIMER_MAX - { "_POSIX_TIMER_MAX", CONSTANT, _POSIX_TIMER_MAX }, -#else - { "_POSIX_TIMER_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TRACE_EVENT_NAME_MAX - { "_POSIX_TRACE_EVENT_NAME_MAX", CONSTANT, _POSIX_TRACE_EVENT_NAME_MAX }, -#else - { "_POSIX_TRACE_EVENT_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TRACE_NAME_MAX - { "_POSIX_TRACE_NAME_MAX", CONSTANT, _POSIX_TRACE_NAME_MAX }, -#else - { "_POSIX_TRACE_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TRACE_SYS_MAX - { "_POSIX_TRACE_SYS_MAX", CONSTANT, _POSIX_TRACE_SYS_MAX }, -#else - { "_POSIX_TRACE_SYS_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TRACE_USER_EVENT_MAX - { "_POSIX_TRACE_USER_EVENT_MAX", CONSTANT, _POSIX_TRACE_USER_EVENT_MAX }, -#else - { "_POSIX_TRACE_USER_EVENT_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TTY_NAME_MAX - { "_POSIX_TTY_NAME_MAX", CONSTANT, _POSIX_TTY_NAME_MAX }, -#else - { "_POSIX_TTY_NAME_MAX", G_UNDEF, -1 }, -#endif -#ifdef _POSIX_TZNAME_MAX - { "_POSIX_TZNAME_MAX", CONSTANT, _POSIX_TZNAME_MAX }, -#else - { "_POSIX_TZNAME_MAX", G_UNDEF, -1 }, -#endif - - /* POSIX.1 Maximum Values */ -#ifdef _POSIX_CLOCKRES_MIN - { "_POSIX_CLOCKRES_MIN", CONSTANT, _POSIX_CLOCKRES_MIN }, -#else - { "_POSIX_CLOCKRES_MIN", G_UNDEF, -1 }, -#endif - - /* POSIX.1-2001/XPG6 (and later) Runtime Invariants from <limits.h> */ -#ifdef _SC_SS_REPL_MAX - { "SS_REPL_MAX", SYSCONF, _SC_SS_REPL_MAX }, -#endif -#ifdef _SC_TRACE_EVENT_NAME_MAX - { "TRACE_EVENT_NAME_MAX", SYSCONF, _SC_TRACE_EVENT_NAME_MAX }, -#endif -#ifdef _SC_TRACE_NAME_MAX - { "TRACE_NAME_MAX", SYSCONF, _SC_TRACE_NAME_MAX }, -#endif -#ifdef _SC_TRACE_SYS_MAX - { "TRACE_SYS_MAX", SYSCONF, _SC_TRACE_SYS_MAX }, -#endif -#ifdef _SC_TRACE_USER_EVENT_MAX - { "TRACE_USER_EVENT_MAX", SYSCONF, _SC_TRACE_USER_EVENT_MAX }, -#endif - - /* POSIX.2/XPG 4.2 (and later) Symbolic Utility Limits */ -#ifdef _SC_BC_BASE_MAX - { "BC_BASE_MAX", SYSCONF, _SC_BC_BASE_MAX }, -#endif -#ifdef _SC_BC_DIM_MAX - { "BC_DIM_MAX", SYSCONF, _SC_BC_DIM_MAX }, -#endif -#ifdef _SC_BC_SCALE_MAX - { "BC_SCALE_MAX", SYSCONF, _SC_BC_SCALE_MAX }, -#endif -#ifdef _SC_BC_STRING_MAX - { "BC_STRING_MAX", SYSCONF, _SC_BC_STRING_MAX }, -#endif -#ifdef CHARCLASS_NAME_MAX - { "CHARCLASS_NAME_MAX", CONSTANT, CHARCLASS_NAME_MAX }, -#endif -#ifdef _SC_COLL_WEIGHTS_MAX - { "COLL_WEIGHTS_MAX", SYSCONF, _SC_COLL_WEIGHTS_MAX }, -#endif -#ifdef _SC_EXPR_NEST_MAX - { "EXPR_NEST_MAX", SYSCONF, _SC_EXPR_NEST_MAX }, -#endif -#ifdef _SC_LINE_MAX - { "LINE_MAX", SYSCONF, _SC_LINE_MAX }, -#endif -# ifdef NL_ARGMAX - { "NL_ARGMAX", CONSTANT, NL_ARGMAX }, -#endif -#ifdef NL_LANGMAX - { "NL_LANGMAX", CONSTANT, NL_LANGMAX }, -#endif -#ifdef NL_MSGMAX - { "NL_MSGMAX", CONSTANT, NL_MSGMAX }, -#endif -#ifdef NL_NMAX - { "NL_NMAX", CONSTANT, NL_NMAX }, -#endif -#ifdef NL_SETMAX - { "NL_SETMAX", CONSTANT, NL_SETMAX }, -#endif -#ifdef NL_TEXTMAX - { "NL_TEXTMAX", CONSTANT, NL_TEXTMAX }, -#endif -#ifdef _SC_RAW_SOCKET - { "RAW_SOCKET", SYSCONF, _SC_RAW_SOCKET }, -#endif -#ifdef _SC_RE_DUP_MAX - { "RE_DUP_MAX", SYSCONF, _SC_RE_DUP_MAX }, -#endif - - /* POSIX.2 Optional Facility Configuration Values */ -#ifdef _SC_2_C_BIND - { "POSIX2_C_BIND", SYSCONF, _SC_2_C_BIND }, -#else - { "POSIX2_C_BIND", G_UNDEF, -1 }, -#endif -#ifdef _SC_2_C_DEV - { "POSIX2_C_DEV", SYSCONF, _SC_2_C_DEV }, -#else - { "POSIX2_C_DEV", G_UNDEF, -1 }, -#endif -#if defined (_SC_2_C_VERSION) - { "POSIX2_C_VERSION", SYSCONF, _SC_2_C_VERSION }, -#else - { "POSIX2_C_VERSION", G_UNDEF, -1 }, -#endif -#if defined (_SC_2_CHAR_TERM) - { "POSIX2_CHAR_TERM", SYSCONF, _SC_2_CHAR_TERM }, -#else - { "POSIX2_CHAR_TERM", G_UNDEF, -1 }, -#endif -#ifdef _SC_2_FORT_DEV - { "POSIX2_FORT_DEV", SYSCONF, _SC_2_FORT_DEV }, -#else - { "POSIX2_FORT_DEV", G_UNDEF, -1 }, -#endif -#ifdef _SC_2_FORT_RUN - { "POSIX2_FORT_RUN", SYSCONF, _SC_2_FORT_RUN }, -#else - { "POSIX2_FORT_RUN", G_UNDEF, -1 }, -#endif -#ifdef _SC_2_LOCALEDEF - { "POSIX2_LOCALEDEF", SYSCONF, _SC_2_LOCALEDEF }, -#else - { "POSIX2_LOCALEDEF", G_UNDEF, -1 }, -#endif -#ifdef _SC_2_SW_DEV - { "POSIX2_SW_DEV", SYSCONF, _SC_2_SW_DEV }, -#else - { "POSIX2_SW_DEV", G_UNDEF, -1 }, -#endif -#if defined (_SC2_UPE) - { "POSIX2_UPE", SYSCONF, _SC_2_UPE }, -#else - { "POSIX2_UPE", G_UNDEF, -1 }, -#endif -#if !defined (_POSIX2_VERSION) && defined (_SC_2_VERSION) - { "_POSIX2_VERSION", SYSCONF, _SC_2_VERSION }, -#else - { "_POSIX2_VERSION", G_UNDEF, -1 }, -#endif -#if defined (_SC_REGEX_VERSION) - { "REGEX_VERSION", SYSCONF, _SC_REGEX_VERSION }, - { "_REGEX_VERSION", SYSCONF, _SC_REGEX_VERSION }, -#else - { "REGEX_VERSION", G_UNDEF, -1 }, - { "_REGEX_VERSION", G_UNDEF, -1 }, -#endif - -#if defined (_SC_2_PBS) - { "_POSIX2_PBS", SYSCONF, _SC_2_PBS }, - { "_POSIX2_PBS_ACCOUNTING", SYSCONF, _SC_2_PBS_ACCOUNTING }, -# if defined (_SC_2_PBS_CHECKPOINT) - { "_POSIX2_PBS_CHECKPOINT", SYSCONF, _SC_2_PBS_CHECKPOINT }, -# endif - { "_POSIX2_PBS_LOCATE", SYSCONF, _SC_2_PBS_LOCATE }, - { "_POSIX2_PBS_MESSAGE", SYSCONF, _SC_2_PBS_MESSAGE }, - { "_POSIX2_PBS_TRACK", SYSCONF, _SC_2_PBS_TRACK }, -#endif - - /* POSIX.1 Configurable System Variables */ -#ifdef _SC_ARG_MAX - { "ARG_MAX", SYSCONF, _SC_ARG_MAX }, -#endif -#ifdef _SC_CHILD_MAX - { "CHILD_MAX", SYSCONF, _SC_CHILD_MAX }, -#endif -#ifdef _SC_CLK_TCK - { "CLK_TCK", SYSCONF, _SC_CLK_TCK }, -#endif -#ifdef _SC_DELAYTIMER_MAX - { "DELAYTIMER_MAX", SYSCONF, _SC_DELAYTIMER_MAX }, -#endif -#ifdef _SC_NGROUPS_MAX - { "NGROUPS_MAX", SYSCONF, _SC_NGROUPS_MAX }, -#endif -#ifdef NZERO - { "NZERO", CONSTANT, NZERO }, -#endif -#ifdef _SC_OPEN_MAX - { "OPEN_MAX", SYSCONF, _SC_OPEN_MAX }, -#endif -#ifdef PASS_MAX - { "PASS_MAX", CONSTANT, PASS_MAX }, -#endif -#ifdef _SC_STREAM_MAX - { "STREAM_MAX", SYSCONF, _SC_STREAM_MAX }, -#endif -#ifdef TMP_MAX - { "TMP_MAX", CONSTANT, TMP_MAX }, -#endif -#ifdef _SC_TZNAME_MAX - { "TZNAME_MAX", SYSCONF, _SC_TZNAME_MAX }, -#endif - - /* POSIX.1 Optional Facility Configuration Values */ -#if defined (_SC_ADVISORY_INFO) - { "_POSIX_ADVISORY_INFO", SYSCONF, _SC_ADVISORY_INFO }, -#endif -#if defined (_SC_ASYNCHRONOUS_IO) - { "_POSIX_ASYNCHRONOUS_IO", SYSCONF, _SC_ASYNCHRONOUS_IO }, -#endif -#if defined (_SC_BARRIERS) - { "_POSIX_BARRIERS", SYSCONF, _SC_BARRIERS }, -#endif -#if defined (_SC_BASE) - { "_POSIX_BASE", SYSCONF, _SC_BASE }, -#endif -#if defined (_SC_C_LANG_SUPPORT) - { "_POSIX_C_LANG_SUPPORT", SYSCONF, _SC_C_LANG_SUPPORT }, -#endif -#if defined (_SC_C_LANG_SUPPORT_R) - { "_POSIX_C_LANG_SUPPORT_R", SYSCONF, _SC_C_LANG_SUPPORT_R }, -#endif -#if defined (_SC_CLOCK_SELECTION) - { "_POSIX_CLOCK_SELECTION", SYSCONF, _SC_CLOCK_SELECTION }, -#endif -#if defined (_SC_CPUTIME) - { "_POSIX_CPUTIME", SYSCONF, _SC_CPUTIME }, -#endif -#if defined (_SC_DEVICE_IO) - { "_POSIX_DEVICE_IO", SYSCONF, _SC_DEVICE_IO }, -#endif -#if defined (_SC_DEVICE_SPECIFIC) - { "_POSIX_DEVICE_SPECIFIC", SYSCONF, _SC_DEVICE_SPECIFIC }, -#endif -#if defined (_SC_DEVICE_SPECIFIC_R) - { "_POSIX_DEVICE_SPECIFIC_R", SYSCONF, _SC_DEVICE_SPECIFIC_R }, -#endif -#if defined (_SC_FD_MGMT) - { "_POSIX_FD_MGMT", SYSCONF, _SC_FD_MGMT }, -#endif -#if defined (_SC_FIFO) - { "_POSIX_FIFO", SYSCONF, _SC_FIFO }, -#endif -#if defined (_SC_FILE_ATTRIBUTES) - { "_POSIX_FILE_ATTRIBUTES", SYSCONF, _SC_FILE_ATTRIBUTES }, -#endif -#if defined (_SC_FILE_LOCKING) - { "_POSIX_FILE_LOCKING", SYSCONF, _SC_FILE_LOCKING }, -#endif -#if defined (_SC_FILE_SYSTEM) - { "_POSIX_FILE_SYSTEM", SYSCONF, _SC_FILE_SYSTEM }, -#endif -#if defined (_SC_FSYNC) - { "_POSIX_FSYNC", SYSCONF, _SC_FSYNC }, -#endif -#if defined (_SC_IPV6) - { "_POSIX_IPV6", SYSCONF, _SC_IPV6 }, -#endif -#if defined (_SC_JOB_CONTROL) - { "_POSIX_JOB_CONTROL", SYSCONF, _SC_JOB_CONTROL }, -#endif -#if defined (_SC_MAPPED_FILES) - { "_POSIX_MAPPED_FILES", SYSCONF, _SC_MAPPED_FILES }, -#endif -#if defined (_SC_MEMLOCK) - { "_POSIX_MEMLOCK", SYSCONF, _SC_MEMLOCK }, -#endif -#if defined (_SC_MEMLOCK_RANGE) - { "_POSIX_MEMLOCK_RANGE", SYSCONF, _SC_MEMLOCK_RANGE }, -#endif -#if defined (_SC_MEMORY_PROTECTION) - { "_POSIX_MEMORY_PROTECTION", SYSCONF, _SC_MEMORY_PROTECTION }, -#endif -#if defined (_SC_MESSAGE_PASSING) - { "_POSIX_MESSAGE_PASSING", SYSCONF, _SC_MESSAGE_PASSING }, -#endif -#if defined (_SC_MONOTONIC_CLOCK) - { "_POSIX_MONOTONIC_CLOCK", SYSCONF, _SC_MONOTONIC_CLOCK }, -#endif -#if defined (_SC_MULTI_PROCESS) - { "_POSIX_MULTI_PROCESS", SYSCONF, _SC_MULTI_PROCESS }, -#endif -#if defined (_SC_NETWORKING) - { "_POSIX_NETWORKING", SYSCONF, _SC_NETWORKING }, -#endif -#if defined (_SC_PIPE) - { "_POSIX_PIPE", SYSCONF, _SC_PIPE }, -#endif -#if defined (SC_PRIORITIZED_IO) - { "_POSIX_PRIORITIZED_IO", SYSCONF, _SC_PRIORITIZED_IO }, -#endif -#if defined (_SC_PRIORITY_SCHEDULING) - { "_POSIX_PRIORITY_SCHEDULING", SYSCONF, _SC_PRIORITY_SCHEDULING }, -#endif -#if defined (_SC_READER_WRITER_LOCKS) - { "_POSIX_READER_WRITER_LOCKS", SYSCONF, _SC_READER_WRITER_LOCKS }, -#endif -#if defined (_SC_RAW_SOCKETS) - { "_POSIX_RAW_SOCKETS", SYSCONF, _SC_RAW_SOCKETS }, -#endif -#if defined (_SC_REALTIME_SIGNALS) - { "_POSIX_REALTIME_SIGNALS", SYSCONF, _SC_REALTIME_SIGNALS }, -#endif -#if defined (_SC_REGEXP) - { "_POSIX_REGEXP", SYSCONF, _SC_REGEXP }, -#endif -#if defined (_SC_SAVED_IDS) - { "_POSIX_SAVED_IDS", SYSCONF, _SC_SAVED_IDS }, -#endif -#if defined (_SC_SEMAPHORES) - { "_POSIX_SEMAPHORES", SYSCONF, _SC_SEMAPHORES }, -#endif -#if defined (_SC_SHARED_MEMORY_OBJECTS) - { "_POSIX_SHARED_MEMORY_OBJECTS", SYSCONF, _SC_SHARED_MEMORY_OBJECTS }, -#endif - { "_POSIX_SHELL", CONSTANT, 1 }, -#if defined (_SC_SIGNALS) - { "_POSIX_SIGNALS", SYSCONF, _SC_SIGNALS }, -#endif -#if defined (_SC_SINGLE_PROCESS) - { "_POSIX_SINGLE_PROCESS", SYSCONF, _SC_SINGLE_PROCESS }, -#endif -#if defined (_SC_SPAWN) - { "_POSIX_SPAWN", SYSCONF, _SC_SPAWN }, -#endif -#if defined (_SC_SPIN_LOCKS) - { "_POSIX_SPIN_LOCKS", SYSCONF, _SC_SPIN_LOCKS }, -#endif -#if defined (_SC_SPORADIC_SERVER) - { "_POSIX_SPORADIC_SERVER", SYSCONF, _SC_SPORADIC_SERVER }, -#endif -#if defined (_SC_SYMLOOP_MAX) - { "_POSIX_SYMLOOP_MAX", SYSCONF, _SC_SYMLOOP_MAX }, -#endif -#if defined (_SC_SYNCHRONIZED_IO) - { "_POSIX_SYNCHRONIZED_IO", SYSCONF, _SC_SYNCHRONIZED_IO }, -#endif -#if defined (_SC_SYSTEM_DATABASE) - { "_POSIX_SYSTEM_DATABASE", SYSCONF, _SC_SYSTEM_DATABASE }, -#endif -#if defined (_SC_SYSTEM_DATABASE_R) - { "_POSIX_SYSTEM_DATABASE_R", SYSCONF, _SC_SYSTEM_DATABASE_R }, -#endif -#if defined (_SC_THREAD_ATTR_STACKADDR) - { "_POSIX_THREAD_ATTR_STACKADDR", SYSCONF, _SC_THREAD_ATTR_STACKADDR }, -#endif -#if defined (_SC_THREAD_ATTR_STACKSIZE) - { "_POSIX_THREAD_ATTR_STACKSIZE", SYSCONF, _SC_THREAD_ATTR_STACKSIZE }, -#endif -#if defined (_SC_THREAD_CPUTIME) - { "_POSIX_THREAD_CPUTIME", SYSCONF, _SC_THREAD_CPUTIME }, -#endif -#if defined (_SC_THREAD_PRIO_INHERIT) - { "_POSIX_THREAD_PRIO_INHERIT", SYSCONF, _SC_THREAD_PRIO_INHERIT }, -#endif -#if defined (_SC_THREAD_PRIO_PROTECT) - { "_POSIX_THREAD_PRIO_PROTECT", SYSCONF, _SC_THREAD_PRIO_PROTECT }, -#endif -#if defined (_SC_THREAD_PRIORITY_SCHEDULING) - { "_POSIX_THREAD_PRIORITY_SCHEDULING", SYSCONF, _SC_THREAD_PRIORITY_SCHEDULING }, -#endif -#if defined (_SC_THREAD_PROCESS_SHARED) - { "_POSIX_THREAD_PROCESS_SHARED", SYSCONF, _SC_THREAD_PROCESS_SHARED }, -#endif -#if defined (_SC_THREAD_SAFE_FUNCTIONS) - { "_POSIX_THREAD_SAFE_FUNCTIONS", SYSCONF, _SC_THREAD_SAFE_FUNCTIONS }, -#endif -#if defined (_SC_THREAD_SPORADIC_SERVER) - { "_POSIX_THREAD_SPORADIC_SERVER", SYSCONF, _SC_THREAD_SPORADIC_SERVER }, -#endif -#if defined (_SC_THREADS) - { "_POSIX_THREADS", SYSCONF, _SC_THREADS }, -#endif -#if defined (_SC_TIMEOUTS) - { "_POSIX_TIMEOUTS", SYSCONF, _SC_TIMEOUTS }, -#endif -#if defined (_SC_TIMERS) - { "_POSIX_TIMERS", SYSCONF, _SC_TIMERS }, -#endif -#if defined (_SC_TRACE) - { "_POSIX_TRACE", SYSCONF, _SC_TRACE }, -#endif -#if defined (_SC_TRACE) - { "_POSIX_TRACE_EVENT_FILTER",SYSCONF, _SC_TRACE_EVENT_FILTER }, -#endif -#if defined (_SC_TRACE) - { "_POSIX_TRACE_INHERIT", SYSCONF, _SC_TRACE_INHERIT }, -#endif -#if defined (_SC_TRACE) - { "_POSIX_TRACE_LOG", SYSCONF, _SC_TRACE_LOG }, -#endif -#if defined (_SC_TYPED_MEMORY_OBJECTS) - { "_POSIX_TYPED_MEMORY_OBJECTS", SYSCONF, _SC_TYPED_MEMORY_OBJECTS }, -#endif -#if defined (_SC_VERSION) - { "_POSIX_VERSION", SYSCONF, _SC_VERSION }, -#endif - - /* XPG 4.2 Configurable System Variables. */ -#if defined (_SC_ATEXIT_MAX) - { "ATEXIT_MAX", SYSCONF, _SC_ATEXIT_MAX }, -#endif -#if defined (_SC_GETGR_R_SIZE_MAX) - { "GETGR_R_SIZE_MAX", SYSCONF, _SC_GETGR_R_SIZE_MAX }, -#endif -#if defined (_SC_GETPW_R_SIZE_MAX) - { "GETPW_R_SIZE_MAX", SYSCONF, _SC_GETPW_R_SIZE_MAX }, -#endif -#if defined (_SC_HOST_NAME_MAX) - { "HOST_NAME_MAX", SYSCONF, _SC_HOST_NAME_MAX }, -#endif -#if defined (_SC_IOV_MAX) - { "IOV_MAX", SYSCONF, _SC_IOV_MAX }, -#endif -#if defined (_SC_LOGIN_NAME_MAX) - { "LOGIN_NAME_MAX", SYSCONF, _SC_LOGIN_NAME_MAX }, -#endif -#if defined (_SC_LOGNAME_MAX) - { "LOGNAME_MAX", SYSCONF, _SC_LOGNAME_MAX }, -#endif -#if defined (_SC_PAGESIZE) - { "PAGESIZE", SYSCONF, _SC_PAGESIZE }, -#endif -#if defined (_SC_PAGE_SIZE) - { "PAGE_SIZE", SYSCONF, _SC_PAGE_SIZE }, -#endif -#if defined (_SC_SYMLOOP_MAX) - { "SYMLOOP_MAX", SYSCONF, _SC_SYMLOOP_MAX }, -#endif -#if defined (_SC_TTY_NAME_MAX) - { "TTY_NAME_MAX", SYSCONF, _SC_TTY_NAME_MAX }, -#endif -#if defined (_SC_USER_GROUPS) - { "_POSIX_USER_GROUPS", SYSCONF, _SC_USER_GROUPS }, -#endif -#if defined (_SC_USER_GROUPS_R) - { "_POSIX_USER_GROUPS_R", SYSCONF, _SC_USER_GROUPS_R }, -#endif - -#if defined (_SC_AIO_LISTIO_MAX) - { "AIO_LISTIO_MAX", SYSCONF, _SC_AIO_LISTIO_MAX }, -#endif -#if defined (_SC_AIO_MAX) - { "AIO_MAX", SYSCONF, _SC_AIO_MAX }, -#endif -#if defined (_SC_AIO_PRIO_DELTA_MAX) - { "AIO_PRIO_DELTA_MAX", SYSCONF, _SC_AIO_PRIO_DELTA_MAX }, -#endif -#if defined (_SC_MQ_OPEN_MAX) - { "MQ_OPEN_MAX", SYSCONF, _SC_MQ_OPEN_MAX }, -#endif -#if defined (_SC_MQ_PRIO_MAX) - { "MQ_PRIO_MAX", SYSCONF, _SC_MQ_PRIO_MAX }, -#endif -#if defined (_SC_RTSIG_MAX) - { "RTSIG_MAX", SYSCONF, _SC_RTSIG_MAX }, -#endif -#if defined (_SC_SEM_NSEMS_MAX) - { "SEM_NSEMS_MAX", SYSCONF, _SC_SEM_NSEMS_MAX }, -#endif -#if defined (_SC_SEM_VALUE_MAX) - { "SEM_VALUE_MAX", SYSCONF, _SC_SEM_VALUE_MAX }, -#endif -#if defined (_SC_SIGQUEUE_MAX) - { "SIGQUEUE_MAX", SYSCONF, _SC_SIGQUEUE_MAX }, -#endif -#if defined (_SC_TIMER_MAX) - { "TIMER_MAX", SYSCONF, _SC_TIMER_MAX }, -#endif - -#if defined (_SC_THREAD_DESTRUCTOR_ITERATIONS) - { "PTHREAD_DESTRUCTOR_ITERATIONS", SYSCONF, _SC_THREAD_DESTRUCTOR_ITERATIONS }, -#endif -#if defined (_SC_THREAD_KEYS_MAX) - { "PTHREAD_KEYS_MAX", SYSCONF, _SC_THREAD_KEYS_MAX }, -#endif -#if defined (_SC_THREAD_STACK_MIN) - { "PTHREAD_STACK_MIN", SYSCONF, _SC_THREAD_STACK_MIN }, -#endif -#if defined (_SC_THREAD_THREADS_MAX) - { "PTHREAD_THREADS_MAX", SYSCONF, _SC_THREAD_THREADS_MAX }, -#endif - - /* XPG 4.2 (and later) Optional Facility Configuration Values */ -#if defined (_SC_XOPEN_CRYPT) - { "_XOPEN_CRYPT", SYSCONF, _SC_XOPEN_CRYPT }, -#endif -#if defined (_SC_XOPEN_ENH_I18N) - { "_XOPEN_ENH_I18N", SYSCONF, _SC_XOPEN_ENH_I18N }, -#endif -#if defined (_SC_XOPEN_LEGACY) - { "_XOPEN_LEGACY", SYSCONF, _SC_XOPEN_LEGACY }, -#endif /* _SC_XOPEN_LEGACY */ -#if defined (_SC_XOPEN_REALTIME) - { "_XOPEN_REALTIME", SYSCONF, _SC_XOPEN_REALTIME }, -#endif -#if defined (_SC_XOPEN_REALTIME_THREADS) - { "_XOPEN_REALTIME_THREADS", SYSCONF, _SC_XOPEN_REALTIME_THREADS }, -#endif -#if defined (_SC_XOPEN_SHM) - { "_XOPEN_SHM", SYSCONF, _SC_XOPEN_SHM }, -#endif -#if defined (_SC_XOPEN_STREAMS) - { "_XOPEN_STREAMS", SYSCONF, _SC_XOPEN_STREAMS }, -#endif -#if defined (_SC_XOPEN_UNIX) - { "_XOPEN_UNIX", SYSCONF, _SC_XOPEN_UNIX }, -#endif -#if defined (_SC_XOPEN_VERSION) - { "_XOPEN_VERSION", SYSCONF, _SC_XOPEN_VERSION }, -#endif -#if defined (_SC_XOPEN_XCU_VERSION) - { "_XOPEN_XCU_VERSION", SYSCONF, _SC_XOPEN_XCU_VERSION }, -#endif -#if defined (_SC_XOPEN_XPG2) - { "_XOPEN_XPG2", SYSCONF, _SC_XOPEN_XPG2 }, -#endif -#if defined (_SC_XOPEN_XPG3) - { "_XOPEN_XPG3", SYSCONF, _SC_XOPEN_XPG3 }, -#endif -#if defined (_SC_XOPEN_XPG4) - { "_XOPEN_XPG4", SYSCONF, _SC_XOPEN_XPG4 }, -#endif -#if defined (_SC_XOPEN_XPG5) - { "_XOPEN_XPG5", SYSCONF, _SC_XOPEN_XPG5 }, -#endif - - /* POSIX.1 Configurable Pathname Values */ -#ifdef _PC_LINK_MAX - { "LINK_MAX", PATHCONF, _PC_LINK_MAX }, -#endif -#ifdef _PC_MAX_CANON - { "MAX_CANON", PATHCONF, _PC_MAX_CANON }, -#endif -#ifdef _PC_MAX_INPUT - { "MAX_INPUT", PATHCONF, _PC_MAX_INPUT }, -#endif -#ifdef _PC_NAME_MAX - { "NAME_MAX", PATHCONF, _PC_NAME_MAX }, -#endif -#ifdef _PC_PATH_MAX - { "PATH_MAX", PATHCONF, _PC_PATH_MAX }, -#endif -#ifdef _PC_PIPE_BUF - { "PIPE_BUF", PATHCONF, _PC_PIPE_BUF }, -#endif -#ifdef _PC_SYMLINK_MAX - { "SYMLINK_MAX", PATHCONF, _PC_SYMLINK_MAX }, -#endif -#ifdef _PC_CHOWN_RESTRICTED - { "_POSIX_CHOWN_RESTRICTED", PATHCONF, _PC_CHOWN_RESTRICTED }, -#endif -#ifdef _PC_NO_TRUNC - { "_POSIX_NO_TRUNC", PATHCONF, _PC_NO_TRUNC }, -#endif -#ifdef _PC_VDISABLE - { "_POSIX_VDISABLE", PATHCONF, _PC_VDISABLE }, -#endif - - /* XPG 4.2 Configurable Pathname Values */ -#if defined (_PC_FILESIZEBITS) - { "FILESIZEBITS", PATHCONF, _PC_FILESIZEBITS }, -#endif -#if defined (_PC_ASYNC_IO) - { "_POSIX_ASYNC_IO", PATHCONF, _PC_ASYNC_IO }, -#endif -#if defined (_PC_PRIO_IO) - { "_POSIX_PRIO_IO", PATHCONF, _PC_PRIO_IO }, -#endif -#if defined (_PC_SYNC_IO) - { "_POSIX_SYNC_IO", PATHCONF, _PC_SYNC_IO }, -#endif - - /* POSIX.1-200x configurable pathname values */ -#if defined (_PC_ALLOC_SIZE_MIN) - { "POSIX_ALLOC_SIZE_MIN", PATHCONF, _PC_ALLOC_SIZE_MIN }, - { "POSIX_REC_INCR_XFER_SIZE", PATHCONF, _PC_REC_INCR_XFER_SIZE }, - { "POSIX_REC_MAX_XFER_SIZE", PATHCONF, _PC_REC_MAX_XFER_SIZE }, - { "POSIX_REC_MIN_XFER_SIZE", PATHCONF, _PC_REC_MIN_XFER_SIZE }, - { "POSIX_REC_XFER_ALIGN", PATHCONF, _PC_REC_XFER_ALIGN }, -#endif - - /* ANSI/ISO C, POSIX.1-200x, XPG 4.2 (and later) C language type limits. */ - { "CHAR_BIT", CONSTANT, CHAR_BIT }, - { "CHAR_MAX", CONSTANT, CHAR_MAX }, - { "CHAR_MIN", CONSTANT, CHAR_MIN }, - { "INT_BIT", CONSTANT, INT_BIT }, - { "INT_MAX", CONSTANT, INT_MAX }, - { "INT_MIN", CONSTANT, INT_MIN }, -#ifdef LLONG_MAX - { "LLONG_MAX", LLCONST, VAL_LLONG_MAX }, - { "LLONG_MIN", LLCONST, VAL_LLONG_MIN }, -#endif - { "LONG_BIT", CONSTANT, LONG_BIT }, - { "LONG_MAX", CONSTANT, LONG_MAX }, - { "LONG_MIN", CONSTANT, LONG_MIN }, -#ifdef MB_LEN_MAX - { "MB_LEN_MAX", CONSTANT, MB_LEN_MAX }, -#endif - { "SCHAR_MAX", CONSTANT, SCHAR_MAX }, - { "SCHAR_MIN", CONSTANT, SCHAR_MIN }, - { "SHRT_MAX", CONSTANT, SHRT_MAX }, - { "SHRT_MIN", CONSTANT, SHRT_MIN }, - { "SIZE_MAX", CONSTANT, SIZE_MAX }, - { "SSIZE_MAX", CONSTANT, SSIZE_MAX }, - { "UCHAR_MAX", CONSTANT, UCHAR_MAX }, - { "UINT_MAX", CONSTANT, UINT_MAX }, -#ifdef ULLONG_MAX - { "ULLONG_MAX", LLCONST, VAL_ULLONG_MAX }, -#endif - { "ULONG_MAX", CONSTANT, ULONG_MAX }, - { "USHRT_MAX", CONSTANT, USHRT_MAX }, - { "WORD_BIT", CONSTANT, WORD_BIT }, - - { NULL } -}; - -static int num_getconf_variables = sizeof(conf_table) / sizeof(struct conf_variable) - 1; - -extern char *this_command_name; -extern char **make_builtin_argv (); - -static void getconf_help (); -static int getconf_print (); -static int getconf_one (); -static int getconf_all (); - -int -getconf_builtin (list) - WORD_LIST *list; -{ - int c, r, opt, aflag; - char **v; - - aflag = 0; - reset_internal_getopt(); - while ((opt = internal_getopt (list, "ahv:")) != -1) { - switch (opt) { - case 'a': - aflag = 1; - break; - case 'h': - getconf_help(); - return(EXECUTION_SUCCESS); - case 'v': - break; /* ignored */ - default: - builtin_usage(); - return(EX_USAGE); - } - } - - list = loptend; - if ((aflag == 0 && list == 0) || (aflag && list) || list_length(list) > 2) { - builtin_usage(); - return(EX_USAGE); - } - - r = aflag ? getconf_all() : getconf_one(list); - - return r; -} - -static void -getconf_help() -{ - const struct conf_variable *cp; - register int i, column; - - builtin_usage(); - printf("Acceptable variable names are:\n"); - for (cp = conf_table; cp->name != NULL; cp++) { - if (cp->type == PATHCONF) - printf("%s pathname\n", cp->name); - else - printf("%s\n", cp->name); - } -} - -static int -getconf_print(cp, vpath, all) -struct conf_variable *cp; -char *vpath; -int all; -{ - long val; - char *sval; - size_t slen; - - switch (cp->type) { - case G_UNDEF: - printf("undefined\n"); - break; - -#ifdef LLONG_MAX - case LLCONST: - switch (cp->value) { - default: - case VAL_LLONG_MIN: - printf ("%lld\n", LLONG_MIN); - break; - case VAL_LLONG_MAX: - printf ("%lld\n", LLONG_MAX); - break; -# if (ULLONG_MAX != LLONG_MAX) - case VAL_ULLONG_MAX: - printf ("%llu\n", ULLONG_MAX); - break; -# endif - } - break; -#endif - case CONSTANT: - switch (cp->value) { - case UCHAR_MAX: - case USHRT_MAX: - case UINT_MAX: -#if (ULONG_MAX != UINT_MAX) - case ULONG_MAX: -#endif -#if (SIZE_MAX != UINT_MAX) && (SIZE_MAX != ULONG_MAX) - case SIZE_MAX: -#endif - - printf("%lu\n", cp->value); - break; - default: - printf("%ld\n", cp->value); - break; - } - break; - - case CONFSTR: - errno = 0; - slen = confstr (cp->value, (char *) 0, (size_t) 0); - if (slen == 0) { - if (errno != 0) { - if (all) - printf ("getconf: %s\n", strerror(errno)); - else - builtin_error ("%s", strerror(errno)); - } else - printf ("undefined\n"); - return (EXECUTION_FAILURE); - } - sval = xmalloc(slen); - - confstr(cp->value, sval, slen); - printf("%s\n", sval); - free(sval); - break; - - case SYSCONF: - errno = 0; - if ((val = sysconf(cp->value)) == -1) { - if (errno != 0) { - if (all) - printf("getconf: %s\n", strerror (errno)); - else - builtin_error ("%s", strerror (errno)); - return (EXECUTION_FAILURE); - } - - printf ("undefined\n"); - } else { - printf("%ld\n", val); - } - break; - - case PATHCONF: - errno = 0; - if ((val = pathconf(vpath, cp->value)) == -1) { - if (errno != 0) { - if (all) - printf("getconf: %s: %s\n", vpath, strerror (errno)); - else - builtin_error ("%s: %s", vpath, strerror (errno)); - return (EXECUTION_FAILURE); - } - - printf ("undefined\n"); - } else { - printf ("%ld\n", val); - } - break; - } - - return (ferror(stdout) ? EXECUTION_FAILURE : EXECUTION_SUCCESS); -} - -static int -getconf_all() -{ - const struct conf_variable *cp; - int ret; - - ret = EXECUTION_SUCCESS; - for (cp = conf_table; cp->name != NULL; cp++) { - printf("%-35s", cp->name); - if (getconf_print(cp, "/", 1) == EXECUTION_FAILURE) - ret = EXECUTION_FAILURE; - } - return ret; -} - -static int -getconf_one(list) - WORD_LIST *list; -{ - const struct conf_variable *cp; - char *vname, *vpath; - - vname = list->word->word; - vpath = (list->next && list->next->word) ? list->next->word->word - : (char *)NULL; - - for (cp = conf_table; cp->name != NULL; cp++) { - if (strcmp(vname, cp->name) == 0) - break; - } - if (cp->name == NULL) { - builtin_error ("%s: unknown variable", vname); - return (EXECUTION_FAILURE); - } - - if (cp->type == PATHCONF) { - if (list->next == 0) { - builtin_usage(); - return(EX_USAGE); - } - } else { - if (list->next) { - builtin_usage(); - return(EX_USAGE); - } - } - - return (getconf_print(cp, vpath, 0)); -} - -static char *getconf_doc[] = { - "Display values of system limits and options.", - "", - "getconf writes the current value of a configurable system limit or", - "option variable to the standard output.", - (char *)NULL -}; - -struct builtin getconf_struct = { - "getconf", - getconf_builtin, - BUILTIN_ENABLED, - getconf_doc, - "getconf -[ah] or getconf [-v spec] sysvar or getconf [-v spec] pathvar pathname", - 0 -}; - -#ifndef HAVE_CONFSTR -static size_t -confstr (name, buf, len) - int name; - char *buf; - size_t len; -{ - switch (name) - { - case _CS_PATH: - if (len > 0 && buf) - { - strncpy (buf, STANDARD_UTILS_PATH, len - 1); - buf[len - 1] = '\0'; - } - return (sizeof (STANDARD_UTILS_PATH) + 1); - default: - errno = EINVAL; - return 0; - } -} -#endif - -#ifndef HAVE_SYSCONF -extern long get_clk_tck __P((void)); - -static long -sysconf (name) - int name; -{ -# if defined (_POSIX_VERSION) - switch (name) - { - case _SC_ARG_MAX: - return _POSIX_ARG_MAX; - case _SC_CHILD_MAX: - return _POSIX_CHILD_MAX; - case _SC_CLK_TCK: - return get_clk_tck(); - case _SC_NGROUPS_MAX: - return _POSIX_NGROUPS_MAX; - case _SC_OPEN_MAX: - return _POSIX_OPEN_MAX; - case _SC_JOB_CONTROL: - return _POSIX_JOB_CONTROL; - case _SC_SAVED_IDS: - return _POSIX_SAVED_IDS; - case _SC_VERSION: - return _POSIX_VERSION; - case _SC_BC_BASE_MAX: - return _POSIX2_BC_BASE_MAX; - case _SC_BC_DIM_MAX: - return _POSIX2_BC_DIM_MAX; - case _SC_BC_SCALE_MAX: - return _POSIX2_BC_SCALE_MAX; - case _SC_BC_STRING_MAX: - return _POSIX2_BC_STRING_MAX; - case _SC_COLL_WEIGHTS_MAX: - return -1; - case _SC_EXPR_NEST_MAX: - return _POSIX2_EXPR_NEST_MAX; - case _SC_LINE_MAX: - return _POSIX2_LINE_MAX; - case _SC_RE_DUP_MAX: - return _POSIX2_RE_DUP_MAX; - case _SC_STREAM_MAX: - return _POSIX_STREAM_MAX; - case _SC_TZNAME_MAX: - return _POSIX_TZNAME_MAX; - default: - errno = EINVAL; - return -1; - } -#else - errno = EINVAL; - return -1; -#endif -} -#endif - -#ifndef HAVE_PATHCONF -static long -pathconf (path, name) - const char *path; - int name; -{ -#if defined (_POSIX_VERSION) - switch (name) - { - case _PC_LINK_MAX: - return _POSIX_LINK_MAX; - case _PC_MAX_CANON: - return _POSIX_MAX_CANON; - case _PC_MAX_INPUT: - return _POSIX_MAX_INPUT; - case _PC_NAME_MAX: - return _POSIX_NAME_MAX; - case _PC_PATH_MAX: - return _POSIX_PATH_MAX; - case _PC_PIPE_BUF: - return _POSIX_PIPE_BUF; - case _PC_CHOWN_RESTRICTED: -#ifdef _POSIX_CHOWN_RESTRICTED - return _POSIX_CHOWN_RESTRICTED; -#else - return -1; -#endif - case _PC_NO_TRUNC: -#ifdef _POSIX_NO_TRUNC - return _POSIX_NO_TRUNC; -#else - return -1; -#endif - case _PC_VDISABLE: -#ifdef _POSIX_VDISABLE - return _POSIX_VDISABLE; -#else - return -1; -#endif - default: - errno = EINVAL; - return -1; - } -#else - errno = EINVAL; - return -1; -#endif -} -#endif diff --git a/examples/loadables/getconf.h b/examples/loadables/getconf.h deleted file mode 100644 index c84062d0..00000000 --- a/examples/loadables/getconf.h +++ /dev/null @@ -1,214 +0,0 @@ -/* getconf.h -- replacement definitions for ones the system doesn't provide. */ - -#ifndef _GETCONF_H -#define _GETCONF_H - -/* Some systems do not define these; use POSIX.2 minimum recommended values. */ -#ifndef _POSIX2_COLL_WEIGHTS_MAX -# define _POSIX2_COLL_WEIGHTS_MAX 2 -#endif - -/* If we're on a posix system, but the system doesn't define the necessary - constants, use posix.1 minimum values. */ -#if defined (_POSIX_VERSION) - -#ifndef _POSIX_ARG_MAX -# define _POSIX_ARG_MAX 4096 -#endif -#ifndef _POSIX_CHILD_MAX -# define _POSIX_CHILD_MAX 6 -#endif -#ifndef _POSIX_LINK_MAX -# define _POSIX_LINK_MAX 8 -#endif -#ifndef _POSIX_MAX_CANON -# define _POSIX_MAX_CANON 255 -#endif -#ifndef _POSIX_MAX_INPUT -# define _POSIX_MAX_INPUT 255 -#endif -#ifndef _POSIX_NAME_MAX -# define _POSIX_NAME_MAX 14 -#endif -#ifndef _POSIX_NGROUPS_MAX -# define _POSIX_NGROUPS_MAX 0 -#endif -#ifndef _POSIX_OPEN_MAX -# define _POSIX_OPEN_MAX 16 -#endif -#ifndef _POSIX_PATH_MAX -# define _POSIX_PATH_MAX 255 -#endif -#ifndef _POSIX_PIPE_BUF -# define _POSIX_PIPE_BUF 512 -#endif -#ifndef _POSIX_SSIZE_MAX -# define _POSIX_SSIZE_MAX 32767 -#endif -#ifndef _POSIX_STREAM_MAX -# define _POSIX_STREAM_MAX 8 -#endif -#ifndef _POSIX_TZNAME_MAX -# define _POSIX_TZNAME_MAX 3 -#endif - -#ifndef _POSIX2_BC_BASE_MAX -# define _POSIX2_BC_BASE_MAX 99 -#endif -#ifndef _POSIX2_BC_DIM_MAX -# define _POSIX2_BC_DIM_MAX 2048 -#endif -#ifndef _POSIX2_BC_SCALE_MAX -# define _POSIX2_BC_SCALE_MAX 99 -#endif -#ifndef _POSIX2_BC_STRING_MAX -# define _POSIX2_BC_STRING_MAX 1000 -#endif -#ifndef _POSIX2_EQUIV_CLASS_MAX -# define _POSIX2_EQUIV_CLASS_MAX 2 -#endif -#ifndef _POSIX2_EXPR_NEST_MAX -# define _POSIX2_EXPR_NEST_MAX 32 -#endif -#ifndef _POSIX2_LINE_MAX -# define _POSIX2_LINE_MAX 2048 -#endif -#ifndef _POSIX2_RE_DUP_MAX -# define _POSIX2_RE_DUP_MAX 255 -#endif - -/* configurable system variables */ -#if !defined (HAVE_SYSCONF) - -#ifndef _SC_ARG_MAX -# define _SC_ARG_MAX 1 -# define _SC_CHILD_MAX 2 -# define _SC_CLK_TCK 3 -# define _SC_NGROUPS_MAX 4 -# define _SC_OPEN_MAX 5 -# define _SC_JOB_CONTROL 6 -# define _SC_SAVED_IDS 7 -# define _SC_VERSION 8 -# define _SC_BC_BASE_MAX 9 -# define _SC_BC_DIM_MAX 10 -# define _SC_BC_SCALE_MAX 11 -# define _SC_BC_STRING_MAX 12 -# define _SC_COLL_WEIGHTS_MAX 13 -# define _SC_EXPR_NEST_MAX 14 -# define _SC_LINE_MAX 15 -# define _SC_RE_DUP_MAX 16 -#if 0 -# define _SC_2_VERSION 17 -# define _SC_2_C_BIND 18 -# define _SC_2_C_DEV 19 -# define _SC_2_CHAR_TERM 20 -# define _SC_2_FORT_DEV 21 -# define _SC_2_FORT_RUN 22 -# define _SC_2_LOCALEDEF 23 -# define _SC_2_SW_DEV 24 -# define _SC_2_UPE 25 -#endif /* 0 */ - -# define _SC_STREAM_MAX 26 -# define _SC_TZNAME_MAX 27 -#endif /* !_SC_ARG_MAX */ - -#endif /* !HAVE_SYSCONF */ - -/* configurable pathname variables */ -#if !defined (HAVE_PATHCONF) - -#ifndef _PC_LINK_MAX -#define _PC_LINK_MAX 1 -#define _PC_MAX_CANON 2 -#define _PC_MAX_INPUT 3 -#define _PC_NAME_MAX 4 -#define _PC_PATH_MAX 5 -#define _PC_PIPE_BUF 6 -#define _PC_CHOWN_RESTRICTED 7 -#define _PC_NO_TRUNC 8 -#define _PC_VDISABLE 9 -#endif /* !_PC_LINK_MAX */ - -#endif /* !HAVE_PATHCONF */ - -#endif /* _POSIX_VERSION */ - -#ifndef _CS_PATH -# define _CS_PATH 1 -#endif - -/* ANSI/ISO C, POSIX.1-200x, XPG 4.2 (and later) C language type limits. - Defined only if the system include files don't. Assume a 32-bit - environment with signed 8-bit characters. */ - -#ifndef CHAR_BIT -# define CHAR_BIT 8 -#endif -#ifndef CHAR_MAX -# define CHAR_MAX 127 -#endif -#ifndef CHAR_MIN -# define CHAR_MIN -128 -#endif - -#ifndef INT_BIT -# define INT_BIT (sizeof (int) * CHAR_BIT) -#endif -#ifndef INT_MAX -# define INT_MAX 2147483647 -#endif -#ifndef INT_MIN -# define INT_MIN (-2147483647-1) -#endif - -#ifndef LONG_BIT -# define LONG_BIT (sizeof (long int) * CHAR_BIT) -#endif -#ifndef LONG_MAX -# define LONG_MAX 2147483647L -#endif -#ifndef LONG_MIN -# define LONG_MIN (-2147483647L-1L) -#endif - -#ifndef SCHAR_MAX -# define SCHAR_MAX CHAR_MAX -#endif -#ifndef SCHAR_MIN -# define SCHAR_MIN CHAR_MIN -#endif - -#ifndef SHRT_MAX -# define SHRT_MAX 32767 -#endif -#ifndef SHRT_MIN -# define SHRT_MIN (-32768) -#endif - -#ifndef UCHAR_MAX -# define UCHAR_MAX 255 -#endif -#ifndef UINT_MAX -# define UINT_MAX 4294967295U -#endif -#ifndef ULONG_MAX -# define ULONG_MAX 4294967295UL -#endif -#ifndef USHRT_MAX -# define UCHAR_MAX 65535 -#endif - -/* assume size_t is `unsigned int'; ssize_t is `int' */ -#ifndef SIZE_MAX -# define SIZE_MAX UINT_MAX -#endif -#ifndef SSIZE_MAX -# define SSIZE_MAX INT_MAX -#endif - -#ifndef WORD_BIT -# define WORD_BIT (sizeof (int) * CHAR_BIT) -#endif - -#endif /* _GETCONF_H */ |