1*219b2ee8SDavid du Colombier #include <u.h> 2*219b2ee8SDavid du Colombier #include <libc.h> 3*219b2ee8SDavid du Colombier 4*219b2ee8SDavid du Colombier long readn(int f,void * av,long n)5*219b2ee8SDavid du Colombierreadn(int f, void *av, long n) 6*219b2ee8SDavid du Colombier { 7*219b2ee8SDavid du Colombier char *a; 8*219b2ee8SDavid du Colombier long m, t; 9*219b2ee8SDavid du Colombier 10*219b2ee8SDavid du Colombier a = av; 11*219b2ee8SDavid du Colombier t = 0; 12*219b2ee8SDavid du Colombier while(t < n){ 13*219b2ee8SDavid du Colombier m = read(f, a+t, n-t); 14*219b2ee8SDavid du Colombier if(m <= 0){ 15*219b2ee8SDavid du Colombier if(t == 0) 16*219b2ee8SDavid du Colombier return m; 17*219b2ee8SDavid du Colombier break; 18*219b2ee8SDavid du Colombier } 19*219b2ee8SDavid du Colombier t += m; 20*219b2ee8SDavid du Colombier } 21*219b2ee8SDavid du Colombier return t; 22*219b2ee8SDavid du Colombier } 23