summaryrefslogtreecommitdiff
path: root/defs.h
diff options
context:
space:
mode:
authorRobert Morris <[email protected]>2019-06-04 05:57:47 -0400
committerRobert Morris <[email protected]>2019-06-04 05:57:47 -0400
commit8baac760500980d4b83e8de2e90265bfaa19df13 (patch)
treeceb59412ec44ff98c1281627fb648deaeedb0d04 /defs.h
parentcefe223bf5e4b68e5c1202f2f089a164ad656621 (diff)
downloadxv6-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.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/defs.h b/defs.h
index dfc7715..262da72 100644
--- a/defs.h
+++ b/defs.h
@@ -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*);