diff src/file.h @ 0:83c23a36980d

Init
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Fri, 26 May 2017 23:11:05 +0900
parents
children 1a64b5645cdd
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/file.h	Fri May 26 23:11:05 2017 +0900
@@ -0,0 +1,38 @@
+struct file {
+    enum { FD_NONE, FD_PIPE, FD_INODE } type;
+    int          ref;   // reference count
+    char         readable;
+    char         writable;
+    struct pipe  *pipe;
+    struct inode *ip;
+    uint         off;
+};
+
+
+// in-memory copy of an inode
+struct inode {
+    uint    dev;        // Device number
+    uint    inum;       // Inode number
+    int     ref;        // Reference count
+    int     flags;      // I_BUSY, I_VALID
+
+    short   type;       // copy of disk inode
+    short   major;
+    short   minor;
+    short   nlink;
+    uint    size;
+    uint    addrs[NDIRECT+1];
+};
+#define I_BUSY 0x1
+#define I_VALID 0x2
+
+// table mapping major device number to
+// device functions
+struct devsw {
+    int (*read) (struct inode*, char*, int);
+    int (*write)(struct inode*, char*, int);
+};
+
+extern struct devsw devsw[];
+
+#define CONSOLE 1