xref: /xv6-public/fs.h (revision 11a9947f)
1*11a9947fSrtm // on-disk file system format
2*11a9947fSrtm 
3*11a9947fSrtm // second sector
4*11a9947fSrtm struct superblock{
5*11a9947fSrtm   int nblocks;
6*11a9947fSrtm   int ninodes;
7*11a9947fSrtm };
8*11a9947fSrtm 
9*11a9947fSrtm #define NDIRECT 14
10*11a9947fSrtm 
11*11a9947fSrtm // inodes start at the third sector
12*11a9947fSrtm // and blocks start at (ninodes * sizeof(dinode) + 511) / 512
13*11a9947fSrtm struct dinode {
14*11a9947fSrtm   short type;
15*11a9947fSrtm   short nlink;
16*11a9947fSrtm   uint size;
17*11a9947fSrtm   uint addrs[NDIRECT];
18*11a9947fSrtm };
19*11a9947fSrtm #define T_DIR 1
20*11a9947fSrtm #define T_FILE 2
21*11a9947fSrtm 
22*11a9947fSrtm #define IPB (512 / sizeof(struct dinode))
23*11a9947fSrtm 
24*11a9947fSrtm struct dirent {
25*11a9947fSrtm   ushort inum;
26*11a9947fSrtm   char name[14];
27*11a9947fSrtm };
28*11a9947fSrtm 
29