summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/dietstdio.h
blob: a1cbeba834132fff7f14f4daf3d096a5a0408a55 (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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/* diet stdio -- no buffering ;-} */

#include "dietfeatures.h"
#include <sys/types.h>
#ifdef WANT_THREAD_SAVE
#include <pthread.h>
#endif

#define BUFSIZE 128

typedef struct __file {
  int fd;
  int flags;
#ifdef WANT_BUFFERED_STDIO
  unsigned int bs;	/* read: bytes in buffer */
  unsigned int bm;	/* position in buffer */
  char buf[BUFSIZE];
  struct __file *next;	/* for fflush */
#endif
  pid_t popen_kludge;
#ifdef WANT_UNGETC
  char ungetbuf;
  char ungotten;
#endif
#ifdef WANT_THREAD_SAVE
  pthread_mutex_t m;
#endif
} FILE;

extern FILE *__stdio_root;

#define ERRORINDICATOR 1
#define EOFINDICATOR 2
#define BUFINPUT 4
#define BUFLINEWISE 8
#define NOBUF 16
#define UNSEEKABLE 32

#define _IONBF 0
#define _IOLBF 1
#define _IOFBF 2

/* internal function to flush buffer.
 * However, if next is BUFINPUT and the buffer is an input buffer, it
 * will not be flushed. Vice versa for output */
extern int __fflush4(FILE *stream,int next);

FILE *fopen (const char *path, const char *mode);
FILE *fdopen (int fildes, const char *mode);
FILE *freopen (const char *path, const char *mode, FILE *stream);

int fgetc(FILE *stream);
char *fgets(char *s, int size, FILE *stream);
int getc(FILE *stream);
int getchar(void);
char *gets(char *s);
int ungetc(int c, FILE *stream);

int fputc(int c, FILE *stream);
int fputs(const char *s, FILE *stream);
int putc(int c, FILE *stream);
int putchar(int c);
int puts(const char *s);

long fseek( FILE *stream, long offset, int whence);
long ftell( FILE *stream);
void rewind( FILE *stream);
int fgetpos( FILE *stream, fpos_t *pos);
int fsetpos( FILE *stream, fpos_t *pos);

size_t fread( void *ptr, size_t size, size_t nmemb, FILE *stream);

size_t fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream);

int fflush(FILE *stream);

int fclose(FILE *stream);

extern FILE *stdout, *stderr, *stdin;

#define EOF (int)(-1)