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