Lines Matching refs:fp
59 #define SM_IO_RD_TIMEOUT(fp, fd, to, timeout, sel_ret) \ argument
88 fp->f_r = 0; \
89 fp->f_flags |= SMERR; \
118 sm_lflush(fp, timeout) in sm_lflush() argument
119 SM_FILE_T *fp; in sm_lflush()
123 if ((fp->f_flags & (SMLBF|SMWR)) == (SMLBF|SMWR))
124 return sm_flush(fp, timeout);
141 sm_refill(fp, timeout) in sm_refill() argument
142 register SM_FILE_T *fp; in sm_refill()
150 timeout = fp->f_timeout;
160 fp->f_r = 0; /* just to be sure */
168 fp->f_r = 0; /* largely a convenience for callers */
170 if (fp->f_flags & SMFEOF)
173 SM_CONVERT_TIME(fp, fd, timeout, &to);
176 if ((fp->f_flags & SMRD) == 0)
178 if ((fp->f_flags & SMRW) == 0)
181 fp->f_flags |= SMERR;
186 if (fp->f_flags & SMWR)
188 if (sm_flush(fp, &timeout))
190 fp->f_flags &= ~SMWR;
191 fp->f_w = 0;
192 fp->f_lbfsize = 0;
194 fp->f_flags |= SMRD;
205 if (HASUB(fp))
207 FREEUB(fp);
208 if ((fp->f_r = fp->f_ur) != 0)
210 fp->f_p = fp->f_up;
218 if (fp->f_bf.smb_base == NULL)
219 sm_makebuf(fp);
226 if (fp->f_flags & (SMLBF|SMNBF))
234 if (fp->f_flushfp != NULL &&
235 (*fp->f_getinfo)(fp, SM_IO_IS_READABLE, NULL) <= 0)
236 sm_flush(fp->f_flushfp, &timeout);
238 fp->f_p = fp->f_bf.smb_base;
250 r = (*fp->f_read)(fp, (char *)fp->f_p, fp->f_bf.smb_size);
259 SM_IO_RD_TIMEOUT(fp, fd, &to, timeout, ret);
267 fp->f_flags |= SMFEOF;
269 fp->f_flags |= SMERR;
270 fp->f_r = 0;
273 fp->f_r = r;
293 sm_rget(fp, timeout) in sm_rget() argument
294 register SM_FILE_T *fp; in sm_rget()
297 if (sm_refill(fp, timeout) == 0)
299 fp->f_r--;
300 return *fp->f_p++;