xref: /xv6-public/file.h (revision dec637bc)
1 struct file {
2   enum { FD_NONE, FD_PIPE, FD_INODE } type;
3   int ref; // reference count
4   char readable;
5   char writable;
6   struct pipe *pipe;
7   struct inode *ip;
8   uint off;
9 };
10 
11 
12 // in-memory copy of an inode
13 struct inode {
14   uint dev;           // Device number
15   uint inum;          // Inode number
16   int ref;            // Reference count
17   struct sleeplock lock;
18   int flags;          // I_VALID
19 
20   short type;         // copy of disk inode
21   short major;
22   short minor;
23   short nlink;
24   uint size;
25   uint addrs[NDIRECT+1];
26 };
27 #define I_VALID 0x2
28 
29 // table mapping major device number to
30 // device functions
31 struct devsw {
32   int (*read)(struct inode*, char*, int);
33   int (*write)(struct inode*, char*, int);
34 };
35 
36 extern struct devsw devsw[];
37 
38 #define CONSOLE 1
39 
40 //PAGEBREAK!
41 // Blank page.
42