~zulcss/samba/server-dailies-3.4

« back to all changes in this revision

Viewing changes to source3/torture/denytest.c

  • Committer: Chuck Short
  • Date: 2010-09-28 20:38:39 UTC
  • Revision ID: zulcss@ubuntu.com-20100928203839-pgjulytsi9ue63x1
Initial version

Show diffs side-by-side

added added

removed removed

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