Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

206 lines
6.1 KiB

/*---------------------------------------------------------------------------------*/
/* These are definitions of main validation structures */
/*---------------------------------------------------------------------------------*/
#include "sfs-hide.h"
#include "sfs-main.h"
#include "sfs-tree.h"
#include "sfs-tier.h"
TierNode PrototypeSectionTier[] = {
{ ScanClass, ScanGroup, PrototypeSectionRequest, 1, 0, 1 } };
TierNode PrototypesSemaphoresTier[] = {
{ DefineClass, DefineGroup, DefinePrototypeRequest, 1, 0, 0 },
{ DefineClass, DefineGroup, DefineSemaphoreRequest, 0, 0, 0 } };
TierNode ExecutionSectionTier[] = {
{ ScanClass, ScanGroup, ExecutionSectionRequest, 1, 0, 1 } };
TierNode FilesTimersDefinitionTier[] = {
{ DefineClass, DefineGroup, DefineFileRequest, 0, 0, 0 },
{ DefineClass, DefineGroup, DefineTimerRequest, 0, 0, 0 } };
TierNode ProcessDefinitionTier[] = {
{ DefineClass, DefineGroup, DefineProcessRequest, 1, 0, 0 } };
TierNode ExecutionPathTier[] = {
{ DefineClass, DefineGroup, DefineFileRequest, 0, 0, 0 },
{ DefineClass, DefineGroup, DefineProcessRequest, 1, 0, 0 },
{ DefineClass, DefineGroup, DefinePrototypeRequest, 1, 0, 0 },
{ DefineClass, DefineGroup, DefineSemaphoreRequest, 0, 0, 0 },
{ DefineClass, DefineGroup, DefineTimerRequest, 0, 0, 0 },
{ ScanClass, ScanGroup, PrototypeSectionRequest, 1, 0, 1 },
{ ScanClass, ScanGroup, ExecutionSectionRequest, 1, 0, 1 } };
MajorGraph MajorTransitionsGraph[] = {
{ TierInclusive, 1, Descend, 1, PrototypeSectionTier },
{ TierInclusive, 2, Descend, 1, PrototypesSemaphoresTier },
{ TierInclusive, 1, Descend, 1, ExecutionSectionTier },
{ TierInclusive, 1, Descend, 1, ProcessDefinitionTier },
{ TierInclusive, 2, Descend, 1, FilesTimersDefinitionTier },
{ TierExclusive, 7, Ascend, 2, ExecutionPathTier } };
NODE AppendFileParameters[] = {
{ WordSizeGroup, RecordSizeValue, Optional, Zero } };
NODE ChangeFilePointerParameters[] = {
{ SignedQuadGroup, OffsetValue, Required, Zero },
{ TextTokenGroup, OffPointIndex, Required, Zero } };
NODE CollateFileParameters[] = {
{ QuadIndexGroup, CountChosen, Optional, Zero },
{ ByteIndexGroup, PatternChosen, Optional, Zero },
{ WordSizeGroup, RecordSizeValue, Optional, Zero },
{ ByteIndexGroup, SchemeChosen, Optional, Zero } };
NODE CollateFilesParameters[] = {
{ QuadIndexGroup, CountChosen, Optional, Zero },
{ WordSizeGroup, RecordSizeValue, Optional, Zero },
{ ByteIndexGroup, SchemeChosen, Optional, Zero } };
NODE CreateRecordsParameters[] = {
{ ByteIndexGroup, PatternChosen, Required, Zero },
{ WordSizeGroup, RecordSizeValue, Required, Zero } };
NODE DefineProcessParameters[] = {
{ QuadSizeGroup, BufferSpaceValue, Optional, Zero } };
NODE DefinePrototypeParameters[] = {
{ AttributeGroup, Zero, Optional, Zero },
{ OpenFlagsGroup, Zero, Optional, Zero },
{ AccessModeGroup, Zero, Optional, Zero },
{ ShareModeGroup, Zero, Optional, Zero },
{ LocalityModeGroup, Zero, Optional, Zero },
{ OtherModeGroup, Zero, Optional, Zero },
{ QuadSizeGroup, FileSizeValue, Optional, Zero },
{ WordSizeGroup, RecordSizeValue, Optional, Zero } };
NODE ReadFileParameters[] = {
{ ByteIndexGroup, SemaphoreChosen, Optional, Zero },
{ WordSizeGroup, RecordSizeValue, Optional, Zero } };
NODE SemaphoreParameters[] = {
{ TimeGroup, TimeoutValue, Required, Zero } };
MinorGraph MinorTransitionsGraph[] = {
{ AuxiliaryClass,
CreateGroup,
CreateRecordsRequest,
Required | SuiteFlags,
sizeof ( CreateRecordsParameters ) / sizeof ( NODE ),
CreateRecordsParameters },
{ AuxiliaryClass,
RecordGroup,
CollateFileRequest,
Required | SuiteFlags,
sizeof ( CollateFileParameters ) / sizeof ( NODE ),
CollateFileParameters },
{ AuxiliaryClass,
RecordGroup,
AppendFileRequest,
Required | SuiteFlags,
sizeof ( AppendFileParameters ) / sizeof ( NODE ),
AppendFileParameters },
{ AuxiliaryClass,
RecordGroup,
CopyFileRequest,
Required | SuiteFlags,
sizeof ( AppendFileParameters ) / sizeof ( NODE ),
AppendFileParameters },
{ AuxiliaryClass,
UtilityGroup,
AppendFileRequest,
Required | SuiteFlags,
sizeof ( AppendFileParameters ) / sizeof ( NODE ),
AppendFileParameters },
{ AuxiliaryClass,
UtilityGroup,
CollateFilesRequest,
Required | SuiteFlags,
sizeof ( CollateFilesParameters ) / sizeof ( NODE ),
CollateFilesParameters },
{ AuxiliaryClass,
UtilityGroup,
CopyFileRequest,
Required | SuiteFlags,
sizeof ( AppendFileParameters ) / sizeof ( NODE ),
AppendFileParameters },
{ DefineClass,
DefineGroup,
DefineProcessRequest,
Optional,
sizeof ( DefineProcessParameters ) / sizeof ( NODE ),
DefineProcessParameters },
{ DefineClass,
DefineGroup,
DefinePrototypeRequest,
Required,
sizeof ( DefinePrototypeParameters ) / sizeof ( NODE ),
DefinePrototypeParameters },
{ FileClass,
FilePointerGroup,
Zero,
Required | SuiteFlags,
sizeof ( ChangeFilePointerParameters ) / sizeof ( NODE ),
ChangeFilePointerParameters },
{ FileClass,
OpenFileGroup,
Zero,
Required | SuiteFlags,
sizeof ( DefinePrototypeParameters ) / sizeof ( NODE ),
DefinePrototypeParameters },
{ FileClass,
ReadFileGroup,
Zero,
Required | SuiteFlags,
sizeof ( ReadFileParameters ) / sizeof ( NODE ),
ReadFileParameters },
{ FileClass,
WriteFileGroup,
Zero,
Required | SuiteFlags,
sizeof ( ReadFileParameters ) / sizeof ( NODE ),
ReadFileParameters },
{ SemaphoreClass,
WaitGroup,
Zero,
Required | SuiteFlags,
sizeof ( SemaphoreParameters ) / sizeof ( NODE ),
SemaphoreParameters },
{ Zero, Zero, Zero, Zero, Zero, NULL } };