mirror of https://github.com/lianthony/NT4.0
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
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 } };
|