17dd7cddfSDavid du Colombier #include <u.h>
27dd7cddfSDavid du Colombier #include <libc.h>
37dd7cddfSDavid du Colombier #include <auth.h>
47dd7cddfSDavid du Colombier #include <fcall.h>
57dd7cddfSDavid du Colombier #include <thread.h>
67dd7cddfSDavid du Colombier #include "9p.h"
759cc4ca5SDavid du Colombier
859cc4ca5SDavid du Colombier void
readbuf(Req * r,void * s,long n)9*9a747e4fSDavid du Colombier readbuf(Req *r, void *s, long n)
1059cc4ca5SDavid du Colombier {
11*9a747e4fSDavid du Colombier r->ofcall.count = r->ifcall.count;
12*9a747e4fSDavid du Colombier if(r->ifcall.offset >= n){
13*9a747e4fSDavid du Colombier r->ofcall.count = 0;
1459cc4ca5SDavid du Colombier return;
1559cc4ca5SDavid du Colombier }
16*9a747e4fSDavid du Colombier if(r->ifcall.offset+r->ofcall.count > n)
17*9a747e4fSDavid du Colombier r->ofcall.count = n - r->ifcall.offset;
18*9a747e4fSDavid du Colombier memmove(r->ofcall.data, (char*)s+r->ifcall.offset, r->ofcall.count);
1959cc4ca5SDavid du Colombier }
20*9a747e4fSDavid du Colombier
2159cc4ca5SDavid du Colombier void
readstr(Req * r,char * s)22*9a747e4fSDavid du Colombier readstr(Req *r, char *s)
2359cc4ca5SDavid du Colombier {
24*9a747e4fSDavid du Colombier readbuf(r, s, strlen(s));
2559cc4ca5SDavid du Colombier }
26