diff options
| author | Robert Morris <rtm@csail.mit.edu> | 2019-06-11 09:57:14 -0400 |
|---|---|---|
| committer | Robert Morris <rtm@csail.mit.edu> | 2019-06-11 09:57:14 -0400 |
| commit | 5753553213df8f9de851adb68377db43faecb91f (patch) | |
| tree | 3b629ff54897fca414146677532cb459a2ed11ba /kernel/file.h | |
| parent | 91ba81110acd3163f7de3580b677eece0c57f5e7 (diff) | |
| download | xv6-labs-2022-5753553213df8f9de851adb68377db43faecb91f.tar.xz xv6-labs-2022-5753553213df8f9de851adb68377db43faecb91f.zip | |
separate source into kernel/ user/ mkfs/
Diffstat (limited to 'kernel/file.h')
| -rw-r--r-- | kernel/file.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/kernel/file.h b/kernel/file.h new file mode 100644 index 0000000..f28018f --- /dev/null +++ b/kernel/file.h @@ -0,0 +1,37 @@ +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 + struct sleeplock lock; // protects everything below here + int valid; // inode has been read from disk? + + short type; // copy of disk inode + short major; + short minor; + short nlink; + uint size; + uint addrs[NDIRECT+1]; +}; + +// table mapping major device number to +// device functions +struct devsw { + int (*read)(struct inode*, int, uint64, int); + int (*write)(struct inode*, int, uint64, int); +}; + +extern struct devsw devsw[]; + +#define CONSOLE 1 |
