Orion
Barry Adding pipes e59e4fe (3 years, 2 months ago)
diff --git a/vfs/vfs.h b/vfs/vfs.h
index ece5679..6997bf3 100644
--- a/vfs/vfs.h
+++ b/vfs/vfs.h
@@ -68,12 +68,14 @@ struct Inode {
Spinlock lock;
InodeOps *ops;
FileOps *fileOps;
+ void *extra;
+ void (*free_extra)(Inode *);
SuperBlock *super;
union {
DirEntry *dirEntries; /* List of Directory Entries */
PageCache *pages; /* List of Pages */
};
- Inode *lnext; /* Next inode in super list */
+ Inode *lnext; /* Next inode in super's list */
};
struct InodeOps {
int (*create)(Inode *, DirEntry *, mode_t);
@@ -163,8 +165,8 @@ Inode *lookup(const char *name, CustodyChain *chain);
int open(const char *name, int flags, ...); /* mode_t mode */
int close(int fd);
-size_t read(int fd, void *buf, size_t count);
-size_t write(int fd, void *buf, size_t count);
+int read(int fd, void *buf, size_t count);
+int write(int fd, void *buf, size_t count);
int ioctl(int fd, unsigned long request, ...);
off_t lseek(int fd, off_t offset, int whence);
int stat(const char *pathname, struct stat *statbuf);
@@ -175,6 +177,7 @@ int mknod(const char *pathname, mode_t mode, dev_t dev);
int rename(const char *oldpath, const char *newpath);
int dup(int oldfd);
int dup2(int oldfd, int newfd);
+int pipe(int pipefd[2]);
int mount(const char *src, const char *target, const char *type,
unsigned long flags, void *data);
int chdir(const char *path);