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