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