Added array analysis (computes paths used to add elements/tuples to sets/relations.
[repair.git] / Repair / RepairCompiler / MCC / test2.space
1 // sEXT2 - Simple File System Example
2 // Space Definition Language File
3
4 set Block(int) :
5     UsedBlock | 
6     FreeBlock;
7
8 set FreeBlock(int);
9
10 set Inode(int) :
11     UsedInode | 
12     FreeInode;
13
14 set FreeInode(int);
15
16 set UsedInode(int) : partition 
17     FileInode | 
18     DirectoryInode ;
19
20 set FileInode(int);
21
22 set DirectoryInode(int) : RootDirectoryInode;
23
24 set RootDirectoryInode(int);
25
26 set UsedBlock(int) :
27     SuperBlock | 
28     GroupBlock | 
29     FileDirectoryBlock | 
30     InodeTableBlock | 
31     InodeBitmapBlock | 
32     BlockBitmapBlock;
33
34 set FileDirectoryBlock(int) : 
35     DirectoryBlock | 
36     FileBlock;
37
38 set SuperBlock(int);
39
40 set GroupBlock(int);
41
42 set FileBlock(int);
43
44 set DirectoryBlock(int);
45
46 set InodeTableBlock(int);
47
48 set InodeBitmapBlock(int);
49
50 set BlockBitmapBlock(int);
51
52 set DirectoryEntry(DirectoryEntry);
53
54 // relations xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
55
56 inodeof: DirectoryEntry -> UsedInode (many->1);
57
58 contents: UsedInode -> FileDirectoryBlock (1->many);
59
60 inodestatus: Inode -> int (many->1);
61
62 blockstatus: Block -> int (many->1);
63
64 referencecount: Inode -> int (many->1);
65
66 filesize: Inode -> int (many->1);