diff options
author | Robert Morris <[email protected]> | 2019-06-04 05:57:47 -0400 |
---|---|---|
committer | Robert Morris <[email protected]> | 2019-06-04 05:57:47 -0400 |
commit | 8baac760500980d4b83e8de2e90265bfaa19df13 (patch) | |
tree | ceb59412ec44ff98c1281627fb648deaeedb0d04 /defs.h | |
parent | cefe223bf5e4b68e5c1202f2f089a164ad656621 (diff) | |
download | xv6-labs-8baac760500980d4b83e8de2e90265bfaa19df13.tar.gz xv6-labs-8baac760500980d4b83e8de2e90265bfaa19df13.tar.bz2 xv6-labs-8baac760500980d4b83e8de2e90265bfaa19df13.zip |
support read() and write() bigger than one page
Diffstat (limited to 'defs.h')
-rw-r--r-- | defs.h | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -50,9 +50,9 @@ void iupdate(struct inode*); int namecmp(const char*, const char*); struct inode* namei(char*); struct inode* nameiparent(char*, char*); -int readi(struct inode*, char*, uint, uint); +int readi(struct inode*, int, uint64, uint, uint); void stati(struct inode*, struct stat*); -int writei(struct inode*, char*, uint, uint); +int writei(struct inode*, int, uint64, uint, uint); // ramdisk.c void ramdiskinit(void); @@ -98,8 +98,8 @@ void picinit(void); // pipe.c int pipealloc(struct file**, struct file**); void pipeclose(struct pipe*, int); -int piperead(struct pipe*, char*, int); -int pipewrite(struct pipe*, char*, int); +int piperead(struct pipe*, uint64, int); +int pipewrite(struct pipe*, uint64, int); //PAGEBREAK: 16 // proc.c @@ -122,6 +122,8 @@ void userinit(void); int wait(void); void wakeup(void*); void yield(void); +int either_copyout(int user_dst, uint64 dst, char *src, uint64 len); +int either_copyin(char *dst, int user_src, uint64 src, uint64 len); // swtch.S void swtch(struct context*, struct context*); |