summaryrefslogtreecommitdiff
path: root/fs.h
diff options
context:
space:
mode:
authorrtm <rtm>2006-07-21 13:18:04 +0000
committerrtm <rtm>2006-07-21 13:18:04 +0000
commit11a9947f1a68e23001690955d8d0975ad4d6cf0c (patch)
treeceb2f6bde6a8c88e3e9e4d022a23185d8cb6d37e /fs.h
parent29270816285978e44b317c6e5c7bfa7a89ec24dd (diff)
downloadxv6-labs-11a9947f1a68e23001690955d8d0975ad4d6cf0c.tar.gz
xv6-labs-11a9947f1a68e23001690955d8d0975ad4d6cf0c.tar.bz2
xv6-labs-11a9947f1a68e23001690955d8d0975ad4d6cf0c.zip
bread
iget mkfs makes a file system image put this in your .bochsrc: ata0-slave: type=disk, mode=flat, path="fs.img", cylinders=1024, heads=1, spt=1
Diffstat (limited to 'fs.h')
-rw-r--r--fs.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/fs.h b/fs.h
new file mode 100644
index 0000000..b710e1c
--- /dev/null
+++ b/fs.h
@@ -0,0 +1,28 @@
+// on-disk file system format
+
+// second sector
+struct superblock{
+ int nblocks;
+ int ninodes;
+};
+
+#define NDIRECT 14
+
+// inodes start at the third sector
+// and blocks start at (ninodes * sizeof(dinode) + 511) / 512
+struct dinode {
+ short type;
+ short nlink;
+ uint size;
+ uint addrs[NDIRECT];
+};
+#define T_DIR 1
+#define T_FILE 2
+
+#define IPB (512 / sizeof(struct dinode))
+
+struct dirent {
+ ushort inum;
+ char name[14];
+};
+