xref: /freebsd/usr.bin/getconf/confstr.gperf (revision b3e7694832e81d7a904a10f525f8797b753bf0d3)
18c6bd995SGarrett Wollman%{
28c6bd995SGarrett Wollman/*
38c6bd995SGarrett Wollman * Copyright is disclaimed as to the contents of this file.
48c6bd995SGarrett Wollman */
58c6bd995SGarrett Wollman
68c6bd995SGarrett Wollman#include <sys/types.h>
78c6bd995SGarrett Wollman
88c6bd995SGarrett Wollman#include <string.h>
98c6bd995SGarrett Wollman#include <unistd.h>
108c6bd995SGarrett Wollman
118c6bd995SGarrett Wollman#include "getconf.h"
128c6bd995SGarrett Wollman
138c6bd995SGarrett Wollman/*
148c6bd995SGarrett Wollman * Override gperf's built-in external scope.
158c6bd995SGarrett Wollman */
16a272cd3aSMark Murraystatic const struct map *in_word_set(const char *str);
178c6bd995SGarrett Wollman
18e9cfb9aeSGarrett Wollman/*
19e9cfb9aeSGarrett Wollman * The Standard seems a bit ambiguous over whether the POSIX_V6_*
20e9cfb9aeSGarrett Wollman * are specified with or without a leading underscore, so we just
21e9cfb9aeSGarrett Wollman * use both.
22e9cfb9aeSGarrett Wollman */
238c6bd995SGarrett Wollman%}
24e9cfb9aeSGarrett Wollmanstruct map { const char *name; int key; int valid; };
258c6bd995SGarrett Wollman%%
268c6bd995SGarrett WollmanPATH, _CS_PATH
2755a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS
2855a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
2955a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LIBS
3055a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
3155a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
3255a7bf6bSGarrett WollmanPOSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS
3355a7bf6bSGarrett WollmanPOSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS
3455a7bf6bSGarrett WollmanPOSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS
3555a7bf6bSGarrett WollmanPOSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LIBS
3655a7bf6bSGarrett WollmanPOSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
3755a7bf6bSGarrett WollmanPOSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
3855a7bf6bSGarrett WollmanPOSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
3955a7bf6bSGarrett WollmanPOSIX_V6_WIDTH_RESTRICTED_ENVS, _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
40e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS
41e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS
42e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LIBS
43e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS
44e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS
45e9cfb9aeSGarrett Wollman_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS
46e9cfb9aeSGarrett Wollman_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS
47e9cfb9aeSGarrett Wollman_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS
48e9cfb9aeSGarrett Wollman_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LIBS
49e9cfb9aeSGarrett Wollman_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS
50e9cfb9aeSGarrett Wollman_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS
51e9cfb9aeSGarrett Wollman_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS
52e9cfb9aeSGarrett Wollman_POSIX_V6_WIDTH_RESTRICTED_ENVS, _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS
538c6bd995SGarrett Wollman%%
548c6bd995SGarrett Wollmanint
55e9cfb9aeSGarrett Wollmanfind_confstr(const char *name, int *key)
568c6bd995SGarrett Wollman{
578c6bd995SGarrett Wollman	const struct map *rv;
588c6bd995SGarrett Wollman
59a272cd3aSMark Murray	rv = in_word_set(name);
60e9cfb9aeSGarrett Wollman	if (rv != NULL) {
61e9cfb9aeSGarrett Wollman		if (rv->valid) {
62e9cfb9aeSGarrett Wollman			*key = rv->key;
63e9cfb9aeSGarrett Wollman			return 1;
64e9cfb9aeSGarrett Wollman		}
658c6bd995SGarrett Wollman		return -1;
668c6bd995SGarrett Wollman	}
67e9cfb9aeSGarrett Wollman	return 0;
68e9cfb9aeSGarrett Wollman}
69*dda1cfcfSJohn Baldwin
70*dda1cfcfSJohn Baldwinvoid
71*dda1cfcfSJohn Baldwinforeach_confstr(void (*func)(const char *, int))
72*dda1cfcfSJohn Baldwin{
73*dda1cfcfSJohn Baldwin	const struct map *mp;
74*dda1cfcfSJohn Baldwin
75*dda1cfcfSJohn Baldwin	for (mp = wordlist; mp->name != NULL; mp++) {
76*dda1cfcfSJohn Baldwin		if (mp->valid)
77*dda1cfcfSJohn Baldwin			func(mp->name, mp->key);
78*dda1cfcfSJohn Baldwin	}
79*dda1cfcfSJohn Baldwin}
80