annotate src/file.h @ 395:17e8a4bc06a7 default tip

add macOS AR/RANLIB
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 21:59:50 +0900
parents efef0767b1bc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
345
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
1 #ifndef FILE_STRUCT
336
0e1c64818c0d remove file struct, omit //:skip
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
2 struct file {
116
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
3 enum { FD_NONE, FD_PIPE, FD_INODE } type;
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
4 int ref; // reference count
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
5 char readable;
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
6 char writable;
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
7 struct pipe *pipe;
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
8 struct inode *ip;
e45b8d57b9e8 tweak context.pm
anatofuz
parents: 113
diff changeset
9 uint off;
336
0e1c64818c0d remove file struct, omit //:skip
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 149
diff changeset
10 };
345
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
11
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
12 #define FILE_STRUCT
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
13 #endif
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 // in-memory copy of an inode
149
654f2dadd744 add inode.h
menikon
parents: 132
diff changeset
15
345
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
16 #ifndef INODE_STRUCT
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 struct inode {
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 uint dev; // Device number
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 uint inum; // Inode number
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 int ref; // Reference count
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 int flags; // I_BUSY, I_VALID
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 short type; // copy of disk inode
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 short major;
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 short minor;
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 short nlink;
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 uint size;
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 uint addrs[NDIRECT+1];
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 };
345
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
30 #define INODE_STRUCT
efef0767b1bc emit include guard at context.h
anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents: 336
diff changeset
31 #endif
149
654f2dadd744 add inode.h
menikon
parents: 132
diff changeset
32
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 #define I_BUSY 0x1
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 #define I_VALID 0x2
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35
149
654f2dadd744 add inode.h
menikon
parents: 132
diff changeset
36
654f2dadd744 add inode.h
menikon
parents: 132
diff changeset
37
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 // table mapping major device number to
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 // device functions
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 struct devsw {
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 int (*read) (struct inode*, char*, int);
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 int (*write)(struct inode*, char*, int);
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 };
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44
27
mir3636
parents: 0
diff changeset
45 struct cbc_devsw {
33
7a63dacab7f8 fix cbc_read
mir3636
parents: 31
diff changeset
46 __code (*read) (struct inode*, char*, int, __code (*)(int));
29
mir3636
parents: 27
diff changeset
47 //__code (*write)(struct inode*, char*, int, __code (*)(int));
27
mir3636
parents: 0
diff changeset
48 };
mir3636
parents: 0
diff changeset
49
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
50 extern struct devsw devsw[];
27
mir3636
parents: 0
diff changeset
51 extern struct cbc_devsw cbc_devsw[];
0
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
53 #define CONSOLE 1