blob: d61b1a9f9b2864fd3d9eccbb41362a50a995165d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
/* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
*
* GNU Library General Public License (LGPL) version 2 or later.
*
* Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
*/
#include "_stdio.h"
#ifdef __UCLIBC_MJN3_ONLY__
#warning CONSIDER: Do we really need a seperate rfill function?
#endif
#ifdef __STDIO_BUFFERS
/* Read some data into the buffer.
* Returns number of bytes read into the buffer.
* If 0 is returned, then either EOF or ERROR.
* Side effects are those of _stdio_READ.
*/
size_t attribute_hidden __stdio_rfill(register FILE *__restrict stream)
{
size_t rv;
__STDIO_STREAM_VALIDATE(stream);
assert(stream->__filedes >= -1);
assert(__STDIO_STREAM_IS_READING(stream));
assert(!__STDIO_STREAM_BUFFER_RAVAIL(stream)); /* Buffer must be empty. */
assert(__STDIO_STREAM_BUFFER_SIZE(stream)); /* Must have a buffer. */
assert(!(stream->__modeflags & __FLAG_UNGOT));
#ifdef __UCLIBC_HAS_STDIO_GETC_MACRO__
assert(stream->__bufgetc_u == stream->__bufstart);
#endif
rv = __stdio_READ(stream, stream->__bufstart,
stream->__bufend - stream->__bufstart);
stream->__bufpos = stream->__bufstart;
stream->__bufread = stream->__bufstart + rv;
__STDIO_STREAM_VALIDATE(stream);
return rv;
}
#endif
|