xref: /plan9/sys/src/liboventi/readfully.c (revision 368c31ab13393dea083228fdd1c3445076f83a4b)
1*368c31abSDavid du Colombier #include <u.h>
2*368c31abSDavid du Colombier #include <libc.h>
3*368c31abSDavid du Colombier #include <oventi.h>
4*368c31abSDavid du Colombier #include "session.h"
5*368c31abSDavid du Colombier 
6*368c31abSDavid du Colombier int
vtFdReadFully(int fd,uchar * p,int n)7*368c31abSDavid du Colombier vtFdReadFully(int fd, uchar *p, int n)
8*368c31abSDavid du Colombier {
9*368c31abSDavid du Colombier 	int nn;
10*368c31abSDavid du Colombier 
11*368c31abSDavid du Colombier 	while(n > 0) {
12*368c31abSDavid du Colombier 		nn = vtFdRead(fd, p, n);
13*368c31abSDavid du Colombier 		if(nn <= 0)
14*368c31abSDavid du Colombier 			return 0;
15*368c31abSDavid du Colombier 		n -= nn;
16*368c31abSDavid du Colombier 		p += nn;
17*368c31abSDavid du Colombier 	}
18*368c31abSDavid du Colombier 	return 1;
19*368c31abSDavid du Colombier }
20