pathconf.gperf revision 106016
159632Swollman%{
259632Swollman/*
359632Swollman * Copyright is disclaimed as to the contents of this file.
459632Swollman *
559632Swollman * $FreeBSD: head/usr.bin/getconf/pathconf.gperf 106016 2002-10-27 04:10:34Z wollman $
659632Swollman */
759632Swollman
859632Swollman#include <sys/types.h>
959632Swollman
1059632Swollman#include <limits.h>
1159632Swollman#include <string.h>
1259632Swollman#include <unistd.h>
1359632Swollman
1459632Swollman#include "getconf.h"
1559632Swollman
1659632Swollman/*
1759632Swollman * Override gperf's built-in external scope.
1859632Swollman */
1959632Swollmanstatic const struct map *in_word_set(const char *str, unsigned int len);
2059632Swollman
2159632Swollman%}
22103591Swollmanstruct map { char *name; int key; int valid; };
2359632Swollman%%
2459632SwollmanFILESIZEBITS, _PC_FILESIZEBITS
2559632SwollmanLINK_MAX, _PC_LINK_MAX
2659632SwollmanMAX_CANON, _PC_MAX_CANON
2759632SwollmanMAX_INPUT, _PC_MAX_INPUT
2859632SwollmanNAME_MAX, _PC_NAME_MAX
2959632SwollmanPATH_MAX, _PC_PATH_MAX
3059632SwollmanPIPE_BUF, _PC_PIPE_BUF
31103591SwollmanPOSIX_ALLOC_SIZE_MIN, _PC_ALLOC_SIZE_MIN
32103591SwollmanPOSIX_REC_INCR_XFER_SIZE, _PC_REC_INCR_XFER_SIZE
33103591SwollmanPOSIX_REC_MAX_XFER_SIZE, _PC_REC_MAX_XFER_SIZE
34103591SwollmanPOSIX_REC_MIN_XFER_SIZE, _PC_REC_MIN_XFER_SIZE
35103591SwollmanPOSIX_REC_XFER_ALIGN, _PC_REC_XFER_ALIGN
36106016SwollmanSYMLINK_MAX, _PC_SYMLINK_MAX
37106016SwollmanTRUSTEDBSD_ACL_EXTENDED, _PC_ACL_EXTENDED
38106016SwollmanTRUSTEDBSD_ACL_PATH_MAX, _PC_ACL_PATH_MAX
39106016SwollmanTRUSTEDBSD_CAP_PRESENT, _PC_CAP_PRESENT
40106016SwollmanTRUSTEDBSD_INF_PRESENT, _PC_INF_PRESENT
41106016SwollmanTRUSTEDBSD_MAC_PRESENT, _PC_MAC_PRESENT
4259632Swollman_POSIX_CHOWN_RESTRICTED, _PC_CHOWN_RESTRICTED
4359632Swollman_POSIX_NO_TRUNC, _PC_NO_TRUNC
4459632Swollman_POSIX_VDISABLE, _PC_VDISABLE
4559632Swollman_POSIX_ASYNC_IO, _PC_ASYNC_IO
4659632Swollman_POSIX_PRIO_IO, _PC_PRIO_IO
4759632Swollman_POSIX_SYNC_IO, _PC_SYNC_IO
4859632Swollman%%
4959632Swollmanint
50103591Swollmanfind_pathconf(const char *name, int *key)
5159632Swollman{
5259632Swollman	const struct map *rv;
5359632Swollman
5459632Swollman	rv = in_word_set(name, strlen(name));
55103591Swollman	if (rv != NULL) {
56103591Swollman		if (rv->valid) {
57103591Swollman			*key = rv->key;
58103591Swollman			return 1;
59103591Swollman		}
6059632Swollman		return -1;
61103591Swollman	}
62103591Swollman	return 0;
6359632Swollman}
64