|
|
1.1 root 1: /*
2: * One file structure is allocated
3: * for each open/creat/pipe call.
4: * Main use is to hold the read/write
5: * pointer associated with each open
6: * file.
7: */
8: struct file
9: {
10: short f_flag;
11: short f_count; /* reference count */
12: struct inode *f_inode; /* pointer to inode structure */
13: off_t f_offset; /* read/write character pointer */
14: #ifdef CHAOS
15: caddr_t f_conn; /* Chaosnet connection pointer */
16: #endif CHAOS
17: };
18:
19: #ifdef KERNEL
20: struct file *file, *fileNFILE; /* the file table itself */
21: int nfile;
22:
23: struct file *getf();
24: struct file *falloc();
25: struct file *allocfile();
26:
27: /*
28: * inline to speed things up
29: */
30: #define getf(fd) ((unsigned)(fd)>=NOFILE ? NULL : u.u_ofile[fd])
31:
32: #endif
33:
34: /* flags */
35: #define FREAD 01
36: #define FWRITE 02
37: #define FPIPE 04
38: #define FHUNGUP 010
39: #define FRNBLK 040 /* no block on read */
40: #define FWNBLK 0100 /* no block on write */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.