Merge branch 'master' of git://github.com/thepowersgang/acess2
[tpg/acess2.git] / Notes / AcessFS.txt
1 Acess File System
2 - Database Design
3
4 == Data Strutures ==
5 Blocks are of a size specified in the superblock
6 - Superblock
7  > Fixed offset: 1024 bytes
8 - Field Table
9  > Offset set in superblock
10 - Index Table
11 - Inode Table
12
13 === Superblock ===
14 struct sSuperblock {
15         Uint8   Magic[4];       // == '\xACFS'+Version
16         Uint8   BlockSize;      // TrueSize = 2^(7+BlockSize)
17 };
18
19 === Field Table ===
20 struct sFieldTableEntry {
21         Uint16  Ident;
22         Uint8   Type;
23         Uint8   Length;
24         char    Text[];
25 } FieldTable[SuperBlock.NFields];
26
27 === Index Table ==
28 struct sIndexTableEntry {
29         Uint16  Field;
30         Uint16  CheckSum;
31         Uint32  Block;
32 } IndexTable[SuperBlock.NFields];
33
34 === Index Table entry ==
35 struct {
36         Uint32  NumEntries;
37         Uint32  Links[];
38 };
39
40 === Inode Table ===
41 struct sInodeTable {
42         
43 };
44
45 === Inode ===
46 struct sInodeEntry {
47         Uint16  Name;
48         Uint8   Size;
49         Uint8   Checksum;
50         Uint8   data[];
51 };
52
53 Each `sInodeEntry` defines an entry in a "database"
54

UCC git Repository :: git.ucc.asn.au