| #include <u.h> | |
| #include <libc.h> | |
| #include <fcall.h> | |
| #include <thread.h> | |
| #include "9p.h" | |
| void | |
| readbuf(Req *r, void *s, long n) | |
| { | |
| r->ofcall.count = r->ifcall.count; | |
| if(r->ifcall.offset >= n){ | |
| r->ofcall.count = 0; | |
| return; | |
| } | |
| if(r->ifcall.offset+r->ofcall.count > n) | |
| r->ofcall.count = n - r->ifcall.offset; | |
| memmove(r->ofcall.data, (char*)s+r->ifcall.offset, r->ofcall.count); | |
| } | |
| void | |
| readstr(Req *r, char *s) | |
| { | |
| if(s == nil) | |
| r->ofcall.count = 0; | |
| else | |
| readbuf(r, s, strlen(s)); | |
| } |