summaryrefslogtreecommitdiff
path: root/AT91SAM7S256/SAM7S256/Include/stdio.h
blob: 19f928d49bc67da6828e72eab9b6f5e592542534 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
/* stdio.h standard header */
#ifndef _STDIO
#define _STDIO

#ifndef _SYSTEM_BUILD
  #pragma system_include
#endif

#ifndef _YVALS
  #include <yvals.h>
#endif
#include <ysizet.h>
_C_STD_BEGIN

                /* Module consistency. */
#pragma rtmodel="__dlib_file_descriptor",_STRINGIFY(_DLIB_FILE_DESCRIPTOR)

                /* macros */
#ifndef NULL
  #define NULL          _NULL
#endif /* NULL */

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

#define BUFSIZ          512
#define EOF             (-1)
#define FILENAME_MAX    _FNAMAX
#define FOPEN_MAX       _FOPMAX
#define L_tmpnam        _TNAMAX
#define TMP_MAX         32

#define SEEK_SET        0
#define SEEK_CUR        1
#define SEEK_END        2

#if _DLIB_FILE_DESCRIPTOR
#define stdin           (&_CSTD _Stdin)
#define stdout          (&_CSTD _Stdout)
#define stderr          (&_CSTD _Stderr)
#endif /* _DLIB_FILE_DESCRIPTOR */

#if _MULTI_THREAD
  #define _Lockfile(str)        _Lockfilelock(str)
  #define _Unlockfile(str)      _Unlockfilelock(str)

#else /* _MULTI_THREAD */
  #define _Lockfile(x)          (void)0
  #define _Unlockfile(x)        (void)0
#endif /* _MULTI_THREAD */

                /* type definitions */
typedef _Fpost fpos_t;

                /* printf and scanf pragma support */
#pragma language=save
#pragma language=extended

#ifdef _HAS_PRAGMA_PRINTF_ARGS
  #define __PRINTFPR _Pragma("__printf_args")
  #define __SCANFPR  _Pragma("__scanf_args")
#else
  #define __PRINTFPR
  #define __SCANFPR
#endif


#if _DLIB_FILE_DESCRIPTOR
  #ifndef _FD_TYPE
    #define _FD_TYPE      signed char
  #endif  /* _FD_TYPE */

  typedef struct _Filet
  {       /* file control information */
    unsigned short _Mode;
    unsigned char _Lockno;
    _FD_TYPE _Handle;

    unsigned char *_Buf, *_Bend, *_Next;
    unsigned char *_Rend, *_Wend, *_Rback;

    _Wchart *_WRback, _WBack[2];
    unsigned char *_Rsave, *_WRend, *_WWend;

    struct _Mbstatet _Wstate;
    char *_Tmpnam;
    unsigned char _Back[_MBMAX], _Cbuf;
  } FILE;

                /* declarations */
  _C_LIB_DECL
  extern FILE _Stdin, _Stdout, _Stderr;

  __INTRINSIC void clearerr(FILE *);
  __INTRINSIC int fclose(FILE *);
  __INTRINSIC int feof(FILE *);
  __INTRINSIC int ferror(FILE *);
  __INTRINSIC int fflush(FILE *);
  __INTRINSIC int fgetc(FILE *);
  __INTRINSIC int fgetpos(FILE *, fpos_t *);
  __INTRINSIC char * fgets(char *, int, FILE *);
  __INTRINSIC FILE * fopen(const char *, const char *);
  __PRINTFPR __INTRINSIC int fprintf(FILE *, const char *, ...);
  __INTRINSIC int fputc(int, FILE *);
  __INTRINSIC int fputs(const char *, FILE *);
  __INTRINSIC size_t fread(void *, size_t, size_t, FILE *);
  __INTRINSIC FILE * freopen(const char *, const char *, FILE *);
  __SCANFPR __INTRINSIC int fscanf(FILE *, const char *, ...);
  __INTRINSIC int fseek(FILE *, long, int);
  __INTRINSIC int fsetpos(FILE *, const fpos_t *); 
  __INTRINSIC long ftell(FILE *);
  __INTRINSIC size_t fwrite(const void *, size_t, size_t, FILE *);
  __INTRINSIC void rewind(FILE *);
  __INTRINSIC void setbuf(FILE *, char *);
  __INTRINSIC int setvbuf(FILE *, char *, int, size_t);
  __INTRINSIC FILE * tmpfile(void);
  __INTRINSIC int ungetc(int, FILE *);
  __PRINTFPR __INTRINSIC int vfprintf(FILE *, const char *, __Va_list);
  #if _DLIB_ADD_C99_SYMBOLS
    __SCANFPR  __INTRINSIC int vfscanf(FILE *, const char *, __Va_list);
  #endif /* _DLIB_ADD_C99_SYMBOLS */

  #if _DLIB_ADD_EXTRA_SYMBOLS
    __INTRINSIC FILE * fdopen(_FD_TYPE, const char *);
    __INTRINSIC _FD_TYPE fileno(FILE *);
  #endif /* _DLIB_ADD_EXTRA_SYMBOLS */


  __INTRINSIC int _Nnl(FILE *, unsigned char *, unsigned char *);
  __INTRINSIC long _Fgpos(FILE *, fpos_t *);
  __INTRINSIC int _Flocale(FILE *, const char *, int);
  __INTRINSIC void _Fsetlocale(FILE *, int);
  __INTRINSIC int _Fspos(FILE *, const fpos_t *, long, int);

  #if _MULTI_THREAD
    __INTRINSIC void _Lockfilelock(_Filet *);
    __INTRINSIC void _Unlockfilelock(_Filet *);
  #endif /* _MULTI_THREAD */

  extern FILE *_Files[FOPEN_MAX];

  __INTRINSIC int getc(FILE *);
  __INTRINSIC int putc(int, FILE *);
  _END_C_LIB_DECL
#endif /* _DLIB_FILE_DESCRIPTOR */

_C_LIB_DECL
/* Corresponds to fgets(char *, int, stdin); */
__INTRINSIC char * __gets(char *, int);
__INTRINSIC char * gets(char *);
__INTRINSIC void perror(const char *);
__PRINTFPR __INTRINSIC int printf(const char *, ...);
__INTRINSIC int puts(const char *);
__INTRINSIC int remove(const char *);
__INTRINSIC int rename(const char *, const char *);
__SCANFPR  __INTRINSIC int scanf(const char *, ...);
__PRINTFPR __INTRINSIC int sprintf(char *, const char *, ...);
__SCANFPR  __INTRINSIC int sscanf(const char *, const char *, ...);
__INTRINSIC char * tmpnam(char *);
/* Corresponds to "ungetc(c, stdout)" */
__INTRINSIC int __ungetchar(int);
__PRINTFPR __INTRINSIC int vprintf(const char *, __Va_list);
#if _DLIB_ADD_C99_SYMBOLS
  __SCANFPR  __INTRINSIC int vscanf(const char *, __Va_list);
  __SCANFPR  __INTRINSIC int vsscanf(const char *, const char *, __Va_list);
#endif /* _DLIB_ADD_C99_SYMBOLS */
__PRINTFPR __INTRINSIC int vsprintf(char *, const char *, __Va_list);
/* Corresponds to fwrite(p, x, y, stdout); */
__INTRINSIC size_t __write_array(const void *, size_t, size_t);
#if _DLIB_ADD_C99_SYMBOLS
  __PRINTFPR __INTRINSIC int snprintf(char *, size_t, const char *, ...);
  __PRINTFPR __INTRINSIC int vsnprintf(char *, size_t, const char *, __Va_list);
#endif /* _DLIB_ADD_C99_SYMBOLS */

__INTRINSIC int getchar(void);
__INTRINSIC int putchar(int);

_END_C_LIB_DECL

#pragma language=restore

#if !(_MULTI_THREAD && _FILE_OP_LOCKS)
  #ifndef _NO_DEFINITIONS_IN_HEADER_FILES
    #if _DLIB_FILE_DESCRIPTOR
                /* inlines, for C and C++ */
      #pragma inline
      int (getc)(FILE *_Str)
      {
        return fgetc(_Str);
      }

      #pragma inline
      int (putc)(int _C, FILE *_Str)
      {
        return fputc(_C, _Str);
      }
    #endif

  #endif /* _NO_DEFINITIONS_IN_HEADER_FILES */
#endif /* !(_MULTI_THREAD && _FILE_OP_LOCKS) */
_C_STD_END
#endif /* _STDIO */

#if defined(_STD_USING) && defined(__cplusplus)
  using _CSTD fpos_t;
  using _CSTD clearerr; using _CSTD fclose; using _CSTD feof;
  using _CSTD ferror; using _CSTD fflush; using _CSTD fgetc;
  using _CSTD fgetpos; using _CSTD fgets; using _CSTD fopen;
  using _CSTD fprintf; using _CSTD fputc; using _CSTD fputs;
  using _CSTD fread; using _CSTD freopen; using _CSTD fscanf;
  using _CSTD fseek; using _CSTD fsetpos; using _CSTD ftell;
  using _CSTD fwrite; using _CSTD getc; using _CSTD getchar;
  using _CSTD gets; using _CSTD perror;
  using _CSTD putc; using _CSTD putchar;
  using _CSTD printf; using _CSTD puts; using _CSTD remove;
  using _CSTD rename; using _CSTD rewind; using _CSTD scanf;
  using _CSTD setbuf; using _CSTD setvbuf; using _CSTD sprintf;
  using _CSTD sscanf; using _CSTD tmpfile; using _CSTD tmpnam;
  using _CSTD ungetc; using _CSTD vfprintf; using _CSTD vprintf;
  using _CSTD vsprintf;
  #if _DLIB_ADD_EXTRA_SYMBOLS
    using _CSTD fdopen; using _CSTD fileno;
  #endif /* _DLIB_ADD_EXTRA_SYMBOLS */
  #if _DLIB_ADD_C99_SYMBOLS
    using _CSTD snprintf; using _CSTD vsnprintf;
    using _CSTD vscanf; using _CSTD vsscanf;
    using _CSTD vfscanf; 
  #endif /* _DLIB_ADD_C99_SYMBOLS */


  #if _DLIB_FILE_DESCRIPTOR
    using _CSTD FILE;
  #endif
#endif /* defined(_STD_USING) && defined(__cplusplus) */

/*
 * Copyright (c) 1992-2002 by P.J. Plauger.  ALL RIGHTS RESERVED.
 * Consult your license regarding permissions and restrictions.
V3.12:0576 */