summaryrefslogtreecommitdiff
path: root/kernel/file.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-13 10:29:27 -0400
committerRobert Morris <[email protected]>2019-06-13 10:29:27 -0400
commita8305b7318e66eb33e7789072e8b91dffa0e4b93 (patch)
tree080bae6010159b083d86411fcd05438e19ca5515 /kernel/file.h
parent46744c4a13ec21e0818a49f31dbc3ad6ad592eed (diff)
downloadxv6-labs-a8305b7318e66eb33e7789072e8b91dffa0e4b93.tar.gz
xv6-labs-a8305b7318e66eb33e7789072e8b91dffa0e4b93.tar.bz2
xv6-labs-a8305b7318e66eb33e7789072e8b91dffa0e4b93.zip
FD_DEVICE
Diffstat (limited to 'kernel/file.h')
-rw-r--r--kernel/file.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/kernel/file.h b/kernel/file.h
index f28018f..5cf15a2 100644
--- a/kernel/file.h
+++ b/kernel/file.h
@@ -1,11 +1,12 @@
struct file {
- enum { FD_NONE, FD_PIPE, FD_INODE } type;
+ enum { FD_NONE, FD_PIPE, FD_INODE, FD_DEVICE } type;
int ref; // reference count
char readable;
char writable;
- struct pipe *pipe;
- struct inode *ip;
- uint off;
+ struct pipe *pipe; // FD_PIPE
+ struct inode *ip; // FD_INODE and FD_DEVICE
+ uint off; // FD_INODE
+ short major; // FD_DEVICE
};
@@ -25,11 +26,10 @@ struct inode {
uint addrs[NDIRECT+1];
};
-// table mapping major device number to
-// device functions
+// map major device number to device functions.
struct devsw {
- int (*read)(struct inode*, int, uint64, int);
- int (*write)(struct inode*, int, uint64, int);
+ int (*read)(int, uint64, int);
+ int (*write)(int, uint64, int);
};
extern struct devsw devsw[];