xref: /plan9/sys/src/lib9p/util.c (revision 9a747e4fd48b9f4522c70c07e8f882a15030f964)
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