xref: /xv6-public/fs.h (revision 9d3fb671)
111a9947fSrtm // on-disk file system format
211a9947fSrtm 
311a9947fSrtm // second sector
411a9947fSrtm struct superblock{
511a9947fSrtm   int nblocks;
611a9947fSrtm   int ninodes;
711a9947fSrtm };
811a9947fSrtm 
911a9947fSrtm #define NDIRECT 14
1011a9947fSrtm 
1111a9947fSrtm // inodes start at the third sector
1211a9947fSrtm // and blocks start at (ninodes * sizeof(dinode) + 511) / 512
1311a9947fSrtm struct dinode {
1411a9947fSrtm   short type;
1511a9947fSrtm   short nlink;
1611a9947fSrtm   uint size;
1711a9947fSrtm   uint addrs[NDIRECT];
1811a9947fSrtm };
1911a9947fSrtm #define T_DIR 1
2011a9947fSrtm #define T_FILE 2
2111a9947fSrtm 
2211a9947fSrtm #define IPB (512 / sizeof(struct dinode))
2311a9947fSrtm 
24*9d3fb671Srtm #define DIRSIZ 14
25*9d3fb671Srtm 
2611a9947fSrtm struct dirent {
2711a9947fSrtm   ushort inum;
28*9d3fb671Srtm   char name[DIRSIZ];
2911a9947fSrtm };
3011a9947fSrtm 
31