Usermode/libc - AcessNative hacks to separate acess and native namespaces
[tpg/acess2.git] / Usermode / Libraries / libc.so_src / include_exp / stdio.h
1 /*
2  * AcessOS LibC
3  * stdlib.h
4  */
5 #ifndef __STDIO_H
6 #define __STDIO_H
7
8 #include <sys/types.h>
9 #include <stdarg.h>
10 #include <stddef.h>     // size_t
11
12 /* === Types === */
13 typedef struct sFILE    FILE;
14
15 /* === CONSTANTS === */
16 #define EOF     (-1)
17 #define BUFSIZ  1024
18
19 #ifndef SEEK_CUR
20 #define SEEK_CUR        0
21 #define SEEK_SET        1
22 #define SEEK_END        (-1)
23 #endif
24
25 #define _IOFBF  2
26 #define _IOLBF  1
27 #define _IONBF  0
28
29 #ifdef ARCHDIR_is_native
30 #define printf  acess_printf
31 #define vsnprintf       acess_vsnprintf
32 #define vsprintf        acess_vsprintf
33 #define vprintf         acess_vprintf
34 #define sprintf acess_sprintf
35 #define snprintf        acess_snprintf
36 #define perror  acess_perror
37
38 #define fopen   acess_fopen
39 #define fdopen  acess_fdopen
40 #define freopen acess_freopen
41 #define fdopen  acess_fdopen
42 #define fclose  acess_fclose
43 #define ftell   acess_ftell
44 #define fseek   acess_fseek
45 #define clearerr        acess_clearerr
46 #define feof    acess_feof
47 #define ferr    acess_ferr
48 #define fileno  acess_fileno
49
50 #define fread   acess_fread
51 #define fwrite  acess_fwrite
52 #define fgetc   acess_fgetc
53 #define fgets   acess_fgets
54 #define fputc   acess_fputc
55 #define fputs   acess_fputs
56 #define getchar acess_getchar
57 #define putchar acess_putchar
58
59 #define fprintf         acess_fprintf
60 #define vfprintf        acess_vfprintf
61
62 #define scanf   acess_scanf
63 #define fscanf  acess_fscanf
64 #define sscanf  acess_sscanf
65 #define vscanf  acess_vscanf
66 #define vsscanf acess_vsscanf
67 #define vfscanf acess_vfscanf
68
69 #define stdin   acess_stdin
70 #define stdout  acess_stdout
71 #define stderr  acess_stderr
72 #endif
73
74 /* --- Standard IO --- */
75 extern int      printf(const char *format, ...);
76 extern int      vsnprintf(char *buf, size_t __maxlen, const char *format, va_list args);
77 extern int      vsprintf(char *buf, const char *format, va_list args);
78 extern int      sprintf(char *buf, const char *format, ...);
79 extern int      snprintf(char *buf, size_t maxlen, const char *format, ...);
80 extern void     perror(const char *s);
81
82 extern FILE     *fopen(const char *file, const char *mode);
83 extern FILE     *freopen(const char *file, const char *mode, FILE *fp);
84 extern FILE     *fdopen(int fd, const char *modes);
85 extern int      fclose(FILE *fp);
86 extern void     fflush(FILE *fp);
87 extern off_t    ftell(FILE *fp);
88 extern int      fseek(FILE *fp, long int amt, int whence);
89 extern void     clearerr(FILE *stream);
90 extern int      feof(FILE *stream);
91 extern int      ferror(FILE *stream);
92 extern int      fileno(FILE *stream);
93
94 extern size_t   fread(void *buf, size_t size, size_t n, FILE *fp);
95 extern size_t   fwrite(const void *buf, size_t size, size_t n, FILE *fp);
96 extern int      fgetc(FILE *fp);
97 #define getc(fp)        fgetc(fp)
98 extern char     *fgets(char *s, int size, FILE *fp);
99 extern int      fputc(int ch, FILE *fp);
100 extern int      fputs(const char *s, FILE *fp);
101 extern int      getchar(void);
102 extern int      putchar(int ch);
103
104 extern int      fprintf(FILE *fp, const char *format, ...);
105 extern int      vfprintf(FILE *fp, const char *format, va_list args);
106
107 // scanf
108 extern int      scanf(const char *format, ...);
109 extern int      fscanf(FILE *stream, const char *format, ...);
110 extern int      sscanf(const char *str, const char *format, ...);
111 extern int      vscanf(const char *format, va_list ap);
112 extern int      vsscanf(const char *str, const char *format, va_list ap);
113 extern int      vfscanf(FILE *stream, const char *format, va_list ap);
114
115 extern FILE     *stdin;
116 extern FILE     *stdout;
117 extern FILE     *stderr;
118
119 #endif
120

UCC git Repository :: git.ucc.asn.au