root/source3/torture/denytest.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. denystr
  2. openstr
  3. resultstr
  4. progress_bar
  5. torture_denytest1
  6. torture_denytest2

   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)
     /* [<][>][^][v][top][bottom][index][help] */
  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)
     /* [<][>][^][v][top][bottom][index][help] */
  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)
     /* [<][>][^][v][top][bottom][index][help] */
  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)
     /* [<][>][^][v][top][bottom][index][help] */
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)
     /* [<][>][^][v][top][bottom][index][help] */
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)
     /* [<][>][^][v][top][bottom][index][help] */
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 

/* [<][>][^][v][top][bottom][index][help] */