2001-09-06 14:37:21 +04:00
/*
2002-01-30 09:08:46 +03:00
Unix SMB / CIFS implementation .
2001-09-06 14:37:21 +04:00
SMB torture tester - scanning functions
Copyright ( C ) Andrew Tridgell 2001
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-09 23:25:36 +04:00
the Free Software Foundation ; either version 3 of the License , or
2001-09-06 14:37:21 +04:00
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
2007-07-10 04:52:41 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2001-09-06 14:37:21 +04:00
*/
# include "includes.h"
2011-02-26 01:20:06 +03:00
# include "system/filesys.h"
2009-11-24 13:43:56 +03:00
# include "torture/proto.h"
2011-05-06 13:47:43 +04:00
# include "libsmb/libsmb.h"
2001-09-06 14:37:21 +04:00
2007-10-19 04:40:25 +04:00
extern bool torture_showall ;
2001-09-06 14:37:21 +04:00
enum deny_result { A_0 = 0 , A_X = 1 , A_R = 2 , A_W = 3 , A_RW = 5 } ;
2003-01-03 11:28:12 +03:00
static const char * denystr ( int denymode )
2001-09-06 14:37:21 +04:00
{
struct {
int v ;
2003-01-03 11:28:12 +03:00
const char * name ;
2001-09-06 14:37:21 +04:00
} deny_modes [ ] = {
{ DENY_DOS , " DENY_DOS " } ,
{ DENY_ALL , " DENY_ALL " } ,
{ DENY_WRITE , " DENY_WRITE " } ,
{ DENY_READ , " DENY_READ " } ,
{ DENY_NONE , " DENY_NONE " } ,
{ DENY_FCB , " DENY_FCB " } ,
{ - 1 , NULL } } ;
int i ;
for ( i = 0 ; deny_modes [ i ] . name ; i + + ) {
if ( deny_modes [ i ] . v = = denymode ) return deny_modes [ i ] . name ;
}
return " DENY_XXX " ;
}
2003-01-03 11:28:12 +03:00
static const char * openstr ( int mode )
2001-09-06 14:37:21 +04:00
{
struct {
int v ;
2003-01-03 11:28:12 +03:00
const char * name ;
2001-09-06 14:37:21 +04:00
} open_modes [ ] = {
{ O_RDWR , " O_RDWR " } ,
{ O_RDONLY , " O_RDONLY " } ,
{ O_WRONLY , " O_WRONLY " } ,
{ - 1 , NULL } } ;
int i ;
for ( i = 0 ; open_modes [ i ] . name ; i + + ) {
if ( open_modes [ i ] . v = = mode ) return open_modes [ i ] . name ;
}
return " O_XXX " ;
}
2003-01-03 11:28:12 +03:00
static const char * resultstr ( enum deny_result res )
2001-09-06 14:37:21 +04:00
{
struct {
enum deny_result res ;
2003-01-03 11:28:12 +03:00
const char * name ;
2001-09-06 14:37:21 +04:00
} results [ ] = {
{ A_X , " X " } ,
{ A_0 , " - " } ,
{ A_R , " R " } ,
{ A_W , " W " } ,
{ A_RW , " RW " } } ;
2022-09-29 11:45:19 +03:00
size_t i ;
2016-03-04 12:05:22 +03:00
for ( i = 0 ; i < ARRAY_SIZE ( results ) ; i + + ) {
2001-09-06 14:37:21 +04:00
if ( results [ i ] . res = = res ) return results [ i ] . name ;
}
return " * " ;
}
static struct {
int isexe ;
int mode1 , deny1 ;
int mode2 , deny2 ;
enum deny_result result ;
} denytable2 [ ] = {
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_READ , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_READ , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_R } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_W } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_READ , A_W } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_RW } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_W } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_READ , A_RW } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_READ , A_R } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_READ , A_W } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_0 }
} ;
static struct {
int isexe ;
int mode1 , deny1 ;
int mode2 , deny2 ;
enum deny_result result ;
} denytable1 [ ] = {
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_READ , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDWR , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_READ , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_READ , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_READ , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 1 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDWR , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 1 , O_RDWR , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 1 , O_RDWR , DENY_FCB , O_WRONLY , DENY_FCB , A_RW } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 1 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 1 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_RW } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 1 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 1 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_DOS , O_RDWR , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_DOS , O_RDONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_DOS , O_WRONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_DOS , A_RW } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_DOS , A_W } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDWR , DENY_FCB , A_RW } ,
{ 0 , O_WRONLY , DENY_DOS , O_RDONLY , DENY_FCB , A_RW } ,
{ 0 , O_WRONLY , DENY_DOS , O_WRONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_ALL , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_READ , A_R } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_WRITE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDWR , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_W } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_READ , A_W } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_WRONLY , DENY_READ , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_READ , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDWR , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_RW } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_W } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_DOS , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_READ , A_RW } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_READ , A_R } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_READ , A_W } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_NONE , A_RW } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_NONE , A_R } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_NONE , A_W } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDWR , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_RDONLY , DENY_FCB , A_0 } ,
{ 0 , O_WRONLY , DENY_NONE , O_WRONLY , DENY_FCB , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDWR , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDWR , DENY_FCB , O_WRONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 0 , O_RDONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 0 , O_RDONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_RW } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_DOS , A_RW } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_DOS , A_R } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_DOS , A_W } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_ALL , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_WRITE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_READ , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_NONE , A_0 } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDWR , DENY_FCB , A_RW } ,
{ 0 , O_WRONLY , DENY_FCB , O_RDONLY , DENY_FCB , A_RW } ,
{ 0 , O_WRONLY , DENY_FCB , O_WRONLY , DENY_FCB , A_RW }
} ;
2002-03-05 22:52:14 +03:00
static void progress_bar ( unsigned i , unsigned total )
{
if ( i % 10 ! = 0 ) return ;
printf ( " %5d/%5d \r " , i , total ) ;
fflush ( stdout ) ;
}
2001-09-06 14:37:21 +04:00
/*
this produces a matrix of deny mode behaviour for 1 connection
*/
2007-10-19 04:40:25 +04:00
bool torture_denytest1 ( int dummy )
2001-09-06 14:37:21 +04:00
{
2003-04-23 12:12:34 +04:00
struct cli_state * cli1 ;
2009-05-01 02:26:43 +04:00
uint16_t fnum1 , fnum2 ;
2007-10-19 04:40:25 +04:00
bool correct = True ;
2011-07-22 15:06:13 +04:00
NTSTATUS ret1 , ret2 , status ;
2003-01-03 11:28:12 +03:00
const char * fnames [ 2 ] = { " \\ denytest1.dat " , " \\ denytest1.exe " } ;
2022-09-29 11:45:19 +03:00
size_t i , nread ;
2001-09-06 14:37:21 +04:00
2006-07-31 13:41:25 +04:00
if ( ! torture_open_connection ( & cli1 , 0 ) ) {
2001-09-06 14:37:21 +04:00
return False ;
}
printf ( " starting denytest1 \n " ) ;
for ( i = 0 ; i < 2 ; i + + ) {
2011-04-29 07:23:14 +04:00
cli_unlink ( cli1 , fnames [ i ] , FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN ) ;
2011-12-04 09:13:08 +04:00
cli_openx ( cli1 , fnames [ i ] , O_RDWR | O_CREAT , DENY_NONE , & fnum1 ) ;
2011-05-06 03:44:27 +04:00
cli_writeall ( cli1 , fnum1 , 0 , ( const uint8_t * ) fnames [ i ] , 0 ,
2011-04-02 13:46:30 +04:00
strlen ( fnames [ i ] ) , NULL ) ;
2003-04-23 12:12:34 +04:00
cli_close ( cli1 , fnum1 ) ;
2001-09-06 14:37:21 +04:00
}
2003-11-07 01:11:08 +03:00
printf ( " testing %ld entries \n " , ( unsigned long ) ARRAY_SIZE ( denytable1 ) ) ;
2001-09-06 14:37:21 +04:00
for ( i = 0 ; i < ARRAY_SIZE ( denytable1 ) ; i + + ) {
enum deny_result res ;
2003-01-03 11:28:12 +03:00
const char * fname = fnames [ denytable1 [ i ] . isexe ] ;
2001-09-06 14:37:21 +04:00
2002-03-05 22:52:14 +03:00
progress_bar ( i , ARRAY_SIZE ( denytable1 ) ) ;
2011-12-04 09:13:08 +04:00
ret1 = cli_openx ( cli1 , fname ,
2001-09-06 14:37:21 +04:00
denytable1 [ i ] . mode1 ,
2009-05-01 02:26:43 +04:00
denytable1 [ i ] . deny1 , & fnum1 ) ;
2011-12-04 09:13:08 +04:00
ret2 = cli_openx ( cli1 , fname ,
2001-09-06 14:37:21 +04:00
denytable1 [ i ] . mode2 ,
2009-05-01 02:26:43 +04:00
denytable1 [ i ] . deny2 , & fnum2 ) ;
2001-09-06 14:37:21 +04:00
2009-05-01 02:26:43 +04:00
if ( ! NT_STATUS_IS_OK ( ret1 ) ) {
2001-09-06 14:37:21 +04:00
res = A_X ;
2009-05-01 02:26:43 +04:00
} else if ( ! NT_STATUS_IS_OK ( ret2 ) ) {
2001-09-06 14:37:21 +04:00
res = A_0 ;
} else {
char x = 1 ;
res = A_0 ;
2011-07-22 15:06:13 +04:00
status = cli_read ( cli1 , fnum2 , ( char * ) & x , 0 , 1 ,
& nread ) ;
if ( NT_STATUS_IS_OK ( status ) & & nread = = 1 ) {
2001-09-06 14:37:21 +04:00
res + = A_R ;
}
2011-04-02 13:46:30 +04:00
if ( NT_STATUS_IS_OK ( cli_writeall ( cli1 , fnum2 , 0 ,
( uint8_t * ) & x , 0 , 1 ,
NULL ) ) ) {
2001-09-06 14:37:21 +04:00
res + = A_W ;
}
}
if ( res ! = denytable1 [ i ] . result ) {
correct = False ;
}
if ( torture_showall | | res ! = denytable1 [ i ] . result ) {
printf ( " %s %8s %10s %8s %10s %s (correct=%s) \n " ,
fname ,
denystr ( denytable1 [ i ] . deny1 ) ,
openstr ( denytable1 [ i ] . mode1 ) ,
denystr ( denytable1 [ i ] . deny2 ) ,
openstr ( denytable1 [ i ] . mode2 ) ,
resultstr ( res ) ,
resultstr ( denytable1 [ i ] . result ) ) ;
}
2009-05-05 00:26:02 +04:00
if ( NT_STATUS_IS_OK ( ret1 ) ) {
cli_close ( cli1 , fnum1 ) ;
}
if ( NT_STATUS_IS_OK ( ret2 ) ) {
cli_close ( cli1 , fnum2 ) ;
}
2001-09-06 14:37:21 +04:00
}
for ( i = 0 ; i < 2 ; i + + ) {
2011-04-29 07:23:14 +04:00
cli_unlink ( cli1 , fnames [ i ] , FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN ) ;
2001-09-06 14:37:21 +04:00
}
2003-04-23 12:12:34 +04:00
if ( ! torture_close_connection ( cli1 ) ) {
2001-09-06 14:37:21 +04:00
correct = False ;
}
2023-07-18 12:35:22 +03:00
printf ( " finished denytest1 \n " ) ;
2001-09-06 14:37:21 +04:00
return correct ;
}
/*
this produces a matrix of deny mode behaviour with 2 connections
*/
2007-10-19 04:40:25 +04:00
bool torture_denytest2 ( int dummy )
2001-09-06 14:37:21 +04:00
{
2003-04-23 12:12:34 +04:00
static struct cli_state * cli1 , * cli2 ;
2009-05-01 02:26:43 +04:00
uint16_t fnum1 , fnum2 ;
2001-09-06 14:37:21 +04:00
int i ;
2007-10-19 04:40:25 +04:00
bool correct = True ;
2011-07-22 15:06:13 +04:00
NTSTATUS ret1 , ret2 , status ;
2003-01-03 11:28:12 +03:00
const char * fnames [ 2 ] = { " \\ denytest2.dat " , " \\ denytest2.exe " } ;
2011-07-22 15:06:13 +04:00
size_t nread ;
2001-09-06 14:37:21 +04:00
2006-07-31 13:41:25 +04:00
if ( ! torture_open_connection ( & cli1 , 0 ) | | ! torture_open_connection ( & cli2 , 1 ) ) {
2001-09-06 14:37:21 +04:00
return False ;
}
printf ( " starting denytest2 \n " ) ;
for ( i = 0 ; i < 2 ; i + + ) {
2011-04-29 07:23:14 +04:00
cli_unlink ( cli1 , fnames [ i ] , FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN ) ;
2011-12-04 09:13:08 +04:00
cli_openx ( cli1 , fnames [ i ] , O_RDWR | O_CREAT , DENY_NONE , & fnum1 ) ;
2011-05-06 03:44:27 +04:00
cli_writeall ( cli1 , fnum1 , 0 , ( const uint8_t * ) fnames [ i ] , 0 ,
2011-04-02 13:46:30 +04:00
strlen ( fnames [ i ] ) , NULL ) ;
2003-04-23 12:12:34 +04:00
cli_close ( cli1 , fnum1 ) ;
2001-09-06 14:37:21 +04:00
}
for ( i = 0 ; i < ARRAY_SIZE ( denytable2 ) ; i + + ) {
enum deny_result res ;
2003-01-03 11:28:12 +03:00
const char * fname = fnames [ denytable2 [ i ] . isexe ] ;
2001-09-06 14:37:21 +04:00
2007-06-06 04:42:10 +04:00
progress_bar ( i , ARRAY_SIZE ( denytable2 ) ) ;
2002-03-05 22:52:14 +03:00
2011-12-04 09:13:08 +04:00
ret1 = cli_openx ( cli1 , fname ,
2001-09-06 14:37:21 +04:00
denytable2 [ i ] . mode1 ,
2009-05-01 02:26:43 +04:00
denytable2 [ i ] . deny1 , & fnum1 ) ;
2011-12-04 09:13:08 +04:00
ret2 = cli_openx ( cli2 , fname ,
2001-09-06 14:37:21 +04:00
denytable2 [ i ] . mode2 ,
2009-05-01 02:26:43 +04:00
denytable2 [ i ] . deny2 , & fnum2 ) ;
2001-09-06 14:37:21 +04:00
2009-05-01 02:26:43 +04:00
if ( ! NT_STATUS_IS_OK ( ret1 ) ) {
2001-09-06 14:37:21 +04:00
res = A_X ;
2009-05-01 02:26:43 +04:00
} else if ( ! NT_STATUS_IS_OK ( ret2 ) ) {
2001-09-06 14:37:21 +04:00
res = A_0 ;
} else {
char x = 1 ;
res = A_0 ;
2011-07-22 15:06:13 +04:00
status = cli_read ( cli2 , fnum2 , ( char * ) & x , 0 , 1 ,
& nread ) ;
if ( NT_STATUS_IS_OK ( status ) & & nread = = 1 ) {
res + = A_R ;
}
2011-04-02 13:46:30 +04:00
if ( NT_STATUS_IS_OK ( cli_writeall ( cli2 , fnum2 , 0 ,
( uint8_t * ) & x , 0 , 1 ,
NULL ) ) ) {
2001-09-06 14:37:21 +04:00
res + = A_W ;
}
}
if ( res ! = denytable2 [ i ] . result ) {
correct = False ;
}
if ( torture_showall | | res ! = denytable2 [ i ] . result ) {
printf ( " %s %8s %10s %8s %10s %s (correct=%s) \n " ,
fname ,
denystr ( denytable2 [ i ] . deny1 ) ,
openstr ( denytable2 [ i ] . mode1 ) ,
denystr ( denytable2 [ i ] . deny2 ) ,
openstr ( denytable2 [ i ] . mode2 ) ,
resultstr ( res ) ,
resultstr ( denytable2 [ i ] . result ) ) ;
}
2009-05-05 00:26:02 +04:00
if ( NT_STATUS_IS_OK ( ret1 ) ) {
cli_close ( cli1 , fnum1 ) ;
}
if ( NT_STATUS_IS_OK ( ret2 ) ) {
cli_close ( cli2 , fnum2 ) ;
}
2001-09-06 14:37:21 +04:00
}
for ( i = 0 ; i < 2 ; i + + ) {
2011-04-29 07:23:14 +04:00
cli_unlink ( cli1 , fnames [ i ] , FILE_ATTRIBUTE_SYSTEM | FILE_ATTRIBUTE_HIDDEN ) ;
2001-09-06 14:37:21 +04:00
}
2003-04-23 12:12:34 +04:00
if ( ! torture_close_connection ( cli1 ) ) {
2001-09-06 14:37:21 +04:00
correct = False ;
}
2003-04-23 12:12:34 +04:00
if ( ! torture_close_connection ( cli2 ) ) {
2001-09-06 14:37:21 +04:00
correct = False ;
}
2023-07-18 12:35:22 +03:00
printf ( " finished denytest2 \n " ) ;
2001-09-06 14:37:21 +04:00
return correct ;
}