1/* ===-- stdio.h - stub SDK header for compiler-rt --------------------------===
2 *
3 *                     The LLVM Compiler Infrastructure
4 *
5 * This file is dual licensed under the MIT and the University of Illinois Open
6 * Source Licenses. See LICENSE.TXT for details.
7 *
8 * ===-----------------------------------------------------------------------===
9 *
10 * This is a stub SDK header file. This file is not part of the interface of
11 * this library nor an official version of the appropriate SDK header. It is
12 * intended only to stub the features of this header required by compiler-rt.
13 *
14 * ===-----------------------------------------------------------------------===
15 */
16
17#ifndef __STDIO_H__
18#define __STDIO_H__
19
20#if defined(__cplusplus)
21extern "C" {
22#endif
23
24typedef struct __sFILE FILE;
25typedef __SIZE_TYPE__ size_t;
26
27/* Determine the appropriate fdopen, fopen(), and fwrite() functions. */
28#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__)
29#  if defined(__i386)
30#    define __FDOPEN_NAME  "_fdopen$UNIX2003"
31#    define __FOPEN_NAME "_fopen$UNIX2003"
32#    define __FWRITE_NAME "_fwrite$UNIX2003"
33#  elif defined(__x86_64__)
34#    define __FDOPEN_NAME  "_fdopen"
35#    define __FOPEN_NAME "_fopen"
36#    define __FWRITE_NAME "_fwrite"
37#  elif defined(__arm)
38#    define __FDOPEN_NAME  "_fdopen"
39#    define __FOPEN_NAME "_fopen"
40#    define __FWRITE_NAME "_fwrite"
41#  else
42#    error "unrecognized architecture for targeting OS X"
43#  endif
44#elif defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__)
45#  if defined(__i386) || defined (__x86_64)
46#    define __FDOPEN_NAME  "_fdopen"
47#    define __FOPEN_NAME "_fopen"
48#    define __FWRITE_NAME "_fwrite"
49#  elif defined(__arm)
50#    define __FDOPEN_NAME  "_fdopen"
51#    define __FOPEN_NAME "_fopen"
52#    define __FWRITE_NAME "_fwrite"
53#  else
54#    error "unrecognized architecture for targeting iOS"
55#  endif
56#else
57#  error "unrecognized architecture for targeting Darwin"
58#endif
59
60#    define stderr __stderrp
61extern FILE *__stderrp;
62
63#ifndef SEEK_SET
64#define	SEEK_SET	0	/* set file offset to offset */
65#endif
66#ifndef SEEK_CUR
67#define	SEEK_CUR	1	/* set file offset to current plus offset */
68#endif
69#ifndef SEEK_END
70#define	SEEK_END	2	/* set file offset to EOF plus offset */
71#endif
72
73int fclose(FILE *);
74int fflush(FILE *);
75FILE *fopen(const char * __restrict, const char * __restrict) __asm(__FOPEN_NAME);
76FILE *fdopen(int, const char *) __asm(__FDOPEN_NAME);
77int fprintf(FILE * __restrict, const char * __restrict, ...);
78int fputc(int, FILE *);
79size_t fwrite(const void * __restrict, size_t, size_t, FILE * __restrict)
80  __asm(__FWRITE_NAME);
81size_t fread(void * __restrict, size_t, size_t, FILE * __restrict);
82long ftell(FILE *);
83int fseek(FILE *, long, int);
84int snprintf(char * __restrict, size_t, const char * __restrict, ...);
85
86#if defined(__cplusplus)
87}
88#endif
89
90#endif /* __STDIO_H__ */
91