]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/blob - usr.bin/getconf/pathconf.gperf
MFstable/10 r305229:
[FreeBSD/stable/9.git] / usr.bin / getconf / pathconf.gperf
1 %{
2 /*
3  * Copyright is disclaimed as to the contents of this file.
4  *
5  * $FreeBSD$
6  */
7
8 #include <sys/types.h>
9
10 #include <string.h>
11 #include <unistd.h>
12
13 #include "getconf.h"
14
15 /*
16  * Override gperf's built-in external scope.
17  */
18 static const struct map *in_word_set(const char *str);
19
20 %}
21 struct map { const char *name; int key; int valid; };
22 %%
23 ACL_EXTENDED, _PC_ACL_EXTENDED
24 ACL_NFS4, _PC_ACL_NFS4
25 ACL_PATH_MAX, _PC_ACL_PATH_MAX
26 CAP_PRESENT, _PC_CAP_PRESENT
27 FILESIZEBITS, _PC_FILESIZEBITS
28 INF_PRESENT, _PC_INF_PRESENT
29 LINK_MAX, _PC_LINK_MAX
30 MAC_PRESENT, _PC_MAC_PRESENT
31 MAX_CANON, _PC_MAX_CANON
32 MAX_INPUT, _PC_MAX_INPUT
33 MIN_HOLE_SIZE, _PC_MIN_HOLE_SIZE
34 NAME_MAX, _PC_NAME_MAX
35 PATH_MAX, _PC_PATH_MAX
36 PIPE_BUF, _PC_PIPE_BUF
37 POSIX_ALLOC_SIZE_MIN, _PC_ALLOC_SIZE_MIN
38 POSIX_REC_INCR_XFER_SIZE, _PC_REC_INCR_XFER_SIZE
39 POSIX_REC_MAX_XFER_SIZE, _PC_REC_MAX_XFER_SIZE
40 POSIX_REC_MIN_XFER_SIZE, _PC_REC_MIN_XFER_SIZE
41 POSIX_REC_XFER_ALIGN, _PC_REC_XFER_ALIGN
42 SYMLINK_MAX, _PC_SYMLINK_MAX
43 TRUSTEDBSD_ACL_EXTENDED, _PC_ACL_EXTENDED
44 TRUSTEDBSD_ACL_NFS4, _PC_ACL_NFS4
45 TRUSTEDBSD_ACL_PATH_MAX, _PC_ACL_PATH_MAX
46 TRUSTEDBSD_CAP_PRESENT, _PC_CAP_PRESENT
47 TRUSTEDBSD_INF_PRESENT, _PC_INF_PRESENT
48 TRUSTEDBSD_MAC_PRESENT, _PC_MAC_PRESENT
49 _POSIX_CHOWN_RESTRICTED, _PC_CHOWN_RESTRICTED
50 _POSIX_NO_TRUNC, _PC_NO_TRUNC
51 _POSIX_VDISABLE, _PC_VDISABLE
52 _POSIX_ASYNC_IO, _PC_ASYNC_IO
53 _POSIX_PRIO_IO, _PC_PRIO_IO
54 _POSIX_SYNC_IO, _PC_SYNC_IO
55 %%
56 int
57 find_pathconf(const char *name, int *key)
58 {
59         const struct map *rv;
60
61         rv = in_word_set(name);
62         if (rv != NULL) {
63                 if (rv->valid) {
64                         *key = rv->key;
65                         return 1;
66                 }
67                 return -1;
68         }
69         return 0;
70 }