1103591Swollman%{
2103591Swollman/*
3103591Swollman * Copyright is disclaimed as to the contents of this file.
4103591Swollman *
5103591Swollman * $FreeBSD$
6103591Swollman */
7103591Swollman
8103591Swollman#include <sys/types.h>
9103591Swollman
10103591Swollman#include <string.h>
11103591Swollman#include <limits.h>
12103591Swollman
13103591Swollman#include "getconf.h"
14103591Swollman
15103591Swollman/*
16103591Swollman * Override gperf's built-in external scope.
17103591Swollman */
18119312Smarkmstatic const struct map *in_word_set(const char *str);
19103591Swollman
20103591Swollman%}
21103591Swollmanstruct map { const char *name; intmax_t value; int valid; };
22103591Swollman%%
23103591Swollman_POSIX_CLOCKRES_MIN, _POSIX_CLOCKRES_MIN
24103591Swollman_POSIX_AIO_LISTIO_MAX, _POSIX_AIO_LISTIO_MAX
25103591Swollman_POSIX_AIO_MAX, _POSIX_AIO_MAX
26103591Swollman_POSIX_ARG_MAX, _POSIX_ARG_MAX
27103591Swollman_POSIX_CHILD_MAX, _POSIX_CHILD_MAX
28103591Swollman_POSIX_DELAYTIMER_MAX, _POSIX_DELAYTIMER_MAX
29103591Swollman_POSIX_HOST_NAME_MAX, _POSIX_HOST_NAME_MAX
30103591Swollman_POSIX_LINK_MAX, _POSIX_LINK_MAX
31103591Swollman_POSIX_LOGIN_NAME_MAX, _POSIX_LOGIN_NAME_MAX
32103591Swollman_POSIX_MAX_CANON, _POSIX_MAX_CANON
33103591Swollman_POSIX_MAX_INPUT, _POSIX_MAX_INPUT
34103591Swollman_POSIX_MQ_OPEN_MAX, _POSIX_MQ_OPEN_MAX
35103591Swollman_POSIX_MQ_PRIO_MAX, _POSIX_MQ_PRIO_MAX
36103591Swollman_POSIX_NAME_MAX, _POSIX_NAME_MAX
37103591Swollman_POSIX_NGROUPS_MAX, _POSIX_NGROUPS_MAX
38103591Swollman_POSIX_OPEN_MAX, _POSIX_OPEN_MAX
39103591Swollman_POSIX_PATH_MAX, _POSIX_PATH_MAX
40103591Swollman_POSIX_PIPE_BUF, __POSIX_PIPE_BUF
41103591Swollman_POSIX_RE_DUP_MAX, _POSIX_RE_DUP_MAX
42103591Swollman_POSIX_RTSIG_MAX, _POSIX_RTSIG_MAX
43103591Swollman_POSIX_SEM_NSEMS_MAX, _POSIX_SEM_NSEMS_MAX
44103591Swollman_POSIX_SEM_VALUE_MAX, _POSIX_SEM_VALUE_MAX
45103591Swollman_POSIX_SIGQUEUE_MAX, _POSIX_SIGQUEUE_MAX
46103591Swollman_POSIX_SSIZE_MAX, _POSIX_SSIZE_MAX
47103591Swollman_POSIX_STREAM_MAX, _POSIX_STREAM_MAX
48103591Swollman_POSIX_SS_REPL_MAX, _POSIX_SS_REPL_MAX
49103591Swollman_POSIX_SYMLINK_MAX, _POSIX_SYMLINK_MAX
50103591Swollman_POSIX_SYMLOOP_MAX, _POSIX_SYMLOOP_MAX
51103591Swollman_POSIX_THREAD_DESTRUCTOR_ITERATIONS, _POSIX_THREAD_DESTRUCTOR_ITERATIONS
52103591Swollman_POSIX_THREAD_KEYS_MAX, _POSIX_THREAD_KEYS_MAX
53103591Swollman_POSIX_THREAD_THREADS_MAX, _POSIX_THREAD_THREADS_MAX
54103591Swollman_POSIX_TIMER_MAX, _POSIX_TIMER_MAX
55103591Swollman_POSIX_TRACE_EVENT_NAME_MAX, _POSIX_TRACE_EVENT_NAME_MAX
56103591Swollman_POSIX_TRACE_NAME_MAX, _POSIX_TRACE_NAME_MAX
57103591Swollman_POSIX_TRACE_SYS_MAX, _POSIX_TRACE_SYS_MAX
58103591Swollman_POSIX_TRACE_USER_EVENT_MAX, _POSIX_TRACE_USER_EVENT_MAX
59103591Swollman_POSIX_TTY_NAME_MAX, _POSIX_TTY_NAME_MAX
60103591Swollman_POSIX_TZNAME_MAX, _POSIX_TZNAME_MAX
61103591Swollman_POSIX2_BC_BASE_MAX, _POSIX2_BC_BASE_MAX
62103591Swollman_POSIX2_BC_DIM_MAX, _POSIX2_BC_DIM_MAX
63103591Swollman_POSIX2_BC_SCALE_MAX, _POSIX2_BC_SCALE_MAX
64103591Swollman_POSIX2_BC_STRING_MAX, _POSIX2_BC_STRING_MAX
65103591Swollman_POSIX2_CHARCLASS_NAME_MAX, _POSIX2_CHARCLASS_NAME_MAX
66103591Swollman_POSIX2_COLL_WEIGHTS_MAX, _POSIX2_COLL_WEIGHTS_MAX
67103591Swollman_POSIX2_EXPR_NEXT_MAX, _POSIX2_EXPR_NEST_MAX
68103591Swollman_POSIX2_LINE_MAX, _POSIX2_LINE_MAX
69103591Swollman_POSIX2_RE_DUP_MAX, _POSIX2_RE_DUP_MAX
70103591Swollman_XOPEN_IOV_MAX, _XOPEN_IOV_MAX
71103591Swollman_XOPEN_NAME_MAX, _XOPEN_NAME_MAX
72103591Swollman_XOPEN_PATH_MAX, _XOPEN_PATH_MAX
73103591SwollmanCHAR_BIT, CHAR_BIT
74103591SwollmanCHAR_MAX, CHAR_MAX
75103591SwollmanCHAR_MIN, CHAR_MIN
76103591SwollmanINT_MAX, INT_MAX
77103591SwollmanINT_MIN, INT_MIN
78103591SwollmanLLONG_MIN, LLONG_MIN
79103591SwollmanLLONG_MAX, LLONG_MAX
80103591SwollmanLONG_BIT, LONG_BIT
81103591SwollmanLONG_MAX, LONG_MAX
82103591SwollmanLONG_MIN, LONG_MIN
83103591SwollmanMB_LEN_MAX, MB_LEN_MAX
84103591SwollmanSCHAR_MAX, SCHAR_MAX
85103591SwollmanSCHAR_MIN, SCHAR_MIN
86103591SwollmanSHRT_MAX, SHRT_MAX
87103591SwollmanSHRT_MIN, SHRT_MIN
88103591SwollmanSSIZE_MAX, SSIZE_MAX
89103591SwollmanUCHAR_MAX, UCHAR_MAX
90103591SwollmanUINT_MAX, UINT_MAX
91103591SwollmanULLONG_MAX, ULLONG_MAX
92103591SwollmanULONG_MAX, ULONG_MAX
93103591SwollmanUSHRT_MAX, USHRT_MAX
94103591SwollmanWORD_BIT, WORD_BIT
95103591SwollmanCHARCLASS_NAME_MAX, CHARCLASS_NAME_MAX
96103591SwollmanNL_ARGMAX, NL_ARGMAX
97103591SwollmanML_LANGMAX, NL_LANGMAX
98103591SwollmanNL_MSGMAX, NL_MSGMAX
99103591SwollmanNL_NMAX, NL_NMAX
100103591SwollmanNL_SETMAX, NL_SETMAX
101103591SwollmanNL_TEXTMAX, NL_TEXTMAX
102103591SwollmanNZERO, NZERO
103103591Swollman%%
104103591Swollmanint
105103591Swollmanfind_limit(const char *name, intmax_t *value)
106103591Swollman{
107103591Swollman	const struct map *rv;
108103591Swollman
109119312Smarkm	rv = in_word_set(name);
110103591Swollman	if (rv != NULL) {
111103591Swollman		if (rv->valid) {
112103591Swollman			*value = rv->value;
113103591Swollman			return 1;
114103591Swollman		}
115103591Swollman		return -1;
116103591Swollman	}
117103591Swollman	return 0;
118103591Swollman}
119