Mercurial > hg > Members > anatofuz > CbC_xv6
comparison 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 |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:83c23a36980d |
---|---|
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 int flags; // I_BUSY, I_VALID | |
18 | |
19 short type; // copy of disk inode | |
20 short major; | |
21 short minor; | |
22 short nlink; | |
23 uint size; | |
24 uint addrs[NDIRECT+1]; | |
25 }; | |
26 #define I_BUSY 0x1 | |
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 |