Line data Source code
1 : /*
2 : Unix SMB/CIFS implementation.
3 : SMB torture tester - scanning functions
4 : Copyright (C) Andrew Tridgell 2001
5 :
6 : This program is free software; you can redistribute it and/or modify
7 : it under the terms of the GNU General Public License as published by
8 : the Free Software Foundation; either version 3 of the License, or
9 : (at your option) any later version.
10 :
11 : This program is distributed in the hope that it will be useful,
12 : but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : GNU General Public License for more details.
15 :
16 : You should have received a copy of the GNU General Public License
17 : along with this program. If not, see <http://www.gnu.org/licenses/>.
18 : */
19 :
20 : #include "includes.h"
21 : #include "system/filesys.h"
22 : #include "torture/proto.h"
23 : #include "libsmb/libsmb.h"
24 :
25 : extern bool torture_showall;
26 :
27 : enum deny_result {A_0=0, A_X=1, A_R=2, A_W=3, A_RW=5};
28 :
29 :
30 0 : static const char *denystr(int denymode)
31 : {
32 0 : struct {
33 : int v;
34 : const char *name;
35 0 : } deny_modes[] = {
36 : {DENY_DOS, "DENY_DOS"},
37 : {DENY_ALL, "DENY_ALL"},
38 : {DENY_WRITE, "DENY_WRITE"},
39 : {DENY_READ, "DENY_READ"},
40 : {DENY_NONE, "DENY_NONE"},
41 : {DENY_FCB, "DENY_FCB"},
42 : {-1, NULL}};
43 0 : int i;
44 0 : for (i=0;deny_modes[i].name;i++) {
45 0 : if (deny_modes[i].v == denymode) return deny_modes[i].name;
46 : }
47 0 : return "DENY_XXX";
48 : }
49 :
50 0 : static const char *openstr(int mode)
51 : {
52 0 : struct {
53 : int v;
54 : const char *name;
55 0 : } open_modes[] = {
56 : {O_RDWR, "O_RDWR"},
57 : {O_RDONLY, "O_RDONLY"},
58 : {O_WRONLY, "O_WRONLY"},
59 : {-1, NULL}};
60 0 : int i;
61 0 : for (i=0;open_modes[i].name;i++) {
62 0 : if (open_modes[i].v == mode) return open_modes[i].name;
63 : }
64 0 : return "O_XXX";
65 : }
66 :
67 0 : static const char *resultstr(enum deny_result res)
68 : {
69 0 : struct {
70 : enum deny_result res;
71 : const char *name;
72 0 : } results[] = {
73 : {A_X, "X"},
74 : {A_0, "-"},
75 : {A_R, "R"},
76 : {A_W, "W"},
77 : {A_RW,"RW"}};
78 0 : size_t i;
79 0 : for (i=0;i<ARRAY_SIZE(results);i++) {
80 0 : if (results[i].res == res) return results[i].name;
81 : }
82 0 : return "*";
83 : }
84 :
85 : static struct {
86 : int isexe;
87 : int mode1, deny1;
88 : int mode2, deny2;
89 : enum deny_result result;
90 : } denytable2[] = {
91 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
92 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
93 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
94 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
95 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
96 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
97 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
98 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
99 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
100 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
101 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
102 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
103 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
104 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
105 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
106 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
107 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
108 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
109 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
110 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
111 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
112 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
113 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
114 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
115 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_RW},
116 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
117 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_W},
118 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
119 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
120 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
121 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
122 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
123 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
124 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
125 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
126 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
127 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
128 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
129 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
130 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
131 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
132 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
133 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
134 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
135 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
136 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_RW},
137 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_R},
138 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_W},
139 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
140 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
141 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
142 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
143 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
144 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
145 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
146 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
147 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
148 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
149 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
150 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
151 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
152 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
153 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
154 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
155 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
156 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
157 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
158 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
159 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
160 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
161 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
162 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
163 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
164 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
165 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
166 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
167 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
168 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
169 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
170 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
171 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
172 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
173 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
174 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
175 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
176 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
177 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
178 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
179 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
180 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
181 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
182 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
183 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
184 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
185 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
186 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
187 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
188 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
189 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
190 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
191 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
192 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
193 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
194 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
195 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
196 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
197 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
198 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
199 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
200 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
201 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
202 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
203 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
204 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
205 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
206 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
207 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
208 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
209 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
210 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
211 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
212 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
213 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
214 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
215 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
216 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
217 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
218 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
219 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
220 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
221 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
222 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
223 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
224 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
225 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
226 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
227 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
228 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
229 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
230 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
231 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
232 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
233 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
234 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
235 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
236 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
237 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
238 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
239 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
240 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
241 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
242 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
243 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
244 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
245 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
246 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
247 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
248 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
249 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
250 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
251 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
252 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
253 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
254 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
255 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_W},
256 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
257 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
258 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
259 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
260 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
261 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
262 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
263 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
264 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
265 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
266 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
267 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
268 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
269 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
270 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
271 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
272 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
273 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
274 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
275 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
276 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
277 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
278 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
279 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
280 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
281 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
282 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
283 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
284 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
285 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
286 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
287 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
288 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
289 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
290 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
291 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
292 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
293 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
294 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
295 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
296 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
297 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
298 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
299 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
300 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
301 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
302 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
303 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
304 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
305 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
306 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
307 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
308 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
309 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
310 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
311 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
312 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
313 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
314 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
315 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
316 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
317 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
318 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
319 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
320 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
321 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
322 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
323 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
324 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
325 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
326 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
327 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
328 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
329 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
330 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
331 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
332 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
333 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
334 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
335 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
336 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
337 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
338 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
339 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
340 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
341 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
342 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
343 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
344 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
345 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
346 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
347 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
348 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
349 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
350 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
351 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
352 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
353 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
354 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
355 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
356 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
357 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
358 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
359 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
360 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
361 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_0},
362 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
363 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
364 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
365 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
366 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
367 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
368 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
369 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
370 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
371 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
372 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
373 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
374 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
375 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
376 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_0},
377 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
378 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
379 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
380 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
381 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
382 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
383 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
384 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
385 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
386 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
387 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
388 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
389 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
390 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
391 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
392 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
393 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
394 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
395 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
396 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
397 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
398 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
399 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
400 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
401 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
402 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
403 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
404 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
405 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
406 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
407 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
408 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
409 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
410 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
411 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
412 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
413 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
414 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
415 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_0},
416 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_0},
417 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
418 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
419 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
420 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
421 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
422 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
423 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
424 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
425 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
426 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
427 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_0},
428 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
429 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
430 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
431 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
432 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
433 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
434 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
435 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
436 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
437 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
438 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
439 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
440 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
441 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
442 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
443 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
444 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
445 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
446 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
447 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
448 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
449 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
450 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
451 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
452 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_0},
453 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
454 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
455 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
456 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
457 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
458 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
459 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
460 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
461 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
462 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
463 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
464 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
465 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
466 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
467 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
468 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
469 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
470 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
471 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
472 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
473 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
474 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
475 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
476 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
477 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
478 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
479 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
480 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
481 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
482 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
483 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
484 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
485 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
486 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
487 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
488 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
489 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
490 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
491 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
492 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
493 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
494 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
495 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
496 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
497 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
498 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
499 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
500 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
501 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
502 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
503 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
504 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
505 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
506 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
507 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
508 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
509 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
510 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
511 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
512 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
513 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
514 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
515 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
516 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
517 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
518 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
519 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
520 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
521 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
522 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
523 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
524 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
525 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
526 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
527 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
528 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
529 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
530 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
531 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
532 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
533 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
534 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
535 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
536 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
537 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
538 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
539 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
540 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
541 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
542 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
543 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
544 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
545 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
546 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
547 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
548 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
549 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
550 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
551 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
552 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
553 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
554 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
555 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
556 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
557 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
558 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
559 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
560 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
561 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
562 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
563 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
564 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
565 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
566 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
567 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
568 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
569 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
570 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
571 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
572 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
573 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
574 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
575 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
576 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
577 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
578 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
579 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_0},
580 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
581 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
582 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
583 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
584 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
585 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
586 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
587 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
588 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
589 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
590 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
591 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
592 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
593 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
594 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
595 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
596 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
597 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
598 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
599 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
600 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
601 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
602 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
603 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
604 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
605 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
606 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
607 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
608 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
609 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
610 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
611 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
612 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
613 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
614 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
615 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
616 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
617 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
618 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
619 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
620 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
621 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
622 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
623 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
624 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
625 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
626 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
627 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
628 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
629 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
630 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
631 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_0},
632 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
633 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
634 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
635 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
636 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
637 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
638 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
639 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
640 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
641 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
642 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
643 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
644 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
645 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
646 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
647 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
648 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
649 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
650 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
651 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
652 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
653 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
654 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
655 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
656 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
657 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
658 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
659 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
660 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
661 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
662 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
663 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
664 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
665 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
666 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
667 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
668 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
669 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
670 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
671 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
672 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
673 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
674 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
675 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
676 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
677 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
678 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
679 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
680 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
681 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
682 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
683 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
684 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
685 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_0},
686 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
687 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
688 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
689 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
690 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
691 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
692 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
693 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
694 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
695 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
696 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
697 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
698 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
699 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
700 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_0},
701 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
702 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
703 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
704 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
705 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
706 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
707 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
708 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
709 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
710 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
711 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
712 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
713 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
714 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
715 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
716 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
717 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
718 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
719 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
720 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0},
721 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_0},
722 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_0},
723 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_0},
724 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
725 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
726 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
727 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
728 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
729 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
730 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
731 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
732 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
733 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
734 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
735 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
736 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_0},
737 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_0},
738 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_0}
739 : };
740 :
741 :
742 : static struct {
743 : int isexe;
744 : int mode1, deny1;
745 : int mode2, deny2;
746 : enum deny_result result;
747 : } denytable1[] = {
748 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
749 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
750 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
751 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
752 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
753 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
754 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
755 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
756 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
757 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
758 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
759 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
760 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
761 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
762 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
763 : {1, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_0},
764 : {1, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
765 : {1, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
766 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
767 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
768 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
769 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
770 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
771 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
772 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_RW},
773 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
774 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_W},
775 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
776 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
777 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
778 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
779 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
780 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
781 : {1, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
782 : {1, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
783 : {1, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
784 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
785 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
786 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
787 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
788 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
789 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
790 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
791 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
792 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
793 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_RW},
794 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_R},
795 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_W},
796 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_RW},
797 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
798 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_W},
799 : {1, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
800 : {1, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
801 : {1, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
802 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
803 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
804 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
805 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
806 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
807 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
808 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
809 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
810 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
811 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
812 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
813 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
814 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
815 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
816 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
817 : {1, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
818 : {1, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
819 : {1, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
820 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
821 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
822 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
823 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
824 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
825 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
826 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
827 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
828 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
829 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
830 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
831 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
832 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
833 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
834 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
835 : {1, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
836 : {1, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
837 : {1, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
838 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
839 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
840 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
841 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
842 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
843 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
844 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
845 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
846 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
847 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
848 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
849 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
850 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
851 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
852 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
853 : {1, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
854 : {1, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
855 : {1, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
856 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
857 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
858 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
859 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
860 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
861 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
862 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
863 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
864 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
865 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
866 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
867 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
868 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
869 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
870 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
871 : {1, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
872 : {1, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
873 : {1, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
874 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
875 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
876 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
877 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
878 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
879 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
880 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
881 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
882 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
883 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
884 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
885 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
886 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
887 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
888 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
889 : {1, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
890 : {1, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
891 : {1, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
892 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
893 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
894 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
895 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
896 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
897 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
898 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
899 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
900 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
901 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
902 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
903 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
904 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
905 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
906 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
907 : {1, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
908 : {1, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
909 : {1, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
910 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
911 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
912 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_W},
913 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
914 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
915 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
916 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
917 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
918 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
919 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
920 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
921 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
922 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
923 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
924 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
925 : {1, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
926 : {1, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
927 : {1, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
928 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
929 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
930 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
931 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
932 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
933 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
934 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
935 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
936 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
937 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
938 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
939 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
940 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
941 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
942 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
943 : {1, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
944 : {1, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
945 : {1, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
946 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
947 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
948 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_W},
949 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
950 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
951 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
952 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
953 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
954 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
955 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
956 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
957 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
958 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
959 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
960 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
961 : {1, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
962 : {1, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
963 : {1, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
964 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
965 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
966 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
967 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
968 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
969 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
970 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
971 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
972 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
973 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
974 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
975 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
976 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
977 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
978 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
979 : {1, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
980 : {1, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
981 : {1, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
982 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
983 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
984 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
985 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
986 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
987 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
988 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
989 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
990 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
991 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
992 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
993 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
994 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
995 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
996 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
997 : {1, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
998 : {1, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
999 : {1, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
1000 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_RW},
1001 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
1002 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_W},
1003 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
1004 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
1005 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
1006 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
1007 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
1008 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
1009 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
1010 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
1011 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
1012 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
1013 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
1014 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
1015 : {1, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
1016 : {1, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
1017 : {1, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
1018 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1019 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1020 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1021 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1022 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1023 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1024 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1025 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1026 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1027 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
1028 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1029 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1030 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1031 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1032 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1033 : {1, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1034 : {1, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1035 : {1, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
1036 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1037 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1038 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1039 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1040 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1041 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1042 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1043 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1044 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1045 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
1046 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1047 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1048 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1049 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1050 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1051 : {1, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1052 : {1, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1053 : {1, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
1054 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1055 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1056 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1057 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1058 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1059 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1060 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1061 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1062 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1063 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
1064 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1065 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1066 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1067 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1068 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1069 : {1, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1070 : {1, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1071 : {1, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
1072 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
1073 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
1074 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
1075 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_ALL, A_0},
1076 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
1077 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
1078 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
1079 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
1080 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
1081 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_READ, A_0},
1082 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_READ, A_0},
1083 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_READ, A_0},
1084 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_NONE, A_0},
1085 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
1086 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
1087 : {0, O_RDWR, DENY_DOS, O_RDWR, DENY_FCB, A_RW},
1088 : {0, O_RDWR, DENY_DOS, O_RDONLY, DENY_FCB, A_RW},
1089 : {0, O_RDWR, DENY_DOS, O_WRONLY, DENY_FCB, A_RW},
1090 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_DOS, A_0},
1091 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
1092 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_0},
1093 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
1094 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
1095 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
1096 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
1097 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_R},
1098 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
1099 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
1100 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
1101 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
1102 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
1103 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_R},
1104 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
1105 : {0, O_RDONLY, DENY_DOS, O_RDWR, DENY_FCB, A_0},
1106 : {0, O_RDONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_0},
1107 : {0, O_RDONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_0},
1108 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_DOS, A_RW},
1109 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_DOS, A_R},
1110 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_DOS, A_W},
1111 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_ALL, A_0},
1112 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_ALL, A_0},
1113 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_ALL, A_0},
1114 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_WRITE, A_0},
1115 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_WRITE, A_0},
1116 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_WRITE, A_0},
1117 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_READ, A_0},
1118 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_READ, A_0},
1119 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_READ, A_0},
1120 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_NONE, A_0},
1121 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_NONE, A_0},
1122 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_NONE, A_0},
1123 : {0, O_WRONLY, DENY_DOS, O_RDWR, DENY_FCB, A_RW},
1124 : {0, O_WRONLY, DENY_DOS, O_RDONLY, DENY_FCB, A_RW},
1125 : {0, O_WRONLY, DENY_DOS, O_WRONLY, DENY_FCB, A_RW},
1126 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_DOS, A_0},
1127 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
1128 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
1129 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_ALL, A_0},
1130 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
1131 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
1132 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
1133 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
1134 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
1135 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_READ, A_0},
1136 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_READ, A_0},
1137 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_READ, A_0},
1138 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_NONE, A_0},
1139 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
1140 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
1141 : {0, O_RDWR, DENY_ALL, O_RDWR, DENY_FCB, A_0},
1142 : {0, O_RDWR, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
1143 : {0, O_RDWR, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
1144 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
1145 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
1146 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
1147 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
1148 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
1149 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
1150 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
1151 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
1152 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
1153 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
1154 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
1155 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
1156 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
1157 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
1158 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
1159 : {0, O_RDONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
1160 : {0, O_RDONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
1161 : {0, O_RDONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
1162 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_DOS, A_0},
1163 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_DOS, A_0},
1164 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_DOS, A_0},
1165 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_ALL, A_0},
1166 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_ALL, A_0},
1167 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_ALL, A_0},
1168 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_WRITE, A_0},
1169 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_WRITE, A_0},
1170 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_WRITE, A_0},
1171 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_READ, A_0},
1172 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_READ, A_0},
1173 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_READ, A_0},
1174 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_NONE, A_0},
1175 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_NONE, A_0},
1176 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_NONE, A_0},
1177 : {0, O_WRONLY, DENY_ALL, O_RDWR, DENY_FCB, A_0},
1178 : {0, O_WRONLY, DENY_ALL, O_RDONLY, DENY_FCB, A_0},
1179 : {0, O_WRONLY, DENY_ALL, O_WRONLY, DENY_FCB, A_0},
1180 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
1181 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
1182 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
1183 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
1184 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
1185 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
1186 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
1187 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
1188 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
1189 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_READ, A_0},
1190 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
1191 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
1192 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
1193 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
1194 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
1195 : {0, O_RDWR, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
1196 : {0, O_RDWR, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
1197 : {0, O_RDWR, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
1198 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
1199 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_R},
1200 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
1201 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
1202 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
1203 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
1204 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
1205 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_R},
1206 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
1207 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
1208 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_0},
1209 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
1210 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
1211 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
1212 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
1213 : {0, O_RDONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
1214 : {0, O_RDONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
1215 : {0, O_RDONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
1216 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_DOS, A_0},
1217 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_DOS, A_0},
1218 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_DOS, A_0},
1219 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_ALL, A_0},
1220 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_ALL, A_0},
1221 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_ALL, A_0},
1222 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_WRITE, A_0},
1223 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_WRITE, A_0},
1224 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_WRITE, A_0},
1225 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_READ, A_0},
1226 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_READ, A_R},
1227 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_READ, A_0},
1228 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_NONE, A_0},
1229 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_NONE, A_R},
1230 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_NONE, A_0},
1231 : {0, O_WRONLY, DENY_WRITE, O_RDWR, DENY_FCB, A_0},
1232 : {0, O_WRONLY, DENY_WRITE, O_RDONLY, DENY_FCB, A_0},
1233 : {0, O_WRONLY, DENY_WRITE, O_WRONLY, DENY_FCB, A_0},
1234 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_DOS, A_0},
1235 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_DOS, A_0},
1236 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_DOS, A_0},
1237 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_ALL, A_0},
1238 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_ALL, A_0},
1239 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_ALL, A_0},
1240 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_WRITE, A_0},
1241 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
1242 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
1243 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_READ, A_0},
1244 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_READ, A_0},
1245 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_READ, A_0},
1246 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_NONE, A_0},
1247 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_NONE, A_0},
1248 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_NONE, A_W},
1249 : {0, O_RDWR, DENY_READ, O_RDWR, DENY_FCB, A_0},
1250 : {0, O_RDWR, DENY_READ, O_RDONLY, DENY_FCB, A_0},
1251 : {0, O_RDWR, DENY_READ, O_WRONLY, DENY_FCB, A_0},
1252 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
1253 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
1254 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
1255 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
1256 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
1257 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
1258 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
1259 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
1260 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_W},
1261 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
1262 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
1263 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_READ, A_0},
1264 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
1265 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
1266 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
1267 : {0, O_RDONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
1268 : {0, O_RDONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
1269 : {0, O_RDONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
1270 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_DOS, A_0},
1271 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_DOS, A_0},
1272 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_DOS, A_0},
1273 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_ALL, A_0},
1274 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_ALL, A_0},
1275 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_ALL, A_0},
1276 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_WRITE, A_0},
1277 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_WRITE, A_0},
1278 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_WRITE, A_0},
1279 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_READ, A_0},
1280 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_READ, A_0},
1281 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_READ, A_W},
1282 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_NONE, A_0},
1283 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_NONE, A_0},
1284 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_NONE, A_W},
1285 : {0, O_WRONLY, DENY_READ, O_RDWR, DENY_FCB, A_0},
1286 : {0, O_WRONLY, DENY_READ, O_RDONLY, DENY_FCB, A_0},
1287 : {0, O_WRONLY, DENY_READ, O_WRONLY, DENY_FCB, A_0},
1288 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_DOS, A_0},
1289 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
1290 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
1291 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_ALL, A_0},
1292 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
1293 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
1294 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
1295 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
1296 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
1297 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_READ, A_0},
1298 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_READ, A_0},
1299 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_READ, A_0},
1300 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
1301 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
1302 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
1303 : {0, O_RDWR, DENY_NONE, O_RDWR, DENY_FCB, A_0},
1304 : {0, O_RDWR, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
1305 : {0, O_RDWR, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
1306 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
1307 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_R},
1308 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
1309 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
1310 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
1311 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
1312 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_RW},
1313 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_R},
1314 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_W},
1315 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_READ, A_0},
1316 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_READ, A_0},
1317 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_READ, A_0},
1318 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
1319 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
1320 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
1321 : {0, O_RDONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
1322 : {0, O_RDONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
1323 : {0, O_RDONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
1324 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_DOS, A_0},
1325 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_DOS, A_0},
1326 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_DOS, A_0},
1327 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_ALL, A_0},
1328 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_ALL, A_0},
1329 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_ALL, A_0},
1330 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_WRITE, A_0},
1331 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_WRITE, A_0},
1332 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_WRITE, A_0},
1333 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_READ, A_RW},
1334 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_READ, A_R},
1335 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_READ, A_W},
1336 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_NONE, A_RW},
1337 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_NONE, A_R},
1338 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_NONE, A_W},
1339 : {0, O_WRONLY, DENY_NONE, O_RDWR, DENY_FCB, A_0},
1340 : {0, O_WRONLY, DENY_NONE, O_RDONLY, DENY_FCB, A_0},
1341 : {0, O_WRONLY, DENY_NONE, O_WRONLY, DENY_FCB, A_0},
1342 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1343 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1344 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1345 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1346 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1347 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1348 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1349 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1350 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1351 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_READ, A_0},
1352 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1353 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1354 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1355 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1356 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1357 : {0, O_RDWR, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1358 : {0, O_RDWR, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1359 : {0, O_RDWR, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
1360 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1361 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1362 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1363 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1364 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1365 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1366 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1367 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1368 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1369 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
1370 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1371 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1372 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1373 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1374 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1375 : {0, O_RDONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1376 : {0, O_RDONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1377 : {0, O_RDONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW},
1378 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_DOS, A_RW},
1379 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_DOS, A_R},
1380 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_DOS, A_W},
1381 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_ALL, A_0},
1382 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_ALL, A_0},
1383 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_ALL, A_0},
1384 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_WRITE, A_0},
1385 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_WRITE, A_0},
1386 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_WRITE, A_0},
1387 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_READ, A_0},
1388 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_READ, A_0},
1389 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_READ, A_0},
1390 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_NONE, A_0},
1391 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_NONE, A_0},
1392 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_NONE, A_0},
1393 : {0, O_WRONLY, DENY_FCB, O_RDWR, DENY_FCB, A_RW},
1394 : {0, O_WRONLY, DENY_FCB, O_RDONLY, DENY_FCB, A_RW},
1395 : {0, O_WRONLY, DENY_FCB, O_WRONLY, DENY_FCB, A_RW}
1396 : };
1397 :
1398 :
1399 0 : static void progress_bar(unsigned i, unsigned total)
1400 : {
1401 0 : if (i % 10 != 0) return;
1402 0 : printf("%5d/%5d\r", i, total);
1403 0 : fflush(stdout);
1404 : }
1405 :
1406 : /*
1407 : this produces a matrix of deny mode behaviour for 1 connection
1408 : */
1409 0 : bool torture_denytest1(int dummy)
1410 : {
1411 0 : struct cli_state *cli1;
1412 0 : uint16_t fnum1, fnum2;
1413 0 : bool correct = True;
1414 0 : NTSTATUS ret1, ret2, status;
1415 0 : const char *fnames[2] = {"\\denytest1.dat", "\\denytest1.exe"};
1416 0 : size_t i, nread;
1417 :
1418 0 : if (!torture_open_connection(&cli1, 0)) {
1419 0 : return False;
1420 : }
1421 :
1422 0 : printf("starting denytest1\n");
1423 :
1424 0 : for (i=0;i<2;i++) {
1425 0 : cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
1426 0 : cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
1427 0 : cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
1428 : strlen(fnames[i]), NULL);
1429 0 : cli_close(cli1, fnum1);
1430 : }
1431 :
1432 0 : printf("testing %ld entries\n", (unsigned long)ARRAY_SIZE(denytable1));
1433 :
1434 0 : for (i=0; i<ARRAY_SIZE(denytable1); i++) {
1435 0 : enum deny_result res;
1436 0 : const char *fname = fnames[denytable1[i].isexe];
1437 :
1438 0 : progress_bar(i, ARRAY_SIZE(denytable1));
1439 :
1440 0 : ret1 = cli_openx(cli1, fname,
1441 : denytable1[i].mode1,
1442 : denytable1[i].deny1, &fnum1);
1443 0 : ret2 = cli_openx(cli1, fname,
1444 : denytable1[i].mode2,
1445 : denytable1[i].deny2, &fnum2);
1446 :
1447 0 : if (!NT_STATUS_IS_OK(ret1)) {
1448 0 : res = A_X;
1449 0 : } else if (!NT_STATUS_IS_OK(ret2)) {
1450 0 : res = A_0;
1451 : } else {
1452 0 : char x = 1;
1453 0 : res = A_0;
1454 :
1455 0 : status = cli_read(cli1, fnum2, (char *)&x, 0, 1,
1456 : &nread);
1457 0 : if (NT_STATUS_IS_OK(status) && nread == 1) {
1458 0 : res += A_R;
1459 : }
1460 0 : if (NT_STATUS_IS_OK(cli_writeall(cli1, fnum2, 0,
1461 : (uint8_t *)&x, 0, 1,
1462 : NULL))) {
1463 0 : res += A_W;
1464 : }
1465 : }
1466 :
1467 0 : if (res != denytable1[i].result) {
1468 0 : correct = False;
1469 : }
1470 :
1471 0 : if (torture_showall || res != denytable1[i].result) {
1472 0 : printf("%s %8s %10s %8s %10s %s (correct=%s)\n",
1473 : fname,
1474 : denystr(denytable1[i].deny1),
1475 : openstr(denytable1[i].mode1),
1476 : denystr(denytable1[i].deny2),
1477 : openstr(denytable1[i].mode2),
1478 : resultstr(res),
1479 : resultstr(denytable1[i].result));
1480 : }
1481 :
1482 0 : if (NT_STATUS_IS_OK(ret1)) {
1483 0 : cli_close(cli1, fnum1);
1484 : }
1485 0 : if (NT_STATUS_IS_OK(ret2)) {
1486 0 : cli_close(cli1, fnum2);
1487 : }
1488 : }
1489 :
1490 0 : for (i=0;i<2;i++) {
1491 0 : cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
1492 : }
1493 :
1494 0 : if (!torture_close_connection(cli1)) {
1495 0 : correct = False;
1496 : }
1497 :
1498 0 : printf("finished denytest1\n");
1499 0 : return correct;
1500 : }
1501 :
1502 :
1503 : /*
1504 : this produces a matrix of deny mode behaviour with 2 connections
1505 : */
1506 0 : bool torture_denytest2(int dummy)
1507 : {
1508 0 : static struct cli_state *cli1, *cli2;
1509 0 : uint16_t fnum1, fnum2;
1510 0 : int i;
1511 0 : bool correct = True;
1512 0 : NTSTATUS ret1, ret2, status;
1513 0 : const char *fnames[2] = {"\\denytest2.dat", "\\denytest2.exe"};
1514 0 : size_t nread;
1515 :
1516 0 : if (!torture_open_connection(&cli1, 0) || !torture_open_connection(&cli2, 1)) {
1517 0 : return False;
1518 : }
1519 :
1520 0 : printf("starting denytest2\n");
1521 :
1522 0 : for (i=0;i<2;i++) {
1523 0 : cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
1524 0 : cli_openx(cli1, fnames[i], O_RDWR|O_CREAT, DENY_NONE, &fnum1);
1525 0 : cli_writeall(cli1, fnum1, 0, (const uint8_t *)fnames[i], 0,
1526 : strlen(fnames[i]), NULL);
1527 0 : cli_close(cli1, fnum1);
1528 : }
1529 :
1530 0 : for (i=0; i<ARRAY_SIZE(denytable2); i++) {
1531 0 : enum deny_result res;
1532 0 : const char *fname = fnames[denytable2[i].isexe];
1533 :
1534 0 : progress_bar(i, ARRAY_SIZE(denytable2));
1535 :
1536 0 : ret1 = cli_openx(cli1, fname,
1537 : denytable2[i].mode1,
1538 : denytable2[i].deny1, &fnum1);
1539 0 : ret2 = cli_openx(cli2, fname,
1540 : denytable2[i].mode2,
1541 : denytable2[i].deny2, &fnum2);
1542 :
1543 0 : if (!NT_STATUS_IS_OK(ret1)) {
1544 0 : res = A_X;
1545 0 : } else if (!NT_STATUS_IS_OK(ret2)) {
1546 0 : res = A_0;
1547 : } else {
1548 0 : char x = 1;
1549 0 : res = A_0;
1550 :
1551 0 : status = cli_read(cli2, fnum2, (char *)&x, 0, 1,
1552 : &nread);
1553 0 : if (NT_STATUS_IS_OK(status) && nread == 1) {
1554 0 : res += A_R;
1555 : }
1556 0 : if (NT_STATUS_IS_OK(cli_writeall(cli2, fnum2, 0,
1557 : (uint8_t *)&x, 0, 1,
1558 : NULL))) {
1559 0 : res += A_W;
1560 : }
1561 : }
1562 :
1563 0 : if (res != denytable2[i].result) {
1564 0 : correct = False;
1565 : }
1566 :
1567 0 : if (torture_showall || res != denytable2[i].result) {
1568 0 : printf("%s %8s %10s %8s %10s %s (correct=%s)\n",
1569 : fname,
1570 : denystr(denytable2[i].deny1),
1571 : openstr(denytable2[i].mode1),
1572 : denystr(denytable2[i].deny2),
1573 : openstr(denytable2[i].mode2),
1574 : resultstr(res),
1575 : resultstr(denytable2[i].result));
1576 : }
1577 :
1578 0 : if (NT_STATUS_IS_OK(ret1)) {
1579 0 : cli_close(cli1, fnum1);
1580 : }
1581 0 : if (NT_STATUS_IS_OK(ret2)) {
1582 0 : cli_close(cli2, fnum2);
1583 : }
1584 : }
1585 :
1586 0 : for (i=0;i<2;i++) {
1587 0 : cli_unlink(cli1, fnames[i], FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN);
1588 : }
1589 :
1590 0 : if (!torture_close_connection(cli1)) {
1591 0 : correct = False;
1592 : }
1593 0 : if (!torture_close_connection(cli2)) {
1594 0 : correct = False;
1595 : }
1596 :
1597 0 : printf("finished denytest2\n");
1598 0 : return correct;
1599 : }
1600 :
|