1#include <stdio_impl.h> 2 3int __toread(FILE *f) 4{ 5 f->mode |= f->mode-1; 6 if (f->wpos != f->wbase) f->write(f, 0, 0); 7 f->wpos = f->wbase = f->wend = 0; 8 if (f->flags & F_NORD) { 9 f->flags |= F_ERR; 10 return EOF; 11 } 12 13 /* Alloc file buffer if needed */ 14 if (__falloc_buf(f) < 0) { 15 f->flags |= F_ERR; 16 return EOF; 17 } 18 19 f->rpos = f->rend = f->buf + f->buf_size; 20 21 return (f->flags & F_EOF) ? EOF : 0; 22} 23 24hidden void __toread_needs_stdio_exit() 25{ 26 __stdio_exit_needed(); 27} 28