int treadn(Fd *f, void *av, int n) { char *a; long m, t; //fprint(2, "%s: treadn %p %d\n", argv0, f, n); qlock(&f->lk); //fprint(2, "%s: got treadn lock\n", argv0); assert(f->mode == OREAD); a = av; t = 0; while(t < n){ m = _tread(f, a+t, n-t); if(m <= 0){ if(t == 0){ qunlock(&f->lk); return m; } break; } t += m; } qunlock(&f->lk); return t; }
int ReadName(LPBYTE lpBuffer){ WORD wLen=ReadByte(); if ((wLen=_tread(wLib,lpBuffer,wLen))==wLen){ lpBuffer[wLen]=0x0; return TRUE; } return FALSE; }
int tread(Fd *f, void *v, int n) { int r; qlock(&f->lk); dbg(DbgFdbuf, "tread fd=%d n=%d\n", f->fd, n); r = _tread(f, v, n); qunlock(&f->lk); return r; }
WORD ReadWord( void ){ WORD wLen; if (_tread(wLib,(LPBYTE)&wLen,2)==2){ return wLen; }else return 0xffff; }
BYTE ReadByte( void ){ char c; _tread(wLib,(LPBYTE)&c,1); return c; }