summaryrefslogtreecommitdiff
path: root/kernel/file.h
diff options
context:
space:
mode:
authorMole Shang <[email protected]>2024-02-19 14:10:32 +0800
committerMole Shang <[email protected]>2024-02-19 14:36:21 +0800
commitd86118fc80267649b4791c8c0c72ebd60edf1ef2 (patch)
treeb792b617b4df80a5803a9c1164d0e3fdfe9cfe31 /kernel/file.h
parentb20ef9d0210fd7d9403acde1857eed1b9880c0b2 (diff)
parent0cf897cbe05fd8485162619db4244f4159d0eb52 (diff)
downloadxv6-labs-d86118fc80267649b4791c8c0c72ebd60edf1ef2.tar.gz
xv6-labs-d86118fc80267649b4791c8c0c72ebd60edf1ef2.tar.bz2
xv6-labs-d86118fc80267649b4791c8c0c72ebd60edf1ef2.zip
Merge branch 'fs' into mmap
Conflicts: .gitignore Makefile conf/lab.mk kernel/defs.h user/user.h
Diffstat (limited to 'kernel/file.h')
-rw-r--r--kernel/file.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/kernel/file.h b/kernel/file.h
index b076d1d..05d9377 100644
--- a/kernel/file.h
+++ b/kernel/file.h
@@ -1,10 +1,17 @@
struct file {
+#ifdef LAB_NET
+ enum { FD_NONE, FD_PIPE, FD_INODE, FD_DEVICE, FD_SOCK } type;
+#else
enum { FD_NONE, FD_PIPE, FD_INODE, FD_DEVICE } type;
+#endif
int ref; // reference count
char readable;
char writable;
struct pipe *pipe; // FD_PIPE
struct inode *ip; // FD_INODE and FD_DEVICE
+#ifdef LAB_NET
+ struct sock *sock; // FD_SOCK
+#endif
uint off; // FD_INODE
short major; // FD_DEVICE
};
@@ -26,7 +33,7 @@ struct inode {
short minor;
short nlink;
uint size;
- uint addrs[NDIRECT+1];
+ uint addrs[NDIRECT+2];
};
// map major device number to device functions.
@@ -38,3 +45,5 @@ struct devsw {
extern struct devsw devsw[];
#define CONSOLE 1
+#define STATS 2
+