xref: /xv6-public/fs.h (revision e8d11c2e)
111a9947fSrtm // on-disk file system format
211a9947fSrtm 
311a9947fSrtm // second sector
411a9947fSrtm struct superblock{
511a9947fSrtm   int nblocks;
611a9947fSrtm   int ninodes;
711a9947fSrtm };
811a9947fSrtm 
9*e8d11c2eSkaashoek #define NDIRECT 13
1011a9947fSrtm 
1111a9947fSrtm // inodes start at the third sector
1211a9947fSrtm // and blocks start at (ninodes * sizeof(dinode) + 511) / 512
1311a9947fSrtm struct dinode {
1411a9947fSrtm   short type;
15*e8d11c2eSkaashoek   short major;
16*e8d11c2eSkaashoek   short minor;
1711a9947fSrtm   short nlink;
1811a9947fSrtm   uint size;
1911a9947fSrtm   uint addrs[NDIRECT];
2011a9947fSrtm };
21*e8d11c2eSkaashoek 
2211a9947fSrtm #define T_DIR 1
2311a9947fSrtm #define T_FILE 2
24*e8d11c2eSkaashoek #define T_DEV 3
2511a9947fSrtm 
2611a9947fSrtm #define IPB (512 / sizeof(struct dinode))
2711a9947fSrtm 
289d3fb671Srtm #define DIRSIZ 14
299d3fb671Srtm 
3011a9947fSrtm struct dirent {
3111a9947fSrtm   ushort inum;
329d3fb671Srtm   char name[DIRSIZ];
3311a9947fSrtm };
3411a9947fSrtm 
35