Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
att
GitHub Repository: att/ast
Path: blob/master/src/lib/libast/features/mode.c
1810 views
1
/***********************************************************************
2
* *
3
* This software is part of the ast package *
4
* Copyright (c) 1985-2011 AT&T Intellectual Property *
5
* and is licensed under the *
6
* Eclipse Public License, Version 1.0 *
7
* by AT&T Intellectual Property *
8
* *
9
* A copy of the License is available at *
10
* http://www.eclipse.org/org/documents/epl-v10.html *
11
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
12
* *
13
* Information and Software Systems Research *
14
* AT&T Research *
15
* Florham Park NJ *
16
* *
17
* Glenn Fowler <[email protected]> *
18
* David Korn <[email protected]> *
19
* Phong Vo <[email protected]> *
20
* *
21
***********************************************************************/
22
#pragma prototyped
23
/*
24
* Glenn Fowler
25
* AT&T Research
26
*
27
* generate mode features
28
*/
29
30
#include "limits.h"
31
32
#include "FEATURE/param"
33
34
#include <modecanon.h>
35
36
int
37
main()
38
{
39
int n;
40
int idperm;
41
int idtype;
42
43
idperm = idtype = 1;
44
#ifndef S_ITYPE
45
#ifdef S_IFMT
46
printf("#define S_ITYPE(m) ((m)&S_IFMT)\n");
47
#else
48
printf("#define S_ITYPE(m) ((m)&~S_IPERM)\n");
49
#endif
50
#endif
51
#ifdef S_ISBLK
52
if (!S_ISBLK(X_IFBLK)) idtype = 0;
53
#else
54
#ifdef S_IFBLK
55
printf("#define S_ISBLK(m) (S_ITYPE(m)==S_IFBLK)\n");
56
#else
57
printf("#define S_ISBLK(m) 0\n");
58
#endif
59
#endif
60
#ifdef S_ISCHR
61
if (!S_ISCHR(X_IFCHR)) idtype = 0;
62
#else
63
#ifdef S_IFCHR
64
printf("#define S_ISCHR(m) (S_ITYPE(m)==S_IFCHR)\n");
65
#else
66
printf("#define S_ISCHR(m) 0\n");
67
#endif
68
#endif
69
#ifdef S_ISCTG
70
if (!S_ISCTG(X_IFCTG)) idtype = 0;
71
#else
72
#ifdef S_IFCTG
73
printf("#define S_ISCTG(m) (S_ITYPE(m)==S_IFCTG)\n");
74
#endif
75
#endif
76
#ifdef S_ISDIR
77
if (!S_ISDIR(X_IFDIR)) idtype = 0;
78
#else
79
#ifdef S_IFDIR
80
printf("#define S_ISDIR(m) (S_ITYPE(m)==S_IFDIR)\n");
81
#else
82
printf("#define S_ISDIR(m) 0\n");
83
#endif
84
#endif
85
#ifdef S_ISFIFO
86
if (!S_ISFIFO(X_IFIFO)) idtype = 0;
87
#else
88
#ifdef S_IFIFO
89
printf("#define S_ISFIFO(m) (S_ITYPE(m)==S_IFIFO)\n");
90
#else
91
printf("#define S_ISFIFO(m) 0\n");
92
#endif
93
#endif
94
#ifdef S_ISLNK
95
if (!S_ISLNK(X_IFLNK)) idtype = 0;
96
#else
97
#ifdef S_IFLNK
98
printf("#define S_ISLNK(m) (S_ITYPE(m)==S_IFLNK)\n");
99
#else
100
printf("#define S_ISLNK(m) 0\n");
101
#endif
102
#endif
103
#ifdef S_ISREG
104
if (!S_ISREG(X_IFREG)) idtype = 0;
105
#else
106
#ifdef S_IFREG
107
printf("#define S_ISREG(m) (S_ITYPE(m)==S_IFREG)\n");
108
#else
109
printf("#define S_ISREG(m) 0\n");
110
#endif
111
#endif
112
#ifdef S_ISSOCK
113
if (!S_ISSOCK(X_IFSOCK)) idtype = 0;
114
#else
115
#ifdef S_IFSOCK
116
printf("#define S_ISSOCK(m) (S_ITYPE(m)==S_IFSOCK)\n");
117
#endif
118
#endif
119
printf("\n");
120
#ifndef S_IPERM
121
printf("#define S_IPERM (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)\n");
122
#endif
123
#ifndef S_ISUID
124
printf("#define S_ISUID 0%04o\n", X_ISUID);
125
#else
126
if (S_ISUID != X_ISUID) idperm = 0;
127
#endif
128
#ifndef S_ISGID
129
printf("#define S_ISGID 0%04o\n", X_ISGID);
130
#else
131
if (S_ISGID != X_ISGID) idperm = 0;
132
#endif
133
#ifndef S_ISVTX
134
printf("#define S_ISVTX 0%04o\n", X_ISVTX);
135
#else
136
if (S_ISVTX != X_ISVTX) idperm = 0;
137
#endif
138
#ifndef S_IRUSR
139
printf("#define S_IRUSR 0%04o\n", X_IRUSR);
140
#else
141
if (S_IRUSR != X_IRUSR) idperm = 0;
142
#endif
143
#ifndef S_IWUSR
144
printf("#define S_IWUSR 0%04o\n", X_IWUSR);
145
#else
146
if (S_IWUSR != X_IWUSR) idperm = 0;
147
#endif
148
#ifndef S_IXUSR
149
printf("#define S_IXUSR 0%04o\n", X_IXUSR);
150
#else
151
if (S_IXUSR != X_IXUSR) idperm = 0;
152
#endif
153
#ifndef S_IRGRP
154
printf("#define S_IRGRP 0%04o\n", X_IRGRP);
155
#else
156
if (S_IRGRP != X_IRGRP) idperm = 0;
157
#endif
158
#ifndef S_IWGRP
159
printf("#define S_IWGRP 0%04o\n", X_IWGRP);
160
#else
161
if (S_IWGRP != X_IWGRP) idperm = 0;
162
#endif
163
#ifndef S_IXGRP
164
printf("#define S_IXGRP 0%04o\n", X_IXGRP);
165
#else
166
if (S_IXGRP != X_IXGRP) idperm = 0;
167
#endif
168
#ifndef S_IROTH
169
printf("#define S_IROTH 0%04o\n", X_IROTH);
170
#else
171
if (S_IROTH != X_IROTH) idperm = 0;
172
#endif
173
#ifndef S_IWOTH
174
printf("#define S_IWOTH 0%04o\n", X_IWOTH);
175
#else
176
if (S_IWOTH != X_IWOTH) idperm = 0;
177
#endif
178
#ifndef S_IXOTH
179
printf("#define S_IXOTH 0%04o\n", X_IXOTH);
180
#else
181
if (S_IXOTH != X_IXOTH) idperm = 0;
182
#endif
183
#ifndef S_IRWXU
184
printf("#define S_IRWXU (S_IRUSR|S_IWUSR|S_IXUSR)\n");
185
#endif
186
#ifndef S_IRWXG
187
printf("#define S_IRWXG (S_IRGRP|S_IWGRP|S_IXGRP)\n");
188
#endif
189
#ifndef S_IRWXO
190
printf("#define S_IRWXO (S_IROTH|S_IWOTH|S_IXOTH)\n");
191
#endif
192
printf("\n");
193
if (idperm) printf("#define _S_IDPERM 1\n");
194
if (idtype) printf("#define _S_IDTYPE 1\n");
195
printf("\n");
196
#ifdef BUFFERSIZE
197
n = BUFFERSIZE;
198
#else
199
#ifdef MAXBSIZE
200
n = MAXBSIZE;
201
#else
202
#ifdef SBUFSIZE
203
n = SBUFSIZE;
204
#else
205
#ifdef BUFSIZ
206
n = BUFSIZ;
207
#else
208
if (sizeof(char*) > 4) n = 8192;
209
else if (sizeof(char*) < 4) n = 512;
210
else n = 4096;
211
#endif
212
#endif
213
#endif
214
#endif
215
printf("#define BUFFERSIZE %u\n", n);
216
printf("\n");
217
return 0;
218
}
219
220